@charset "UTF-8";
/*
	Theme Name: Torlesse
	Theme URI: http://www.avocadesign.co.nz
	Description: A mobile responsive and HTML5 theme built for the Genesis Framework.
	Author: Avoca Design
	Author URI: http://www.avocadesign.co.nz

	Version: 1.0

	Tags: black, white, one-column, two-columns, fixed-width, custom-menu, full-width-template, sticky-post, theme-options, threaded-comments, translation-ready

	Template: genesis
	Template Version: 1.0

	License: GPL-2.0+
	License URI: http://www.opensource.org/licenses/gpl-license.php
*/
.site-inner .wrap {
  max-width: 76.046em;
  margin-left: auto;
  margin-right: auto; }
  .site-inner .wrap:after {
    content: " ";
    display: block;
    clear: both; }

/*
 * Modular Scale Settings
 *
 * http://www.modularscale.com by Tim Brown
 * https://github.com/Team-Sass/modular-scale
 * version 2 syntax
 */
/*
	 * Sizing
	 */
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

td,
th {
  padding: 0; }

/* ## Box Sizing
--------------------------------------------- */
*,
input[type="search"] {
  box-sizing: border-box; }

/**
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    contenteditable attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that are clearfixed.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.cf:before,
.cf:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */ }

.cf:after {
  clear: both; }

/**
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */
.cf {
  *zoom: 1; }

/* ## Float Clearing
--------------------------------------------- */
.author-box:before,
.clearfix:before,
.entry:before,
.entry-content:before,
.footer-widgets:before,
.nav-primary:before,
.nav-secondary:before,
.pagination:before,
.site-container:before,
.site-footer:before,
.site-header:before,
.site-inner:before,
.wrap:before {
  content: " ";
  display: table; }

.author-box:after,
.clearfix:after,
.entry:after,
.entry-content:after,
.footer-widgets:after,
.nav-primary:after,
.nav-secondary:after,
.pagination:after,
.site-container:after,
.site-footer:after,
.site-header:after,
.site-inner:after,
.wrap:after {
  clear: both;
  content: " ";
  display: table; }

/*
* 	Main Icon mixin
*
* 	Based on http://jaydenseric.com/blog/fun-with-sass-and-font-icons 
*
*	e.g. 
*	@include icon('phone', 'before', true, $large, $top:-3px, $margin:5px);
* 	@include icon('phone', 'before', true, $large, $top:-3px, $margin:5px) {
*		color: black;
* 	}
*/
@font-face {
  font-family: "entypo";
  src: url("fonts/entypo/entypo-plus.eot");
  src: url("fonts/entypo/entypo-plus.eot?#iefix") format("embedded-opentype"), url("fonts/entypo/entypo-plus.woff") format("woff"), url("fonts/entypo/entypo-plus.ttf") format("truetype"), url("fonts/entypo/entypo-plus.svg#entypo") format("svg");
  font-weight: normal;
  font-style: normal;
  speak: none; }

/*
 * Social Network Colours
 *
 * http://designpieces.com/2012/12/social-media-colours-hex-and-rgb/
 */
/*
 * Brand Colours
 */
/*
* Backgrounds
*/
.evolve-gradient {
  background: -webkit-radial-gradient(top left, circle, #fff, rgba(255, 255, 255, 0) 70%);
  background: radial-gradient(circle at top left, #fff, rgba(255, 255, 255, 0) 70%); }

.site-inner {
  background: url(images/tree-of-life.png) bottom right no-repeat; }

.swoosh {
  margin-top: -65px;
  height: 70px;
  border: none;
  z-index: 99;
  position: relative; }
  @media (min-width: 768px) and (max-width: 1023px) {
    .swoosh {
      margin-top: -40px; } }
  @media (max-width: 767px) {
    .swoosh {
      margin-top: -20px; } }

.slideshow {
  z-index: 1;
  position: relative; }

.bg-light {
  background-image: -webkit-linear-gradient(left, #FBE351 1%, #FAEA8C 29%, #FAEA8C 70%, #FFE230 98%);
  background-image: linear-gradient(90deg, #FBE351 1%, #FAEA8C 29%, #FAEA8C 70%, #FFE230 98%);
  opacity: 0.8; }
  .bg-light .fl-content-row {
    opacity: 1; }

.bg-light-grey {
  background: whitesmoke; }

.bg-dark {
  background: #333333; }

.bg-orange {
  background: #F3763A;
  color: #fff; }
  .bg-orange h1, .bg-orange h2, .bg-orange h3, .bg-orange h4, .bg-orange h5, .bg-orange h6, .bg-orange p, .bg-orange blockquote {
    color: #fff; }

.bg-turquoise,
.bg-medium {
  background: #1D9FA3;
  color: #fff; }
  .bg-turquoise .fl-button,
  .bg-medium .fl-button {
    background: #fff !important;
    border: none !important; }
    .bg-turquoise .fl-button .fl-button-text,
    .bg-medium .fl-button .fl-button-text {
      color: #333333 !important; }
  .bg-turquoise h1, .bg-turquoise h2, .bg-turquoise h3, .bg-turquoise h4, .bg-turquoise h5, .bg-turquoise h6, .bg-turquoise p, .bg-turquoise blockquote,
  .bg-medium h1,
  .bg-medium h2,
  .bg-medium h3,
  .bg-medium h4,
  .bg-medium h5,
  .bg-medium h6,
  .bg-medium p,
  .bg-medium blockquote {
    color: #fff; }
  .bg-turquoise button,
  .bg-turquoise input[type="button"],
  .bg-turquoise input[type="reset"],
  .bg-turquoise input[type="submit"],
  .bg-turquoise .button,
  .bg-medium button,
  .bg-medium input[type="button"],
  .bg-medium input[type="reset"],
  .bg-medium input[type="submit"],
  .bg-medium .button {
    background: #fff;
    color: #333; }
    .bg-turquoise button:hover,
    .bg-turquoise input[type="button"]:hover,
    .bg-turquoise input[type="reset"]:hover,
    .bg-turquoise input[type="submit"]:hover,
    .bg-turquoise .button:hover,
    .bg-medium button:hover,
    .bg-medium input[type="button"]:hover,
    .bg-medium input[type="reset"]:hover,
    .bg-medium input[type="submit"]:hover,
    .bg-medium .button:hover {
      background: #fff;
      color: #333; }

.bg-yellow {
  background: #FFE230;
  padding: 18px; }

.drop-shadow {
  box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 5px; }

/*
 * Buttons
 */
.button.primary {
  background: #1D9FA3;
  color: #fff; }

.button.secondary {
  background: #F9F9F9;
  color: #333333; }

.button.outline {
  border: 1px solid #333333;
  color: #333333; }

.fl-button {
  border: 2px solid #F3763A !important;
  background: transparent !important; }
  .fl-button .fl-button-text {
    color: #F3763A !important; }

.primary-button .fl-button {
  background: #F3763A !important;
  border: none !important; }
  .primary-button .fl-button .fl-button-text {
    color: #fff !important; }

/* ## Typographical Elements
--------------------------------------------- */
body {
  background: #fff url(images/body-bg.png) bottom repeat-x;
  color: #333;
  font-family: Lato, sans-serif;
  font-size: 18px;
  font-weight: 300;
  line-height: 1.625;
  margin: 0; }

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

::-moz-selection {
  background-color: #333;
  color: #fff; }

::selection {
  background-color: #333;
  color: #fff; }

a {
  color: #F3763A;
  text-decoration: none; }

a:hover {
  color: #333; }

p {
  margin: 0 0 28px;
  padding: 0; }

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

li {
  list-style-type: none; }

b,
strong {
  font-weight: 700; }

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

blockquote {
  margin: 40px; }

blockquote::before {
  content: "\201C";
  display: block;
  font-size: 30px;
  height: 0;
  left: -20px;
  position: relative;
  top: -10px; }

/* ## Headings
--------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6 {
  color: #333;
  font-family: Lato, sans-serif;
  font-weight: 400;
  line-height: 1.2;
  margin: 0 0 10px; }

h1 {
  font-size: 36px; }

h2 {
  font-size: 30px; }

h3 {
  font-size: 24px; }

h4 {
  font-size: 20px; }

h5 {
  font-size: 18px; }

h6 {
  font-size: 16px; }

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

img {
  height: auto; }

.featured-content img,
.gallery img {
  width: auto; }

/* Responsive Menu
--------------------------------------------- */
.responsive-menu-icon {
  cursor: pointer;
  display: none;
  margin-bottom: -1px;
  text-align: center; }

.responsive-menu-icon::before {
  content: "\f333";
  display: inline-block;
  font: normal 20px/1 'dashicons';
  margin: 0 auto;
  /*padding: 10px;*/
  padding: 10px 5px 10px 10px; }

.nav-primary .responsive-menu-icon::before {
  color: #fff; }

.menu-text {
  color: #fff;
  line-height: 1;
  vertical-align: top;
  margin-top: 11px;
  display: inline-block; }

/* # Structure and Layout
---------------------------------------------------------------------------------------------------- */
/* ## Site Containers
--------------------------------------------- */
.site-inner .wrap,
.site-header .wrap,
.wrap {
  margin: 0 auto;
  max-width: 1200px; }
  @media (max-width: 1199px) {
    .site-inner .wrap,
    .site-header .wrap,
    .wrap {
      max-width: 1140px;
      padding-left: 26px;
      padding-right: 26px; } }
  @media (min-width: 768px) and (max-width: 1023px) {
    .site-inner .wrap,
    .site-header .wrap,
    .wrap {
      max-width: 960px;
      padding-left: 26px;
      padding-right: 26px; } }
  @media (max-width: 767px) {
    .site-inner .wrap,
    .site-header .wrap,
    .wrap {
      max-width: 720px;
      padding-left: 26px;
      padding-right: 26px; } }

.site-header .wrap {
  padding-bottom: 0 !important;
  padding-top: 26px !important; }
  .site-header .wrap .header-widget-area {
    margin-top: 26px;
    text-align: right;
    width: 300px !important; }
    @media (max-width: 767px) {
      .site-header .wrap .header-widget-area {
        margin: 0 auto; } }

.site-inner {
  clear: both; }

/* ## Column Widths and Positions
--------------------------------------------- */
/* ### Wrapping div for .content and .sidebar-primary */
.content-sidebar-sidebar .content-sidebar-wrap,
.sidebar-content-sidebar .content-sidebar-wrap,
.sidebar-sidebar-content .content-sidebar-wrap {
  width: 980px; }

.content-sidebar-sidebar .content-sidebar-wrap {
  float: left; }

.sidebar-content-sidebar .content-sidebar-wrap,
.sidebar-sidebar-content .content-sidebar-wrap {
  float: right; }

/* ### Content */
.content {
  float: right;
  width: 800px; }

.content-sidebar .content,
.content-sidebar-sidebar .content,
.sidebar-content-sidebar .content {
  float: left; }

.content-sidebar-sidebar .content,
.sidebar-content-sidebar .content,
.sidebar-sidebar-content .content {
  width: 580px; }

.full-width-content .content {
  width: 100%; }

/* ### Primary Sidebar */
.sidebar-primary {
  float: right;
  width: 360px; }

.sidebar-content .sidebar-primary,
.sidebar-sidebar-content .sidebar-primary {
  float: left; }

/* ### Secondary Sidebar */
.sidebar-secondary {
  float: left;
  width: 180px; }

.content-sidebar-sidebar .sidebar-secondary {
  float: right; }

/* ## Column Classes
--------------------------------------------- */
/* Link: http://twitter.github.io/bootstrap/assets/css/bootstrap-responsive.css */
.five-sixths,
.four-sixths,
.one-fourth,
.one-half,
.one-sixth,
.one-third,
.three-fourths,
.three-sixths,
.two-fourths,
.two-sixths,
.two-thirds {
  float: left;
  margin-left: 2.564102564102564%; }

.one-half,
.three-sixths,
.two-fourths {
  width: 48.717948717948715%; }

.one-third,
.two-sixths {
  width: 31.623931623931625%; }

.four-sixths,
.two-thirds {
  width: 65.81196581196582%; }

.one-fourth {
  width: 23.076923076923077%; }

.three-fourths {
  width: 74.35897435897436%; }

.one-sixth {
  width: 14.52991452991453%; }

.five-sixths {
  width: 82.90598290598291%; }

.first {
  clear: both;
  margin-left: 0; }

/* ## Forms
--------------------------------------------- */
input,
select,
textarea {
  background-color: #fff;
  border: 1px solid #ddd;
  color: #333;
  font-size: 18px;
  font-weight: 300;
  padding: 16px;
  width: 100%; }

input:focus,
textarea:focus {
  border: 1px solid #999;
  outline: none; }

input[type="checkbox"],
input[type="image"],
input[type="radio"] {
  width: auto; }

::-moz-placeholder {
  color: #333;
  font-weight: 300;
  opacity: 1; }

::-webkit-input-placeholder {
  color: #333;
  font-weight: 300; }

button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.button {
  background-color: #F3763A;
  border: none;
  color: #fff;
  cursor: pointer;
  font-size: 16px;
  font-weight: 300;
  padding: 16px 24px;
  text-transform: uppercase;
  width: auto;
  border-radius: 4px; }

.footer-widgets button,
.footer-widgets input[type="button"],
.footer-widgets input[type="reset"],
.footer-widgets input[type="submit"],
.footer-widgets .button {
  background-color: #e5554e;
  color: #fff; }

button:hover,
input:hover[type="button"],
input:hover[type="reset"],
input:hover[type="submit"],
.button:hover {
  background-color: #e5554e;
  color: #fff; }

.entry-content .button:hover {
  color: #fff; }

.footer-widgets button:hover,
.footer-widgets input:hover[type="button"],
.footer-widgets input:hover[type="reset"],
.footer-widgets input:hover[type="submit"],
.footer-widgets .button:hover {
  background-color: #fff;
  color: #333; }

.button {
  display: inline-block; }

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button {
  display: none; }

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

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

td,
th {
  text-align: left; }

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

th {
  font-weight: 400; }

/* ## Gallery
--------------------------------------------- */
.gallery {
  overflow: hidden; }

.gallery-item {
  float: left;
  margin: 0 0 28px;
  text-align: center; }

.gallery-columns-2 .gallery-item {
  width: 50%; }

.gallery-columns-3 .gallery-item {
  width: 33%; }

.gallery-columns-4 .gallery-item {
  width: 25%; }

.gallery-columns-5 .gallery-item {
  width: 20%; }

.gallery-columns-6 .gallery-item {
  width: 16.6666%; }

.gallery-columns-7 .gallery-item {
  width: 14.2857%; }

.gallery-columns-8 .gallery-item {
  width: 12.5%; }

.gallery-columns-9 .gallery-item {
  width: 11.1111%; }

.gallery img {
  border: 1px solid #ddd;
  height: auto;
  padding: 4px; }

.gallery img:hover {
  border: 1px solid #999; }

/* # Common Classes
---------------------------------------------------------------------------------------------------- */
/* ## Avatar
--------------------------------------------- */
.avatar {
  float: left; }

.alignleft .avatar,
.author-box .avatar {
  margin-right: 24px; }

.alignright .avatar {
  margin-left: 24px; }

.comment .avatar {
  margin: 0 16px 24px 0; }

/* ## Genesis
--------------------------------------------- */
.breadcrumb {
  margin-bottom: 20px; }

.archive-description,
.author-box {
  background-color: #fff;
  font-size: 16px;
  margin-bottom: 40px;
  padding: 40px; }

.author-box-title {
  font-size: 16px;
  margin-bottom: 4px; }

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

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

.site-header .search-form {
  float: right;
  margin-top: 12px; }

.entry-content .search-form {
  width: 50%; }

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

/* To clear search input field's text when the search field gets focus */
input[type="search"]:focus::-webkit-input-placeholder {
  color: transparent; }

input[type="search"]:focus:-moz-placeholder {
  color: transparent; }

/* Firefox 18- */
input[type="search"]:focus::-moz-placeholder {
  color: transparent; }

/* Firefox 19+ */
input[type="search"]:focus:-ms-input-placeholder {
  color: transparent; }

/* oldIE ;) */
/* ## Titles
--------------------------------------------- */
.archive-title {
  font-size: 20px; }

.entry-title {
  font-size: 36px; }

.page .entry-title {
  margin-bottom: 24px; }

.entry-title a,
.sidebar .widget-title a {
  color: #333; }

.entry-title a:hover {
  color: #e5554e; }

.widget-title {
  font-size: 18px;
  margin-bottom: 20px; }

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

a.alignnone {
  display: inline-block; }

.alignleft {
  float: left;
  text-align: left; }

.alignright {
  float: right;
  text-align: right; }

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

img.centered,
.aligncenter {
  display: block;
  margin: 0 auto 24px; }

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

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

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

.wp-caption-text {
  font-size: 14px;
  font-weight: 700;
  text-align: center; }

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

/* # Widgets
---------------------------------------------------------------------------------------------------- */
.widget {
  word-wrap: break-word; }

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

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

.widget_calendar table {
  width: 100%; }

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

/* ## Featured Content
--------------------------------------------- */
.featured-content .entry {
  border-bottom: 2px solid #f5f5f5;
  margin-bottom: 20px;
  padding: 0 0 24px; }

.footer-widgets .entry {
  border-bottom: 1px dotted #666; }

.featured-content .entry-title {
  font-size: 20px; }

/* # Plugins
---------------------------------------------------------------------------------------------------- */
/* ## Genesis eNews Extended
--------------------------------------------- */
.enews-widget,
.enews-widget .widget-title {
  color: #fff; }

.sidebar .widget.enews-widget {
  background-color: #333; }

.enews-widget input,
.enews-widget input:focus {
  border: 1px solid #333; }

.enews-widget input {
  font-size: 16px;
  margin-bottom: 16px; }

.enews-widget input[type="submit"] {
  background-color: #e5554e;
  color: #fff;
  margin: 0;
  width: 100%; }

.enews-widget input:hover[type="submit"] {
  background-color: #fff;
  color: #333; }

.enews form + p {
  margin-top: 24px; }

/* ## Jetpack
--------------------------------------------- */
#wpstats {
  display: none; }

.horizontal-form .gform_wrapper, .horizontal-form .gform_fields {
  *zoom: 1; }
  .horizontal-form .gform_wrapper:before, .horizontal-form .gform_wrapper:after, .horizontal-form .gform_fields:before, .horizontal-form .gform_fields:after {
    content: " ";
    /* 1 */
    display: table;
    /* 2 */ }
  .horizontal-form .gform_wrapper:after, .horizontal-form .gform_fields:after {
    clear: both; }

.horizontal-form .gform_wrapper .top_label input.medium {
  width: 100%; }

@media (min-width: 768px) {
  .horizontal-form .gform_body,
  .horizontal-form .gform_footer {
    float: left;
    clear: none !important; }
  .horizontal-form .gform_body {
    width: 630px;
    padding-right: 2%;
    display: block; }
  .horizontal-form .gform_footer {
    width: auto;
    display: block; }
  .horizontal-form .gfield {
    float: left;
    clear: none !important;
    padding-right: 1.5%; } }

.sidebar .gform_wrapper .top_label input.medium {
  width: 100%; }

.sidebar li.gfield {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0; }

/* To avoid noticeable vertical movement for hover state of Soliloquy's Control Nav (typically circles) and bxSlider's left and right arrows */
.soliloquy-container .soliloquy-control-nav li a,
.soliloquy-theme-classic .soliloquy-pager-link,
.bx-wrapper .bx-controls-direction a {
  -webkit-transition: none;
  transition: none; }

/* To remove bottom border for Soliloquy controls */
.entry-content .soliloquy-controls-direction a, .entry-content a.soliloquy-pager-link {
  border-bottom: none; }

@media (max-width: 767px) {
  .event-tickets input, .event-tickets select, .event-tickets textarea {
    padding: 10px; } }

/* # Site Header
---------------------------------------------------------------------------------------------------- */
.site-header {
  background-color: transparent;
  /*min-height: 160px;*/ }

.site-header .wrap {
  padding: 40px 0; }

/* ## Title Area
--------------------------------------------- */
.title-area {
  float: left;
  padding: 10px 0;
  /*width: 360px;*/ }

.header-full-width .title-area {
  width: 100%; }

.site-title {
  font-size: 32px;
  font-weight: 400;
  line-height: 1.2; }

.site-title a,
.site-title a:hover {
  color: #333; }

.site-title a img {
  vertical-align: top; }

.header-image .site-title > a {
  float: left;
  min-height: 100px;
  width: 277px; }

.site-description {
  font-size: 16px;
  font-weight: 300;
  line-height: 1.5; }

.site-description,
.site-title {
  margin-bottom: 0; }

.header-image .site-description,
.header-image .site-title {
  display: block;
  text-indent: -9999px; }

/* ## Widget Area
--------------------------------------------- */
.site-header .widget-area {
  float: right;
  text-align: right;
  /*width: 800px;*/ }

/* # Site Navigation
---------------------------------------------------------------------------------------------------- */
.genesis-nav-menu {
  clear: both;
  font-size: 16px;
  font-weight: bold;
  line-height: 1;
  width: 100%; }

.genesis-nav-menu .menu-item {
  display: inline-block;
  text-align: left; }

.genesis-nav-menu a {
  color: #fff;
  display: block;
  padding: 30px 24px; }

.genesis-nav-menu a:hover,
.genesis-nav-menu .current-menu-item > a,
.genesis-nav-menu .sub-menu .current-menu-item > a:hover {
  color: #e5554e; }

.genesis-nav-menu .sub-menu {
  left: -9999px;
  opacity: 0;
  position: absolute;
  -webkit-transition: opacity .4s ease-in-out;
  transition: opacity .4s ease-in-out;
  width: 200px;
  z-index: 99; }

.genesis-nav-menu .sub-menu a {
  background-color: #1D9FA3;
  border: 1px solid #1D9FA3;
  border-top: none;
  font-size: 14px;
  padding: 20px;
  position: relative;
  width: 200px; }

.genesis-nav-menu .sub-menu .sub-menu {
  margin: -55px 0 0 199px; }

.genesis-nav-menu .menu-item:hover {
  position: static; }

.genesis-nav-menu .menu-item:hover > .sub-menu {
  left: auto;
  opacity: 1; }

.genesis-nav-menu > .first > a {
  padding-left: 0; }

.genesis-nav-menu > .last > a {
  padding-right: 0; }

.genesis-nav-menu > .right {
  color: #fff;
  float: right;
  list-style-type: none;
  padding: 30px 0; }

.genesis-nav-menu > .right > a {
  display: inline;
  padding: 0; }

.genesis-nav-menu > .rss > a {
  margin-left: 48px; }

.genesis-nav-menu > .search {
  padding: 10px 0 0; }

/* ## Site Header Navigation
--------------------------------------------- */
.site-header .sub-menu {
  border-top: 1px solid #eee; }

.site-header .sub-menu .sub-menu {
  margin-top: -56px; }

.site-header .genesis-nav-menu li li {
  margin-left: 0; }

/* ## Primary Navigation
--------------------------------------------- */
.nav-primary {
  background: #1D9FA3; }

.nav-primary .genesis-nav-menu a {
  color: #fff; }

.nav-primary .genesis-nav-menu .sub-menu a {
  color: #fff; }

.nav-primary .genesis-nav-menu a:hover,
.nav-primary .genesis-nav-menu .current-menu-item > a,
.nav-primary .genesis-nav-menu .sub-menu .current-menu-item > a:hover {
  color: #f2f2f2; }

/* ## Secondary Navigation
--------------------------------------------- */
.nav-secondary {
  background-color: #fff; }

/* # Footer Widgets
---------------------------------------------------------------------------------------------------- */
.footer-widgets {
  background: -webkit-linear-gradient(left, #F3763A 2%, #E69A2E 35%, #E69A2E 65%, #F27A3A 98%);
  background: linear-gradient(90deg, #F3763A 2%, #E69A2E 35%, #E69A2E 65%, #F27A3A 98%);
  clear: both;
  padding-top: 40px; }
  .footer-widgets h1, .footer-widgets h2, .footer-widgets h3, .footer-widgets h4, .footer-widgets h5, .footer-widgets h6, .footer-widgets .widget-title {
    color: #333333; }
    .footer-widgets h1a, .footer-widgets h2a, .footer-widgets h3a, .footer-widgets h4a, .footer-widgets h5a, .footer-widgets h6a, .footer-widgets .widget-titlea {
      color: #333333; }

.footer-widgets,
.footer-widgets a {
  color: #fff; }

.footer-widgets input {
  border: 1px solid #333; }

.footer-widgets a.button,
.footer-widgets a:hover {
  color: #fff; }

.footer-widgets li {
  margin-bottom: 10px;
  padding-bottom: 10px; }

.footer-widgets .widget {
  margin-bottom: 40px; }

.footer-widgets p:last-child {
  margin-bottom: 0; }

.footer-widgets-1,
.footer-widgets-2,
.footer-widgets-3 {
  width: 31.42857%;
  float: left;
  margin-right: 2.85714%; }
  @media (max-width: 767px) {
    .footer-widgets-1,
    .footer-widgets-2,
    .footer-widgets-3 {
      width: 100%; } }

.footer-widgets-3 {
  float: right;
  margin-right: 0; }

/* # Site Footer
---------------------------------------------------------------------------------------------------- */
.site-footer {
  background: -webkit-linear-gradient(left, #F3763A 2%, #e9a545 35%, #e9a545 65%, #F27A3A 98%);
  background: linear-gradient(90deg, #F3763A 2%, #e9a545 35%, #e9a545 65%, #F27A3A 98%);
  font-size: 16px;
  line-height: 1;
  padding: 40px 0;
  text-align: center; }
  .site-footer p {
    margin-bottom: 0; }

/* # Content Area
---------------------------------------------------------------------------------------------------- */
/* ## Entries
--------------------------------------------- */
.entry {
  margin-bottom: 40px;
  padding: 50px 0; }

.content .entry {
  background-color: transparent; }

.entry-content ol,
.entry-content ul {
  margin-bottom: 28px;
  margin-left: 40px; }

.entry-content ol > li {
  list-style-type: decimal; }

.entry-content ul > li {
  list-style-type: disc; }

.entry-content ol ol,
.entry-content ul ul {
  margin-bottom: 0; }

.entry-content code {
  background-color: #333;
  color: #ddd; }

/* ## Entry Meta
--------------------------------------------- */
p.entry-meta {
  font-size: 16px;
  margin-bottom: 0; }

.entry-header .entry-meta {
  margin-bottom: 24px; }

.entry-footer .entry-meta {
  border-top: 2px solid #f5f5f5;
  padding-top: 24px; }

.entry-categories,
.entry-tags {
  display: block; }

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

/* ## Pagination
--------------------------------------------- */
.pagination {
  clear: both;
  margin: 40px 0; }

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

.archive-pagination li {
  display: inline; }

.archive-pagination li a {
  background-color: #333;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-size: 16px;
  padding: 8px 12px; }

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

/* ## Comments
--------------------------------------------- */
.comment-respond,
.entry-comments,
.entry-pings {
  background-color: #fff;
  margin-bottom: 40px; }

.comment-respond,
.entry-pings {
  padding: 40px 40px 16px; }

.entry-comments {
  padding: 40px; }

.comment-header {
  font-size: 16px; }

li.comment {
  background-color: #f5f5f5;
  border: 2px solid #fff;
  border-right: none; }

.comment-content {
  clear: both; }

.comment-list li {
  margin-top: 24px;
  padding: 32px; }

.comment-list li li {
  margin-right: -32px; }

.comment-respond input[type="email"],
.comment-respond input[type="text"],
.comment-respond input[type="url"] {
  width: 50%; }

.comment-respond label {
  display: block;
  margin-right: 12px; }

.entry-comments .comment-author {
  margin-bottom: 0; }

.entry-pings .reply {
  display: none; }

.form-allowed-tags {
  background-color: #f5f5f5;
  font-size: 16px;
  padding: 24px; }

.festival-day,
.festival-time {
  float: left; }

.festival-day {
  width: 100px; }

.festival-dates {
  font-weight: bold; }

/* # Sidebars
---------------------------------------------------------------------------------------------------- */
.sidebar {
  font-size: 16px; }
  .sidebar .sidebar-padding {
    margin: -10;
    margin-bottom: 0;
    padding: 20px; }

.sidebar li {
  border-bottom: 1px dotted #ddd;
  margin-bottom: 10px;
  padding-bottom: 10px; }

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

.sidebar .widget {
  margin-bottom: 40px;
  padding: 20px; }

/*
 * Page Builder
 * (Beaver builder) - default styling
 */
.fl-builder .site-inner .wrap .site-header .wrap {
  max-width: 1200px; }

.fl-builder.content-sidebar .site-inner .wrap {
  max-width: 1200px; }
  .fl-builder.content-sidebar .site-inner .wrap .fl-row-content {
    margin-left: -26px;
    margin-right: -26px; }
    @media (max-width: 767px) {
      .fl-builder.content-sidebar .site-inner .wrap .fl-row-content {
        margin-left: 0;
        margin-right: 0; } }

.fl-builder .site-inner {
  padding-top: 0; }
  @media (min-width: 768px) and (max-width: 1023px) {
    .fl-builder .site-inner {
      padding: 0; } }
  @media (max-width: 767px) {
    .fl-builder .site-inner {
      padding: 0; } }

.fl-builder .entry {
  padding-top: 0;
  padding-bottom: 0;
  margin-bottom: 0; }

.page-template-page_builder-php .site-inner .wrap {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0; }
  .page-template-page_builder-php .site-inner .wrap .entry {
    padding-top: 0;
    padding-bottom: 0;
    margin-bottom: 0; }

@media (min-width: 768px) and (max-width: 1023px) {
  .full-width-content .fl-row-content-wrap {
    padding: 0 42px !important; } }

@media (max-width: 767px) {
  .full-width-content .fl-row-content-wrap {
    padding: 0 42px !important; } }

.fl-row-content {
  padding: 0px; }

.fl-col-small {
  max-width: 100% !important; }

.fl-col-content {
  padding: 26px; }

.edge-to-edge .fl-row-content,
.edge-to-edge .fl-col-content {
  padding: 0; }

/**
 * Icon Fonts
 */
.phone-number {
  margin-bottom: 11px; }
  .phone-number:before {
    content: "";
    position: relative;
    display: inline-block;
    width: auto;
    text-decoration: none;
    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    speak: none;
    text-transform: none;
    line-height: normal;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    font-family: "entypo";
    font-size: 16px;
    font-size: 1.3em;
    margin-right: 6px;
    position: relative;
    top: 1px;
    margin-left: 2px; }

.mobile-number {
  margin-bottom: 11px; }
  .mobile-number:before {
    content: "";
    position: relative;
    display: inline-block;
    width: auto;
    text-decoration: none;
    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    speak: none;
    text-transform: none;
    line-height: normal;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    font-family: "entypo";
    font-size: 16px;
    font-size: 1.3em;
    margin-right: 10px;
    position: relative;
    top: 1px;
    margin-left: 3px; }

.address-full {
  margin-bottom: 11px; }
  .address-full:before {
    content: "";
    position: relative;
    display: inline-block;
    width: auto;
    text-decoration: none;
    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    speak: none;
    text-transform: none;
    line-height: normal;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    font-family: "entypo";
    font-size: 16px;
    font-size: 1.3em;
    margin-right: 5px;
    position: relative;
    top: 0;
    float: left;
    display: block; }
  .address-full .street-address-wrap,
  .address-full .city-postcode {
    padding-left: 25px; }

.social-network-link {
  margin-bottom: 11px; }
  .social-network-link.facebook:before {
    content: "";
    position: relative;
    display: inline-block;
    width: auto;
    text-decoration: none;
    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    speak: none;
    text-transform: none;
    line-height: normal;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    font-family: "entypo";
    font-size: 16px;
    font-size: 1.3em;
    margin-right: 7px;
    position: relative;
    top: 1px;
    color: #3b5998; }
  .social-network-link.youtube:before {
    content: "";
    position: relative;
    display: inline-block;
    width: auto;
    text-decoration: none;
    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    speak: none;
    text-transform: none;
    line-height: normal;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    font-family: "entypo";
    font-size: 16px;
    font-size: 1.3em;
    margin-right: 7px;
    position: relative;
    top: 1px;
    color: #bb0000; }

.contact-us-page-content {
  margin-top: 16px; }

.act-list {
  *zoom: 1; }
  .act-list:before, .act-list:after {
    content: " ";
    /* 1 */
    display: table;
    /* 2 */ }
  .act-list:after {
    clear: both; }
  .act-list h2 {
    padding: 26px 0 11px;
    border-bottom: 1px solid #dad6c1;
    margin-bottom: 16px; }

@media (min-width: 768px) {
  .act-menu {
    *zoom: 1;
    margin: 16px 0; }
    .act-menu:before, .act-menu:after {
      content: " ";
      /* 1 */
      display: table;
      /* 2 */ }
    .act-menu:after {
      clear: both; }
    .act-menu li {
      float: left;
      margin-right: 11px; }
      .act-menu li a:after {
        content: "|";
        padding-left: 11px; }
      .act-menu li:last-child a:after {
        content: "";
        padding-left: 0; } }

.act-wrap {
  text-align: center;
  padding-bottom: 11px;
  margin-bottom: 18px;
  border-bottom: 1px solid #EDEBE1; }
  .act-wrap:last-child {
    border-bottom: none; }
  @media (min-width: 768px) {
    .act-wrap .act-thumbnail {
      float: left;
      width: 40.42553%;
      float: left;
      margin-right: 2.12766%; } }
  .act-wrap .act-details {
    *zoom: 1;
    text-align: left;
    padding-bottom: 26px; }
    .act-wrap .act-details:before, .act-wrap .act-details:after {
      content: " ";
      /* 1 */
      display: table;
      /* 2 */ }
    .act-wrap .act-details:after {
      clear: both; }
  .act-wrap .act-video {
    display: inline-block; }
    @media (min-width: 768px) {
      .act-wrap .act-video {
        padding-left: 25.53191%;
        padding-right: 25.53191%; } }

@media (min-width: 768px) {
  .act-list.presenters .act-thumbnail {
    float: left;
    width: 14.89362%;
    float: left;
    margin-right: 2.12766%; } }

@media (min-width: 768px) {
  .exhibitors-category-list {
    width: 48.93617%;
    float: left; }
    .exhibitors-category-list:nth-child(2n + 1) {
      margin-left: 0;
      margin-right: -100%;
      clear: both;
      margin-left: 0; }
    .exhibitors-category-list:nth-child(2n + 2) {
      margin-left: 51.06383%;
      margin-right: -100%;
      clear: none; } }

.exhibitors-category-list {
  margin-bottom: 18px; }
  .exhibitors-category-list:last-child {
    margin-bottom: 42px; }

.exhibitors-menu {
  margin-bottom: 26px; }
  .exhibitors-menu a {
    padding-right: 16px; }

/*
 * Site Custom SASS starts here...
 */
/* # Media Queries
---------------------------------------------------------------------------------------------------- */
@media only screen and (max-width: 1200px) {
  .content-sidebar-sidebar .content-sidebar-wrap,
  .sidebar-content-sidebar .content-sidebar-wrap,
  .sidebar-sidebar-content .content-sidebar-wrap {
    width: 740px; }
  .content,
  .site-header .widget-area {
    width: 620px; }
  .sidebar-content-sidebar .content,
  .sidebar-sidebar-content .content,
  .content-sidebar-sidebar .content {
    width: 400px; }
  .sidebar-primary,
  .title-area {
    width: 300px; } }

@media only screen and (max-width: 960px) {
  .content,
  .content-sidebar-sidebar .content,
  .content-sidebar-sidebar .content-sidebar-wrap,
  .sidebar-content-sidebar .content,
  .sidebar-content-sidebar .content-sidebar-wrap,
  .sidebar-primary,
  .sidebar-secondary,
  .sidebar-sidebar-content .content,
  .sidebar-sidebar-content .content-sidebar-wrap,
  .site-header .widget-area,
  .title-area {
    width: 100%; }
  .site-header .wrap {
    padding: 20px 5%; }
  .header-image .title-area {
    background-position: center top; }
  .genesis-nav-menu li,
  .site-header ul.genesis-nav-menu,
  .site-header .search-form {
    float: none; }
  .genesis-nav-menu,
  .site-description,
  .site-header .title-area,
  .site-header .search-form,
  .site-title {
    text-align: center; }
  .genesis-nav-menu a,
  .genesis-nav-menu > .first > a,
  .genesis-nav-menu > .last > a {
    padding: 20px 16px; }
  .site-header .search-form {
    margin: 16px auto;
    /*width: 50%;*/
    width: 234px; }
  .genesis-nav-menu li.right,
  .genesis-nav-menu.responsive-menu .menu-item.right {
    display: none; } }

@media only screen and (max-width: 800px) {
  body {
    background-color: #fff url(images/body-bg.png) bottom repeat-x;
    font-size: 16px; }
  .site-inner,
  .wrap {
    padding-left: 5%;
    padding-right: 5%; }
  .archive-description,
  .author-box,
  .comment-respond,
  .entry,
  .entry-comments,
  .entry-pings,
  .sidebar .widget,
  .site-header {
    padding: 0; }
  .archive-pagination li a {
    margin-bottom: 4px; }
  .five-sixths,
  .four-sixths,
  .one-fourth,
  .one-half,
  .one-sixth,
  .one-third,
  .three-fourths,
  .three-sixths,
  .two-fourths,
  .two-sixths,
  .two-thirds {
    margin: 0;
    width: 100%; }
  .sidebar .widget.enews-widget {
    padding: 40px; } }

@media only screen and (max-width: 768px) {
  .genesis-nav-menu.responsive-menu > .menu-item > .sub-menu,
  .genesis-nav-menu.responsive-menu {
    display: none; }
  .genesis-nav-menu.responsive-menu .menu-item,
  .responsive-menu-icon {
    display: block; }
  .genesis-nav-menu.responsive-menu .menu-item {
    margin: 0; }
  .genesis-nav-menu.responsive-menu .menu-item:hover {
    position: static; }
  .genesis-nav-menu.responsive-menu .current-menu-item > a,
  .genesis-nav-menu.responsive-menu .sub-menu .current-menu-item > a:hover,
  .genesis-nav-menu.responsive-menu a,
  .genesis-nav-menu.responsive-menu a:hover {
    background: none;
    line-height: 1;
    padding: 16px 20px; }
  .nav-primary .genesis-nav-menu.responsive-menu .current-menu-item > a,
  .nav-primary .genesis-nav-menu.responsive-menu .sub-menu .current-menu-item > a:hover,
  .nav-primary .genesis-nav-menu.responsive-menu a,
  .nav-primary .genesis-nav-menu.responsive-menu a:hover {
    color: #fff; }
  .genesis-nav-menu.responsive-menu .menu-item-has-children {
    cursor: pointer; }
  .genesis-nav-menu.responsive-menu .menu-item-has-children > a {
    margin-right: 60px; }
  .genesis-nav-menu.responsive-menu > .menu-item-has-children:before {
    content: "\f347";
    float: right;
    font: normal 16px/1 'dashicons';
    height: 16px;
    padding: 16px 20px;
    right: 0;
    text-align: right;
    z-index: 9999; }
  .nav-primary .genesis-nav-menu.responsive-menu > .menu-item-has-children:before {
    color: #fff; }
  .genesis-nav-menu.responsive-menu .menu-open.menu-item-has-children:before {
    content: "\f343"; }
  .genesis-nav-menu.responsive-menu .sub-menu {
    border: none;
    left: auto;
    opacity: 1;
    padding-left: 25px;
    position: relative;
    -webkit-transition: opacity .4s ease-in-out;
    transition: opacity .4s ease-in-out;
    width: 100%;
    z-index: 99; }
  .genesis-nav-menu.responsive-menu .sub-menu .sub-menu {
    margin: 0; }
  .genesis-nav-menu.responsive-menu .sub-menu .current-menu-item > a:hover,
  .genesis-nav-menu.responsive-menu .sub-menu li a,
  .genesis-nav-menu.responsive-menu .sub-menu li a:hover {
    background: none;
    border: none;
    padding: 12px 20px;
    position: relative;
    width: 100%; } }

@media only screen and (max-width: 568px) {
  .comment-respond input[type="email"],
  .comment-respond input[type="text"],
  .comment-respond input[type="url"] {
    width: 100%; } }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyIsInN0eWxlLnNjc3MiLCJzZXR0aW5ncy9fc3V6eS1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fcmVtLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2NvbnRhaW5lci5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fY2xlYXJmaXguc2NzcyIsInV0aWxpdGllcy9fbm9ybWFsaXplLnNjc3MiLCJ1dGlsaXRpZXMvX2RlZmF1bHRzLnNjc3MiLCJ1dGlsaXRpZXMvX2NsZWFyZml4LnNjc3MiLCJ1dGlsaXRpZXMvX2VudHlwby5zY3NzIiwiX2NvbG91cnMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvY29tcGFzcy1icmVha3BvaW50L3N0eWxlc2hlZXRzL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL21vZHVsYXItc2NhbGUvc3R5bGVzaGVldHMvbW9kdWxhci1zY2FsZS9fcm91bmQtcHguc2NzcyIsIl90eXBvZ3JhcGh5LnNjc3MiLCJfcmVzcG9uc2l2ZS1tZW51LnNjc3MiLCJfbGF5b3V0LnNjc3MiLCJjb250ZW50LWxpYi9fZm9ybXMuc2NzcyIsImNvbnRlbnQtbGliL190YWJsZXMuc2NzcyIsImNvbnRlbnQtbGliL19nYWxsZXJpZXMuc2NzcyIsImNvbnRlbnQtbGliL19jb21tb24tY2xhc3Nlcy5zY3NzIiwiX3dpZGdldHMuc2NzcyIsInBsdWdpbnMvX2dlbmVyYWwuc2NzcyIsInBsdWdpbnMvX2dyYXZpdHktZm9ybXMuc2NzcyIsInBsdWdpbnMvX3NvbGlsb3F1eS5zY3NzIiwicGx1Z2lucy9fZXZlbnQtZXNwcmVzc28uc2NzcyIsIl9oZWFkZXIuc2NzcyIsIl9uYXZpZ2F0aW9uLnNjc3MiLCJfZm9vdGVyLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX3NwYW4uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fZGlyZWN0aW9uLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2d1dHRlcnMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fcm93cy5zY3NzIiwiX2NvbnRlbnQuc2NzcyIsIl9zaWRlYmFycy5zY3NzIiwiX3BhZ2UtYnVpbGRlci5zY3NzIiwiX2ljb24tZm9udHMuc2NzcyIsIl9tdXNpY2lhbnMtbGlzdC5zY3NzIiwiX2V4aGliaXRvcnNfbGlzdC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19pc29sYXRlLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2dhbGxlcnkuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L2Zsb2F0L19lbmQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNBakI7Ozs7Ozs7Ozs7Ozs7Ozs7RUFnQkU7QUNQRjtFQ1VJLG9CQ3FDd0I7RURyQ3hCLGtCQ3FEb0M7RURyRHBDLG1CQ3FEbUUsRUY3RHRFO0VBRkQ7SUdHTSxhQUFhO0lBQ2IsZUFBZTtJQUNmLFlBQVksRUFDYjs7QUhGTDs7Ozs7O0dBTUc7QUFRRjs7SUFFRztBSTdCSiw0REFBNEQ7QUFFNUQ7Ozs7R0FJRztBQUVIO0VBQ0Usd0JBQXdCO0VBQUUsT0FBTztFQUNqQywyQkFBMkI7RUFBRSxPQUFPO0VB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LEVBQUEiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLypcblx0VGhlbWUgTmFtZTogVG9ybGVzc2Vcblx0VGhlbWUgVVJJOiBodHRwOi8vd3d3LmF2b2NhZGVzaWduLmNvLm56XG5cdERlc2NyaXB0aW9uOiBBIG1vYmlsZSByZXNwb25zaXZlIGFuZCBIVE1MNSB0aGVtZSBidWlsdCBmb3IgdGhlIEdlbmVzaXMgRnJhbWV3b3JrLlxuXHRBdXRob3I6IEF2b2NhIERlc2lnblxuXHRBdXRob3IgVVJJOiBodHRwOi8vd3d3LmF2b2NhZGVzaWduLmNvLm56XG5cblx0VmVyc2lvbjogMS4wXG5cblx0VGFnczogYmxhY2ssIHdoaXRlLCBvbmUtY29sdW1uLCB0d28tY29sdW1ucywgZml4ZWQtd2lkdGgsIGN1c3RvbS1tZW51LCBmdWxsLXdpZHRoLXRlbXBsYXRlLCBzdGlja3ktcG9zdCwgdGhlbWUtb3B0aW9ucywgdGhyZWFkZWQtY29tbWVudHMsIHRyYW5zbGF0aW9uLXJlYWR5XG5cblx0VGVtcGxhdGU6IGdlbmVzaXNcblx0VGVtcGxhdGUgVmVyc2lvbjogMS4wXG5cblx0TGljZW5zZTogR1BMLTIuMCtcblx0TGljZW5zZSBVUkk6IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLWxpY2Vuc2UucGhwXG4qL1xuLnNpdGUtaW5uZXIgLndyYXAge1xuICBtYXgtd2lkdGg6IDc2LjA0NmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIC5zaXRlLWlubmVyIC53cmFwOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDsgfVxuXG4vKlxuICogTW9kdWxhciBTY2FsZSBTZXR0aW5nc1xuICpcbiAqIGh0dHA6Ly93d3cubW9kdWxhcnNjYWxlLmNvbSBieSBUaW0gQnJvd25cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9UZWFtLVNhc3MvbW9kdWxhci1zY2FsZVxuICogdmVyc2lvbiAyIHN5bnRheFxuICovXG4vKlxuXHQgKiBTaXppbmdcblx0ICovXG4vKiEgbm9ybWFsaXplLmNzcyB2My4wLjIgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5pbWcge1xuICBib3JkZXI6IDA7IH1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDMgKi8gfVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIDMgKi8gfVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgfVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyogIyMgQm94IFNpemluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4qLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qKlxuICogRm9yIG1vZGVybiBicm93c2Vyc1xuICogMS4gVGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbiAqICAgIGNvbnRlbnRlZGl0YWJsZSBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4gKiAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbiAqICAgIHRoYXQgYXJlIGNsZWFyZml4ZWQuXG4gKiAyLiBUaGUgdXNlIG9mIGB0YWJsZWAgcmF0aGVyIHRoYW4gYGJsb2NrYCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB1c2luZ1xuICogICAgYDpiZWZvcmVgIHRvIGNvbnRhaW4gdGhlIHRvcC1tYXJnaW5zIG9mIGNoaWxkIGVsZW1lbnRzLlxuICovXG4uY2Y6YmVmb3JlLFxuLmNmOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDIgKi8gfVxuXG4uY2Y6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4vKipcbiAqIEZvciBJRSA2Lzcgb25seVxuICogSW5jbHVkZSB0aGlzIHJ1bGUgdG8gdHJpZ2dlciBoYXNMYXlvdXQgYW5kIGNvbnRhaW4gZmxvYXRzLlxuICovXG4uY2Yge1xuICAqem9vbTogMTsgfVxuXG4vKiAjIyBGbG9hdCBDbGVhcmluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYXV0aG9yLWJveDpiZWZvcmUsXG4uY2xlYXJmaXg6YmVmb3JlLFxuLmVudHJ5OmJlZm9yZSxcbi5lbnRyeS1jb250ZW50OmJlZm9yZSxcbi5mb290ZXItd2lkZ2V0czpiZWZvcmUsXG4ubmF2LXByaW1hcnk6YmVmb3JlLFxuLm5hdi1zZWNvbmRhcnk6YmVmb3JlLFxuLnBhZ2luYXRpb246YmVmb3JlLFxuLnNpdGUtY29udGFpbmVyOmJlZm9yZSxcbi5zaXRlLWZvb3RlcjpiZWZvcmUsXG4uc2l0ZS1oZWFkZXI6YmVmb3JlLFxuLnNpdGUtaW5uZXI6YmVmb3JlLFxuLndyYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi5hdXRob3ItYm94OmFmdGVyLFxuLmNsZWFyZml4OmFmdGVyLFxuLmVudHJ5OmFmdGVyLFxuLmVudHJ5LWNvbnRlbnQ6YWZ0ZXIsXG4uZm9vdGVyLXdpZGdldHM6YWZ0ZXIsXG4ubmF2LXByaW1hcnk6YWZ0ZXIsXG4ubmF2LXNlY29uZGFyeTphZnRlcixcbi5wYWdpbmF0aW9uOmFmdGVyLFxuLnNpdGUtY29udGFpbmVyOmFmdGVyLFxuLnNpdGUtZm9vdGVyOmFmdGVyLFxuLnNpdGUtaGVhZGVyOmFmdGVyLFxuLnNpdGUtaW5uZXI6YWZ0ZXIsXG4ud3JhcDphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogdGFibGU7IH1cblxuLypcbiogXHRNYWluIEljb24gbWl4aW5cbipcbiogXHRCYXNlZCBvbiBodHRwOi8vamF5ZGVuc2VyaWMuY29tL2Jsb2cvZnVuLXdpdGgtc2Fzcy1hbmQtZm9udC1pY29ucyBcbipcbipcdGUuZy4gXG4qXHRAaW5jbHVkZSBpY29uKCdwaG9uZScsICdiZWZvcmUnLCB0cnVlLCAkbGFyZ2UsICR0b3A6LTNweCwgJG1hcmdpbjo1cHgpO1xuKiBcdEBpbmNsdWRlIGljb24oJ3Bob25lJywgJ2JlZm9yZScsIHRydWUsICRsYXJnZSwgJHRvcDotM3B4LCAkbWFyZ2luOjVweCkge1xuKlx0XHRjb2xvcjogYmxhY2s7XG4qIFx0fVxuKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJlbnR5cG9cIjtcbiAgc3JjOiB1cmwoXCJmb250cy9lbnR5cG8vZW50eXBvLXBsdXMuZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL2VudHlwby9lbnR5cG8tcGx1cy5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9lbnR5cG8vZW50eXBvLXBsdXMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJmb250cy9lbnR5cG8vZW50eXBvLXBsdXMudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCJmb250cy9lbnR5cG8vZW50eXBvLXBsdXMuc3ZnI2VudHlwb1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgc3BlYWs6IG5vbmU7IH1cblxuLypcbiAqIFNvY2lhbCBOZXR3b3JrIENvbG91cnNcbiAqXG4gKiBodHRwOi8vZGVzaWducGllY2VzLmNvbS8yMDEyLzEyL3NvY2lhbC1tZWRpYS1jb2xvdXJzLWhleC1hbmQtcmdiL1xuICovXG4vKlxuICogQnJhbmQgQ29sb3Vyc1xuICovXG4vKlxuKiBCYWNrZ3JvdW5kc1xuKi9cbi5ldm9sdmUtZ3JhZGllbnQge1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IHRvcCBsZWZ0LCAjZmZmLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDcwJSk7IH1cblxuLnNpdGUtaW5uZXIge1xuICBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL3RyZWUtb2YtbGlmZS5wbmcpIGJvdHRvbSByaWdodCBuby1yZXBlYXQ7IH1cblxuLnN3b29zaCB7XG4gIG1hcmdpbi10b3A6IC02NXB4O1xuICBoZWlnaHQ6IDcwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgei1pbmRleDogOTk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAuc3dvb3NoIHtcbiAgICAgIG1hcmdpbi10b3A6IC00MHB4OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnN3b29zaCB7XG4gICAgICBtYXJnaW4tdG9wOiAtMjBweDsgfSB9XG5cbi5zbGlkZXNob3cge1xuICB6LWluZGV4OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmJnLWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjRkJFMzUxIDElLCAjRkFFQThDIDI5JSwgI0ZBRUE4QyA3MCUsICNGRkUyMzAgOTglKTtcbiAgb3BhY2l0eTogMC44OyB9XG4gIC5iZy1saWdodCAuZmwtY29udGVudC1yb3cge1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLmJnLWxpZ2h0LWdyZXkge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZXNtb2tlOyB9XG5cbi5iZy1kYXJrIHtcbiAgYmFja2dyb3VuZDogIzMzMzMzMzsgfVxuXG4uYmctb3JhbmdlIHtcbiAgYmFja2dyb3VuZDogI0YzNzYzQTtcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmJnLW9yYW5nZSBoMSwgLmJnLW9yYW5nZSBoMiwgLmJnLW9yYW5nZSBoMywgLmJnLW9yYW5nZSBoNCwgLmJnLW9yYW5nZSBoNSwgLmJnLW9yYW5nZSBoNiwgLmJnLW9yYW5nZSBwLCAuYmctb3JhbmdlIGJsb2NrcXVvdGUge1xuICAgIGNvbG9yOiAjZmZmOyB9XG5cbi5iZy10dXJxdW9pc2UsXG4uYmctbWVkaXVtIHtcbiAgYmFja2dyb3VuZDogIzFEOUZBMztcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmJnLXR1cnF1b2lzZSAuZmwtYnV0dG9uLFxuICAuYmctbWVkaXVtIC5mbC1idXR0b24ge1xuICAgIGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgIC5iZy10dXJxdW9pc2UgLmZsLWJ1dHRvbiAuZmwtYnV0dG9uLXRleHQsXG4gICAgLmJnLW1lZGl1bSAuZmwtYnV0dG9uIC5mbC1idXR0b24tdGV4dCB7XG4gICAgICBjb2xvcjogIzMzMzMzMyAhaW1wb3J0YW50OyB9XG4gIC5iZy10dXJxdW9pc2UgaDEsIC5iZy10dXJxdW9pc2UgaDIsIC5iZy10dXJxdW9pc2UgaDMsIC5iZy10dXJxdW9pc2UgaDQsIC5iZy10dXJxdW9pc2UgaDUsIC5iZy10dXJxdW9pc2UgaDYsIC5iZy10dXJxdW9pc2UgcCwgLmJnLXR1cnF1b2lzZSBibG9ja3F1b3RlLFxuICAuYmctbWVkaXVtIGgxLFxuICAuYmctbWVkaXVtIGgyLFxuICAuYmctbWVkaXVtIGgzLFxuICAuYmctbWVkaXVtIGg0LFxuICAuYmctbWVkaXVtIGg1LFxuICAuYmctbWVkaXVtIGg2LFxuICAuYmctbWVkaXVtIHAsXG4gIC5iZy1tZWRpdW0gYmxvY2txdW90ZSB7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLmJnLXR1cnF1b2lzZSBidXR0b24sXG4gIC5iZy10dXJxdW9pc2UgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbiAgLmJnLXR1cnF1b2lzZSBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4gIC5iZy10dXJxdW9pc2UgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbiAgLmJnLXR1cnF1b2lzZSAuYnV0dG9uLFxuICAuYmctbWVkaXVtIGJ1dHRvbixcbiAgLmJnLW1lZGl1bSBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuICAuYmctbWVkaXVtIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbiAgLmJnLW1lZGl1bSBpbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuICAuYmctbWVkaXVtIC5idXR0b24ge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICMzMzM7IH1cbiAgICAuYmctdHVycXVvaXNlIGJ1dHRvbjpob3ZlcixcbiAgICAuYmctdHVycXVvaXNlIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4gICAgLmJnLXR1cnF1b2lzZSBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG4gICAgLmJnLXR1cnF1b2lzZSBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyLFxuICAgIC5iZy10dXJxdW9pc2UgLmJ1dHRvbjpob3ZlcixcbiAgICAuYmctbWVkaXVtIGJ1dHRvbjpob3ZlcixcbiAgICAuYmctbWVkaXVtIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4gICAgLmJnLW1lZGl1bSBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG4gICAgLmJnLW1lZGl1bSBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyLFxuICAgIC5iZy1tZWRpdW0gLmJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgY29sb3I6ICMzMzM7IH1cblxuLmJnLXllbGxvdyB7XG4gIGJhY2tncm91bmQ6ICNGRkUyMzA7XG4gIHBhZGRpbmc6IDE4cHg7IH1cblxuLmRyb3Atc2hhZG93IHtcbiAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjIpIDBweCAycHggNXB4OyB9XG5cbi8qXG4gKiBCdXR0b25zXG4gKi9cbi5idXR0b24ucHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMxRDlGQTM7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5idXR0b24uc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZDogI0Y5RjlGOTtcbiAgY29sb3I6ICMzMzMzMzM7IH1cblxuLmJ1dHRvbi5vdXRsaW5lIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgY29sb3I6ICMzMzMzMzM7IH1cblxuLmZsLWJ1dHRvbiB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNGMzc2M0EgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAuZmwtYnV0dG9uIC5mbC1idXR0b24tdGV4dCB7XG4gICAgY29sb3I6ICNGMzc2M0EgIWltcG9ydGFudDsgfVxuXG4ucHJpbWFyeS1idXR0b24gLmZsLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6ICNGMzc2M0EgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLnByaW1hcnktYnV0dG9uIC5mbC1idXR0b24gLmZsLWJ1dHRvbi10ZXh0IHtcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50OyB9XG5cbi8qICMjIFR5cG9ncmFwaGljYWwgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuYm9keSB7XG4gIGJhY2tncm91bmQ6ICNmZmYgdXJsKGltYWdlcy9ib2R5LWJnLnBuZykgYm90dG9tIHJlcGVhdC14O1xuICBjb2xvcjogIzMzMztcbiAgZm9udC1mYW1pbHk6IExhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNjI1O1xuICBtYXJnaW46IDA7IH1cblxuYSxcbmJ1dHRvbixcbmlucHV0OmZvY3VzLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG50ZXh0YXJlYTpmb2N1cyxcbi5idXR0b24sXG4uZ2FsbGVyeSBpbWcge1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xuICAtbXMtdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLWluLW91dDsgfVxuXG46Oi1tb3otc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgY29sb3I6ICNmZmY7IH1cblxuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICBjb2xvcjogI2ZmZjsgfVxuXG5hIHtcbiAgY29sb3I6ICNGMzc2M0E7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5hOmhvdmVyIHtcbiAgY29sb3I6ICMzMzM7IH1cblxucCB7XG4gIG1hcmdpbjogMCAwIDI4cHg7XG4gIHBhZGRpbmc6IDA7IH1cblxub2wsXG51bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG5saSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5ibG9ja3F1b3RlLFxuY2l0ZSxcbmVtLFxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiA0MHB4OyB9XG5cbmJsb2NrcXVvdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMDFDXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDMwcHg7XG4gIGhlaWdodDogMDtcbiAgbGVmdDogLTIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMTBweDsgfVxuXG4vKiAjIyBIZWFkaW5nc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBjb2xvcjogIzMzMztcbiAgZm9udC1mYW1pbHk6IExhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIG1hcmdpbjogMCAwIDEwcHg7IH1cblxuaDEge1xuICBmb250LXNpemU6IDM2cHg7IH1cblxuaDIge1xuICBmb250LXNpemU6IDMwcHg7IH1cblxuaDMge1xuICBmb250LXNpemU6IDI0cHg7IH1cblxuaDQge1xuICBmb250LXNpemU6IDIwcHg7IH1cblxuaDUge1xuICBmb250LXNpemU6IDE4cHg7IH1cblxuaDYge1xuICBmb250LXNpemU6IDE2cHg7IH1cblxuLyogIyMgT2JqZWN0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5lbWJlZCxcbmlmcmFtZSxcbmltZyxcbm9iamVjdCxcbnZpZGVvLFxuLndwLWNhcHRpb24ge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuaW1nIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi5mZWF0dXJlZC1jb250ZW50IGltZyxcbi5nYWxsZXJ5IGltZyB7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi8qIFJlc3BvbnNpdmUgTWVudVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ucmVzcG9uc2l2ZS1tZW51LWljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ucmVzcG9uc2l2ZS1tZW51LWljb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzMzXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udDogbm9ybWFsIDIwcHgvMSAnZGFzaGljb25zJztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIC8qcGFkZGluZzogMTBweDsqL1xuICBwYWRkaW5nOiAxMHB4IDVweCAxMHB4IDEwcHg7IH1cblxuLm5hdi1wcmltYXJ5IC5yZXNwb25zaXZlLW1lbnUtaWNvbjo6YmVmb3JlIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLm1lbnUtdGV4dCB7XG4gIGNvbG9yOiAjZmZmO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgbWFyZ2luLXRvcDogMTFweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qICMgU3RydWN0dXJlIGFuZCBMYXlvdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICMjIFNpdGUgQ29udGFpbmVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2l0ZS1pbm5lciAud3JhcCxcbi5zaXRlLWhlYWRlciAud3JhcCxcbi53cmFwIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogMTIwMHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAuc2l0ZS1pbm5lciAud3JhcCxcbiAgICAuc2l0ZS1oZWFkZXIgLndyYXAsXG4gICAgLndyYXAge1xuICAgICAgbWF4LXdpZHRoOiAxMTQwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDI2cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyNnB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgLnNpdGUtaW5uZXIgLndyYXAsXG4gICAgLnNpdGUtaGVhZGVyIC53cmFwLFxuICAgIC53cmFwIHtcbiAgICAgIG1heC13aWR0aDogOTYwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDI2cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyNnB4OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnNpdGUtaW5uZXIgLndyYXAsXG4gICAgLnNpdGUtaGVhZGVyIC53cmFwLFxuICAgIC53cmFwIHtcbiAgICAgIG1heC13aWR0aDogNzIwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDI2cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyNnB4OyB9IH1cblxuLnNpdGUtaGVhZGVyIC53cmFwIHtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDI2cHggIWltcG9ydGFudDsgfVxuICAuc2l0ZS1oZWFkZXIgLndyYXAgLmhlYWRlci13aWRnZXQtYXJlYSB7XG4gICAgbWFyZ2luLXRvcDogMjZweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB3aWR0aDogMzAwcHggIWltcG9ydGFudDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgLnNpdGUtaGVhZGVyIC53cmFwIC5oZWFkZXItd2lkZ2V0LWFyZWEge1xuICAgICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG5cbi5zaXRlLWlubmVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLyogIyMgQ29sdW1uIFdpZHRocyBhbmQgUG9zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICMjIyBXcmFwcGluZyBkaXYgZm9yIC5jb250ZW50IGFuZCAuc2lkZWJhci1wcmltYXJ5ICovXG4uY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuLnNpZGViYXItY29udGVudC1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCxcbi5zaWRlYmFyLXNpZGViYXItY29udGVudCAuY29udGVudC1zaWRlYmFyLXdyYXAge1xuICB3aWR0aDogOTgwcHg7IH1cblxuLmNvbnRlbnQtc2lkZWJhci1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi5zaWRlYmFyLWNvbnRlbnQtc2lkZWJhciAuY29udGVudC1zaWRlYmFyLXdyYXAsXG4uc2lkZWJhci1zaWRlYmFyLWNvbnRlbnQgLmNvbnRlbnQtc2lkZWJhci13cmFwIHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi8qICMjIyBDb250ZW50ICovXG4uY29udGVudCB7XG4gIGZsb2F0OiByaWdodDtcbiAgd2lkdGg6IDgwMHB4OyB9XG5cbi5jb250ZW50LXNpZGViYXIgLmNvbnRlbnQsXG4uY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmNvbnRlbnQsXG4uc2lkZWJhci1jb250ZW50LXNpZGViYXIgLmNvbnRlbnQge1xuICBmbG9hdDogbGVmdDsgfVxuXG4uY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmNvbnRlbnQsXG4uc2lkZWJhci1jb250ZW50LXNpZGViYXIgLmNvbnRlbnQsXG4uc2lkZWJhci1zaWRlYmFyLWNvbnRlbnQgLmNvbnRlbnQge1xuICB3aWR0aDogNTgwcHg7IH1cblxuLmZ1bGwtd2lkdGgtY29udGVudCAuY29udGVudCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qICMjIyBQcmltYXJ5IFNpZGViYXIgKi9cbi5zaWRlYmFyLXByaW1hcnkge1xuICBmbG9hdDogcmlnaHQ7XG4gIHdpZHRoOiAzNjBweDsgfVxuXG4uc2lkZWJhci1jb250ZW50IC5zaWRlYmFyLXByaW1hcnksXG4uc2lkZWJhci1zaWRlYmFyLWNvbnRlbnQgLnNpZGViYXItcHJpbWFyeSB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi8qICMjIyBTZWNvbmRhcnkgU2lkZWJhciAqL1xuLnNpZGViYXItc2Vjb25kYXJ5IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxODBweDsgfVxuXG4uY29udGVudC1zaWRlYmFyLXNpZGViYXIgLnNpZGViYXItc2Vjb25kYXJ5IHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi8qICMjIENvbHVtbiBDbGFzc2VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIExpbms6IGh0dHA6Ly90d2l0dGVyLmdpdGh1Yi5pby9ib290c3RyYXAvYXNzZXRzL2Nzcy9ib290c3RyYXAtcmVzcG9uc2l2ZS5jc3MgKi9cbi5maXZlLXNpeHRocyxcbi5mb3VyLXNpeHRocyxcbi5vbmUtZm91cnRoLFxuLm9uZS1oYWxmLFxuLm9uZS1zaXh0aCxcbi5vbmUtdGhpcmQsXG4udGhyZWUtZm91cnRocyxcbi50aHJlZS1zaXh0aHMsXG4udHdvLWZvdXJ0aHMsXG4udHdvLXNpeHRocyxcbi50d28tdGhpcmRzIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAyLjU2NDEwMjU2NDEwMjU2NCU7IH1cblxuLm9uZS1oYWxmLFxuLnRocmVlLXNpeHRocyxcbi50d28tZm91cnRocyB7XG4gIHdpZHRoOiA0OC43MTc5NDg3MTc5NDg3MTUlOyB9XG5cbi5vbmUtdGhpcmQsXG4udHdvLXNpeHRocyB7XG4gIHdpZHRoOiAzMS42MjM5MzE2MjM5MzE2MjUlOyB9XG5cbi5mb3VyLXNpeHRocyxcbi50d28tdGhpcmRzIHtcbiAgd2lkdGg6IDY1LjgxMTk2NTgxMTk2NTgyJTsgfVxuXG4ub25lLWZvdXJ0aCB7XG4gIHdpZHRoOiAyMy4wNzY5MjMwNzY5MjMwNzclOyB9XG5cbi50aHJlZS1mb3VydGhzIHtcbiAgd2lkdGg6IDc0LjM1ODk3NDM1ODk3NDM2JTsgfVxuXG4ub25lLXNpeHRoIHtcbiAgd2lkdGg6IDE0LjUyOTkxNDUyOTkxNDUzJTsgfVxuXG4uZml2ZS1zaXh0aHMge1xuICB3aWR0aDogODIuOTA1OTgyOTA1OTgyOTElOyB9XG5cbi5maXJzdCB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4vKiAjIyBGb3Jtc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgY29sb3I6ICMzMzM7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgcGFkZGluZzogMTZweDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuaW5wdXQ6Zm9jdXMsXG50ZXh0YXJlYTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cImltYWdlXCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgd2lkdGg6IGF1dG87IH1cblxuOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICMzMzM7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIG9wYWNpdHk6IDE7IH1cblxuOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICMzMzM7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuYnV0dG9uLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG4uYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YzNzYzQTtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogI2ZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHBhZGRpbmc6IDE2cHggMjRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgd2lkdGg6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDRweDsgfVxuXG4uZm9vdGVyLXdpZGdldHMgYnV0dG9uLFxuLmZvb3Rlci13aWRnZXRzIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4uZm9vdGVyLXdpZGdldHMgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuLmZvb3Rlci13aWRnZXRzIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG4uZm9vdGVyLXdpZGdldHMgLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNTU1NGU7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbmJ1dHRvbjpob3ZlcixcbmlucHV0OmhvdmVyW3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dDpob3Zlclt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dDpob3Zlclt0eXBlPVwic3VibWl0XCJdLFxuLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNTU1NGU7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5lbnRyeS1jb250ZW50IC5idXR0b246aG92ZXIge1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uZm9vdGVyLXdpZGdldHMgYnV0dG9uOmhvdmVyLFxuLmZvb3Rlci13aWRnZXRzIGlucHV0OmhvdmVyW3R5cGU9XCJidXR0b25cIl0sXG4uZm9vdGVyLXdpZGdldHMgaW5wdXQ6aG92ZXJbdHlwZT1cInJlc2V0XCJdLFxuLmZvb3Rlci13aWRnZXRzIGlucHV0OmhvdmVyW3R5cGU9XCJzdWJtaXRcIl0sXG4uZm9vdGVyLXdpZGdldHMgLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiAjIyBUYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbnRib2R5IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7IH1cblxudGQsXG50aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxudGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbiAgcGFkZGluZzogNnB4IDA7IH1cblxudGgge1xuICBmb250LXdlaWdodDogNDAwOyB9XG5cbi8qICMjIEdhbGxlcnlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmdhbGxlcnkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5nYWxsZXJ5LWl0ZW0ge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwIDAgMjhweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5nYWxsZXJ5LWNvbHVtbnMtMiAuZ2FsbGVyeS1pdGVtIHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTMgLmdhbGxlcnktaXRlbSB7XG4gIHdpZHRoOiAzMyU7IH1cblxuLmdhbGxlcnktY29sdW1ucy00IC5nYWxsZXJ5LWl0ZW0ge1xuICB3aWR0aDogMjUlOyB9XG5cbi5nYWxsZXJ5LWNvbHVtbnMtNSAuZ2FsbGVyeS1pdGVtIHtcbiAgd2lkdGg6IDIwJTsgfVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTYgLmdhbGxlcnktaXRlbSB7XG4gIHdpZHRoOiAxNi42NjY2JTsgfVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTcgLmdhbGxlcnktaXRlbSB7XG4gIHdpZHRoOiAxNC4yODU3JTsgfVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTggLmdhbGxlcnktaXRlbSB7XG4gIHdpZHRoOiAxMi41JTsgfVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTkgLmdhbGxlcnktaXRlbSB7XG4gIHdpZHRoOiAxMS4xMTExJTsgfVxuXG4uZ2FsbGVyeSBpbWcge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDRweDsgfVxuXG4uZ2FsbGVyeSBpbWc6aG92ZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTk5OyB9XG5cbi8qICMgQ29tbW9uIENsYXNzZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICMjIEF2YXRhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uYXZhdGFyIHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLmFsaWdubGVmdCAuYXZhdGFyLFxuLmF1dGhvci1ib3ggLmF2YXRhciB7XG4gIG1hcmdpbi1yaWdodDogMjRweDsgfVxuXG4uYWxpZ25yaWdodCAuYXZhdGFyIHtcbiAgbWFyZ2luLWxlZnQ6IDI0cHg7IH1cblxuLmNvbW1lbnQgLmF2YXRhciB7XG4gIG1hcmdpbjogMCAxNnB4IDI0cHggMDsgfVxuXG4vKiAjIyBHZW5lc2lzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5icmVhZGNydW1iIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4uYXJjaGl2ZS1kZXNjcmlwdGlvbixcbi5hdXRob3ItYm94IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICBwYWRkaW5nOiA0MHB4OyB9XG5cbi5hdXRob3ItYm94LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiA0cHg7IH1cblxuLmFyY2hpdmUtZGVzY3JpcHRpb24gcDpsYXN0LWNoaWxkLFxuLmF1dGhvci1ib3ggcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiAjIyBTZWFyY2ggRm9ybVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2VhcmNoLWZvcm0ge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5zaXRlLWhlYWRlciAuc2VhcmNoLWZvcm0ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IDEycHg7IH1cblxuLmVudHJ5LWNvbnRlbnQgLnNlYXJjaC1mb3JtIHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4uZ2VuZXNpcy1uYXYtbWVudSAuc2VhcmNoIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG4ud2lkZ2V0X3NlYXJjaCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7IH1cblxuLyogVG8gY2xlYXIgc2VhcmNoIGlucHV0IGZpZWxkJ3MgdGV4dCB3aGVuIHRoZSBzZWFyY2ggZmllbGQgZ2V0cyBmb2N1cyAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzOi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyogRmlyZWZveCAxOC0gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyogRmlyZWZveCAxOSsgKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIG9sZElFIDspICovXG4vKiAjIyBUaXRsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmFyY2hpdmUtdGl0bGUge1xuICBmb250LXNpemU6IDIwcHg7IH1cblxuLmVudHJ5LXRpdGxlIHtcbiAgZm9udC1zaXplOiAzNnB4OyB9XG5cbi5wYWdlIC5lbnRyeS10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IH1cblxuLmVudHJ5LXRpdGxlIGEsXG4uc2lkZWJhciAud2lkZ2V0LXRpdGxlIGEge1xuICBjb2xvcjogIzMzMzsgfVxuXG4uZW50cnktdGl0bGUgYTpob3ZlciB7XG4gIGNvbG9yOiAjZTU1NTRlOyB9XG5cbi53aWRnZXQtdGl0bGUge1xuICBmb250LXNpemU6IDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLyogIyMgV29yZFByZXNzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbmEuYWxpZ25jZW50ZXIgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbmEuYWxpZ25ub25lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5hbGlnbmxlZnQge1xuICBmbG9hdDogbGVmdDtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4uYWxpZ25yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuYS5hbGlnbmxlZnQsXG5hLmFsaWdubm9uZSxcbmEuYWxpZ25yaWdodCB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG5pbWcuY2VudGVyZWQsXG4uYWxpZ25jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG8gMjRweDsgfVxuXG5pbWcuYWxpZ25ub25lLFxuLmFsaWdubm9uZSB7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7IH1cblxuYS5hbGlnbmxlZnQsXG5pbWcuYWxpZ25sZWZ0LFxuLndwLWNhcHRpb24uYWxpZ25sZWZ0IHtcbiAgbWFyZ2luOiAwIDI0cHggMjRweCAwOyB9XG5cbmEuYWxpZ25yaWdodCxcbmltZy5hbGlnbnJpZ2h0LFxuLndwLWNhcHRpb24uYWxpZ25yaWdodCB7XG4gIG1hcmdpbjogMCAwIDI0cHggMjRweDsgfVxuXG4ud3AtY2FwdGlvbi10ZXh0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmVudHJ5LWNvbnRlbnQgcC53cC1jYXB0aW9uLXRleHQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qICMgV2lkZ2V0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLndpZGdldCB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDsgfVxuXG4ud2lkZ2V0IG9sID4gbGkge1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB0ZXh0LWluZGVudDogLTIwcHg7IH1cblxuLndpZGdldCBsaSBsaSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwIDAgMCAzMHB4O1xuICBwYWRkaW5nOiAwOyB9XG5cbi53aWRnZXRfY2FsZW5kYXIgdGFibGUge1xuICB3aWR0aDogMTAwJTsgfVxuXG4ud2lkZ2V0X2NhbGVuZGFyIHRkLFxuLndpZGdldF9jYWxlbmRhciB0aCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKiAjIyBGZWF0dXJlZCBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5mZWF0dXJlZC1jb250ZW50IC5lbnRyeSB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZjVmNWY1O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nOiAwIDAgMjRweDsgfVxuXG4uZm9vdGVyLXdpZGdldHMgLmVudHJ5IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjNjY2OyB9XG5cbi5mZWF0dXJlZC1jb250ZW50IC5lbnRyeS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjBweDsgfVxuXG4vKiAjIFBsdWdpbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICMjIEdlbmVzaXMgZU5ld3MgRXh0ZW5kZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmVuZXdzLXdpZGdldCxcbi5lbmV3cy13aWRnZXQgLndpZGdldC10aXRsZSB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5zaWRlYmFyIC53aWRnZXQuZW5ld3Mtd2lkZ2V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsgfVxuXG4uZW5ld3Mtd2lkZ2V0IGlucHV0LFxuLmVuZXdzLXdpZGdldCBpbnB1dDpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7IH1cblxuLmVuZXdzLXdpZGdldCBpbnB1dCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG4uZW5ld3Mtd2lkZ2V0IGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTU1NTRlO1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uZW5ld3Mtd2lkZ2V0IGlucHV0OmhvdmVyW3R5cGU9XCJzdWJtaXRcIl0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzMzMzsgfVxuXG4uZW5ld3MgZm9ybSArIHAge1xuICBtYXJnaW4tdG9wOiAyNHB4OyB9XG5cbi8qICMjIEpldHBhY2tcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuI3dwc3RhdHMge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5ob3Jpem9udGFsLWZvcm0gLmdmb3JtX3dyYXBwZXIsIC5ob3Jpem9udGFsLWZvcm0gLmdmb3JtX2ZpZWxkcyB7XG4gICp6b29tOiAxOyB9XG4gIC5ob3Jpem9udGFsLWZvcm0gLmdmb3JtX3dyYXBwZXI6YmVmb3JlLCAuaG9yaXpvbnRhbC1mb3JtIC5nZm9ybV93cmFwcGVyOmFmdGVyLCAuaG9yaXpvbnRhbC1mb3JtIC5nZm9ybV9maWVsZHM6YmVmb3JlLCAuaG9yaXpvbnRhbC1mb3JtIC5nZm9ybV9maWVsZHM6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAvKiAyICovIH1cbiAgLmhvcml6b250YWwtZm9ybSAuZ2Zvcm1fd3JhcHBlcjphZnRlciwgLmhvcml6b250YWwtZm9ybSAuZ2Zvcm1fZmllbGRzOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4uaG9yaXpvbnRhbC1mb3JtIC5nZm9ybV93cmFwcGVyIC50b3BfbGFiZWwgaW5wdXQubWVkaXVtIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5ob3Jpem9udGFsLWZvcm0gLmdmb3JtX2JvZHksXG4gIC5ob3Jpem9udGFsLWZvcm0gLmdmb3JtX2Zvb3RlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuaG9yaXpvbnRhbC1mb3JtIC5nZm9ybV9ib2R5IHtcbiAgICB3aWR0aDogNjMwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMiU7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmhvcml6b250YWwtZm9ybSAuZ2Zvcm1fZm9vdGVyIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuaG9yaXpvbnRhbC1mb3JtIC5nZmllbGQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMS41JTsgfSB9XG5cbi5zaWRlYmFyIC5nZm9ybV93cmFwcGVyIC50b3BfbGFiZWwgaW5wdXQubWVkaXVtIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnNpZGViYXIgbGkuZ2ZpZWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7IH1cblxuLyogVG8gYXZvaWQgbm90aWNlYWJsZSB2ZXJ0aWNhbCBtb3ZlbWVudCBmb3IgaG92ZXIgc3RhdGUgb2YgU29saWxvcXV5J3MgQ29udHJvbCBOYXYgKHR5cGljYWxseSBjaXJjbGVzKSBhbmQgYnhTbGlkZXIncyBsZWZ0IGFuZCByaWdodCBhcnJvd3MgKi9cbi5zb2xpbG9xdXktY29udGFpbmVyIC5zb2xpbG9xdXktY29udHJvbC1uYXYgbGkgYSxcbi5zb2xpbG9xdXktdGhlbWUtY2xhc3NpYyAuc29saWxvcXV5LXBhZ2VyLWxpbmssXG4uYngtd3JhcHBlciAuYngtY29udHJvbHMtZGlyZWN0aW9uIGEge1xuICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7XG4gIC1tb3otdHJhbnNpdGlvbjogbm9uZTtcbiAgLW1zLXRyYW5zaXRpb246IG5vbmU7XG4gIC1vLXRyYW5zaXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IG5vbmU7IH1cblxuLyogVG8gcmVtb3ZlIGJvdHRvbSBib3JkZXIgZm9yIFNvbGlsb3F1eSBjb250cm9scyAqL1xuLmVudHJ5LWNvbnRlbnQgLnNvbGlsb3F1eS1jb250cm9scy1kaXJlY3Rpb24gYSwgLmVudHJ5LWNvbnRlbnQgYS5zb2xpbG9xdXktcGFnZXItbGluayB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5ldmVudC10aWNrZXRzIGlucHV0LCAuZXZlbnQtdGlja2V0cyBzZWxlY3QsIC5ldmVudC10aWNrZXRzIHRleHRhcmVhIHtcbiAgICBwYWRkaW5nOiAxMHB4OyB9IH1cblxuLyogIyBTaXRlIEhlYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNpdGUtaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qbWluLWhlaWdodDogMTYwcHg7Ki8gfVxuXG4uc2l0ZS1oZWFkZXIgLndyYXAge1xuICBwYWRkaW5nOiA0MHB4IDA7IH1cblxuLyogIyMgVGl0bGUgQXJlYVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4udGl0bGUtYXJlYSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIC8qd2lkdGg6IDM2MHB4OyovIH1cblxuLmhlYWRlci1mdWxsLXdpZHRoIC50aXRsZS1hcmVhIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnNpdGUtdGl0bGUge1xuICBmb250LXNpemU6IDMycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cblxuLnNpdGUtdGl0bGUgYSxcbi5zaXRlLXRpdGxlIGE6aG92ZXIge1xuICBjb2xvcjogIzMzMzsgfVxuXG4uc2l0ZS10aXRsZSBhIGltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLmhlYWRlci1pbWFnZSAuc2l0ZS10aXRsZSA+IGEge1xuICBmbG9hdDogbGVmdDtcbiAgbWluLWhlaWdodDogMTAwcHg7XG4gIHdpZHRoOiAyNzdweDsgfVxuXG4uc2l0ZS1kZXNjcmlwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuXG4uc2l0ZS1kZXNjcmlwdGlvbixcbi5zaXRlLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uaGVhZGVyLWltYWdlIC5zaXRlLWRlc2NyaXB0aW9uLFxuLmhlYWRlci1pbWFnZSAuc2l0ZS10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWluZGVudDogLTk5OTlweDsgfVxuXG4vKiAjIyBXaWRnZXQgQXJlYVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgLyp3aWR0aDogODAwcHg7Ki8gfVxuXG4vKiAjIFNpdGUgTmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmdlbmVzaXMtbmF2LW1lbnUge1xuICBjbGVhcjogYm90aDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5nZW5lc2lzLW5hdi1tZW51IC5tZW51LWl0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLmdlbmVzaXMtbmF2LW1lbnUgYSB7XG4gIGNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMzBweCAyNHB4OyB9XG5cbi5nZW5lc2lzLW5hdi1tZW51IGE6aG92ZXIsXG4uZ2VuZXNpcy1uYXYtbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhLFxuLmdlbmVzaXMtbmF2LW1lbnUgLnN1Yi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGE6aG92ZXIge1xuICBjb2xvcjogI2U1NTU0ZTsgfVxuXG4uZ2VuZXNpcy1uYXYtbWVudSAuc3ViLW1lbnUge1xuICBsZWZ0OiAtOTk5OXB4O1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG4gIC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IC40cyBlYXNlLWluLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuICB3aWR0aDogMjAwcHg7XG4gIHotaW5kZXg6IDk5OyB9XG5cbi5nZW5lc2lzLW5hdi1tZW51IC5zdWItbWVudSBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFEOUZBMztcbiAgYm9yZGVyOiAxcHggc29saWQgIzFEOUZBMztcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nOiAyMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAyMDBweDsgfVxuXG4uZ2VuZXNpcy1uYXYtbWVudSAuc3ViLW1lbnUgLnN1Yi1tZW51IHtcbiAgbWFyZ2luOiAtNTVweCAwIDAgMTk5cHg7IH1cblxuLmdlbmVzaXMtbmF2LW1lbnUgLm1lbnUtaXRlbTpob3ZlciB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7IH1cblxuLmdlbmVzaXMtbmF2LW1lbnUgLm1lbnUtaXRlbTpob3ZlciA+IC5zdWItbWVudSB7XG4gIGxlZnQ6IGF1dG87XG4gIG9wYWNpdHk6IDE7IH1cblxuLmdlbmVzaXMtbmF2LW1lbnUgPiAuZmlyc3QgPiBhIHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi5nZW5lc2lzLW5hdi1tZW51ID4gLmxhc3QgPiBhIHtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4uZ2VuZXNpcy1uYXYtbWVudSA+IC5yaWdodCB7XG4gIGNvbG9yOiAjZmZmO1xuICBmbG9hdDogcmlnaHQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZzogMzBweCAwOyB9XG5cbi5nZW5lc2lzLW5hdi1tZW51ID4gLnJpZ2h0ID4gYSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogMDsgfVxuXG4uZ2VuZXNpcy1uYXYtbWVudSA+IC5yc3MgPiBhIHtcbiAgbWFyZ2luLWxlZnQ6IDQ4cHg7IH1cblxuLmdlbmVzaXMtbmF2LW1lbnUgPiAuc2VhcmNoIHtcbiAgcGFkZGluZzogMTBweCAwIDA7IH1cblxuLyogIyMgU2l0ZSBIZWFkZXIgTmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uc2l0ZS1oZWFkZXIgLnN1Yi1tZW51IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7IH1cblxuLnNpdGUtaGVhZGVyIC5zdWItbWVudSAuc3ViLW1lbnUge1xuICBtYXJnaW4tdG9wOiAtNTZweDsgfVxuXG4uc2l0ZS1oZWFkZXIgLmdlbmVzaXMtbmF2LW1lbnUgbGkgbGkge1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4vKiAjIyBQcmltYXJ5IE5hdmlnYXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLm5hdi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzFEOUZBMzsgfVxuXG4ubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUgYSB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudSAuc3ViLW1lbnUgYSB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudSBhOmhvdmVyLFxuLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGEsXG4ubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUgLnN1Yi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGE6aG92ZXIge1xuICBjb2xvcjogI2YyZjJmMjsgfVxuXG4vKiAjIyBTZWNvbmRhcnkgTmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubmF2LXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuLyogIyBGb290ZXIgV2lkZ2V0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmZvb3Rlci13aWRnZXRzIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjRjM3NjNBIDIlLCAjRTY5QTJFIDM1JSwgI0U2OUEyRSA2NSUsICNGMjdBM0EgOTglKTtcbiAgY2xlYXI6IGJvdGg7XG4gIHBhZGRpbmctdG9wOiA0MHB4OyB9XG4gIC5mb290ZXItd2lkZ2V0cyBoMSwgLmZvb3Rlci13aWRnZXRzIGgyLCAuZm9vdGVyLXdpZGdldHMgaDMsIC5mb290ZXItd2lkZ2V0cyBoNCwgLmZvb3Rlci13aWRnZXRzIGg1LCAuZm9vdGVyLXdpZGdldHMgaDYsIC5mb290ZXItd2lkZ2V0cyAud2lkZ2V0LXRpdGxlIHtcbiAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAgIC5mb290ZXItd2lkZ2V0cyBoMWEsIC5mb290ZXItd2lkZ2V0cyBoMmEsIC5mb290ZXItd2lkZ2V0cyBoM2EsIC5mb290ZXItd2lkZ2V0cyBoNGEsIC5mb290ZXItd2lkZ2V0cyBoNWEsIC5mb290ZXItd2lkZ2V0cyBoNmEsIC5mb290ZXItd2lkZ2V0cyAud2lkZ2V0LXRpdGxlYSB7XG4gICAgICBjb2xvcjogIzMzMzMzMzsgfVxuXG4uZm9vdGVyLXdpZGdldHMsXG4uZm9vdGVyLXdpZGdldHMgYSB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5mb290ZXItd2lkZ2V0cyBpbnB1dCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7IH1cblxuLmZvb3Rlci13aWRnZXRzIGEuYnV0dG9uLFxuLmZvb3Rlci13aWRnZXRzIGE6aG92ZXIge1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uZm9vdGVyLXdpZGdldHMgbGkge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDsgfVxuXG4uZm9vdGVyLXdpZGdldHMgLndpZGdldCB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cblxuLmZvb3Rlci13aWRnZXRzIHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmZvb3Rlci13aWRnZXRzLTEsXG4uZm9vdGVyLXdpZGdldHMtMixcbi5mb290ZXItd2lkZ2V0cy0zIHtcbiAgd2lkdGg6IDMxLjQyODU3JTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMi44NTcxNCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmZvb3Rlci13aWRnZXRzLTEsXG4gICAgLmZvb3Rlci13aWRnZXRzLTIsXG4gICAgLmZvb3Rlci13aWRnZXRzLTMge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uZm9vdGVyLXdpZGdldHMtMyB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi8qICMgU2l0ZSBGb290ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5zaXRlLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI0YzNzYzQSAyJSwgI2U5YTU0NSAzNSUsICNlOWE1NDUgNjUlLCAjRjI3QTNBIDk4JSk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDQwcHggMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5zaXRlLWZvb3RlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qICMgQ29udGVudCBBcmVhXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAjIyBFbnRyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5lbnRyeSB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHBhZGRpbmc6IDUwcHggMDsgfVxuXG4uY29udGVudCAuZW50cnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4uZW50cnktY29udGVudCBvbCxcbi5lbnRyeS1jb250ZW50IHVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgbWFyZ2luLWxlZnQ6IDQwcHg7IH1cblxuLmVudHJ5LWNvbnRlbnQgb2wgPiBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDsgfVxuXG4uZW50cnktY29udGVudCB1bCA+IGxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cbi5lbnRyeS1jb250ZW50IG9sIG9sLFxuLmVudHJ5LWNvbnRlbnQgdWwgdWwge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5lbnRyeS1jb250ZW50IGNvZGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICBjb2xvcjogI2RkZDsgfVxuXG4vKiAjIyBFbnRyeSBNZXRhXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbnAuZW50cnktbWV0YSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZW50cnktaGVhZGVyIC5lbnRyeS1tZXRhIHtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDsgfVxuXG4uZW50cnktZm9vdGVyIC5lbnRyeS1tZXRhIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNmNWY1ZjU7XG4gIHBhZGRpbmctdG9wOiAyNHB4OyB9XG5cbi5lbnRyeS1jYXRlZ29yaWVzLFxuLmVudHJ5LXRhZ3Mge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uZW50cnktY29tbWVudHMtbGluazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIwMTRcIjtcbiAgbWFyZ2luOiAwIDZweCAwIDJweDsgfVxuXG4vKiAjIyBQYWdpbmF0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5wYWdpbmF0aW9uIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbjogNDBweCAwOyB9XG5cbi5hZGphY2VudC1lbnRyeS1wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uYXJjaGl2ZS1wYWdpbmF0aW9uIGxpIHtcbiAgZGlzcGxheTogaW5saW5lOyB9XG5cbi5hcmNoaXZlLXBhZ2luYXRpb24gbGkgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gIGNvbG9yOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwYWRkaW5nOiA4cHggMTJweDsgfVxuXG4uYXJjaGl2ZS1wYWdpbmF0aW9uIGxpIGE6aG92ZXIsXG4uYXJjaGl2ZS1wYWdpbmF0aW9uIC5hY3RpdmUgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNTU1NGU7IH1cblxuLyogIyMgQ29tbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNvbW1lbnQtcmVzcG9uZCxcbi5lbnRyeS1jb21tZW50cyxcbi5lbnRyeS1waW5ncyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cblxuLmNvbW1lbnQtcmVzcG9uZCxcbi5lbnRyeS1waW5ncyB7XG4gIHBhZGRpbmc6IDQwcHggNDBweCAxNnB4OyB9XG5cbi5lbnRyeS1jb21tZW50cyB7XG4gIHBhZGRpbmc6IDQwcHg7IH1cblxuLmNvbW1lbnQtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxNnB4OyB9XG5cbmxpLmNvbW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7IH1cblxuLmNvbW1lbnQtY29udGVudCB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5jb21tZW50LWxpc3QgbGkge1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBwYWRkaW5nOiAzMnB4OyB9XG5cbi5jb21tZW50LWxpc3QgbGkgbGkge1xuICBtYXJnaW4tcmlnaHQ6IC0zMnB4OyB9XG5cbi5jb21tZW50LXJlc3BvbmQgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLmNvbW1lbnQtcmVzcG9uZCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi5jb21tZW50LXJlc3BvbmQgaW5wdXRbdHlwZT1cInVybFwiXSB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLmNvbW1lbnQtcmVzcG9uZCBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7IH1cblxuLmVudHJ5LWNvbW1lbnRzIC5jb21tZW50LWF1dGhvciB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmVudHJ5LXBpbmdzIC5yZXBseSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmZvcm0tYWxsb3dlZC10YWdzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwYWRkaW5nOiAyNHB4OyB9XG5cbi5mZXN0aXZhbC1kYXksXG4uZmVzdGl2YWwtdGltZSB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi5mZXN0aXZhbC1kYXkge1xuICB3aWR0aDogMTAwcHg7IH1cblxuLmZlc3RpdmFsLWRhdGVzIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogIyBTaWRlYmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnNpZGViYXIge1xuICBmb250LXNpemU6IDE2cHg7IH1cbiAgLnNpZGViYXIgLnNpZGViYXItcGFkZGluZyB7XG4gICAgbWFyZ2luOiAtMTA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiAyMHB4OyB9XG5cbi5zaWRlYmFyIGxpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjZGRkO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDsgfVxuXG4uc2lkZWJhciBwOmxhc3QtY2hpbGQsXG4uc2lkZWJhciB1bCA+IGxpOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5zaWRlYmFyIC53aWRnZXQge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICBwYWRkaW5nOiAyMHB4OyB9XG5cbi8qXG4gKiBQYWdlIEJ1aWxkZXJcbiAqIChCZWF2ZXIgYnVpbGRlcikgLSBkZWZhdWx0IHN0eWxpbmdcbiAqL1xuLmZsLWJ1aWxkZXIgLnNpdGUtaW5uZXIgLndyYXAgLnNpdGUtaGVhZGVyIC53cmFwIHtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7IH1cblxuLmZsLWJ1aWxkZXIuY29udGVudC1zaWRlYmFyIC5zaXRlLWlubmVyIC53cmFwIHtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7IH1cbiAgLmZsLWJ1aWxkZXIuY29udGVudC1zaWRlYmFyIC5zaXRlLWlubmVyIC53cmFwIC5mbC1yb3ctY29udGVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0yNnB4O1xuICAgIG1hcmdpbi1yaWdodDogLTI2cHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC5mbC1idWlsZGVyLmNvbnRlbnQtc2lkZWJhciAuc2l0ZS1pbm5lciAud3JhcCAuZmwtcm93LWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuLmZsLWJ1aWxkZXIgLnNpdGUtaW5uZXIge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgICAuZmwtYnVpbGRlciAuc2l0ZS1pbm5lciB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmZsLWJ1aWxkZXIgLnNpdGUtaW5uZXIge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG5cbi5mbC1idWlsZGVyIC5lbnRyeSB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlX2J1aWxkZXItcGhwIC5zaXRlLWlubmVyIC53cmFwIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZV9idWlsZGVyLXBocCAuc2l0ZS1pbm5lciAud3JhcCAuZW50cnkge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5mdWxsLXdpZHRoLWNvbnRlbnQgLmZsLXJvdy1jb250ZW50LXdyYXAge1xuICAgIHBhZGRpbmc6IDAgNDJweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5mdWxsLXdpZHRoLWNvbnRlbnQgLmZsLXJvdy1jb250ZW50LXdyYXAge1xuICAgIHBhZGRpbmc6IDAgNDJweCAhaW1wb3J0YW50OyB9IH1cblxuLmZsLXJvdy1jb250ZW50IHtcbiAgcGFkZGluZzogMHB4OyB9XG5cbi5mbC1jb2wtc21hbGwge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4uZmwtY29sLWNvbnRlbnQge1xuICBwYWRkaW5nOiAyNnB4OyB9XG5cbi5lZGdlLXRvLWVkZ2UgLmZsLXJvdy1jb250ZW50LFxuLmVkZ2UtdG8tZWRnZSAuZmwtY29sLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxuICogSWNvbiBGb250c1xuICovXG4ucGhvbmUtbnVtYmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMTFweDsgfVxuICAucGhvbmUtbnVtYmVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCLuoZRcIjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQgIWltcG9ydGFudDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogXCJlbnR5cG9cIjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDsgfVxuXG4ubW9iaWxlLW51bWJlciB7XG4gIG1hcmdpbi1ib3R0b206IDExcHg7IH1cbiAgLm1vYmlsZS1udW1iZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIu6irFwiO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZCAhaW1wb3J0YW50O1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGUgIWltcG9ydGFudDtcbiAgICBzcGVhazogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiBcImVudHlwb1wiO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDsgfVxuXG4uYWRkcmVzcy1mdWxsIHtcbiAgbWFyZ2luLWJvdHRvbTogMTFweDsgfVxuICAuYWRkcmVzcy1mdWxsOmJlZm9yZSB7XG4gICAgY29udGVudDogXCLuoYFcIjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQgIWltcG9ydGFudDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogXCJlbnR5cG9cIjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5hZGRyZXNzLWZ1bGwgLnN0cmVldC1hZGRyZXNzLXdyYXAsXG4gIC5hZGRyZXNzLWZ1bGwgLmNpdHktcG9zdGNvZGUge1xuICAgIHBhZGRpbmctbGVmdDogMjVweDsgfVxuXG4uc29jaWFsLW5ldHdvcmstbGluayB7XG4gIG1hcmdpbi1ib3R0b206IDExcHg7IH1cbiAgLnNvY2lhbC1uZXR3b3JrLWxpbmsuZmFjZWJvb2s6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIu6jtVwiO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZCAhaW1wb3J0YW50O1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGUgIWltcG9ydGFudDtcbiAgICBzcGVhazogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiBcImVudHlwb1wiO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIG1hcmdpbi1yaWdodDogN3B4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDFweDtcbiAgICBjb2xvcjogIzNiNTk5ODsgfVxuICAuc29jaWFsLW5ldHdvcmstbGluay55b3V0dWJlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCLupJxcIjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQgIWltcG9ydGFudDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogXCJlbnR5cG9cIjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDdweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gICAgY29sb3I6ICNiYjAwMDA7IH1cblxuLmNvbnRhY3QtdXMtcGFnZS1jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMTZweDsgfVxuXG4uYWN0LWxpc3Qge1xuICAqem9vbTogMTsgfVxuICAuYWN0LWxpc3Q6YmVmb3JlLCAuYWN0LWxpc3Q6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAvKiAyICovIH1cbiAgLmFjdC1saXN0OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuYWN0LWxpc3QgaDIge1xuICAgIHBhZGRpbmc6IDI2cHggMCAxMXB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGFkNmMxO1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5hY3QtbWVudSB7XG4gICAgKnpvb206IDE7XG4gICAgbWFyZ2luOiAxNnB4IDA7IH1cbiAgICAuYWN0LW1lbnU6YmVmb3JlLCAuYWN0LW1lbnU6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAvKiAxICovXG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIC8qIDIgKi8gfVxuICAgIC5hY3QtbWVudTphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5hY3QtbWVudSBsaSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTFweDsgfVxuICAgICAgLmFjdC1tZW51IGxpIGE6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcInxcIjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMXB4OyB9XG4gICAgICAuYWN0LW1lbnUgbGk6bGFzdC1jaGlsZCBhOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cblxuLmFjdC13cmFwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLWJvdHRvbTogMTFweDtcbiAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFREVCRTE7IH1cbiAgLmFjdC13cmFwOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmFjdC13cmFwIC5hY3QtdGh1bWJuYWlsIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDQwLjQyNTUzJTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjEyNzY2JTsgfSB9XG4gIC5hY3Qtd3JhcCAuYWN0LWRldGFpbHMge1xuICAgICp6b29tOiAxO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDI2cHg7IH1cbiAgICAuYWN0LXdyYXAgLmFjdC1kZXRhaWxzOmJlZm9yZSwgLmFjdC13cmFwIC5hY3QtZGV0YWlsczphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIC8qIDEgKi9cbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgLyogMiAqLyB9XG4gICAgLmFjdC13cmFwIC5hY3QtZGV0YWlsczphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAuYWN0LXdyYXAgLmFjdC12aWRlbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAuYWN0LXdyYXAgLmFjdC12aWRlbyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjUuNTMxOTElO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNS41MzE5MSU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmFjdC1saXN0LnByZXNlbnRlcnMgLmFjdC10aHVtYm5haWwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNC44OTM2MiU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjEyNzY2JTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZXhoaWJpdG9ycy1jYXRlZ29yeS1saXN0IHtcbiAgICB3aWR0aDogNDguOTM2MTclO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmV4aGliaXRvcnMtY2F0ZWdvcnktbGlzdDpudGgtY2hpbGQoMm4gKyAxKSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTEwMCU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLmV4aGliaXRvcnMtY2F0ZWdvcnktbGlzdDpudGgtY2hpbGQoMm4gKyAyKSB7XG4gICAgICBtYXJnaW4tbGVmdDogNTEuMDYzODMlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgICAgIGNsZWFyOiBub25lOyB9IH1cblxuLmV4aGliaXRvcnMtY2F0ZWdvcnktbGlzdCB7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgLmV4aGliaXRvcnMtY2F0ZWdvcnktbGlzdDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0MnB4OyB9XG5cbi5leGhpYml0b3JzLW1lbnUge1xuICBtYXJnaW4tYm90dG9tOiAyNnB4OyB9XG4gIC5leGhpYml0b3JzLW1lbnUgYSB7XG4gICAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuXG4vKlxuICogU2l0ZSBDdXN0b20gU0FTUyBzdGFydHMgaGVyZS4uLlxuICovXG4vKiAjIE1lZGlhIFF1ZXJpZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIC5jb250ZW50LXNpZGViYXItc2lkZWJhciAuY29udGVudC1zaWRlYmFyLXdyYXAsXG4gIC5zaWRlYmFyLWNvbnRlbnQtc2lkZWJhciAuY29udGVudC1zaWRlYmFyLXdyYXAsXG4gIC5zaWRlYmFyLXNpZGViYXItY29udGVudCAuY29udGVudC1zaWRlYmFyLXdyYXAge1xuICAgIHdpZHRoOiA3NDBweDsgfVxuICAuY29udGVudCxcbiAgLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSB7XG4gICAgd2lkdGg6IDYyMHB4OyB9XG4gIC5zaWRlYmFyLWNvbnRlbnQtc2lkZWJhciAuY29udGVudCxcbiAgLnNpZGViYXItc2lkZWJhci1jb250ZW50IC5jb250ZW50LFxuICAuY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmNvbnRlbnQge1xuICAgIHdpZHRoOiA0MDBweDsgfVxuICAuc2lkZWJhci1wcmltYXJ5LFxuICAudGl0bGUtYXJlYSB7XG4gICAgd2lkdGg6IDMwMHB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuY29udGVudCxcbiAgLmNvbnRlbnQtc2lkZWJhci1zaWRlYmFyIC5jb250ZW50LFxuICAuY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuICAuc2lkZWJhci1jb250ZW50LXNpZGViYXIgLmNvbnRlbnQsXG4gIC5zaWRlYmFyLWNvbnRlbnQtc2lkZWJhciAuY29udGVudC1zaWRlYmFyLXdyYXAsXG4gIC5zaWRlYmFyLXByaW1hcnksXG4gIC5zaWRlYmFyLXNlY29uZGFyeSxcbiAgLnNpZGViYXItc2lkZWJhci1jb250ZW50IC5jb250ZW50LFxuICAuc2lkZWJhci1zaWRlYmFyLWNvbnRlbnQgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuICAuc2l0ZS1oZWFkZXIgLndpZGdldC1hcmVhLFxuICAudGl0bGUtYXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnNpdGUtaGVhZGVyIC53cmFwIHtcbiAgICBwYWRkaW5nOiAyMHB4IDUlOyB9XG4gIC5oZWFkZXItaW1hZ2UgLnRpdGxlLWFyZWEge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciB0b3A7IH1cbiAgLmdlbmVzaXMtbmF2LW1lbnUgbGksXG4gIC5zaXRlLWhlYWRlciB1bC5nZW5lc2lzLW5hdi1tZW51LFxuICAuc2l0ZS1oZWFkZXIgLnNlYXJjaC1mb3JtIHtcbiAgICBmbG9hdDogbm9uZTsgfVxuICAuZ2VuZXNpcy1uYXYtbWVudSxcbiAgLnNpdGUtZGVzY3JpcHRpb24sXG4gIC5zaXRlLWhlYWRlciAudGl0bGUtYXJlYSxcbiAgLnNpdGUtaGVhZGVyIC5zZWFyY2gtZm9ybSxcbiAgLnNpdGUtdGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuZ2VuZXNpcy1uYXYtbWVudSBhLFxuICAuZ2VuZXNpcy1uYXYtbWVudSA+IC5maXJzdCA+IGEsXG4gIC5nZW5lc2lzLW5hdi1tZW51ID4gLmxhc3QgPiBhIHtcbiAgICBwYWRkaW5nOiAyMHB4IDE2cHg7IH1cbiAgLnNpdGUtaGVhZGVyIC5zZWFyY2gtZm9ybSB7XG4gICAgbWFyZ2luOiAxNnB4IGF1dG87XG4gICAgLyp3aWR0aDogNTAlOyovXG4gICAgd2lkdGg6IDIzNHB4OyB9XG4gIC5nZW5lc2lzLW5hdi1tZW51IGxpLnJpZ2h0LFxuICAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLm1lbnUtaXRlbS5yaWdodCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiB1cmwoaW1hZ2VzL2JvZHktYmcucG5nKSBib3R0b20gcmVwZWF0LXg7XG4gICAgZm9udC1zaXplOiAxNnB4OyB9XG4gIC5zaXRlLWlubmVyLFxuICAud3JhcCB7XG4gICAgcGFkZGluZy1sZWZ0OiA1JTtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1JTsgfVxuICAuYXJjaGl2ZS1kZXNjcmlwdGlvbixcbiAgLmF1dGhvci1ib3gsXG4gIC5jb21tZW50LXJlc3BvbmQsXG4gIC5lbnRyeSxcbiAgLmVudHJ5LWNvbW1lbnRzLFxuICAuZW50cnktcGluZ3MsXG4gIC5zaWRlYmFyIC53aWRnZXQsXG4gIC5zaXRlLWhlYWRlciB7XG4gICAgcGFkZGluZzogMDsgfVxuICAuYXJjaGl2ZS1wYWdpbmF0aW9uIGxpIGEge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDsgfVxuICAuZml2ZS1zaXh0aHMsXG4gIC5mb3VyLXNpeHRocyxcbiAgLm9uZS1mb3VydGgsXG4gIC5vbmUtaGFsZixcbiAgLm9uZS1zaXh0aCxcbiAgLm9uZS10aGlyZCxcbiAgLnRocmVlLWZvdXJ0aHMsXG4gIC50aHJlZS1zaXh0aHMsXG4gIC50d28tZm91cnRocyxcbiAgLnR3by1zaXh0aHMsXG4gIC50d28tdGhpcmRzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnNpZGViYXIgLndpZGdldC5lbmV3cy13aWRnZXQge1xuICAgIHBhZGRpbmc6IDQwcHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSA+IC5tZW51LWl0ZW0gPiAuc3ViLW1lbnUsXG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLm1lbnUtaXRlbSxcbiAgLnJlc3BvbnNpdmUtbWVudS1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLm1lbnUtaXRlbSB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAubWVudS1pdGVtOmhvdmVyIHtcbiAgICBwb3NpdGlvbjogc3RhdGljOyB9XG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhLFxuICAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLnN1Yi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGE6aG92ZXIsXG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSBhLFxuICAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHg7IH1cbiAgLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhLFxuICAubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5zdWItbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhOmhvdmVyLFxuICAubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IGEsXG4gIC5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgYTpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2MHB4OyB9XG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSA+IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYzNDdcIjtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udDogbm9ybWFsIDE2cHgvMSAnZGFzaGljb25zJztcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHotaW5kZXg6IDk5OTk7IH1cbiAgLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSA+IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmJlZm9yZSB7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5tZW51LW9wZW4ubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMzQzXCI7IH1cbiAgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5zdWItbWVudSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgb3BhY2l0eTogMTtcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG4gICAgLW1zLXRyYW5zaXRpb246IG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogOTk7IH1cbiAgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5zdWItbWVudSAuc3ViLW1lbnUge1xuICAgIG1hcmdpbjogMDsgfVxuICAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLnN1Yi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGE6aG92ZXIsXG4gIC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAuc3ViLW1lbnUgbGkgYSxcbiAgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5zdWItbWVudSBsaSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjhweCkge1xuICAuY29tbWVudC1yZXNwb25kIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgLmNvbW1lbnQtcmVzcG9uZCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgLmNvbW1lbnQtcmVzcG9uZCBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG4iLCIvKlxuXHRUaGVtZSBOYW1lOiBUb3JsZXNzZVxuXHRUaGVtZSBVUkk6IGh0dHA6Ly93d3cuYXZvY2FkZXNpZ24uY28ubnpcblx0RGVzY3JpcHRpb246IEEgbW9iaWxlIHJlc3BvbnNpdmUgYW5kIEhUTUw1IHRoZW1lIGJ1aWx0IGZvciB0aGUgR2VuZXNpcyBGcmFtZXdvcmsuXG5cdEF1dGhvcjogQXZvY2EgRGVzaWduXG5cdEF1dGhvciBVUkk6IGh0dHA6Ly93d3cuYXZvY2FkZXNpZ24uY28ubnpcblxuXHRWZXJzaW9uOiAxLjBcblxuXHRUYWdzOiBibGFjaywgd2hpdGUsIG9uZS1jb2x1bW4sIHR3by1jb2x1bW5zLCBmaXhlZC13aWR0aCwgY3VzdG9tLW1lbnUsIGZ1bGwtd2lkdGgtdGVtcGxhdGUsIHN0aWNreS1wb3N0LCB0aGVtZS1vcHRpb25zLCB0aHJlYWRlZC1jb21tZW50cywgdHJhbnNsYXRpb24tcmVhZHlcblxuXHRUZW1wbGF0ZTogZ2VuZXNpc1xuXHRUZW1wbGF0ZSBWZXJzaW9uOiAxLjBcblxuXHRMaWNlbnNlOiBHUEwtMi4wK1xuXHRMaWNlbnNlIFVSSTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5waHBcbiovXG5cbi8vSW1wb3J0IEJvd2VyIENvbXBvbmVudHNcbkBpbXBvcnQgXCJzdXN5L3Nhc3Mvc3VzeVwiO1xuQGltcG9ydCBcImNvbXBhc3MtYnJlYWtwb2ludC9zdHlsZXNoZWV0cy9icmVha3BvaW50XCI7XG5AaW1wb3J0IFwibW9kdWxhci1zY2FsZS9zdHlsZXNoZWV0cy9tb2R1bGFyLXNjYWxlXCI7XG5cblxuLy8gU2V0dGluZ3NcbkBpbXBvcnQgXCJzZXR0aW5ncy9sb2FkXCI7XG5AaW1wb3J0IFwidXRpbGl0aWVzL2xvYWRcIjtcblxuLy8gU3R5bGUgYW5kIFN0cnVjdHVyZVxuQGltcG9ydCBcImNvbG91cnNcIjtcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5XCI7XG5AaW1wb3J0IFwicmVzcG9uc2l2ZS1tZW51XCI7XG5AaW1wb3J0IFwibGF5b3V0XCI7XG5AaW1wb3J0IFwiY29udGVudC1saWIvbG9hZFwiO1xuXG4vLyBUaGVtZSBTZWN0aW9uc1xuQGltcG9ydCBcIndpZGdldHNcIjtcbkBpbXBvcnQgXCJwbHVnaW5zL2xvYWRcIjtcbkBpbXBvcnQgXCJoZWFkZXJcIjtcbkBpbXBvcnQgXCJuYXZpZ2F0aW9uXCI7XG5AaW1wb3J0IFwiZm9vdGVyXCI7XG5AaW1wb3J0IFwiY29udGVudFwiO1xuQGltcG9ydCBcInNpZGViYXJzXCI7XG5AaW1wb3J0IFwicGFnZS1idWlsZGVyXCI7XG5AaW1wb3J0IFwiaWNvbi1mb250c1wiO1xuQGltcG9ydCBcIm11c2ljaWFucy1saXN0XCI7XG5AaW1wb3J0IFwiZXhoaWJpdG9yc19saXN0XCI7XG5cblxuLypcbiAqIFNpdGUgQ3VzdG9tIFNBU1Mgc3RhcnRzIGhlcmUuLi5cbiAqL1xuXG4gLyogIyBNZWRpYSBRdWVyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG5cblx0LmNvbnRlbnQtc2lkZWJhci1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCxcblx0LnNpZGViYXItY29udGVudC1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCxcblx0LnNpZGViYXItc2lkZWJhci1jb250ZW50IC5jb250ZW50LXNpZGViYXItd3JhcCB7XG5cdFx0d2lkdGg6IDc0MHB4O1xuXHR9XG5cblx0LmNvbnRlbnQsXG5cdC5zaXRlLWhlYWRlciAud2lkZ2V0LWFyZWEge1xuXHRcdHdpZHRoOiA2MjBweDtcblx0fVxuXG5cdC5zaWRlYmFyLWNvbnRlbnQtc2lkZWJhciAuY29udGVudCxcblx0LnNpZGViYXItc2lkZWJhci1jb250ZW50IC5jb250ZW50LFxuXHQuY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmNvbnRlbnQge1xuXHRcdHdpZHRoOiA0MDBweDtcblx0fVxuXG5cdC5zaWRlYmFyLXByaW1hcnksXG5cdC50aXRsZS1hcmVhIHtcblx0XHR3aWR0aDogMzAwcHg7XG5cdH1cblxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG5cblx0LmNvbnRlbnQsXG5cdC5jb250ZW50LXNpZGViYXItc2lkZWJhciAuY29udGVudCxcblx0LmNvbnRlbnQtc2lkZWJhci1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCxcblx0LnNpZGViYXItY29udGVudC1zaWRlYmFyIC5jb250ZW50LFxuXHQuc2lkZWJhci1jb250ZW50LXNpZGViYXIgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuXHQuc2lkZWJhci1wcmltYXJ5LFxuXHQuc2lkZWJhci1zZWNvbmRhcnksXG5cdC5zaWRlYmFyLXNpZGViYXItY29udGVudCAuY29udGVudCxcblx0LnNpZGViYXItc2lkZWJhci1jb250ZW50IC5jb250ZW50LXNpZGViYXItd3JhcCxcblx0LnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSxcblx0LnRpdGxlLWFyZWEge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0LnNpdGUtaGVhZGVyIC53cmFwIHtcblx0XHRwYWRkaW5nOiAyMHB4IDUlO1xuXHR9XG5cblx0LmhlYWRlci1pbWFnZSAudGl0bGUtYXJlYSB7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHRvcDtcblx0fVxuXG5cdC5nZW5lc2lzLW5hdi1tZW51IGxpLFxuXHQuc2l0ZS1oZWFkZXIgdWwuZ2VuZXNpcy1uYXYtbWVudSxcblx0LnNpdGUtaGVhZGVyIC5zZWFyY2gtZm9ybSB7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdH1cblxuXHQuZ2VuZXNpcy1uYXYtbWVudSxcblx0LnNpdGUtZGVzY3JpcHRpb24sXG5cdC5zaXRlLWhlYWRlciAudGl0bGUtYXJlYSxcblx0LnNpdGUtaGVhZGVyIC5zZWFyY2gtZm9ybSxcblx0LnNpdGUtdGl0bGUge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXG5cdC5nZW5lc2lzLW5hdi1tZW51IGEsXG5cdC5nZW5lc2lzLW5hdi1tZW51ID4gLmZpcnN0ID4gYSxcblx0LmdlbmVzaXMtbmF2LW1lbnUgPiAubGFzdCA+IGEge1xuXHRcdHBhZGRpbmc6IDIwcHggMTZweDtcblx0fVxuXG5cdC5zaXRlLWhlYWRlciAuc2VhcmNoLWZvcm0ge1xuXHRcdG1hcmdpbjogMTZweCBhdXRvO1xuXHRcdC8qd2lkdGg6IDUwJTsqL1xuXHRcdHdpZHRoOiAyMzRweDtcblx0fVxuXG5cdC5nZW5lc2lzLW5hdi1tZW51IGxpLnJpZ2h0LFxuXHQuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLm1lbnUtaXRlbS5yaWdodCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcblxuXHRib2R5IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iZztcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdH1cblxuXHQuc2l0ZS1pbm5lcixcblx0LndyYXAge1xuXHRcdHBhZGRpbmctbGVmdDogNSU7XG5cdFx0cGFkZGluZy1yaWdodDogNSU7XG5cdH1cblxuXHQuYXJjaGl2ZS1kZXNjcmlwdGlvbixcblx0LmF1dGhvci1ib3gsXG5cdC5jb21tZW50LXJlc3BvbmQsXG5cdC5lbnRyeSxcblx0LmVudHJ5LWNvbW1lbnRzLFxuXHQuZW50cnktcGluZ3MsXG5cdC5zaWRlYmFyIC53aWRnZXQsXG5cdC5zaXRlLWhlYWRlciB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC5hcmNoaXZlLXBhZ2luYXRpb24gbGkgYSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNHB4O1xuXHR9XG5cblx0LmZpdmUtc2l4dGhzLFxuXHQuZm91ci1zaXh0aHMsXG5cdC5vbmUtZm91cnRoLFxuXHQub25lLWhhbGYsXG5cdC5vbmUtc2l4dGgsXG5cdC5vbmUtdGhpcmQsXG5cdC50aHJlZS1mb3VydGhzLFxuXHQudGhyZWUtc2l4dGhzLFxuXHQudHdvLWZvdXJ0aHMsXG5cdC50d28tc2l4dGhzLFxuXHQudHdvLXRoaXJkcyB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0LnNpZGViYXIgLndpZGdldC5lbmV3cy13aWRnZXQge1xuXHRcdHBhZGRpbmc6IDQwcHg7XG5cdH1cblxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG5cblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51ID4gLm1lbnUtaXRlbSA+IC5zdWItbWVudSxcblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5tZW51LWl0ZW0sXG5cdC5yZXNwb25zaXZlLW1lbnUtaWNvbiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLm1lbnUtaXRlbSB7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5tZW51LWl0ZW06aG92ZXIge1xuXHRcdHBvc2l0aW9uOiBzdGF0aWM7XG5cdH1cblxuXHQuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYSxcblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5zdWItbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhOmhvdmVyLFxuXHQuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgYSxcblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IGE6aG92ZXIge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0cGFkZGluZzogMTZweCAyMHB4O1xuXHR9XG5cdC5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYSxcblx0Lm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAuc3ViLW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYTpob3Zlcixcblx0Lm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSBhLFxuXHQubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IGE6aG92ZXIge1xuXHRcdGNvbG9yOiAkcHJpbWFyeS1uYXYtdGV4dDtcblx0fVxuXG5cdC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHR9XG5cblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiA2MHB4O1xuXHR9XG5cblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51ID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlxcZjM0N1wiO1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRmb250OiBub3JtYWwgMTZweC8xICdkYXNoaWNvbnMnO1xuXHRcdGhlaWdodDogMTZweDtcblx0XHRwYWRkaW5nOiAxNnB4IDIwcHg7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0ei1pbmRleDogOTk5OTtcblx0fVxuXHQubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51ID4gLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46YmVmb3JlIHtcblx0XHRjb2xvcjogJHByaW1hcnktbmF2LXRleHQ7XG5cdH1cblxuXHQuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLm1lbnUtb3Blbi5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcXGYzNDNcIjtcblx0fVxuXG5cdC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAuc3ViLW1lbnUge1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRsZWZ0OiBhdXRvO1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0cGFkZGluZy1sZWZ0OiAyNXB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHQtbW96LXRyYW5zaXRpb246ICAgIG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuXHRcdC1tcy10cmFuc2l0aW9uOiAgICAgb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG5cdFx0LW8tdHJhbnNpdGlvbjogICAgICBvcGFjaXR5IC40cyBlYXNlLWluLW91dDtcblx0XHQtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuXHRcdHRyYW5zaXRpb246ICAgICAgICAgb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ei1pbmRleDogOTk7XG5cdH1cblxuXHQuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLnN1Yi1tZW51IC5zdWItbWVudSB7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0LmdlbmVzaXMtbmF2LW1lbnUucmVzcG9uc2l2ZS1tZW51IC5zdWItbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhOmhvdmVyLFxuXHQuZ2VuZXNpcy1uYXYtbWVudS5yZXNwb25zaXZlLW1lbnUgLnN1Yi1tZW51IGxpIGEsXG5cdC5nZW5lc2lzLW5hdi1tZW51LnJlc3BvbnNpdmUtbWVudSAuc3ViLW1lbnUgbGkgYTpob3ZlciB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0cGFkZGluZzogMTJweCAyMHB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTY4cHgpIHtcblxuXHQuY29tbWVudC1yZXNwb25kIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcblx0LmNvbW1lbnQtcmVzcG9uZCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcblx0LmNvbW1lbnQtcmVzcG9uZCBpbnB1dFt0eXBlPVwidXJsXCJdIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG59XG4iLCIvLyBTZXR1cCBHcmlkIGZvciBTVVNZXG4kc3VzeTogKFxuICAvLyB0aGUgYmFzaWNzXG4gIGNvbHVtbnM6IDEyLFxuICBndXR0ZXJzOiAxLjYxOGVtIC8gNC44NTRlbSxcbiAgY29sdW1uLXdpZHRoOiA0Ljg1NGVtLFxuKTtcblxuLy8gU2V0dXAgQ29udGFpbmVyIGZvciBTVVNZXG4uc2l0ZS1pbm5lciAud3JhcCB7XG5cdEBpbmNsdWRlIGNvbnRhaW5lcjtcbn1cblxuLypcbiAqIE1vZHVsYXIgU2NhbGUgU2V0dGluZ3NcbiAqXG4gKiBodHRwOi8vd3d3Lm1vZHVsYXJzY2FsZS5jb20gYnkgVGltIEJyb3duXG4gKiBodHRwczovL2dpdGh1Yi5jb20vVGVhbS1TYXNzL21vZHVsYXItc2NhbGVcbiAqIHZlcnNpb24gMiBzeW50YXhcbiAqL1xuJG1zLXJhdGlvOiAkZ29sZGVuO1x0XHRcdFx0XHRcdC8vIFJhdGlvIGZvciBNb2R1bGFyIFNjYWxlXG4kYmFzZS1mb250LXNpemU6IDE2cHg7XG4kaW1wb3J0YW50TnVtOiA3OHB4O1xuJG1zLWJhc2U6ICRiYXNlLWZvbnQtc2l6ZSAkaW1wb3J0YW50TnVtO1xuXG4vLyBUb3JsZXNzZSBEZWZhdWx0IFNjYWxlIFZhbHVlczogMTYsIDE4LCAyNiwgMzAsIDQyLCA0OCwgNjgsIDc4LCAxMTAsIDEyNjtcblxuXHQvKlxuXHQgKiBTaXppbmdcblx0ICovXG5cdCR4c21hbGw6IG1zKC0yKTtcblx0JHNtYWxsOiBtcygtMSk7XG5cdCRub3JtOiBtcygwKTtcdFx0XHRcdFx0XHRcdFx0XHQvLyAkYmFzZS1mb250LXNpemUgKDE2cHggPT0gZGVmYXVsdClcblx0JG1lZDogbXMoMSk7XG5cdCRsYXJnZTogbXMoMik7XG5cdCRsYXJnZXI6IG1zKDMpO1xuXHQkeGxhcmdlOiBtcyg0KTtcblx0JHh4bGFyZ2U6IG1zKDUpO1xuXHQkeHh4bGFyZ2U6IG1zKDYpO1xuXHQkcmVhbGx5YmlnOiBtcyg4KTtcblx0JHRyZW1lbmRvdXM6IG1zKDkpO1xuXHQkYWJzdXJkOiBtcygxMCk7XG4iLCIvLyByZW0gU3VwcG9ydFxuLy8gPT09PT09PT09PT1cblxuLy8gcmVtXG4vLyAtLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBvdXRwdXQgZGlyZWN0bHkuXG4vLyAtICRwcm9wICA6IDxjc3MgcHJvcGVydHk+XG4vLyAtICR2YWwgICA6IDxjc3MgdmFsdWU+XG5AbWl4aW4gc3VzeS1yZW0oXG4gICRwcm9wLFxuICAkdmFsXG4pIHtcbiAgJF9yZXFzOiAoXG4gICAgdmFyaWFibGU6IHJoeXRobS11bml0IHJlbS13aXRoLXB4LWZhbGxiYWNrLFxuICAgIG1peGluOiByZW0sXG4gICk7XG4gIEBpZiBzdXN5LXN1cHBvcnQocmVtLCAkX3JlcXMsICR3YXJuOiBmYWxzZSkgYW5kICRyaHl0aG0tdW5pdCA9PSByZW0ge1xuICAgIEBpbmNsdWRlIHJlbSgkcHJvcCwgJHZhbCk7XG4gIH0gQGVsc2Uge1xuICAgICN7JHByb3B9OiAkdmFsO1xuICB9XG59XG4iLCIvLyBDb250YWluZXIgU3ludGF4XG4vLyA9PT09PT09PT09PT09PT09XG5cbi8vIENvbnRhaW5lciBbbWl4aW5dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgY29udGFpbmVyIGVsZW1lbnRcbi8vIC0gWyRsYXlvdXRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBjb250YWluZXIoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgICAgOiAkbGF5b3V0O1xuICAkbGF5b3V0ICAgICA6IHBhcnNlLWdyaWQoJGxheW91dCk7XG5cbiAgJF93aWR0aCAgICAgOiBnZXQtY29udGFpbmVyLXdpZHRoKCRsYXlvdXQpO1xuICAkX2p1c3RpZnkgICA6IHBhcnNlLWNvbnRhaW5lci1wb3NpdGlvbihzdXN5LWdldChjb250YWluZXItcG9zaXRpb24sICRsYXlvdXQpKTtcbiAgJF9wcm9wZXJ0eSAgOiBpZihzdXN5LWdldChtYXRoLCAkbGF5b3V0KSA9PSBzdGF0aWMsIHdpZHRoLCBtYXgtd2lkdGgpO1xuXG4gICRfYm94ICAgICAgIDogc3VzeS1nZXQoYm94LXNpemluZywgJGxheW91dCk7XG5cbiAgQGlmICRfYm94IHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRfYm94KSk7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoY29udGFpbmVyLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIGZsb2F0LWNvbnRhaW5lcigkX3dpZHRoLCAkX2p1c3RpZnksICRfcHJvcGVydHkpO1xuICBAaW5jbHVkZSBzaG93LWdyaWQoJGxheW91dCk7XG59XG5cbi8vIENvbnRhaW5lciBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGNvbnRhaW5lciB3aWR0aFxuLy8gLSBbJGxheW91dF0gIDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGNvbnRhaW5lcihcbiAgJGxheW91dDogJHN1c3lcbikge1xuICAkbGF5b3V0OiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xuICBAcmV0dXJuIGdldC1jb250YWluZXItd2lkdGgoJGxheW91dCk7XG59XG5cbi8vIEdldCBDb250YWluZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENhbGN1bGF0ZSB0aGUgY29udGFpbmVyIHdpZHRoXG4vLyAtIFskbGF5b3V0XTogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGdldC1jb250YWluZXItd2lkdGgoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGxheW91dCAgICAgICAgIDogcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbiAgJF93aWR0aCAgICAgICAgIDogc3VzeS1nZXQoY29udGFpbmVyLCAkbGF5b3V0KTtcbiAgJF9jb2x1bW4td2lkdGggIDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkbGF5b3V0KTtcbiAgJF9tYXRoICAgICAgICAgIDogc3VzeS1nZXQobWF0aCwgJGxheW91dCk7XG5cbiAgQGlmIG5vdCgkX3dpZHRoKSBvciAkX3dpZHRoID09IGF1dG8ge1xuICAgIEBpZiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKSB7XG4gICAgICAkX2NvbHVtbnMgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRsYXlvdXQpO1xuICAgICAgJF9ndXR0ZXJzICAgOiBzdXN5LWdldChndXR0ZXJzLCAkbGF5b3V0KTtcbiAgICAgICRfc3ByZWFkICAgIDogaWYoaXMtc3BsaXQoJGxheW91dCksIHdpZGUsIG5hcnJvdyk7XG4gICAgICAkX3dpZHRoICAgICA6IHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkgKiAkX2NvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkX3dpZHRoO1xufVxuXG4vLyBQYXJzZSBDb250YWluZXIgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGFyc2UgdGhlICRjb250YWluZXItcG9zaXRpb24gaW50byBtYXJnaW4gdmFsdWVzLlxuLy8gLSBbJGp1c3RpZnldICAgOiBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCA8bGVuZ3RoPiBbPGxlbmd0aD5dXG5AZnVuY3Rpb24gcGFyc2UtY29udGFpbmVyLXBvc2l0aW9uKFxuICAkanVzdGlmeTogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgY29udGFpbmVyLXBvc2l0aW9uKVxuKSB7XG4gICRfcmV0dXJuOiBpZigkanVzdGlmeSA9PSBsZWZ0LCAwLCBhdXRvKSBpZigkanVzdGlmeSA9PSByaWdodCwgMCwgYXV0byk7XG5cbiAgQGlmIG5vdChpbmRleChsZWZ0IHJpZ2h0IGNlbnRlciwgJGp1c3RpZnkpKSB7XG4gICAgJF9yZXR1cm46IG50aCgkanVzdGlmeSwgMSk7XG4gICAgJF9yZXR1cm46ICRfcmV0dXJuIGlmKGxlbmd0aCgkanVzdGlmeSkgPiAxLCBudGgoJGp1c3RpZnksIDIpLCAkX3JldHVybik7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLy8gU3VzeSBGYWxsYmFjayBDbGVhcmZpeFxuLy8gPT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIENsZWFyZml4XG4vLyAtLS0tLS0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIHByb3ZpZGUgYSBzaW1wbGUgZmFsbGJhY2suXG5AbWl4aW4gc3VzeS1jbGVhcmZpeCB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoY2xlYXJmaXgsIChtaXhpbjogY2xlYXJmaXgpKSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH0gQGVsc2Uge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfVxufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4yIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn0iLCIvKiAjIyBCb3ggU2l6aW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuKixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuXHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdC1tb3otYm94LXNpemluZzogICAgYm9yZGVyLWJveDtcblx0Ym94LXNpemluZzogICAgICAgICBib3JkZXItYm94O1xufVxuIiwiLyoqXG4gKiBGb3IgbW9kZXJuIGJyb3dzZXJzXG4gKiAxLiBUaGUgc3BhY2UgY29udGVudCBpcyBvbmUgd2F5IHRvIGF2b2lkIGFuIE9wZXJhIGJ1ZyB3aGVuIHRoZVxuICogICAgY29udGVudGVkaXRhYmxlIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbiAqICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuICogICAgdGhhdCBhcmUgY2xlYXJmaXhlZC5cbiAqIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4gKiAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4gKi9cbi5jZjpiZWZvcmUsXG4uY2Y6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiOyAvKiAxICovXG4gICAgZGlzcGxheTogdGFibGU7IC8qIDIgKi9cbn1cblxuLmNmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbn1cblxuLyoqXG4gKiBGb3IgSUUgNi83IG9ubHlcbiAqIEluY2x1ZGUgdGhpcyBydWxlIHRvIHRyaWdnZXIgaGFzTGF5b3V0IGFuZCBjb250YWluIGZsb2F0cy5cbiAqL1xuLmNmIHtcbiAgICAqem9vbTogMTtcbn1cblxuQG1peGluIGNsZWFyZml4IHtcblx0JjpiZWZvcmUsXG5cdCY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiIFwiOyAvKiAxICovXG5cdFx0ZGlzcGxheTogdGFibGU7IC8qIDIgKi9cblx0fVxuXHRcblx0JjphZnRlciB7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdH1cblx0XG5cdC8vIEZvciBJRSA2Lzcgb25seVxuXHQqem9vbTogMTtcbn1cblxuLyogIyMgRmxvYXQgQ2xlYXJpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYXV0aG9yLWJveDpiZWZvcmUsXG4uY2xlYXJmaXg6YmVmb3JlLFxuLmVudHJ5OmJlZm9yZSxcbi5lbnRyeS1jb250ZW50OmJlZm9yZSxcbi5mb290ZXItd2lkZ2V0czpiZWZvcmUsXG4ubmF2LXByaW1hcnk6YmVmb3JlLFxuLm5hdi1zZWNvbmRhcnk6YmVmb3JlLFxuLnBhZ2luYXRpb246YmVmb3JlLFxuLnNpdGUtY29udGFpbmVyOmJlZm9yZSxcbi5zaXRlLWZvb3RlcjpiZWZvcmUsXG4uc2l0ZS1oZWFkZXI6YmVmb3JlLFxuLnNpdGUtaW5uZXI6YmVmb3JlLFxuLndyYXA6YmVmb3JlIHtcblx0Y29udGVudDogXCIgXCI7XG5cdGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uYXV0aG9yLWJveDphZnRlcixcbi5jbGVhcmZpeDphZnRlcixcbi5lbnRyeTphZnRlcixcbi5lbnRyeS1jb250ZW50OmFmdGVyLFxuLmZvb3Rlci13aWRnZXRzOmFmdGVyLFxuLm5hdi1wcmltYXJ5OmFmdGVyLFxuLm5hdi1zZWNvbmRhcnk6YWZ0ZXIsXG4ucGFnaW5hdGlvbjphZnRlcixcbi5zaXRlLWNvbnRhaW5lcjphZnRlcixcbi5zaXRlLWZvb3RlcjphZnRlcixcbi5zaXRlLWhlYWRlcjphZnRlcixcbi5zaXRlLWlubmVyOmFmdGVyLFxuLndyYXA6YWZ0ZXIge1xuXHRjbGVhcjogYm90aDtcblx0Y29udGVudDogXCIgXCI7XG5cdGRpc3BsYXk6IHRhYmxlO1xufVxuXG4iLCIvLyBTYXNzIGludGVncmF0aW9uIGZvciBFbnR5cG8gdjIuMFxuLy8gICBodHRwczovL2dpdGh1Yi5jb20vcnN0YWNydXovc2Fzc19pY29uX2ZvbnRzXG4vL1xuLy8gV2Vic2l0ZTogaHR0cDovL3d3dy5lbnR5cG8uY29tL1xuLy9cbi8vIEZvbnQgZmlsZXM6XG4vLyAgIGh0dHA6Ly93d3cuZW50eXBvLmNvbS9jc3MvZW50eXBvLmVvdFxuLy8gICBodHRwOi8vd3d3LmVudHlwby5jb20vY3NzL2VudHlwby5zdmdcbi8vICAgaHR0cDovL3d3dy5lbnR5cG8uY29tL2Nzcy9lbnR5cG8ud29mZlxuLy8gICBodHRwOi8vd3d3LmVudHlwby5jb20vY3NzL2VudHlwby50dGZcblxuJGVuLXBhdGg6IFwiZW50eXBvLXBsdXNcIiAhZGVmYXVsdDtcblxuQG1peGluIGVuLWZvbnQge1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJlbnR5cG9cIjtcbiAgICBzcmM6IHVybChcIiN7JGVuLXBhdGh9LmVvdFwiKTtcbiAgICBzcmM6IHVybChcIiN7JGVuLXBhdGh9LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIiN7JGVuLXBhdGh9LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiI3skZW4tcGF0aH0udHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIjeyRlbi1wYXRofS5zdmcjZW50eXBvXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBzcGVhazogbm9uZTtcbiAgfVxufVxuXG4gXG4vLyBMaXN0IG9mIHVuaWNvZGUgY2hhcmFjdGVycyBmb3IgZW50eXBvIGljb25zXG4kaWNvbnM6IChcbiAgIFx0J3BsdXMnXHRcdFx0XHQnXFxlODE2Jyxcblx0J21pbnVzJ1x0XHRcdFx0J1xcZTgxOScsXG5cdCdpbmZvJ1x0XHRcdFx0J1xcZTgxZScsXG5cdCdsZWZ0LXRoaW4nXHRcdFx0J1xcZTg4YycsXG5cdCd1cC10aGluJ1x0XHRcdCdcXGU4OGUnLFxuXHQncmlnaHQtdGhpbidcdFx0J1xcZTg4ZCcsXG5cdCdkb3duLXRoaW4nXHRcdFx0J1xcZTg4YicsXG5cdCdsZXZlbC11cCdcdFx0XHQnXFxlODkzJyxcblx0J2xldmVsLWRvd24nXHRcdCdcXGU4OTInLFxuXHQnc3dpdGNoJ1x0XHRcdCdcXGU4OTYnLFxuXHQnaW5maW5pdHknXHRcdFx0J1xcZThjMicsXG5cdCdwbHVzLXNxdWFyZWQnXHRcdCdcXGU4MTgnLFxuXHQnbWludXMtc3F1YXJlZCdcdFx0J1xcZTgxYicsXG5cdCdob21lJ1x0XHRcdFx0J1xcZTgyMScsXG5cdCdrZXlib2FyZCdcdFx0XHQnXFxlODNhJyxcblx0J2VyYXNlJ1x0XHRcdFx0J1xcZThjMycsXG5cdCdwYXVzZSdcdFx0XHRcdCdcXGU4OTknLFxuXHQnZmFzdC1mb3J3YXJkJ1x0XHQnXFxlODlkJyxcblx0J2Zhc3QtYmFja3dhcmQnXHRcdCdcXGU4OWUnLFxuXHQndG8tZW5kJ1x0XHRcdCdcXGU4OWInLFxuXHQndG8tc3RhcnQnXHRcdFx0J1xcZTg5YycsXG5cdCdob3VyZ2xhc3MnXHRcdFx0J1xcZTg2MycsXG5cdCdzdG9wJ1x0XHRcdFx0J1xcZTg5OCcsXG5cdCd1cC1kaXInXHRcdFx0J1xcZTg4NicsXG5cdCdwbGF5J1x0XHRcdFx0J1xcZTg5NycsXG5cdCdyaWdodC1kaXInXHRcdFx0J1xcZTg4NScsXG5cdCdkb3duLWRpcidcdFx0XHQnXFxlODgzJyxcblx0J2xlZnQtZGlyJ1x0XHRcdCdcXGU4ODQnLFxuXHQnYWRqdXN0J1x0XHRcdCdcXGU4NjcnLFxuXHQnY2xvdWQnXHRcdFx0XHQnXFxlOGIyJyxcblx0J3N0YXInXHRcdFx0XHQnXFxlODA4Jyxcblx0J3N0YXItZW1wdHknXHRcdCdcXGU4MDknLFxuXHQnY3VwJ1x0XHRcdFx0J1xcZTg0NicsXG5cdCdtZW51J1x0XHRcdFx0J1xcZTgxMScsXG5cdCdtb29uJ1x0XHRcdFx0J1xcZThiNScsXG5cdCdoZWFydC1lbXB0eSdcdFx0J1xcZTgwNycsXG5cdCdoZWFydCdcdFx0XHRcdCdcXGU4MDYnLFxuXHQnbm90ZSdcdFx0XHRcdCdcXGU4MDAnLFxuXHQnbm90ZS1iZWFtZWQnXHRcdCdcXGU4MDEnLFxuXHQnbGF5b3V0J1x0XHRcdCdcXGU4MTAnLFxuXHQnZmxhZydcdFx0XHRcdCdcXGU4MmEnLFxuXHQndG9vbHMnXHRcdFx0XHQnXFxlODU2Jyxcblx0J2NvZydcdFx0XHRcdCdcXGU4NTUnLFxuXHQnYXR0ZW50aW9uJ1x0XHRcdCdcXGU4M2UnLFxuXHQnZmxhc2gnXHRcdFx0XHQnXFxlOGI0Jyxcblx0J3JlY29yZCdcdFx0XHQnXFxlODlhJyxcblx0J2Nsb3VkLXRodW5kZXInXHRcdCdcXGU4YjMnLFxuXHQndGFwZSdcdFx0XHRcdCdcXGU4YzgnLFxuXHQnZmxpZ2h0J1x0XHRcdCdcXGU4YjYnLFxuXHQnbWFpbCdcdFx0XHRcdCdcXGU4MDUnLFxuXHQncGVuY2lsJ1x0XHRcdCdcXGU4MzYnLFxuXHQnZmVhdGhlcidcdFx0XHQnXFxlODM3Jyxcblx0J2NoZWNrJ1x0XHRcdFx0J1xcZTgxMicsXG5cdCdjYW5jZWwnXHRcdFx0J1xcZTgxMycsXG5cdCdjYW5jZWwtY2lyY2xlZCdcdCdcXGU4MTQnLFxuXHQnY2FuY2VsLXNxdWFyZWQnXHQnXFxlODE1Jyxcblx0J2hlbHAnXHRcdFx0XHQnXFxlODFjJyxcblx0J3F1b3RlJ1x0XHRcdFx0J1xcZTgzMycsXG5cdCdwbHVzLWNpcmNsZWQnXHRcdCdcXGU4MTcnLFxuXHQnbWludXMtY2lyY2xlZCdcdFx0J1xcZTgxYScsXG5cdCdyaWdodCdcdFx0XHRcdCdcXGU4ODEnLFxuXHQnZGlyZWN0aW9uJ1x0XHRcdCdcXGU4NDQnLFxuXHQnZm9yd2FyZCdcdFx0XHQnXFxlODMyJyxcblx0J2NjdydcdFx0XHRcdCdcXGU4OGYnLFxuXHQnY3cnXHRcdFx0XHQnXFxlODkwJyxcblx0J2xlZnQnXHRcdFx0XHQnXFxlODgwJyxcblx0J3VwJ1x0XHRcdFx0J1xcZTg4MicsXG5cdCdkb3duJ1x0XHRcdFx0J1xcZTg3ZicsXG5cdCdsaXN0LWFkZCdcdFx0XHQnXFxlOGE2Jyxcblx0J2xpc3QnXHRcdFx0XHQnXFxlOGE1Jyxcblx0J2xlZnQtYm9sZCdcdFx0XHQnXFxlODg4Jyxcblx0J3JpZ2h0LWJvbGQnXHRcdCdcXGU4ODknLFxuXHQndXAtYm9sZCdcdFx0XHQnXFxlODhhJyxcblx0J2Rvd24tYm9sZCdcdFx0XHQnXFxlODg3Jyxcblx0J3VzZXItYWRkJ1x0XHRcdCdcXGU4MGMnLFxuXHQnaGVscC1jaXJjbGVkJ1x0XHQnXFxlODFkJyxcblx0J2luZm8tY2lyY2xlZCdcdFx0J1xcZTgxZicsXG5cdCdleWUnXHRcdFx0XHQnXFxlODI2Jyxcblx0J3RhZydcdFx0XHRcdCdcXGU4MjcnLFxuXHQndXBsb2FkLWNsb3VkJ1x0XHQnXFxlODJmJyxcblx0J3JlcGx5J1x0XHRcdFx0J1xcZTgzMCcsXG5cdCdyZXBseS1hbGwnXHRcdFx0J1xcZTgzMScsXG5cdCdjb2RlJ1x0XHRcdFx0J1xcZTgzNCcsXG5cdCdleHBvcnQnXHRcdFx0J1xcZTgzNScsXG5cdCdwcmludCdcdFx0XHRcdCdcXGU4MzgnLFxuXHQncmV0d2VldCdcdFx0XHQnXFxlODM5Jyxcblx0J2NvbW1lbnQnXHRcdFx0J1xcZTgzYicsXG5cdCdjaGF0J1x0XHRcdFx0J1xcZTgzYycsXG5cdCd2Y2FyZCdcdFx0XHRcdCdcXGU4NDAnLFxuXHQnYWRkcmVzcydcdFx0XHQnXFxlODQxJyxcblx0J2xvY2F0aW9uJ1x0XHRcdCdcXGU4NDInLFxuXHQnbWFwJ1x0XHRcdFx0J1xcZTg0MycsXG5cdCdjb21wYXNzJ1x0XHRcdCdcXGU4NDUnLFxuXHQndHJhc2gnXHRcdFx0XHQnXFxlODQ3Jyxcblx0J2RvYydcdFx0XHRcdCdcXGU4NDgnLFxuXHQnZG9jLXRleHQtaW52J1x0XHQnXFxlODRjJyxcblx0J2RvY3MnXHRcdFx0XHQnXFxlODQ5Jyxcblx0J2RvYy1sYW5kc2NhcGUnXHRcdCdcXGU4NGEnLFxuXHQnYXJjaGl2ZSdcdFx0XHQnXFxlODUxJyxcblx0J3JzcydcdFx0XHRcdCdcXGU4NTMnLFxuXHQnc2hhcmUnXHRcdFx0XHQnXFxlODU3Jyxcblx0J2Jhc2tldCdcdFx0XHQnXFxlODU5Jyxcblx0J3NoYXJlYWJsZSdcdFx0XHQnXFxlODU4Jyxcblx0J2xvZ2luJ1x0XHRcdFx0J1xcZTg1YycsXG5cdCdsb2dvdXQnXHRcdFx0J1xcZTg1ZCcsXG5cdCd2b2x1bWUnXHRcdFx0J1xcZTg2MScsXG5cdCdyZXNpemUtZnVsbCdcdFx0J1xcZTg2OScsXG5cdCdyZXNpemUtc21hbGwnXHRcdCdcXGU4NmEnLFxuXHQncG9wdXAnXHRcdFx0XHQnXFxlODZiJyxcblx0J3B1Ymxpc2gnXHRcdFx0J1xcZTg2YycsXG5cdCd3aW5kb3c6J1x0XHRcdCdcXGU4NmQnLFxuXHQnYXJyb3ctY29tYm8nXHRcdCdcXGU4NmUnLFxuXHQnY2hhcnQtcGllJ1x0XHRcdCdcXGU4YzQnLFxuXHQnbGFuZ3VhZ2UnXHRcdFx0J1xcZThjYScsXG5cdCdhaXInXHRcdFx0XHQnXFxlOGNlJyxcblx0J2RhdGFiYXNlJ1x0XHRcdCdcXGU4ZDMnLFxuXHQnZHJpdmUnXHRcdFx0XHQnXFxlOGQ0Jyxcblx0J2J1Y2tldCdcdFx0XHQnXFxlOGQ1Jyxcblx0J3RoZXJtb21ldGVyJ1x0XHQnXFxlOGQ2Jyxcblx0J2Rvd24tY2lyY2xlZCdcdFx0J1xcZTg2ZicsXG5cdCdsZWZ0LWNpcmNsZWQnXHRcdCdcXGU4NzAnLFxuXHQncmlnaHQtY2lyY2xlZCdcdFx0J1xcZTg3MScsXG5cdCd1cC1jaXJjbGVkJ1x0XHQnXFxlODcyJyxcblx0J2Rvd24tb3BlbidcdFx0XHQnXFxlODczJyxcblx0J2xlZnQtb3BlbidcdFx0XHQnXFxlODc1Jyxcblx0J3JpZ2h0LW9wZW4nXHRcdCdcXGU4NzUnLFxuXHQndXAtb3BlbidcdFx0XHQnXFxlODc2Jyxcblx0J2Rvd24tb3Blbi1taW5pJ1x0J1xcZTg3NycsXG5cdCdsZWZ0LW9wZW4tbWluaSdcdCdcXGU4NzgnLFxuXHQncmlnaHQtb3Blbi1taW5pJ1x0J1xcZTg3OScsXG5cdCd1cC1vcGVuLW1pbmknXHRcdCdcXGU4N2EnLFxuXHQnZG93bi1vcGVuLWJpZydcdFx0J1xcZTg3YicsXG5cdCdsZWZ0LW9wZW4tYmlnJ1x0XHQnXFxlODdjJyxcblx0J3JpZ2h0LW9wZW4tYmlnJ1x0J1xcZTg3ZCcsXG5cdCd1cC1vcGVuLWJpZydcdFx0J1xcZTg3ZScsXG5cdCdwcm9ncmVzcy0wJ1x0XHQnXFxlODlmJyxcblx0J3Byb2dyZXNzLTEnXHRcdCdcXGU4YTAnLFxuXHQncHJvZ3Jlc3MtMidcdFx0J1xcZThhMScsXG5cdCdwcm9ncmVzcy0zJ1x0XHQnXFxlOGEyJyxcblx0J2JhY2staW4tdGltZSdcdFx0J1xcZThhYScsXG5cdCduZXR3b3JrJ1x0XHRcdCdcXGU4YWQnLFxuXHQnaW5ib3gnXHRcdFx0XHQnXFxlOGFmJyxcblx0J2luc3RhbGwnXHRcdFx0J1xcZThiMCcsXG5cdCdsaWZlYnVveSdcdFx0XHQnXFxlOGI5Jyxcblx0J21vdXNlJ1x0XHRcdFx0J1xcZThiYScsXG5cdCdkb3QnXHRcdFx0XHQnXFxlOGJkJyxcblx0J2RvdC0yJ1x0XHRcdFx0J1xcZThiZScsXG5cdCdkb3QtMydcdFx0XHRcdCdcXGU4YmYnLFxuXHQnc3VpdGNhc2UnXHRcdFx0J1xcZThiYycsXG5cdCdmbG93LWNhc2NhZGUnXHRcdCdcXGU4ZDgnLFxuXHQnZmxvdy1icmFuY2gnXHRcdCdcXGU4ZDknLFxuXHQnZmxvdy10cmVlJ1x0XHRcdCdcXGU4ZGEnLFxuXHQnZmxvdy1saW5lJ1x0XHRcdCdcXGU4ZGInLFxuXHQnZmxvdy1wYXJhbGxlbCdcdFx0J1xcZThkYycsXG5cdCdicnVzaCdcdFx0XHRcdCdcXGU4YzAnLFxuXHQncGFwZXItcGxhbmUnXHRcdCdcXGU4YjcnLFxuXHQnbWFnbmV0J1x0XHRcdCdcXGU4YzEnLFxuXHQnZ2F1Z2UnXHRcdFx0XHQnXFxlOGRlJyxcblx0J3RyYWZmaWMtY29uZSdcdFx0J1xcZThkZicsXG5cdCdjYydcdFx0XHRcdCdcXGU4ZTAnLFxuXHQnY2MtYnknXHRcdFx0XHQnXFxlOGUxJyxcblx0J2NjLW5jJ1x0XHRcdFx0J1xcZThlMicsXG5cdCdjYy1uYy1ldSdcdFx0XHQnXFxlOGUzJyxcblx0J2NjLW5jLWpwJ1x0XHRcdCdcXGU4ZTQnLFxuXHQnY2Mtc2EnXHRcdFx0XHQnXFxlOGU1Jyxcblx0J2NjLW5kJ1x0XHRcdFx0J1xcZThlNicsXG5cdCdjYy1wZCdcdFx0XHRcdCdcXGU4ZTcnLFxuXHQnY2MtemVybydcdFx0XHQnXFxlOGU4Jyxcblx0J2NjLXNoYXJlJ1x0XHRcdCdcXGU4ZTknLFxuXHQnY2MtcmVtaXgnXHRcdFx0J1xcZThlYScsXG5cdCdncGx1cy1zcXVhcmVkJ1x0XHQnXFxlOTIwJyxcblx0J2dwbHVzJ1x0XHRcdFx0J1xcZTkyMScsXG5cdCdhbmdsZS1kb3VibGUtbGVmdCdcdCdcXGU5MjcnLFxuXHQnYW5nbGUtZG91YmxlLXJpZ2h0JydcXGU5MjgnLFxuXHQnYW5nbGUtZG91YmxlLXVwJ1x0J1xcZTkyOScsXG5cdCdhbmdsZS1kb3VibGUtZG93bidcdCdcXGU5MmEnLFxuXHQnYW5nbGUtY2lyY2xlZC1sZWZ0JydcXGU5MmInLFxuXHQnYW5nbGUtY2lyY2xlZC1yaWdodCcnXFxlOTJjJyxcblx0J2FuZ2xlLWNpcmNsZWQtdXAnXHQnXFxlOTJkJyxcblx0J2FuZ2xlLWNpcmNsZWQtZG93bicnXFxlOTJlJyxcblx0J2h0bWw1J1x0XHRcdFx0J1xcZTkyNCcsXG5cdCdjc3MzJ1x0XHRcdFx0J1xcZTkyMicsXG5cdCd5b3V0dWJlLXNxdWFyZWQnXHQnXFxlOTFkJyxcblx0J3lvdXR1YmUnXHRcdFx0J1xcZTkxYycsXG5cdCdmbGlja3Itc3F1YXJlZCdcdCdcXGU5MjYnLFxuXHQnYml0YnVja2V0LXNxdWFyZWQnXHQnXFxlOTIzJyxcblx0J2dpdGh1YidcdFx0XHQnXFxlOGViJyxcblx0J2dpdGh1Yi1jaXJjbGVkJ1x0J1xcZThlYycsXG5cdCdmbGlja3InXHRcdFx0J1xcZThlZCcsXG5cdCd0d2l0dGVyLXNxdWFyZWQnXHQnXFxlOTFlJyxcblx0J2ZsaWNrci1jaXJjbGVkJ1x0J1xcZThlZScsXG5cdCd2aW1lbydcdFx0XHRcdCdcXGU4ZWYnLFxuXHQndmltZW8tY2lyY2xlZCdcdFx0J1xcZThmMCcsXG5cdCd0d2l0dGVyJ1x0XHRcdCdcXGU4ZjEnLFxuXHQndHdpdHRlci1jaXJjbGVkJ1x0J1xcZThmMicsXG5cdCdmYWNlYm9vaydcdFx0XHQnXFxlOGYzJyxcblx0J2ZhY2Vib29rLWNpcmNsZWQnXHQnXFxlOGY0Jyxcblx0J2ZhY2Vib29rLXNxdWFyZWQnXHQnXFxlOGY1Jyxcblx0J2xpbmtlZGluLXNxdWFyZWQnXHQnXFxlOTFmJyxcblx0J2dwbHVzLWNpcmNsZWQnXHRcdCdcXGU4ZjcnLFxuXHQncGludGVyZXN0J1x0XHRcdCdcXGU4ZjgnLFxuXHQncGludGVyZXN0LWNpcmNsZWQnXHQnXFxlOGY5Jyxcblx0J2ljb24tdHVtYmxyJ1x0XHQnXFxlOGZhJyxcblx0J3R1bWJsci1jaXJjbGVkJ1x0J1xcZThmYicsXG5cdCdsaW5rZWRpbidcdFx0XHQnXFxlOGZjJyxcblx0J2xpbmtlZGluLWNpcmNsZWQnXHQnXFxlOGZkJyxcblx0J2RyaWJiYmxlJ1x0XHRcdCdcXGU4ZmUnLFxuXHQnZHJpYmJibGUtY2lyY2xlZCdcdCdcXGU4ZmYnLFxuXHQnc3R1bWJsZXVwb24nXHRcdCdcXGU5MDAnLFxuXHQnc3R1bWJsZXVwb24tY2lyY2xlZCcnXFxlOTAxJyxcblx0J2xhc3RmbSdcdFx0XHQnXFxlOTAyJyxcblx0J2xhc3RmbS1jaXJjbGVkJ1x0J1xcZTkwMycsXG5cdCdyZGlvJ1x0XHRcdFx0J1xcZTkwNCcsXG5cdCdyZGlvLWNpcmNsZWQnXHRcdCdcXGU5MDUnLFxuXHQnc3BvdGlmeSdcdFx0XHQnXFxlOTA2Jyxcblx0J3Nwb3RpZnktY2lyY2xlZCdcdCdcXGU5MDcnLFxuXHQncXEnXHRcdFx0XHQnXFxlOTA4Jyxcblx0J2luc3RhZ3JhbSdcdFx0XHQnXFxlOTA5Jyxcblx0J2Ryb3Bib3gnXHRcdFx0J1xcZTkwYScsXG5cdCdldmVybm90ZSdcdFx0XHQnXFxlOTBiJyxcblx0J2ZsYXR0cidcdFx0XHQnXFxlOTBjJyxcblx0J3NreXBlJ1x0XHRcdFx0J1xcZTkwZCcsXG5cdCdza3lwZS1jaXJjbGVkJ1x0XHQnXFxlOTBlJyxcblx0J3JlbnJlbidcdFx0XHQnXFxlOTBmJyxcblx0J3NpbmEtd2VpYm8nXHRcdCdcXGU5MTAnLFxuXHQncGF5cGFsJ1x0XHRcdCdcXGU5MTEnLFxuXHQncGljYXNhJ1x0XHRcdCdcXGU5MTInLFxuXHQnc291bmRjbG91ZCdcdFx0J1xcZTkxMycsXG5cdCdtaXhpJ1x0XHRcdFx0J1xcZTkxNCcsXG5cdCdiZWhhbmNlJ1x0XHRcdCdcXGU5MTUnLFxuXHQnZ29vZ2xlLWNpcmNsZXMnXHQnXFxlOTE2Jyxcblx0J3Zrb250YWt0ZSdcdFx0XHQnXFxlOTE3Jyxcblx0J3NtYXNoaW5nJ1x0XHRcdCdcXGU5MTgnLFxuXHQnZGItc2hhcGUnXHRcdFx0J1xcZTkxYScsXG5cdCdzd2VkZW4nXHRcdFx0J1xcZTkxOScsXG5cdCdsb2dvLWRiJ1x0XHRcdCdcXGU5MWInLFxuXHQncGljdHVyZSdcdFx0XHQnXFxlODBlJyxcblx0J2dsb2JlJ1x0XHRcdFx0J1xcZThiMScsXG5cdCdsZWFmJ1x0XHRcdFx0J1xcZThiOCcsXG5cdCdncmFkdWF0aW9uLWNhcCdcdCdcXGU4YzknLFxuXHQnbWljJ1x0XHRcdFx0J1xcZTg1ZScsXG5cdCdwYWxldHRlJ1x0XHRcdCdcXGU4YTQnLFxuXHQndGlja2V0J1x0XHRcdCdcXGU4Y2InLFxuXHQndmlkZW8nXHRcdFx0XHQnXFxlODBkJyxcblx0J3RhcmdldCdcdFx0XHQnXFxlOGEzJyxcblx0J211c2ljJ1x0XHRcdFx0J1xcZTgwMicsXG5cdCd0cm9waHknXHRcdFx0J1xcZThhOCcsXG5cdCd0aHVtYnMtdXAnXHRcdFx0J1xcZTgyYicsXG5cdCd0aHVtYnMtZG93bidcdFx0J1xcZTgyYycsXG5cdCdiYWcnXHRcdFx0XHQnXFxlODVhJyxcblx0J3VzZXInXHRcdFx0XHQnXFxlODBhJyxcblx0J3VzZXJzJ1x0XHRcdFx0J1xcZTgwYicsXG5cdCdsYW1wJ1x0XHRcdFx0J1xcZTg2NCcsXG5cdCdhbGVydCdcdFx0XHRcdCdcXGU4M2YnLFxuXHQnd2F0ZXInXHRcdFx0XHQnXFxlOGNjJyxcblx0J2Ryb3BsZXQnXHRcdFx0J1xcZThjZCcsXG5cdCdjcmVkaXQtY2FyZCdcdFx0J1xcZThjZicsXG5cdCdtb25pdG9yJ1x0XHRcdCdcXGU4YWInLFxuXHQnYnJpZWZjYXNlJ1x0XHRcdCdcXGU4YmInLFxuXHQnZmxvcHB5J1x0XHRcdCdcXGU4ZDAnLFxuXHQnY2QnXHRcdFx0XHQnXFxlOGFlJyxcblx0J2ZvbGRlcidcdFx0XHQnXFxlODUwJyxcblx0J2RvYy10ZXh0J1x0XHRcdCdcXGU4NGInLFxuXHQnY2FsZW5kYXInXHRcdFx0J1xcZTg1YicsXG5cdCdjaGFydC1saW5lJ1x0XHQnXFxlOGM1Jyxcblx0J2NoYXJ0LWJhcidcdFx0XHQnXFxlOGM2Jyxcblx0J2NsaXBib2FyZCdcdFx0XHQnXFxlOGQxJyxcblx0J2F0dGFjaCdcdFx0XHQnXFxlODIzJyxcblx0J2Jvb2ttYXJrcydcdFx0XHQnXFxlODI5Jyxcblx0J2Jvb2snXHRcdFx0XHQnXFxlODRmJyxcblx0J2Jvb2stb3BlbidcdFx0XHQnXFxlODRlJyxcblx0J3Bob25lJ1x0XHRcdFx0J1xcZTg1NCcsXG5cdCdtZWdhcGhvbmUnXHRcdFx0J1xcZThkMicsXG5cdCd1cGxvYWQnXHRcdFx0J1xcZTgyZScsXG5cdCdkb3dubG9hZCdcdFx0XHQnXFxlODJkJyxcblx0J2JveCdcdFx0XHRcdCdcXGU4NTInLFxuXHQnbmV3c3BhcGVyJ1x0XHRcdCdcXGU4NGQnLFxuXHQnbW9iaWxlJ1x0XHRcdCdcXGU4YWMnLFxuXHQnc2lnbmFsJ1x0XHRcdCdcXGU4YTcnLFxuXHQnY2FtZXJhJ1x0XHRcdCdcXGU4MGYnLFxuXHQnc2h1ZmZsZSdcdFx0XHQnXFxlODk0Jyxcblx0J2xvb3AnXHRcdFx0XHQnXFxlODk1Jyxcblx0J2Fycm93cy1jY3cnXHRcdCdcXGU4OTEnLFxuXHQnbGlnaHQtZG93bidcdFx0J1xcZTg2NScsXG5cdCdsaWdodC11cCdcdFx0XHQnXFxlODY2Jyxcblx0J211dGUnXHRcdFx0XHQnXFxlODVmJyxcblx0J3NvdW5kJ1x0XHRcdFx0J1xcZTg2MCcsXG5cdCdiYXR0ZXJ5J1x0XHRcdCdcXGU4YTknLFxuXHQnc2VhcmNoJ1x0XHRcdCdcXGU4MDMnLFxuXHQna2V5J1x0XHRcdFx0J1xcZThkNycsXG5cdCdsb2NrJ1x0XHRcdFx0J1xcZTgyNCcsXG5cdCdsb2NrLW9wZW4nXHRcdFx0J1xcZTgyNScsXG5cdCdiZWxsJ1x0XHRcdFx0J1xcZTgzZCcsXG5cdCdib29rbWFyaydcdFx0XHQnXFxlODI4Jyxcblx0J2xpbmsnXHRcdFx0XHQnXFxlODIyJyxcblx0J2JhY2snXHRcdFx0XHQnXFxlODIwJyxcblx0J2ZsYXNobGlnaHQnXHRcdCdcXGU4MDQnLFxuXHQnY2hhcnQtYXJlYSdcdFx0J1xcZThjNycsXG5cdCdjbG9jaydcdFx0XHRcdCdcXGU4NjInLFxuXHQncm9ja2V0J1x0XHRcdCdcXGU4ZGQnLFxuXHQnYmxvY2snXHRcdFx0XHQnXFxlODY4J1xuKTtcblxuLy8gRnVuY3Rpb24gdG8gbWF0Y2ggbmFtZSB0byB1bmljb2RlIGNoYXJhY3RlclxuQGZ1bmN0aW9uIG1hdGNoKCRoYXlzdGFjaywgJG5lZWRsZSkge1xuICAgIEBlYWNoICRpdGVtIGluICRoYXlzdGFjayB7XG4gICAgICAgICRpbmRleDogaW5kZXgoJGl0ZW0sICRuZWVkbGUpO1xuICAgICAgICBAaWYgJGluZGV4IHsgXG4gICAgICAgICAgICAkcmV0dXJuOiBpZigkaW5kZXggPT0gMSwgMiwgJGluZGV4KTtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCRpdGVtLCAkcmV0dXJuKTsgXG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiBmYWxzZTtcbn1cblxuLypcbiogXHRNYWluIEljb24gbWl4aW5cbipcbiogXHRCYXNlZCBvbiBodHRwOi8vamF5ZGVuc2VyaWMuY29tL2Jsb2cvZnVuLXdpdGgtc2Fzcy1hbmQtZm9udC1pY29ucyBcbipcbipcdGUuZy4gXG4qXHRAaW5jbHVkZSBpY29uKCdwaG9uZScsICdiZWZvcmUnLCB0cnVlLCAkbGFyZ2UsICR0b3A6LTNweCwgJG1hcmdpbjo1cHgpO1xuKiBcdEBpbmNsdWRlIGljb24oJ3Bob25lJywgJ2JlZm9yZScsIHRydWUsICRsYXJnZSwgJHRvcDotM3B4LCAkbWFyZ2luOjVweCkge1xuKlx0XHRjb2xvcjogYmxhY2s7XG4qIFx0fVxuKi9cbkBtaXhpbiBpY29uKCRpY29uOiBmYWxzZSwgJHBvc2l0aW9uOiAnYmVmb3JlJywgJHN0eWxlczogdHJ1ZSwgJHNpemU6IGF1dG8sICRtYXJnaW46IGF1dG8sICRjb2xvcjogYXV0bywgJHRvcDogYXV0bywgJHNoYWRvdzogbm9uZSkge1xuICAgIC8vIEVpdGhlciBhIDpiZWZvcmUgb3IgOmFmdGVyIHBzZXVkby1lbGVtZW50LCBkZWZhdWx0aW5nIHRvIDpiZWZvcmVcbiAgICAmOiN7JHBvc2l0aW9ufSB7XG4gICAgXHRcbiAgICBcdFxuICAgICAgICBAaWYgJGljb24ge1xuICAgICAgICAgICAgIC8vIEljb24gaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAgICAgICAgICBjb250ZW50OiBtYXRjaCgkaWNvbnMsICRpY29uKTtcbiAgICAgICAgfVxuICAgICAgICBcblx0XHRAaWYgJHN0eWxlcyB7XG5cdFx0XHQvLyBTdXBwb3J0aXZlIGljb24gc3R5bGVzIGhhdmUgYmVlbiBzcGVjaWZpZWRcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0Ly92ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0dGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhaW1wb3J0YW50O1xuXHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQgIWltcG9ydGFudDtcblx0XHRcdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGUgIWltcG9ydGFudDtcblx0XHRcdHNwZWFrOiBub25lO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250OiB7XG4gICAgICAgICAgICAgICAgc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICB2YXJpYW50OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgZmFtaWx5OiBcImVudHlwb1wiO1xuICAgICAgICAgICAgICAgIHNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgQGlmICRzaXplICE9IGF1dG8ge1xuXHRcdFx0XHRcdHNpemU6ICRzaXplO1xuXHRcdFx0XHR9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQGlmICRtYXJnaW4gIT0gYXV0byB7XG4gICAgICAgICAgICBcdEBpZiAkcG9zaXRpb24gPT0gJ2JlZm9yZScge1xuXHQgICAgICAgICAgICBcdG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgICAgICAgICAgIFx0fSBAZWxzZSBpZiAkcG9zaXRpb24gPT0gJ2FmdGVyJ3tcblx0ICAgICAgICAgICAgXHRtYXJnaW4tbGVmdDogJG1hcmdpbjtcbiAgICAgICAgICAgIFx0fVxuXHRcdFx0ICAgXG5cdFx0ICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQGlmICR0b3AgIT0gYXV0byB7XG5cdFx0ICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdCAgICAgIHRvcDogJHRvcDtcblx0XHQgICAgfVxuXHRcdCAgICBcblx0XHQgICAgQGlmICRjb2xvciAhPSBhdXRvIHtcblx0XHQgICAgICBjb2xvcjogJGNvbG9yO1xuXHRcdCAgICB9XG5cdFx0ICAgIFxuXHRcdCAgICBAaWYgJHNoYWRvdyAhPSBub25lIHtcblx0XHQgICAgICB0ZXh0LXNoYWRvdzogJHNoYWRvdztcblx0XHQgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICAvLyBJbmNsdWRlIGFueSBleHRyYSBydWxlcyBzdXBwbGllZCBmb3IgdGhlIHBzZXVkby1lbGVtZW50XG4gICAgICAgIEBjb250ZW50O1xuICAgICBcbiAgICB9XG59IiwiLypcbiAqIFNvY2lhbCBOZXR3b3JrIENvbG91cnNcbiAqXG4gKiBodHRwOi8vZGVzaWducGllY2VzLmNvbS8yMDEyLzEyL3NvY2lhbC1tZWRpYS1jb2xvdXJzLWhleC1hbmQtcmdiL1xuICovXG4kdHdpdHRlcjpcdFx0XHQjMDBhY2VkO1xuJGZhY2Vib29rOiBcdFx0XHQjM2I1OTk4O1xuJGxpbmtlZGluOlx0XHRcdCMwMDdiYjY7XG4kZ29vZ2xlOlx0XHRcdCNkZDRiMzk7XG4keW91dHViZTpcdFx0XHQjYmIwMDAwO1xuJHBpbnRlcmVzdDogXHRcdCNjYjIwMjc7XG4kdHVtYmxyOlx0XHRcdCMzMjUwNmQ7XG4kZmxpY2tyOlx0XHRcdCNmZjAwODQ7XG4kaW5zdGFncmFtOlx0XHRcdCM1MTdmYTQ7XG4kdmltZW86XHRcdFx0XHQjYWFkNDUwO1xuJGZvdXJzcXVhcmU6IFx0XHQjMDA3MmIxO1xuXG4vKlxuICogQnJhbmQgQ29sb3Vyc1xuICovXG4kbGlnaHQtZ3JleTogICNGOUY5Rjk7XG4kbWVkaXVtLWdyZXk6IGRhcmtlbigkbGlnaHQtZ3JleSwgMjAlKTtcbiRkYXJrLWdyZXk6ICAgIzMzMzMzMztcbiR3aGl0ZTogICAgICAgI2ZmZjtcbiRsaWdodC1yZWQ6ICAgI0U1NTU0RTtcbiR0dXJxdW9pc2U6ICAgIzFEOUZBMztcbiR5ZWxsb3c6ICAgICAgI0ZGRTIzMDtcbiRkYXJrLW9yYW5nZTogI0YzNzYzQTtcblxuLy8gR2VuZXJhbCBjb2xvdXJzXG4kaGVhZGVyLWJnOiAgICAgICAgICR3aGl0ZTtcbiRib2R5LWJnOiAgICAgICAgICAgI2ZmZiB1cmwoaW1hZ2VzL2JvZHktYmcucG5nKSBib3R0b20gcmVwZWF0LXg7XG4kZm9vdGVyLXdpZGdldHMtYmc6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI0YzNzYzQSAyJSwgI0U2OUEyRSAzNSUsICNFNjlBMkUgNjUlLCAjRjI3QTNBIDk4JSk7XG4kZm9vdGVyLWJnOiAgICAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgI0YzNzYzQSAyJSwgbGlnaHRlbigjRTY5QTJFLCA1JSkgMzUlLCBsaWdodGVuKCNFNjlBMkUsIDUlKSA2NSUsICNGMjdBM0EgOTglKTtcbiRsaW5rLWNvbG91cjogICAgICAgJGRhcmstb3JhbmdlO1xuXG4vLyBQcmltYXJ5IE5hdlxuJHByaW1hcnktbmF2LWJnOiAgICAgICAgICR0dXJxdW9pc2U7XG4kcHJpbWFyeS1uYXYtdGV4dDogICAgICAgI2ZmZjtcbiRwcmltYXJ5LW5hdi10ZXh0LWhvdmVyOiBkYXJrZW4oI2ZmZiwgNSUpO1xuXG4kc3VibWVudS1iZzogJHR1cnF1b2lzZTtcbiRzdWJtZW51LXRleHQ6ICRwcmltYXJ5LW5hdi10ZXh0O1xuJHN1Ym1lbnUtYWN0aXZlLXRleHQ6IGxpZ2h0ZW4oJHR1cnF1b2lzZSwgMzAlKTtcblxuLypcbiogQmFja2dyb3VuZHNcbiovXG5cbi5ldm9sdmUtZ3JhZGllbnQge1xuXHQvL2JhY2tncm91bmQ6IHVybCgpIGJvdHRvbSBjZW50ZXIgcmVwZWF0LXg7XG5cdGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgdG9wIGxlZnQsICNmZmYsIHJnYmEoMjU1LDI1NSwyNTUsIDApIDcwJSk7XG59XG5cbi5zaXRlLWlubmVyIHtcblx0Ly9iYWNrZ3JvdW5kOiB1cmwoKSBib3R0b20gY2VudGVyIHJlcGVhdC14O1xuXHRiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL3RyZWUtb2YtbGlmZS5wbmcpIGJvdHRvbSByaWdodCBuby1yZXBlYXQ7XG59XG5cbi5zd29vc2gge1xuXHQvL2JhY2tncm91bmQ6IHVybChpbWFnZXMvc3dvb3NoLnBuZykgYm90dG9tIGNlbnRlciBuby1yZXBlYXQ7XG5cdG1hcmdpbi10b3A6IC02NXB4O1xuXHRoZWlnaHQ6IDcwcHg7XG5cdGJvcmRlcjogbm9uZTtcblx0ei1pbmRleDogOTk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRtYW1hLWJlYXIpIHtcblx0XHRtYXJnaW4tdG9wOiAtNDBweDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyb3RoZXItYmVhcikge1xuXHRcdG1hcmdpbi10b3A6IC0yMHB4O1xuXHR9XG59XG5cbi5zbGlkZXNob3cge1xuXHR6LWluZGV4OiAxO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cblxuLmJnLWxpZ2h0IHtcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjRkJFMzUxIDElLCAjRkFFQThDIDI5JSwgI0ZBRUE4QyA3MCUsICNGRkUyMzAgOTglKTs7XG5cdG9wYWNpdHk6IDAuODtcblxuXHQuZmwtY29udGVudC1yb3cge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuLmJnLWxpZ2h0LWdyZXkge1xuXHRiYWNrZ3JvdW5kOiBkYXJrZW4oJGxpZ2h0LWdyZXksIDEuNSUpO1xufVxuXG4uYmctZGFyayB7XG5cdGJhY2tncm91bmQ6ICRkYXJrLWdyZXk7XG59XG5cbi5iZy1vcmFuZ2Uge1xuXHRiYWNrZ3JvdW5kOiAkZGFyay1vcmFuZ2U7XG5cdGNvbG9yOiAjZmZmO1xuXG5cdGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUge1xuXHRcdGNvbG9yOiAjZmZmO1xuXHR9XG59XG5cbi5iZy10dXJxdW9pc2UsXG4uYmctbWVkaXVtIHtcblx0YmFja2dyb3VuZDogJHR1cnF1b2lzZTtcblx0Y29sb3I6ICNmZmY7XG5cblx0LmZsLWJ1dHRvbiB7XG5cdFx0YmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50O1xuXHRcdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXG5cdFx0LmZsLWJ1dHRvbi10ZXh0IHtcblx0XHRcdGNvbG9yOiAjMzMzMzMzICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0aDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSB7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdH1cblxuXG5cdGJ1dHRvbixcblx0aW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcblx0aW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuXHRpbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuXHQuYnV0dG9uIHtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdGNvbG9yOiAjMzMzO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdFx0Y29sb3I6ICMzMzM7XG5cdFx0fVxuXHR9XG59XG5cblxuXG4uYmcteWVsbG93IHtcblx0YmFja2dyb3VuZDogJHllbGxvdztcblx0cGFkZGluZzogJG1lZDtcbn1cblxuLmRyb3Atc2hhZG93IHtcblx0Ym94LXNoYWRvdzogcmdiYSgwLDAsMCwwLjIpIDBweCAycHggNXB4O1xufVxuXG5cbi8qXG4gKiBCdXR0b25zXG4gKi9cbi5idXR0b24ge1xuXHQmLnByaW1hcnkge1xuXHRcdGJhY2tncm91bmQ6ICR0dXJxdW9pc2U7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdH1cblxuXHQmLnNlY29uZGFyeSB7XG5cdCBcdGJhY2tncm91bmQ6ICRsaWdodC1ncmV5O1xuXHQgXHRjb2xvcjogJGRhcmstZ3JleTtcblx0fVxuXG5cdCYub3V0bGluZSB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JleTtcblx0XHRjb2xvcjogJGRhcmstZ3JleTtcblx0fVxufVxuXG4uZmwtYnV0dG9uIHtcblx0Ym9yZGVyOiAycHggc29saWQgJGRhcmstb3JhbmdlICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cblx0LmZsLWJ1dHRvbi10ZXh0IHtcblx0XHRjb2xvcjogJGRhcmstb3JhbmdlICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLnByaW1hcnktYnV0dG9uIHtcblx0LmZsLWJ1dHRvbiB7XG5cdFx0YmFja2dyb3VuZDogJGRhcmstb3JhbmdlICFpbXBvcnRhbnQ7XG5cdFx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cblx0XHQuZmwtYnV0dG9uLXRleHQge1xuXHRcdFx0Y29sb3I6ICNmZmYgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJEJyZWFrcG9pbnQtU2V0dGluZ3M6IChcbiAgJ2RlZmF1bHQgbWVkaWEnOiBhbGwsXG4gICdkZWZhdWx0IGZlYXR1cmUnOiBtaW4td2lkdGgsXG4gICdkZWZhdWx0IHBhaXInOiB3aWR0aCxcblxuICAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnOiBmYWxzZSxcbiAgJ3RvIGVtcyc6IGZhbHNlLFxuICAndHJhbnNmb3JtIHJlc29sdXRpb25zJzogdHJ1ZSxcblxuICAnbm8gcXVlcmllcyc6IGZhbHNlLFxuICAnbm8gcXVlcnkgZmFsbGJhY2tzJzogZmFsc2UsXG5cbiAgJ2Jhc2UgZm9udCBzaXplJzogMTZweCxcblxuICAnbGVnYWN5IHN5bnRheCc6IGZhbHNlXG4pO1xuXG4kYnJlYWtwb2ludDogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9zZXR0aW5nc1wiO1xuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvaGVscGVycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L3BhcnNlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XG5cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcmVzcG9uZC10byc7XG5cbkBpbXBvcnQgXCJicmVha3BvaW50L2xlZ2FjeS1zZXR0aW5nc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbGVnYWN5LXNldHRpbmdzLXdhcm5pbmc7XG5cbiAgLy8gUmVzZXQgY29udGV4dHNcbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG5cbiAgJGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnQoJHF1ZXJ5LCBmYWxzZSk7XG5cbiAgJHF1ZXJ5LXN0cmluZzogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5Jyk7XG4gICRxdWVyeS1mYWxsYmFjazogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2ZhbGxiYWNrJyk7XG5cbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2NvbnRleHQgaG9sZGVyJykgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5IGNvdW50JykgIWdsb2JhbDtcblxuICAvLyBBbGxvdyBmb3IgYW4gYXMtbmVlZGVkIG92ZXJyaWRlIG9yIHVzYWdlIG9mIG5vIHF1ZXJ5IGZhbGxiYWNrLlxuICBAaWYgJG5vLXF1ZXJ5ICE9IGZhbHNlIHtcbiAgICAkcXVlcnktZmFsbGJhY2s6ICRuby1xdWVyeTtcbiAgfVxuXG4gIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gIH1cblxuICAvLyBQcmludCBPdXQgUXVlcnkgU3RyaW5nXG4gIEBpZiBub3QgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSB7XG4gICAgQG1lZGlhICN7JHF1ZXJ5LXN0cmluZ30ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSAhPSBmYWxzZSBvciBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpID09IHRydWUge1xuXG4gICAgJHR5cGU6IHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpKTtcbiAgICAkcHJpbnQ6IGZhbHNlO1xuXG4gICAgQGlmICgkdHlwZSA9PSAnYm9vbCcpIHtcbiAgICAgICRwcmludDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdsaXN0Jykge1xuICAgICAgQGVhY2ggJHdyYXBwZXIgaW4gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSAkd3JhcHBlciB7XG4gICAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV3JpdGUgRmFsbGJhY2tcbiAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkgYW5kICgkcHJpbnQgPT0gdHJ1ZSkge1xuICAgICAgJHR5cGUtZmFsbGJhY2s6IHR5cGUtb2YoJHF1ZXJ5LWZhbGxiYWNrKTtcblxuICAgICAgQGlmICgkdHlwZS1mYWxsYmFjayAhPSAnYm9vbCcpIHtcbiAgICAgICAgI3skcXVlcnktZmFsbGJhY2t9ICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xufVxuXG5cbkBtaXhpbiBtcSgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAZnVuY3Rpb24gbXMtcm91bmQtcHgoJFJlc3VsdCkge1xuICBAaWYgdW5pdCgkUmVzdWx0KSA9PSAncHgnIHtcbiAgICBAcmV0dXJuIHJvdW5kKCRSZXN1bHQpO1xuICB9XG4gIEByZXR1cm4gJFJlc3VsdDtcbn0iLCIvKiAjIyBUeXBvZ3JhcGhpY2FsIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuYm9keSB7XG5cdGJhY2tncm91bmQ6ICRib2R5LWJnO1xuXHRjb2xvcjogIzMzMztcblx0Zm9udC1mYW1pbHk6IExhdG8sIHNhbnMtc2VyaWY7XG5cdGZvbnQtc2l6ZTogMThweDtcblx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0bGluZS1oZWlnaHQ6IDEuNjI1O1xuXHRtYXJnaW46IDA7XG59XG5cbmEsXG5idXR0b24sXG5pbnB1dDpmb2N1cyxcbmlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLFxudGV4dGFyZWE6Zm9jdXMsXG4uYnV0dG9uLFxuLmdhbGxlcnkgaW1nIHtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLWluLW91dDtcblx0LW1vei10cmFuc2l0aW9uOiAgICBhbGwgMC4xcyBlYXNlLWluLW91dDtcblx0LW1zLXRyYW5zaXRpb246ICAgICBhbGwgMC4xcyBlYXNlLWluLW91dDtcblx0LW8tdHJhbnNpdGlvbjogICAgICBhbGwgMC4xcyBlYXNlLWluLW91dDtcblx0dHJhbnNpdGlvbjogICAgICAgICBhbGwgMC4xcyBlYXNlLWluLW91dDtcbn1cblxuOjotbW96LXNlbGVjdGlvbiB7XG5cdGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG5cdGNvbG9yOiAjZmZmO1xufVxuXG46OnNlbGVjdGlvbiB7XG5cdGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG5cdGNvbG9yOiAjZmZmO1xufVxuXG5hIHtcblx0Y29sb3I6ICRsaW5rLWNvbG91cjtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5hOmhvdmVyIHtcblx0Y29sb3I6ICMzMzM7XG59XG5cbnAge1xuXHRtYXJnaW46IDAgMCAyOHB4O1xuXHRwYWRkaW5nOiAwO1xufVxuXG5vbCxcbnVsIHtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG5saSB7XG5cdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuYixcbnN0cm9uZyB7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmJsb2NrcXVvdGUsXG5jaXRlLFxuZW0sXG5pIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5ibG9ja3F1b3RlIHtcblx0bWFyZ2luOiA0MHB4O1xufVxuXG5ibG9ja3F1b3RlOjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcMjAxQ1wiO1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiAzMHB4O1xuXHRoZWlnaHQ6IDA7XG5cdGxlZnQ6IC0yMHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRvcDogLTEwcHg7XG59XG5cblxuLyogIyMgSGVhZGluZ3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuXHRjb2xvcjogIzMzMztcblx0Zm9udC1mYW1pbHk6IExhdG8sIHNhbnMtc2VyaWY7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdG1hcmdpbjogMCAwIDEwcHg7XG59XG5cbmgxIHtcblx0Zm9udC1zaXplOiAzNnB4O1xufVxuXG5oMiB7XG5cdGZvbnQtc2l6ZTogMzBweDtcbn1cblxuaDMge1xuXHRmb250LXNpemU6IDI0cHg7XG59XG5cbmg0IHtcblx0Zm9udC1zaXplOiAyMHB4O1xufVxuXG5oNSB7XG5cdGZvbnQtc2l6ZTogMThweDtcbn1cblxuaDYge1xuXHRmb250LXNpemU6IDE2cHg7XG59XG5cbi8qICMjIE9iamVjdHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5lbWJlZCxcbmlmcmFtZSxcbmltZyxcbm9iamVjdCxcbnZpZGVvLFxuLndwLWNhcHRpb24ge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cbmltZyB7XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmZlYXR1cmVkLWNvbnRlbnQgaW1nLFxuLmdhbGxlcnkgaW1nIHtcblx0d2lkdGg6IGF1dG87XG59XG4iLCIvKiBSZXNwb25zaXZlIE1lbnVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ucmVzcG9uc2l2ZS1tZW51LWljb24ge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdG1hcmdpbi1ib3R0b206IC0xcHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnJlc3BvbnNpdmUtbWVudS1pY29uOjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZjMzM1wiO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZvbnQ6IG5vcm1hbCAyMHB4LzEgJ2Rhc2hpY29ucyc7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHQvKnBhZGRpbmc6IDEwcHg7Ki9cblx0cGFkZGluZzogMTBweCA1cHggMTBweCAxMHB4O1xufVxuLm5hdi1wcmltYXJ5IC5yZXNwb25zaXZlLW1lbnUtaWNvbjo6YmVmb3JlIHtcblx0Y29sb3I6ICRwcmltYXJ5LW5hdi10ZXh0O1xufVxuXG4ubWVudS10ZXh0IHtcblx0Y29sb3I6ICRwcmltYXJ5LW5hdi10ZXh0O1xuXHRsaW5lLWhlaWdodDogMTtcblx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0bWFyZ2luLXRvcDogMTFweDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuIiwiLyogIyBTdHJ1Y3R1cmUgYW5kIExheW91dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAjIyBTaXRlIENvbnRhaW5lcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uc2l0ZS1pbm5lciAud3JhcCxcbi5zaXRlLWhlYWRlciAud3JhcCxcbi53cmFwIHtcblx0bWFyZ2luOiAwIGF1dG87XG5cdG1heC13aWR0aDogMTIwMHB4O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGF1bnR5LWJlYXIpIHtcblx0XHRtYXgtd2lkdGg6IDExNDBweDtcblx0XHRwYWRkaW5nLWxlZnQ6ICRsYXJnZTtcblx0XHRwYWRkaW5nLXJpZ2h0OiAkbGFyZ2U7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRtYW1hLWJlYXIpIHtcblx0XHRtYXgtd2lkdGg6IDk2MHB4O1xuXHRcdHBhZGRpbmctbGVmdDogJGxhcmdlO1xuXHRcdHBhZGRpbmctcmlnaHQ6ICRsYXJnZTtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyb3RoZXItYmVhcikge1xuXHRcdG1heC13aWR0aDogNzIwcHg7XG5cdFx0cGFkZGluZy1sZWZ0OiAkbGFyZ2U7XG5cdFx0cGFkZGluZy1yaWdodDogJGxhcmdlO1xuXHR9XG5cbn1cblxuLnNpdGUtaGVhZGVyIC53cmFwIHtcblx0cGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy10b3A6ICRsYXJnZSAhaW1wb3J0YW50O1xuXG5cdC5oZWFkZXItd2lkZ2V0LWFyZWEge1xuXHRcdG1hcmdpbi10b3A6ICRsYXJnZTtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHR3aWR0aDogMzAwcHggIWltcG9ydGFudDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyb3RoZXItYmVhcikge1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0fVxuXHR9XG59XG5cbi5zaXRlLWlubmVyIHtcblx0Y2xlYXI6IGJvdGg7XG5cdC8vcGFkZGluZy10b3A6IDQwcHg7XG59XG5cbi8qICMjIENvbHVtbiBXaWR0aHMgYW5kIFBvc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qICMjIyBXcmFwcGluZyBkaXYgZm9yIC5jb250ZW50IGFuZCAuc2lkZWJhci1wcmltYXJ5ICovXG5cbi5jb250ZW50LXNpZGViYXItc2lkZWJhciAuY29udGVudC1zaWRlYmFyLXdyYXAsXG4uc2lkZWJhci1jb250ZW50LXNpZGViYXIgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuLnNpZGViYXItc2lkZWJhci1jb250ZW50IC5jb250ZW50LXNpZGViYXItd3JhcCB7XG5cdHdpZHRoOiA5ODBweDtcbn1cblxuLmNvbnRlbnQtc2lkZWJhci1zaWRlYmFyIC5jb250ZW50LXNpZGViYXItd3JhcCB7XG5cdGZsb2F0OiBsZWZ0O1xufVxuXG4uc2lkZWJhci1jb250ZW50LXNpZGViYXIgLmNvbnRlbnQtc2lkZWJhci13cmFwLFxuLnNpZGViYXItc2lkZWJhci1jb250ZW50IC5jb250ZW50LXNpZGViYXItd3JhcCB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLyogIyMjIENvbnRlbnQgKi9cblxuLmNvbnRlbnQge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHdpZHRoOiA4MDBweDtcbn1cblxuLmNvbnRlbnQtc2lkZWJhciAuY29udGVudCxcbi5jb250ZW50LXNpZGViYXItc2lkZWJhciAuY29udGVudCxcbi5zaWRlYmFyLWNvbnRlbnQtc2lkZWJhciAuY29udGVudCB7XG5cdGZsb2F0OiBsZWZ0O1xufVxuXG4uY29udGVudC1zaWRlYmFyLXNpZGViYXIgLmNvbnRlbnQsXG4uc2lkZWJhci1jb250ZW50LXNpZGViYXIgLmNvbnRlbnQsXG4uc2lkZWJhci1zaWRlYmFyLWNvbnRlbnQgLmNvbnRlbnQge1xuXHR3aWR0aDogNTgwcHg7XG59XG5cbi5mdWxsLXdpZHRoLWNvbnRlbnQgLmNvbnRlbnQge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLyogIyMjIFByaW1hcnkgU2lkZWJhciAqL1xuXG4uc2lkZWJhci1wcmltYXJ5IHtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHR3aWR0aDogMzYwcHg7XG59XG5cbi5zaWRlYmFyLWNvbnRlbnQgLnNpZGViYXItcHJpbWFyeSxcbi5zaWRlYmFyLXNpZGViYXItY29udGVudCAuc2lkZWJhci1wcmltYXJ5IHtcblx0ZmxvYXQ6IGxlZnQ7XG59XG5cbi8qICMjIyBTZWNvbmRhcnkgU2lkZWJhciAqL1xuXG4uc2lkZWJhci1zZWNvbmRhcnkge1xuXHRmbG9hdDogbGVmdDtcblx0d2lkdGg6IDE4MHB4O1xufVxuXG4uY29udGVudC1zaWRlYmFyLXNpZGViYXIgLnNpZGViYXItc2Vjb25kYXJ5IHtcblx0ZmxvYXQ6IHJpZ2h0O1xufVxuXG4vKiAjIyBDb2x1bW4gQ2xhc3Nlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBMaW5rOiBodHRwOi8vdHdpdHRlci5naXRodWIuaW8vYm9vdHN0cmFwL2Fzc2V0cy9jc3MvYm9vdHN0cmFwLXJlc3BvbnNpdmUuY3NzICovXG5cbi5maXZlLXNpeHRocyxcbi5mb3VyLXNpeHRocyxcbi5vbmUtZm91cnRoLFxuLm9uZS1oYWxmLFxuLm9uZS1zaXh0aCxcbi5vbmUtdGhpcmQsXG4udGhyZWUtZm91cnRocyxcbi50aHJlZS1zaXh0aHMsXG4udHdvLWZvdXJ0aHMsXG4udHdvLXNpeHRocyxcbi50d28tdGhpcmRzIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdG1hcmdpbi1sZWZ0OiAyLjU2NDEwMjU2NDEwMjU2NCU7XG59XG5cbi5vbmUtaGFsZixcbi50aHJlZS1zaXh0aHMsXG4udHdvLWZvdXJ0aHMge1xuXHR3aWR0aDogNDguNzE3OTQ4NzE3OTQ4NzE1JTtcbn1cblxuLm9uZS10aGlyZCxcbi50d28tc2l4dGhzIHtcblx0d2lkdGg6IDMxLjYyMzkzMTYyMzkzMTYyNSU7XG59XG5cbi5mb3VyLXNpeHRocyxcbi50d28tdGhpcmRzIHtcblx0d2lkdGg6IDY1LjgxMTk2NTgxMTk2NTgyJTtcbn1cblxuLm9uZS1mb3VydGgge1xuXHR3aWR0aDogMjMuMDc2OTIzMDc2OTIzMDc3JTtcbn1cblxuLnRocmVlLWZvdXJ0aHMge1xuXHR3aWR0aDogNzQuMzU4OTc0MzU4OTc0MzYlO1xufVxuXG4ub25lLXNpeHRoIHtcblx0d2lkdGg6IDE0LjUyOTkxNDUyOTkxNDUzJTtcbn1cblxuLmZpdmUtc2l4dGhzIHtcblx0d2lkdGg6IDgyLjkwNTk4MjkwNTk4MjkxJTtcbn1cblxuLmZpcnN0IHtcblx0Y2xlYXI6IGJvdGg7XG5cdG1hcmdpbi1sZWZ0OiAwO1xufVxuIiwiLyogIyMgRm9ybXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0Y29sb3I6ICMzMzM7XG5cdGZvbnQtc2l6ZTogMThweDtcblx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0cGFkZGluZzogMTZweDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbmlucHV0OmZvY3VzLFxudGV4dGFyZWE6Zm9jdXMge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRvdXRsaW5lOiBub25lO1xufVxuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwiaW1hZ2VcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuXHR3aWR0aDogYXV0bztcbn1cblxuOjotbW96LXBsYWNlaG9sZGVyIHtcblx0Y29sb3I6ICMzMzM7XG5cdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdG9wYWNpdHk6IDE7XG59XG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG5cdGNvbG9yOiAjMzMzO1xuXHRmb250LXdlaWdodDogMzAwO1xufVxuXG5idXR0b24sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbi5idXR0b24ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1vcmFuZ2U7XG5cdGJvcmRlcjogbm9uZTtcblx0Y29sb3I6ICNmZmY7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXdlaWdodDogMzAwO1xuXHRwYWRkaW5nOiAxNnB4IDI0cHg7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdHdpZHRoOiBhdXRvO1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5mb290ZXItd2lkZ2V0cyBidXR0b24sXG4uZm9vdGVyLXdpZGdldHMgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbi5mb290ZXItd2lkZ2V0cyBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4uZm9vdGVyLXdpZGdldHMgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbi5mb290ZXItd2lkZ2V0cyAuYnV0dG9uIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2U1NTU0ZTtcblx0Y29sb3I6ICNmZmY7XG59XG5cbmJ1dHRvbjpob3ZlcixcbmlucHV0OmhvdmVyW3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dDpob3Zlclt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dDpob3Zlclt0eXBlPVwic3VibWl0XCJdLFxuLmJ1dHRvbjpob3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNlNTU1NGU7XG5cdGNvbG9yOiAjZmZmO1xufVxuXG4uZW50cnktY29udGVudCAuYnV0dG9uOmhvdmVyIHtcblx0Y29sb3I6ICNmZmY7XG59XG5cbi5mb290ZXItd2lkZ2V0cyBidXR0b246aG92ZXIsXG4uZm9vdGVyLXdpZGdldHMgaW5wdXQ6aG92ZXJbdHlwZT1cImJ1dHRvblwiXSxcbi5mb290ZXItd2lkZ2V0cyBpbnB1dDpob3Zlclt0eXBlPVwicmVzZXRcIl0sXG4uZm9vdGVyLXdpZGdldHMgaW5wdXQ6aG92ZXJbdHlwZT1cInN1Ym1pdFwiXSxcbi5mb290ZXItd2lkZ2V0cyAuYnV0dG9uOmhvdmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0Y29sb3I6ICMzMzM7XG59XG5cbi5idXR0b24ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKiAjIyBUYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG50YWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdGJvcmRlci1zcGFjaW5nOiAwO1xuXHRsaW5lLWhlaWdodDogMjtcblx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbnRib2R5IHtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG59XG5cbnRkLFxudGgge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG50ZCB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xuXHRwYWRkaW5nOiA2cHggMDtcbn1cblxudGgge1xuXHRmb250LXdlaWdodDogNDAwO1xufVxuIiwiLyogIyMgR2FsbGVyeVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5nYWxsZXJ5IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmdhbGxlcnktaXRlbSB7XG5cdGZsb2F0OiBsZWZ0O1xuXHRtYXJnaW46IDAgMCAyOHB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtMiAuZ2FsbGVyeS1pdGVtIHtcblx0d2lkdGg6IDUwJTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy0zIC5nYWxsZXJ5LWl0ZW0ge1xuXHR3aWR0aDogMzMlO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTQgLmdhbGxlcnktaXRlbSB7XG5cdHdpZHRoOiAyNSU7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtNSAuZ2FsbGVyeS1pdGVtIHtcblx0d2lkdGg6IDIwJTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy02IC5nYWxsZXJ5LWl0ZW0ge1xuXHR3aWR0aDogMTYuNjY2NiU7XG59XG5cbi5nYWxsZXJ5LWNvbHVtbnMtNyAuZ2FsbGVyeS1pdGVtIHtcblx0d2lkdGg6IDE0LjI4NTclO1xufVxuXG4uZ2FsbGVyeS1jb2x1bW5zLTggLmdhbGxlcnktaXRlbSB7XG5cdHdpZHRoOiAxMi41JTtcbn1cblxuLmdhbGxlcnktY29sdW1ucy05IC5nYWxsZXJ5LWl0ZW0ge1xuXHR3aWR0aDogMTEuMTExMSU7XG59XG5cbi5nYWxsZXJ5IGltZyB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cdGhlaWdodDogYXV0bztcblx0cGFkZGluZzogNHB4O1xufVxuXG4uZ2FsbGVyeSBpbWc6aG92ZXIge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xufVxuIiwiLyogIyBDb21tb24gQ2xhc3Nlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAjIyBBdmF0YXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYXZhdGFyIHtcblx0ZmxvYXQ6IGxlZnQ7XG59XG5cbi5hbGlnbmxlZnQgLmF2YXRhcixcbi5hdXRob3ItYm94IC5hdmF0YXIge1xuXHRtYXJnaW4tcmlnaHQ6IDI0cHg7XG59XG5cbi5hbGlnbnJpZ2h0IC5hdmF0YXIge1xuXHRtYXJnaW4tbGVmdDogMjRweDtcbn1cblxuLmNvbW1lbnQgLmF2YXRhciB7XG5cdG1hcmdpbjogMCAxNnB4IDI0cHggMDtcbn1cblxuLyogIyMgR2VuZXNpc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5icmVhZGNydW1iIHtcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmFyY2hpdmUtZGVzY3JpcHRpb24sXG4uYXV0aG9yLWJveCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0cGFkZGluZzogNDBweDtcbn1cblxuLmF1dGhvci1ib3gtdGl0bGUge1xuXHRmb250LXNpemU6IDE2cHg7XG5cdG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLmFyY2hpdmUtZGVzY3JpcHRpb24gcDpsYXN0LWNoaWxkLFxuLmF1dGhvci1ib3ggcDpsYXN0LWNoaWxkIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyogIyMgU2VhcmNoIEZvcm1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uc2VhcmNoLWZvcm0ge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc2l0ZS1oZWFkZXIgLnNlYXJjaC1mb3JtIHtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRtYXJnaW4tdG9wOiAxMnB4O1xufVxuXG4uZW50cnktY29udGVudCAuc2VhcmNoLWZvcm0vKixcbi5zaXRlLWhlYWRlciAuc2VhcmNoLWZvcm0qLyB7XG5cdHdpZHRoOiA1MCU7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51IC5zZWFyY2ggaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbi53aWRnZXRfc2VhcmNoIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRib3JkZXI6IDA7XG5cdGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG5cdGhlaWdodDogMXB4O1xuXHRtYXJnaW46IC0xcHg7XG5cdHBhZGRpbmc6IDA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDFweDtcbn1cblxuLyogVG8gY2xlYXIgc2VhcmNoIGlucHV0IGZpZWxkJ3MgdGV4dCB3aGVuIHRoZSBzZWFyY2ggZmllbGQgZ2V0cyBmb2N1cyAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6dHJhbnNwYXJlbnQ7IH1cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXM6LW1vei1wbGFjZWhvbGRlciB7IGNvbG9yOnRyYW5zcGFyZW50OyB9IC8qIEZpcmVmb3ggMTgtICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzOjotbW96LXBsYWNlaG9sZGVyIHsgY29sb3I6dHJhbnNwYXJlbnQ7IH0gLyogRmlyZWZveCAxOSsgKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6dHJhbnNwYXJlbnQ7IH0gLyogb2xkSUUgOykgKi9cblxuLyogIyMgVGl0bGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmFyY2hpdmUtdGl0bGUge1xuXHRmb250LXNpemU6IDIwcHg7XG59XG5cbi5lbnRyeS10aXRsZSB7XG5cdGZvbnQtc2l6ZTogMzZweDtcbn1cblxuLnBhZ2UgLmVudHJ5LXRpdGxlIHtcblx0bWFyZ2luLWJvdHRvbTogMjRweDtcbn1cblxuLmVudHJ5LXRpdGxlIGEsXG4uc2lkZWJhciAud2lkZ2V0LXRpdGxlIGEge1xuXHRjb2xvcjogIzMzMztcbn1cblxuLmVudHJ5LXRpdGxlIGE6aG92ZXIge1xuXHRjb2xvcjogI2U1NTU0ZTtcbn1cblxuLndpZGdldC10aXRsZSB7XG5cdGZvbnQtc2l6ZTogMThweDtcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLyogIyMgV29yZFByZXNzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuYS5hbGlnbmNlbnRlciBpbWcge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luOiAwIGF1dG87XG59XG5cbmEuYWxpZ25ub25lIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uYWxpZ25sZWZ0IHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5hbGlnbnJpZ2h0IHtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuYS5hbGlnbmxlZnQsXG5hLmFsaWdubm9uZSxcbmEuYWxpZ25yaWdodCB7XG5cdG1heC13aWR0aDogMTAwJTtcbn1cblxuaW1nLmNlbnRlcmVkLFxuLmFsaWduY2VudGVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbjogMCBhdXRvIDI0cHg7XG59XG5cbmltZy5hbGlnbm5vbmUsXG4uYWxpZ25ub25lIHtcblx0bWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuYS5hbGlnbmxlZnQsXG5pbWcuYWxpZ25sZWZ0LFxuLndwLWNhcHRpb24uYWxpZ25sZWZ0IHtcblx0bWFyZ2luOiAwIDI0cHggMjRweCAwO1xufVxuXG5hLmFsaWducmlnaHQsXG5pbWcuYWxpZ25yaWdodCxcbi53cC1jYXB0aW9uLmFsaWducmlnaHQge1xuXHRtYXJnaW46IDAgMCAyNHB4IDI0cHg7XG59XG5cbi53cC1jYXB0aW9uLXRleHQge1xuXHRmb250LXNpemU6IDE0cHg7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmVudHJ5LWNvbnRlbnQgcC53cC1jYXB0aW9uLXRleHQge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uc3RpY2t5IHtcbn1cbiIsIi8qICMgV2lkZ2V0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ud2lkZ2V0IHtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4ud2lkZ2V0IG9sID4gbGkge1xuXHRsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG5cdGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcblx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXHR0ZXh0LWluZGVudDogLTIwcHg7XG59XG5cbi53aWRnZXQgbGkgbGkge1xuXHRib3JkZXI6IG5vbmU7XG5cdG1hcmdpbjogMCAwIDAgMzBweDtcblx0cGFkZGluZzogMDtcbn1cblxuLndpZGdldF9jYWxlbmRhciB0YWJsZSB7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4ud2lkZ2V0X2NhbGVuZGFyIHRkLFxuLndpZGdldF9jYWxlbmRhciB0aCB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogIyMgRmVhdHVyZWQgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5mZWF0dXJlZC1jb250ZW50IC5lbnRyeSB7XG5cdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZjVmNWY1O1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRwYWRkaW5nOiAwIDAgMjRweDtcbn1cblxuLmZvb3Rlci13aWRnZXRzIC5lbnRyeSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzY2Njtcbn1cblxuLmZlYXR1cmVkLWNvbnRlbnQgLmVudHJ5LXRpdGxlIHtcblx0Zm9udC1zaXplOiAyMHB4O1xufSIsIi8qICMgUGx1Z2luc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAjIyBHZW5lc2lzIGVOZXdzIEV4dGVuZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmVuZXdzLXdpZGdldCxcbi5lbmV3cy13aWRnZXQgLndpZGdldC10aXRsZSB7XG5cdGNvbG9yOiAjZmZmO1xufVxuXG4uc2lkZWJhciAud2lkZ2V0LmVuZXdzLXdpZGdldCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG59XG5cbi5lbmV3cy13aWRnZXQgaW5wdXQsXG4uZW5ld3Mtd2lkZ2V0IGlucHV0OmZvY3VzIHtcblx0Ym9yZGVyOiAxcHggc29saWQgIzMzMztcbn1cblxuLmVuZXdzLXdpZGdldCBpbnB1dCB7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0bWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxuLmVuZXdzLXdpZGdldCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2U1NTU0ZTtcblx0Y29sb3I6ICNmZmY7XG5cdG1hcmdpbjogMDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5lbmV3cy13aWRnZXQgaW5wdXQ6aG92ZXJbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdGNvbG9yOiAjMzMzO1xufVxuXG4uZW5ld3MgZm9ybSArIHAge1xuXHRtYXJnaW4tdG9wOiAyNHB4O1xufVxuXG4vKiAjIyBKZXRwYWNrXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuI3dwc3RhdHMge1xuXHRkaXNwbGF5OiBub25lO1xufVxuIiwiLmhvcml6b250YWwtZm9ybSB7XG5cbiAgLmdmb3JtX3dyYXBwZXIsIC5nZm9ybV9maWVsZHMge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgLmdmb3JtX3dyYXBwZXIgLnRvcF9sYWJlbCBpbnB1dC5tZWRpdW0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWFtYS1iZWFyLWFuZC11cCkge1xuICAgIC5nZm9ybV9ib2R5LFxuICAgIC5nZm9ybV9mb290ZXIge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBjbGVhcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5nZm9ybV9ib2R5IHtcbiAgICAgIHdpZHRoOiA2MzBweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLmdmb3JtX2Zvb3RlciB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5nZmllbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBjbGVhcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZy1yaWdodDogMS41JTtcbiAgICB9XG4gIH1cbn1cblxuLnNpZGViYXIge1xuICAuZ2Zvcm1fd3JhcHBlciAudG9wX2xhYmVsIGlucHV0Lm1lZGl1bSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBsaS5nZmllbGQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiLyogVG8gYXZvaWQgbm90aWNlYWJsZSB2ZXJ0aWNhbCBtb3ZlbWVudCBmb3IgaG92ZXIgc3RhdGUgb2YgU29saWxvcXV5J3MgQ29udHJvbCBOYXYgKHR5cGljYWxseSBjaXJjbGVzKSBhbmQgYnhTbGlkZXIncyBsZWZ0IGFuZCByaWdodCBhcnJvd3MgKi9cblxuLnNvbGlsb3F1eS1jb250YWluZXIgLnNvbGlsb3F1eS1jb250cm9sLW5hdiBsaSBhLFxuLnNvbGlsb3F1eS10aGVtZS1jbGFzc2ljIC5zb2xpbG9xdXktcGFnZXItbGluayxcbi5ieC13cmFwcGVyIC5ieC1jb250cm9scy1kaXJlY3Rpb24gYSB7XG5cdC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZTtcblx0LW1vei10cmFuc2l0aW9uOiAgICBub25lO1xuXHQtbXMtdHJhbnNpdGlvbjogICAgIG5vbmU7XG5cdC1vLXRyYW5zaXRpb246ICAgICAgbm9uZTtcblx0dHJhbnNpdGlvbjogICAgICAgICBub25lO1xufVxuXG4vKiBUbyByZW1vdmUgYm90dG9tIGJvcmRlciBmb3IgU29saWxvcXV5IGNvbnRyb2xzICovXG5cbi5lbnRyeS1jb250ZW50IC5zb2xpbG9xdXktY29udHJvbHMtZGlyZWN0aW9uIGEsIC5lbnRyeS1jb250ZW50IGEuc29saWxvcXV5LXBhZ2VyLWxpbmsge1xuXHRib3JkZXItYm90dG9tOiBub25lO1xufVxuIiwiLmV2ZW50LXRpY2tldHMge1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyb3RoZXItYmVhcikge1xuICAgIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhIHtcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvKiAjIFNpdGUgSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5zaXRlLWhlYWRlciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHQvKm1pbi1oZWlnaHQ6IDE2MHB4OyovXG59XG5cbi5zaXRlLWhlYWRlciAud3JhcCB7XG5cdHBhZGRpbmc6IDQwcHggMDtcbn1cblxuLyogIyMgVGl0bGUgQXJlYVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi50aXRsZS1hcmVhIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdHBhZGRpbmc6IDEwcHggMDtcblx0Lyp3aWR0aDogMzYwcHg7Ki9cbn1cblxuLmhlYWRlci1mdWxsLXdpZHRoIC50aXRsZS1hcmVhIHtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5zaXRlLXRpdGxlIHtcblx0Zm9udC1zaXplOiAzMnB4O1xuXHRmb250LXdlaWdodDogNDAwO1xuXHRsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uc2l0ZS10aXRsZSBhLFxuLnNpdGUtdGl0bGUgYTpob3ZlciB7XG5cdGNvbG9yOiAjMzMzO1xufVxuXG4uc2l0ZS10aXRsZSBhIGltZyB7XG5cdHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5oZWFkZXItaW1hZ2UgLnNpdGUtdGl0bGUgPiBhIHtcblx0Ly9iYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL2xvZ28ucG5nKSBuby1yZXBlYXQgbGVmdDtcblx0ZmxvYXQ6IGxlZnQ7XG5cdG1pbi1oZWlnaHQ6IDEwMHB4O1xuXHR3aWR0aDogMjc3cHg7XG59XG5cbi5zaXRlLWRlc2NyaXB0aW9uIHtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXdlaWdodDogMzAwO1xuXHRsaW5lLWhlaWdodDogMS41O1xufVxuXG4uc2l0ZS1kZXNjcmlwdGlvbixcbi5zaXRlLXRpdGxlIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmhlYWRlci1pbWFnZSAuc2l0ZS1kZXNjcmlwdGlvbixcbi5oZWFkZXItaW1hZ2UgLnNpdGUtdGl0bGUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC1pbmRlbnQ6IC05OTk5cHg7XG59XG5cbi8qICMjIFdpZGdldCBBcmVhXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnNpdGUtaGVhZGVyIC53aWRnZXQtYXJlYSB7XG5cdGZsb2F0OiByaWdodDtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdC8qd2lkdGg6IDgwMHB4OyovXG59XG4iLCIvKiAjIFNpdGUgTmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uZ2VuZXNpcy1uYXYtbWVudSB7XG5cdGNsZWFyOiBib3RoO1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRsaW5lLWhlaWdodDogMTtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51IC5tZW51LWl0ZW0ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51IGEge1xuXHRjb2xvcjogJHByaW1hcnktbmF2LXRleHQ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAzMHB4IDI0cHg7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51IGE6aG92ZXIsXG4uZ2VuZXNpcy1uYXYtbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhLFxuLmdlbmVzaXMtbmF2LW1lbnUgLnN1Yi1tZW51IC5jdXJyZW50LW1lbnUtaXRlbSA+IGE6aG92ZXIge1xuXHRjb2xvcjogI2U1NTU0ZTtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgLnN1Yi1tZW51IHtcblx0bGVmdDogLTk5OTlweDtcblx0b3BhY2l0eTogMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHQtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuXHQtbW96LXRyYW5zaXRpb246ICAgIG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuXHQtbXMtdHJhbnNpdGlvbjogICAgIG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuXHQtby10cmFuc2l0aW9uOiAgICAgIG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuXHR0cmFuc2l0aW9uOiAgICAgICAgIG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O1xuXHR3aWR0aDogMjAwcHg7XG5cdHotaW5kZXg6IDk5O1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSAuc3ViLW1lbnUgYSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRzdWJtZW51LWJnO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkc3VibWVudS1iZztcblx0Ym9yZGVyLXRvcDogbm9uZTtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRwYWRkaW5nOiAyMHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiAyMDBweDtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgLnN1Yi1tZW51IC5zdWItbWVudSB7XG5cdG1hcmdpbjogLTU1cHggMCAwIDE5OXB4O1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSAubWVudS1pdGVtOmhvdmVyIHtcblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgLm1lbnUtaXRlbTpob3ZlciA+IC5zdWItbWVudSB7XG5cdGxlZnQ6IGF1dG87XG5cdG9wYWNpdHk6IDE7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51ID4gLmZpcnN0ID4gYSB7XG5cdHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgPiAubGFzdCA+IGEge1xuXHRwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSA+IC5yaWdodCB7XG5cdGNvbG9yOiAkcHJpbWFyeS1uYXYtdGV4dDtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cdHBhZGRpbmc6IDMwcHggMDtcbn1cblxuLmdlbmVzaXMtbmF2LW1lbnUgPiAucmlnaHQgPiBhIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4uZ2VuZXNpcy1uYXYtbWVudSA+IC5yc3MgPiBhIHtcblx0bWFyZ2luLWxlZnQ6IDQ4cHg7XG59XG5cbi5nZW5lc2lzLW5hdi1tZW51ID4gLnNlYXJjaCB7XG5cdHBhZGRpbmc6IDEwcHggMCAwO1xufVxuXG4vKiAjIyBTaXRlIEhlYWRlciBOYXZpZ2F0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLnNpdGUtaGVhZGVyIC5zdWItbWVudSB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4uc2l0ZS1oZWFkZXIgLnN1Yi1tZW51IC5zdWItbWVudSB7XG5cdG1hcmdpbi10b3A6IC01NnB4O1xufVxuXG4uc2l0ZS1oZWFkZXIgLmdlbmVzaXMtbmF2LW1lbnUgbGkgbGkge1xuXHRtYXJnaW4tbGVmdDogMDtcbn1cblxuLyogIyMgUHJpbWFyeSBOYXZpZ2F0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm5hdi1wcmltYXJ5IHtcblx0YmFja2dyb3VuZDogJHByaW1hcnktbmF2LWJnO1xufVxuXG4ubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUgYSB7XG5cdGNvbG9yOiAkcHJpbWFyeS1uYXYtdGV4dDtcbn1cblxuLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51IC5zdWItbWVudSBhIHtcblx0Y29sb3I6ICRwcmltYXJ5LW5hdi10ZXh0O1xufVxuXG4ubmF2LXByaW1hcnkgLmdlbmVzaXMtbmF2LW1lbnUgYTpob3Zlcixcbi5uYXYtcHJpbWFyeSAuZ2VuZXNpcy1uYXYtbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhLFxuLm5hdi1wcmltYXJ5IC5nZW5lc2lzLW5hdi1tZW51IC5zdWItbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhOmhvdmVyIHtcblx0Y29sb3I6ICRwcmltYXJ5LW5hdi10ZXh0LWhvdmVyO1xufVxuXG4vKiAjIyBTZWNvbmRhcnkgTmF2aWdhdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5uYXYtc2Vjb25kYXJ5IHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbiIsIi8qICMgRm9vdGVyIFdpZGdldHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmZvb3Rlci13aWRnZXRzIHtcblx0YmFja2dyb3VuZDogJGZvb3Rlci13aWRnZXRzLWJnO1xuXHRjbGVhcjogYm90aDtcblx0cGFkZGluZy10b3A6IDQwcHg7XG5cblx0aDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgLndpZGdldC10aXRsZSB7XG5cdFx0Y29sb3I6ICMzMzMzMzM7XG5cdFx0JmEge1xuXHRcdFx0Y29sb3I6ICMzMzMzMzM7XG5cdFx0fVxuXHR9XG59XG5cbi5mb290ZXItd2lkZ2V0cyxcbi5mb290ZXItd2lkZ2V0cyBhIHtcblx0Y29sb3I6ICR3aGl0ZTtcbn1cblxuLmZvb3Rlci13aWRnZXRzIGlucHV0IHtcblx0Ym9yZGVyOiAxcHggc29saWQgIzMzMztcbn1cblxuLmZvb3Rlci13aWRnZXRzIGEuYnV0dG9uLFxuLmZvb3Rlci13aWRnZXRzIGE6aG92ZXIge1xuXHRjb2xvcjogI2ZmZjtcbn1cblxuLmZvb3Rlci13aWRnZXRzIGxpIHtcblx0Ly9ib3JkZXItYm90dG9tOiAxcHggZG90dGVkICR3aGl0ZTtcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0cGFkZGluZy1ib3R0b206IDEwcHg7XG59XG5cbi5mb290ZXItd2lkZ2V0cyAud2lkZ2V0IHtcblx0bWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuLmZvb3Rlci13aWRnZXRzIHA6bGFzdC1jaGlsZCB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5mb290ZXItd2lkZ2V0cy0xLFxuLmZvb3Rlci13aWRnZXRzLTIsXG4uZm9vdGVyLXdpZGdldHMtMyB7XG5cdEBpbmNsdWRlIHNwYW4oMyBvZiA5KTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRicm90aGVyLWJlYXIpIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4uZm9vdGVyLXdpZGdldHMtMyB7XG5cdEBpbmNsdWRlIGxhc3Q7XG59XG5cblxuLyogIyBTaXRlIEZvb3RlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uc2l0ZS1mb290ZXIge1xuXHRiYWNrZ3JvdW5kOiAkZm9vdGVyLWJnO1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXHRwYWRkaW5nOiA0MHB4IDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRwIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG4iLCIvLyBTcGFuIFN5bnRheFxuLy8gPT09PT09PT09PT1cblxuLy8gU3BhbiBbbWl4aW5dXG4vLyAtLS0tLS0tLS0tLS1cbi8vIFNldCBhIHNwYW5uaW5nIGVsZW1lbnQgdXNpbmcgc2hvcnRoYW5kIHN5bnRheC5cbi8vIC0gJHNwYW4gIDogPHNwYW4+XG5AbWl4aW4gc3BhbihcbiAgJHNwYW5cbikge1xuICAkaW5zcGVjdDogJHNwYW47XG4gICRzcGFuOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJG91dHB1dDogc3Bhbi1tYXRoKCRzcGFuKTtcbiAgJG5lc3Rpbmc6IHN1c3ktZ2V0KHNwYW4sICRzcGFuKTtcbiAgJGNsZWFyOiBzdXN5LWdldChjbGVhciwgJHNwYW4pO1xuXG4gICRib3g6IHN1c3ktZ2V0KGJveC1zaXppbmcsICRzcGFuKTtcbiAgJGNvbnRlbnQtYm94OiBpZihzdXN5LWdldChnbG9iYWwtYm94LXNpemluZykgIT0gJ2JvcmRlci1ib3gnLCB0cnVlLCBmYWxzZSk7XG4gICRib3g6ICRib3ggb3IgaWYoaXMtaW5zaWRlKCRzcGFuKSBhbmQgJGNvbnRlbnQtYm94LCBib3JkZXItYm94LCBudWxsKTtcblxuICBAaWYgJGNsZWFyID09IGJyZWFrIHtcbiAgICBAaW5jbHVkZSBicmVhaztcbiAgfSBAZWxzZSBpZiAkY2xlYXIgPT0gbm9icmVhayB7XG4gICAgQGluY2x1ZGUgbm9icmVhaztcbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChzcGFuLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIG91dHB1dCgoYm94LXNpemluZzogJGJveCkpO1xuICBAaW5jbHVkZSBmbG9hdC1zcGFuLW91dHB1dCgkb3V0cHV0Li4uKTtcblxuICBAaWYgdmFsaWQtY29sdW1ucygkbmVzdGluZywgc2lsZW50KSB7XG4gICAgQGluY2x1ZGUgbmVzdGVkKCRzcGFuKSB7IEBjb250ZW50OyB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIFNwYW4gW2Z1bmN0aW9uXVxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlIHdpZHRoIG9mIGEgc3Bhbi5cbi8vIC0gJHNwYW4gIDogPHNwYW4+XG5AZnVuY3Rpb24gc3BhbihcbiAgJHNwYW5cbikge1xuICBAcmV0dXJuIGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcbn1cblxuLy8gU3BhbiBNYXRoXG4vLyAtLS0tLS0tLS1cbi8vIEdldCBhbGwgdGhlIHNwYW4gcmVzdWx0cy5cbi8vIC0gJHNwYW46IDxtYXA+XG5AZnVuY3Rpb24gc3Bhbi1tYXRoKFxuICAkc3BhblxuKSB7XG4gICRuZXN0ICAgICAgICAgICAgIDogaWYoc3VzeS1nZXQocm9sZSwgJHNwYW4pID09IG5lc3QsIHRydWUsIGZhbHNlKTtcbiAgJHNwbGl0LW5lc3QgICAgICAgOiBpZihpcy1zcGxpdCgkc3BhbikgYW5kICRuZXN0LCB0cnVlLCBmYWxzZSk7XG4gICRlZGdlICAgICAgICAgICAgIDogZ2V0LWVkZ2UoJHNwYW4pO1xuICAkbG9jYXRpb24gICAgICAgICA6IGdldC1sb2NhdGlvbigkc3Bhbik7XG5cbiAgJGZsb2F0ICAgICAgICAgICAgOiBmcm9tO1xuICAkcGFkZGluZy1iZWZvcmUgICA6IG51bGw7XG4gICRwYWRkaW5nLWFmdGVyICAgIDogbnVsbDtcbiAgJG1hcmdpbi1iZWZvcmUgICAgOiBudWxsO1xuICAkbWFyZ2luLWFmdGVyICAgICA6IG51bGw7XG5cbiAgLy8gY2FsY3VsYXRlIHdpZHRoc1xuICAkc3ByZWFkOiBpbmRleChtYXAtdmFsdWVzKCRzcGFuKSwgc3ByZWFkKTtcbiAgJHNwYW46IGlmKCRzcGxpdC1uZXN0IGFuZCBub3QoJHNwcmVhZCksIG1hcC1tZXJnZSgkc3BhbiwgKHNwcmVhZDogd2lkZSkpLCAkc3Bhbik7XG4gICR3aWR0aDogZ2V0LXNwYW4td2lkdGgoJHNwYW4pO1xuICAkZ3V0dGVyczogZ2V0LWd1dHRlcnMoJHNwYW4pO1xuXG4gIC8vIGFwcGx5IGd1dHRlcnNcbiAgQGlmIGlzLWluc2lkZSgkc3Bhbikge1xuICAgIEBpZiBub3Qoc3VzeS1nZXQocm9sZSwgJHNwYW4pKSB7XG4gICAgICAkcGFkZGluZy1iZWZvcmU6IG1hcC1nZXQoJGd1dHRlcnMsIGJlZm9yZSk7XG4gICAgICAkcGFkZGluZy1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGlmIG5vdCgkc3BsaXQtbmVzdCkge1xuICAgICAgJG1hcmdpbi1iZWZvcmU6IG1hcC1nZXQoJGd1dHRlcnMsIGJlZm9yZSk7XG4gICAgICAkbWFyZ2luLWFmdGVyOiBtYXAtZ2V0KCRndXR0ZXJzLCBhZnRlcik7XG4gICAgfVxuICB9XG5cbiAgLy8gc3BlY2lhbCBtYXJnaW4gaGFuZGxpbmdcbiAgQGlmIHN1c3ktZ2V0KG91dHB1dCwgJHNwYW4pID09IGlzb2xhdGUgYW5kICRsb2NhdGlvbiB7XG4gICAgJG1hcmdpbi1iZWZvcmU6IGdldC1pc29sYXRpb24oJHNwYW4pO1xuICAgICRtYXJnaW4tYWZ0ZXI6IC0xMDAlO1xuICB9IEBlbHNlIGlmICRlZGdlIHtcbiAgICAkaXMtc3BsaXQ6IGlzLXNwbGl0KCRzcGFuKTtcbiAgICAkcG9zOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKTtcblxuICAgIEBpZiAkZWRnZSA9PSBsYXN0IHtcbiAgICAgICRmbG9hdDogc3VzeS1nZXQobGFzdC1mbG93LCAkc3Bhbik7XG4gICAgfVxuXG4gICAgQGlmIG5vdCgkaXMtc3BsaXQpIHtcbiAgICAgIEBpZiAkZWRnZSA9PSBmdWxsIG9yICgkZWRnZSA9PSBmaXJzdCBhbmQgJHBvcyA9PSBiZWZvcmUpIHtcbiAgICAgICAgJG1hcmdpbi1iZWZvcmU6IDA7XG4gICAgICB9XG4gICAgICBAaWYgJGVkZ2UgPT0gZnVsbCBvciAoJGVkZ2UgPT0gbGFzdCBhbmQgJHBvcyA9PSBhZnRlcikge1xuICAgICAgICAkbWFyZ2luLWFmdGVyOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgQHJldHVybiAoXG4gICAgd2lkdGggICAgICAgICAgIDogJHdpZHRoLFxuICAgIGZsb2F0ICAgICAgICAgICA6ICRmbG9hdCxcbiAgICBtYXJnaW4tYmVmb3JlICAgOiAkbWFyZ2luLWJlZm9yZSxcbiAgICBtYXJnaW4tYWZ0ZXIgICAgOiAkbWFyZ2luLWFmdGVyLFxuICAgIHBhZGRpbmctYmVmb3JlICA6ICRwYWRkaW5nLWJlZm9yZSxcbiAgICBwYWRkaW5nLWFmdGVyICAgOiAkcGFkZGluZy1hZnRlcixcbiAgICBmbG93ICAgICAgICAgICAgOiBzdXN5LWdldChmbG93LCAkc3BhbiksXG4gICk7XG59XG5cbi8vIEdldCBTcGFuIFdpZHRoXG4vLyAtLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHNwYW4gd2lkdGguXG4vLyAtICRzcGFuOiA8bWFwPlxuQGZ1bmN0aW9uIGdldC1zcGFuLXdpZHRoKFxuICAkc3BhblxuKSB7XG4gICRzcGFuICAgICA6IHBhcnNlLXNwYW4oJHNwYW4pO1xuXG4gICRuICAgICAgICA6IHN1c3ktZ2V0KHNwYW4sICRzcGFuKTtcbiAgJGxvY2F0aW9uIDogZ2V0LWxvY2F0aW9uKCRzcGFuKTtcbiAgJGNvbHVtbnMgIDogc3VzeS1nZXQoY29sdW1ucywgJHNwYW4pO1xuICAkZ3V0dGVycyAgOiBzdXN5LWdldChndXR0ZXJzLCAkc3Bhbik7XG4gICRzcHJlYWQgICA6IHN1c3ktZ2V0KHNwcmVhZCwgJHNwYW4pO1xuXG4gICRjb250ZXh0ICA6IG51bGw7XG4gICRzcGFuLXN1bSA6IG51bGw7XG4gICR3aWR0aCAgICA6IG51bGw7XG5cbiAgQGlmICRuID09ICdmdWxsJyB7XG4gICAgJHBvczogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3Bhbik7XG4gICAgJHJvbGU6IHN1c3ktZ2V0KHJvbGUsICRzcGFuKTtcbiAgICAkbjogaWYoJHBvcyA9PSBzcGxpdCBhbmQgJHJvbGUgIT0gbmVzdCwgc3VzeS1jb3VudCgkY29sdW1ucyksIDEwMCUpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJG4pICE9IG51bWJlciB7XG4gICAgQHdhcm4gXCIoI3t0eXBlLW9mKCRuKX0pICN7JG59IGlzIG5vdCBhIHZhbGlkIHNwYW4uXCI7XG4gIH0gQGVsc2UgaWYgdW5pdGxlc3MoJG4pIHtcbiAgICAkY29udGV4dDogc3VzeS1zdW0oJGNvbHVtbnMsICRndXR0ZXJzLCBpZihpcy1zcGxpdCgkc3BhbiksIHdpZGUsIG5hcnJvdykpO1xuICAgICRzcHJlYWQ6IGlmKGlzLWluc2lkZSgkc3BhbiksICRzcHJlYWQgb3Igd2lkZSwgJHNwcmVhZCk7XG4gICAgJHNwYW4tc3VtOiBzdXN5KCRuLCAkbG9jYXRpb24sICRjb2x1bW5zLCAkZ3V0dGVycywgJHNwcmVhZCk7XG5cbiAgICAkX21hdGg6IHN1c3ktZ2V0KG1hdGgsICRzcGFuKTtcbiAgICAkX2NvbHVtbi13aWR0aDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkc3Bhbik7XG4gICAgQGlmICRfbWF0aCA9PSBzdGF0aWMge1xuICAgICAgJHdpZHRoOiAkc3Bhbi1zdW0gKiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkc3Bhbi1zdW0gLyAkY29udGV4dCk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAkd2lkdGg6ICRuO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGg7XG59XG4iLCIvLyBEaXJlY3Rpb24gSGVscGVyc1xuLy8gPT09PT09PT09PT09PT09PT1cblxuLy8gU3VzeSBGbG93IERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gUFJJVkFURVxuQGluY2x1ZGUgc3VzeS1kZWZhdWx0cygoXG4gIGZsb3c6IGx0cixcbikpO1xuXG4vLyBHZXQgRGlyZWN0aW9uXG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlICdmcm9tJyBvciAndG8nIGRpcmVjdGlvbiBvZiBhIGx0ciBvciBydGwgZmxvdy5cbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbi8vIC0gWyRrZXldICAgOiBmcm9tIHwgdG9cbkBmdW5jdGlvbiBnZXQtZGlyZWN0aW9uKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdyksXG4gICRrZXk6IGZyb21cbikge1xuICAkcmV0dXJuOiBpZigkZmxvdyA9PSBydGwsIChmcm9tOiByaWdodCwgdG86IGxlZnQpLCAoZnJvbTogbGVmdCwgdG86IHJpZ2h0KSk7XG4gIEByZXR1cm4gbWFwLWdldCgkcmV0dXJuLCAka2V5KTtcbn1cblxuLy8gVG9cbi8vIC0tXG4vLyBSZXR1cm4gdGhlICd0bycgZGlyZWN0aW9uIG9mIGEgZmxvd1xuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuQGZ1bmN0aW9uIHRvKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICBAcmV0dXJuIGdldC1kaXJlY3Rpb24oJGZsb3csIHRvKTtcbn1cblxuLy8gRnJvbVxuLy8gLS0tLVxuLy8gUmV0dXJuIHRoZSAnZnJvbScgZGlyZWN0aW9uIG9mIGEgZmxvd1xuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuQGZ1bmN0aW9uIGZyb20oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gIEByZXR1cm4gZ2V0LWRpcmVjdGlvbigkZmxvdywgZnJvbSk7XG59XG4iLCIvLyBHdXR0ZXIgU3ludGF4XG4vLyA9PT09PT09PT09PT09XG5cblxuLy8gR3V0dGVyc1xuLy8gLS0tLS0tLVxuLy8gU2V0IGd1dHRlcnMgb24gYW4gZWxlbWVudC5cbi8vIC0gWyRzcGFuXSAgIDogPHNldHRpbmdzPlxuQG1peGluIGd1dHRlcnMoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICA6ICRzcGFuO1xuICAkc3BhbiAgICAgOiBwYXJzZS1ndXR0ZXJzKCRzcGFuKTtcbiAgJF9ndXR0ZXJzIDogZ2V0LWd1dHRlcnMoJHNwYW4pO1xuXG4gICRfb3V0cHV0OiAoXG4gICAgYmVmb3JlOiBtYXAtZ2V0KCRfZ3V0dGVycywgYmVmb3JlKSxcbiAgICBhZnRlcjogbWFwLWdldCgkX2d1dHRlcnMsIGFmdGVyKSxcbiAgICBmbG93OiBzdXN5LWdldChmbG93LCAkc3BhbiksXG4gICk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGd1dHRlcnMsICRpbnNwZWN0KTtcblxuICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZy1vdXRwdXQoJF9vdXRwdXQuLi4pO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4tb3V0cHV0KCRfb3V0cHV0Li4uKTtcbiAgfVxufVxuXG5AbWl4aW4gZ3V0dGVyKFxuICAkc3BhbjogJHN1c3lcbikge1xuICBAaW5jbHVkZSBndXR0ZXJzKCRzcGFuKTtcbn1cblxuXG4vLyBHdXR0ZXJcbi8vIC0tLS0tLVxuLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiBhIGd1dHRlci5cbi8vIC0gWyRzcGFuXSAgIDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGd1dHRlcihcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgJHNwYW46IHBhcnNlLWd1dHRlcnMoJHNwYW4pO1xuXG4gICRfZ3V0dGVyczogZ2V0LWd1dHRlcnMoJHNwYW4pO1xuICAkX2d1dHRlcnM6IG1hcC1nZXQoJF9ndXR0ZXJzLCBiZWZvcmUpIG9yIG1hcC1nZXQoJF9ndXR0ZXJzLCBhZnRlcik7XG5cbiAgQHJldHVybiAkX2d1dHRlcnM7XG59XG5cbkBmdW5jdGlvbiBndXR0ZXJzKFxuICAkc3BhbjogJHN1c3lcbikge1xuICBAcmV0dXJuIGd1dHRlcigkc3Bhbik7XG59XG5cblxuLy8gR2V0IEd1dHRlciBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGd1dHRlciB3aWR0aC5cbi8vIC0gWyRjb250ZXh0XTogPGNvbnRleHQ+XG5AZnVuY3Rpb24gZ2V0LWd1dHRlci13aWR0aChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGNvbnRleHQgIDogcGFyc2UtZ3V0dGVycygkY29udGV4dCk7XG5cbiAgJF9ndXR0ZXJzIDogc3VzeS1nZXQoZ3V0dGVycywgJGNvbnRleHQpO1xuICAkX2d1dHRlciAgOiBzdXN5LWdldChndXR0ZXItb3ZlcnJpZGUsICRjb250ZXh0KTtcblxuICBAaWYgJF9ndXR0ZXJzIGFuZCAoJF9ndXR0ZXJzID4gMCkgYW5kIG5vdCgkX2d1dHRlcikge1xuICAgICRfY29sdW1uLXdpZHRoOiBzdXN5LWdldChjb2x1bW4td2lkdGgsICRjb250ZXh0KTtcbiAgICAkX21hdGg6IGd1dHRlci1tYXRoKCRjb250ZXh0KTtcbiAgICBAaWYgJF9tYXRoID09IHN0YXRpYyB7XG4gICAgICAkX2d1dHRlcjogJF9ndXR0ZXJzICogdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkX2NvbHVtbnMgOiBzdXN5LWdldChjb2x1bW5zLCAkY29udGV4dCk7XG4gICAgICAkX3NwcmVhZCAgOiBpZihpcy1zcGxpdCgkY29udGV4dCksIHdpZGUsIHN1c3ktZ2V0KHNwcmVhZCwgJGNvbnRleHQpKTtcbiAgICAgICRfZ3V0dGVyICA6IHBlcmNlbnRhZ2UoJF9ndXR0ZXJzIC8gc3VzeS1zdW0oJF9jb2x1bW5zLCAkX2d1dHRlcnMsICRfc3ByZWFkKSk7XG4gICAgfVxuICB9XG5cbiAgJF9ndXR0ZXI6IGlmKCRfZ3V0dGVyID09ICduby1ndXR0ZXJzJyBvciAkX2d1dHRlciA9PSAnbm8tZ3V0dGVyJywgbnVsbCwgJF9ndXR0ZXIpO1xuXG4gIEByZXR1cm4gJF9ndXR0ZXI7XG59XG5cblxuLy8gR2V0IEd1dHRlcnNcbi8vIC0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gYmVmb3JlIGFuZCBhZnRlciBndXR0ZXIgdmFsdWVzLlxuLy8gLSBbJGNvbnRleHRdOiA8Y29udGV4dD5cbkBmdW5jdGlvbiBnZXQtZ3V0dGVycyhcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGNvbnRleHQgICAgICAgICAgICA6IHBhcnNlLWd1dHRlcnMoJGNvbnRleHQpO1xuXG4gICRfZ3V0dGVyLXBvc2l0aW9uICAgOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcbiAgJF9ndXR0ZXIgICAgICAgICAgICA6IGdldC1ndXR0ZXItd2lkdGgoJGNvbnRleHQpO1xuXG4gICRfcmV0dXJuICAgICAgICAgICAgOiAoYmVmb3JlOiBudWxsLCBhZnRlcjogbnVsbCk7XG5cbiAgQGlmIGlzLXNwbGl0KCRjb250ZXh0KSBhbmQgJF9ndXR0ZXIge1xuICAgICRfZ3V0dGVyOiAkX2d1dHRlciAvIDI7XG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGJlZm9yZTogJF9ndXR0ZXIsIGFmdGVyOiAkX2d1dHRlcikpO1xuICB9IEBlbHNlIHtcbiAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAoJF9ndXR0ZXItcG9zaXRpb246ICRfZ3V0dGVyKSk7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIElzIEluc2lkZVxuLy8gLS0tLS0tLS0tXG4vLyBSZXR1cm5zIHRydWUgaWYgZ3V0dGVycyBhcmUgaW5zaWRlLlxuLy8gJGNvbnRleHQ6IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGlzLWluc2lkZShcbiAgJGNvbnRleHRcbikge1xuICAkX2luc2lkZTogaW5zaWRlIGluc2lkZS1zdGF0aWM7XG4gICRfZ3V0dGVyLXBvc2l0aW9uOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcblxuICBAcmV0dXJuIGlmKGluZGV4KCRfaW5zaWRlLCAkX2d1dHRlci1wb3NpdGlvbiksIHRydWUsIGZhbHNlKTtcbn1cblxuXG4vLyBJcyBTcGxpdFxuLy8gLS0tLS0tLS1cbi8vIFJldHVybnMgdHJ1ZSBpZiBndXR0ZXJzIGFyZSBzcGxpdC5cbi8vICRjb250ZXh0OiA8Y29udGV4dD5cbkBmdW5jdGlvbiBpcy1zcGxpdChcbiAgJGNvbnRleHRcbikge1xuICAkX3NwbGl0OiBzcGxpdCBpbnNpZGUgaW5zaWRlLXN0YXRpYztcbiAgJF9ndXR0ZXItcG9zaXRpb246IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpO1xuXG4gIEByZXR1cm4gaWYoaW5kZXgoJF9zcGxpdCwgJF9ndXR0ZXItcG9zaXRpb24pLCB0cnVlLCBmYWxzZSk7XG59XG5cblxuLy8gR3V0dGVyIE1hdGhcbi8vIC0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlIG1hdGggdG8gdXNlIGZvciBndXR0ZXIgY2FsY3VsYXRpb25zXG4vLyAkY29udGV4dDogPGNvbnRleHQ+XG5AZnVuY3Rpb24gZ3V0dGVyLW1hdGgoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRfcmV0dXJuICA6IHN1c3ktZ2V0KG1hdGgsICRjb250ZXh0KTtcbiAgJF9yZXR1cm4gIDogaWYoc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCkgPT0gaW5zaWRlLXN0YXRpYywgc3RhdGljLCAkX3JldHVybik7XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cbiIsIi8vIFJvdyBTdGFydCAmIEVuZFxuLy8gPT09PT09PT09PT09PT09XG5cbi8vIEJyZWFrXG4vLyAtLS0tLVxuLy8gQXBwbHkgdG8gYW55IGVsZW1lbnQgdGhhdCBzaG91bGQgZm9yY2UgYSBsaW5lIGJyZWFrLlxuQG1peGluIGJyZWFrIHtcbiAgQGluY2x1ZGUgb3V0cHV0KChjbGVhcjogYm90aCkpO1xufVxuXG5cbi8vIE5vQnJlYWtcbi8vIC0tLS0tLS1cbi8vIENhbmNlbCB0aGUgYnJlYWsoKSBlZmZlY3QsIGUuZy4gd2hlbiB1c2luZyBtZWRpYSBxdWVyaWVzLlxuQG1peGluIG5vYnJlYWsge1xuICBAaW5jbHVkZSBvdXRwdXQoKGNsZWFyOiBub25lKSk7XG59XG5cblxuLy8gRnVsbFxuLy8gLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8bGF5b3V0IHNob3J0aGFuZD5cbkBtaXhpbiBmdWxsKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCA6ICRjb250ZXh0O1xuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZnVsbCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBzcGFuKGZ1bGwgb2YgcGFyc2UtZ3JpZCgkY29udGV4dCkgYnJlYWspO1xufVxuXG5cbi8vIEZpcnN0XG4vLyAtLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8c2V0dGluZ3M+XG5AbWl4aW4gZmlyc3QoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICA6ICRjb250ZXh0O1xuICAkY29udGV4dCAgOiBwYXJzZS1ncmlkKCRjb250ZXh0KTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJGNvbnRleHQpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChmaXJzdCwgJGluc3BlY3QpO1xuICBAaWYgbm90KGlzLXNwbGl0KCRjb250ZXh0KSkge1xuICAgIEBpbmNsdWRlIGZsb2F0LWZpcnN0KCRmbG93KTtcbiAgfVxufVxuXG5AbWl4aW4gYWxwaGEoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIGZpcnN0KCRjb250ZXh0KTtcbn1cblxuXG4vLyBMYXN0XG4vLyAtLS0tXG4vLyAtIFskY29udGV4dF06IDxzZXR0aW5ncz5cbkBtaXhpbiBsYXN0KFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkY29udGV4dDtcbiAgJGNvbnRleHQgIDogcGFyc2UtZ3JpZCgkY29udGV4dCk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGxhc3QsICRpbnNwZWN0KTtcblxuICAkb3V0cHV0OiAoXG4gICAgZmxvdzogc3VzeS1nZXQoZmxvdywgJGNvbnRleHQpLFxuICAgIGxhc3QtZmxvdzogc3VzeS1nZXQobGFzdC1mbG93LCAkY29udGV4dCksXG4gICAgbWFyZ2luOiBpZihpcy1zcGxpdCgkY29udGV4dCksIG51bGwsIDApLFxuICApO1xuXG4gIEBpbmNsdWRlIGZsb2F0LWxhc3QoJG91dHB1dC4uLik7XG59XG5cbkBtaXhpbiBvbWVnYShcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgQGluY2x1ZGUgbGFzdCgkY29udGV4dCk7XG59XG5cblxuLy8gR2V0IEVkZ2Vcbi8vIC0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgZWRnZSB2YWx1ZSBiYXNlZCBvbiBsb2NhdGlvbiwgaWYgcG9zc2libGVcbkBmdW5jdGlvbiBnZXQtZWRnZShcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgICA6IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkZWRnZSAgICAgICA6IHN1c3ktZ2V0KGVkZ2UsICRzcGFuKTtcblxuICBAaWYgbm90KCRlZGdlKSB7XG4gICAgJGNvdW50OiBzdXN5LWNvdW50KHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKSk7XG4gICAgJGxvY2F0aW9uOiBzdXN5LWdldChsb2NhdGlvbiwgJHNwYW4pO1xuICAgICRuOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG5cbiAgICAkbnVtYmVyOiBpZih0eXBlLW9mKCRsb2NhdGlvbikgPT0gbnVtYmVyLCB0cnVlLCBmYWxzZSk7XG4gICAgJGluZGV4OiBpZigkbnVtYmVyIGFuZCB1bml0bGVzcygkbG9jYXRpb24pLCB0cnVlLCBmYWxzZSk7XG5cbiAgICBAaWYgJG4gPT0gJGNvdW50IHtcbiAgICAgICRlZGdlOiBmdWxsO1xuICAgIH0gQGVsc2UgaWYgJGxvY2F0aW9uIGFuZCAkbiBhbmQgJGluZGV4IHtcbiAgICAgIEBpZiAkbG9jYXRpb24gPT0gMSB7XG4gICAgICAgICRlZGdlOiBpZigkbiA9PSAkY291bnQsIGZ1bGwsIGZpcnN0KTtcbiAgICAgIH0gQGVsc2UgaWYgJGxvY2F0aW9uICsgJG4gLSAxID09ICRjb3VudCB7XG4gICAgICAgICRlZGdlOiBsYXN0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkZWRnZSA9PSBhbHBoYSBvciAkZWRnZSA9PSBvbWVnYSB7XG4gICAgJGVkZ2U6IGlmKCRlZGdlID09IGFscGhhLCBmaXJzdCwgbGFzdCk7XG4gIH1cblxuICBAcmV0dXJuICRlZGdlO1xufVxuXG5cbi8vIEdldCBMb2NhdGlvblxuLy8gLS0tLS0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgbG9jYXRpb24gdmFsdWUgYmFzZWQgb24gZWRnZSwgaWYgcG9zc2libGVcbkBmdW5jdGlvbiBnZXQtbG9jYXRpb24oXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgOiBzdXN5LWdldChsb2NhdGlvbiwgJHNwYW4pO1xuICAkZWRnZSAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJG4gICAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG5cbiAgQGlmICRlZGdlIGFuZCBub3QoJGxvY2F0aW9uKSBhbmQgdHlwZS1vZigkbikgPT0gbnVtYmVyIGFuZCB1bml0bGVzcygkbikge1xuICAgIEBpZiAkZWRnZSA9PSBmaXJzdCB7XG4gICAgICAkbG9jYXRpb246IDE7XG4gICAgfSBAZWxzZSBpZiAkZWRnZSA9PSBsYXN0IHtcbiAgICAgICRsb2NhdGlvbjogc3VzeS1jb3VudChzdXN5LWdldChjb2x1bW5zLCAkc3BhbikpIC0gJG4gKyAxO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxvY2F0aW9uXG59XG4iLCIvKiAjIENvbnRlbnQgQXJlYVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAjIyBFbnRyaWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmVudHJ5IHtcblx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0cGFkZGluZzogNTBweCAwO1xufVxuXG4uY29udGVudCAuZW50cnkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmVudHJ5LWNvbnRlbnQgb2wsXG4uZW50cnktY29udGVudCB1bCB7XG5cdG1hcmdpbi1ib3R0b206IDI4cHg7XG5cdG1hcmdpbi1sZWZ0OiA0MHB4O1xufVxuXG4uZW50cnktY29udGVudCBvbCA+IGxpIHtcblx0bGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xufVxuXG4uZW50cnktY29udGVudCB1bCA+IGxpIHtcblx0bGlzdC1zdHlsZS10eXBlOiBkaXNjO1xufVxuXG4uZW50cnktY29udGVudCBvbCBvbCxcbi5lbnRyeS1jb250ZW50IHVsIHVsIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmVudHJ5LWNvbnRlbnQgY29kZSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG5cdGNvbG9yOiAjZGRkO1xufVxuXG4vKiAjIyBFbnRyeSBNZXRhXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxucC5lbnRyeS1tZXRhIHtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uZW50cnktaGVhZGVyIC5lbnRyeS1tZXRhIHtcblx0bWFyZ2luLWJvdHRvbTogMjRweDtcbn1cblxuLmVudHJ5LWZvb3RlciAuZW50cnktbWV0YSB7XG5cdGJvcmRlci10b3A6IDJweCBzb2xpZCAjZjVmNWY1O1xuXHRwYWRkaW5nLXRvcDogMjRweDtcbn1cblxuLmVudHJ5LWNhdGVnb3JpZXMsXG4uZW50cnktdGFncyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZW50cnktY29tbWVudHMtbGluazo6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXDIwMTRcIjtcblx0bWFyZ2luOiAwIDZweCAwIDJweDtcbn1cblxuLyogIyMgUGFnaW5hdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5wYWdpbmF0aW9uIHtcblx0Y2xlYXI6IGJvdGg7XG5cdG1hcmdpbjogNDBweCAwO1xufVxuXG4uYWRqYWNlbnQtZW50cnktcGFnaW5hdGlvbiB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5hcmNoaXZlLXBhZ2luYXRpb24gbGkge1xuXHRkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5hcmNoaXZlLXBhZ2luYXRpb24gbGkgYSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG5cdGNvbG9yOiAjZmZmO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRwYWRkaW5nOiA4cHggMTJweDtcbn1cblxuLmFyY2hpdmUtcGFnaW5hdGlvbiBsaSBhOmhvdmVyLFxuLmFyY2hpdmUtcGFnaW5hdGlvbiAuYWN0aXZlIGEge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZTU1NTRlO1xufVxuXG4vKiAjIyBDb21tZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jb21tZW50LXJlc3BvbmQsXG4uZW50cnktY29tbWVudHMsXG4uZW50cnktcGluZ3Mge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuXG4uY29tbWVudC1yZXNwb25kLFxuLmVudHJ5LXBpbmdzIHtcblx0cGFkZGluZzogNDBweCA0MHB4IDE2cHg7XG59XG5cbi5lbnRyeS1jb21tZW50cyB7XG5cdHBhZGRpbmc6IDQwcHg7XG59XG5cbi5jb21tZW50LWhlYWRlciB7XG5cdGZvbnQtc2l6ZTogMTZweDtcbn1cblxubGkuY29tbWVudCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG5cdGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG5cdGJvcmRlci1yaWdodDogbm9uZTtcbn1cblxuLmNvbW1lbnQtY29udGVudCB7XG5cdGNsZWFyOiBib3RoO1xufVxuXG4uY29tbWVudC1saXN0IGxpIHtcblx0bWFyZ2luLXRvcDogMjRweDtcblx0cGFkZGluZzogMzJweDtcbn1cblxuLmNvbW1lbnQtbGlzdCBsaSBsaSB7XG5cdG1hcmdpbi1yaWdodDogLTMycHg7XG59XG5cbi5jb21tZW50LXJlc3BvbmQgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLmNvbW1lbnQtcmVzcG9uZCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi5jb21tZW50LXJlc3BvbmQgaW5wdXRbdHlwZT1cInVybFwiXSB7XG5cdHdpZHRoOiA1MCU7XG59XG5cbi5jb21tZW50LXJlc3BvbmQgbGFiZWwge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLXJpZ2h0OiAxMnB4O1xufVxuXG4uZW50cnktY29tbWVudHMgLmNvbW1lbnQtYXV0aG9yIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmVudHJ5LXBpbmdzIC5yZXBseSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5ieXBvc3RhdXRob3Ige1xufVxuXG4uZm9ybS1hbGxvd2VkLXRhZ3Mge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuXHRmb250LXNpemU6IDE2cHg7XG5cdHBhZGRpbmc6IDI0cHg7XG59XG5cbi8vIEZlc3RpdmFsIHRpbWVzXG4uZmVzdGl2YWwtZGF5LFxuLmZlc3RpdmFsLXRpbWUge1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLmZlc3RpdmFsLWRheSB7XG5cdHdpZHRoOiAxMDBweDtcbn1cblxuLmZlc3RpdmFsLWRhdGVzIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4iLCIvKiAjIFNpZGViYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5zaWRlYmFyIHtcblx0Zm9udC1zaXplOiAxNnB4O1xuXG5cdC5zaWRlYmFyLXBhZGRpbmcge1xuXHRcdG1hcmdpbjogLTEwO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0cGFkZGluZzogMjBweDtcblx0fVxufVxuXG4uc2lkZWJhciBsaSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2RkZDtcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0cGFkZGluZy1ib3R0b206IDEwcHg7XG59XG5cbi5zaWRlYmFyIHA6bGFzdC1jaGlsZCxcbi5zaWRlYmFyIHVsID4gbGk6bGFzdC1jaGlsZCB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5zaWRlYmFyIC53aWRnZXQge1xuXHRtYXJnaW4tYm90dG9tOiA0MHB4O1xuXHRwYWRkaW5nOiAyMHB4O1xufVxuIiwiLypcbiAqIFBhZ2UgQnVpbGRlclxuICogKEJlYXZlciBidWlsZGVyKSAtIGRlZmF1bHQgc3R5bGluZ1xuICovXG5cbi5mbC1idWlsZGVyIHtcblx0LnNpdGUtaW5uZXIgLndyYXAge1xuXG4gICAgLnNpdGUtaGVhZGVyIC53cmFwIHtcbiAgICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIH1cblx0fVxuXG5cdCYuY29udGVudC1zaWRlYmFyIC5zaXRlLWlubmVyIC53cmFwXHQge1xuXHRcdG1heC13aWR0aDogMTIwMHB4O1xuXG5cdFx0LmZsLXJvdy1jb250ZW50IHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtJGxhcmdlO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAtJGxhcmdlO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRicm90aGVyLWJlYXIpIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuc2l0ZS1pbm5lciB7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRtYW1hLWJlYXIpIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkYnJvdGhlci1iZWFyKSB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblx0fVxuXG4gIC5lbnRyeSB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlX2J1aWxkZXItcGhwIHtcblx0LnNpdGUtaW5uZXIgLndyYXAge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblxuXHRcdC5lbnRyeSB7XG5cdCAgICBwYWRkaW5nLXRvcDogMDtcblx0ICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXHQgICAgbWFyZ2luLWJvdHRvbTogMDtcblx0ICB9XG5cdH1cbn1cblxuLmZ1bGwtd2lkdGgtY29udGVudCAuZmwtcm93LWNvbnRlbnQtd3JhcCB7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1hbWEtYmVhcikge1xuXHRcdHBhZGRpbmc6IDAgJHhsYXJnZSAhaW1wb3J0YW50O1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkYnJvdGhlci1iZWFyKSB7XG5cdFx0cGFkZGluZzogMCAkeGxhcmdlICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLmZsLXJvdy1jb250ZW50IHtcblx0cGFkZGluZzogJGxhcmdlIC0kbGFyZ2U7XG59XG5cbi5mbC1jb2wtc21hbGwge1xuXHRtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmZsLWNvbC1jb250ZW50IHtcblx0cGFkZGluZzogJGxhcmdlO1xufVxuXG4uZWRnZS10by1lZGdlIHtcblx0LmZsLXJvdy1jb250ZW50LFxuXHQuZmwtY29sLWNvbnRlbnQge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cbn1cbiIsIi8qKlxuICogSWNvbiBGb250c1xuICovXG5cbi5waG9uZS1udW1iZXIge1xuXHRtYXJnaW4tYm90dG9tOiAkc21hbGw7XG5cblx0QGluY2x1ZGUgaWNvbigncGhvbmUnLCAnYmVmb3JlJywgdHJ1ZSwgMS4zZW0sICR0b3A6MXB4LCAkbWFyZ2luOjZweCkge1xuXHRcdG1hcmdpbi1sZWZ0OiAycHg7XG5cdH1cbiB9XG5cbiAubW9iaWxlLW51bWJlciB7XG4gXHRtYXJnaW4tYm90dG9tOiAkc21hbGw7XG5cblx0QGluY2x1ZGUgaWNvbignbW9iaWxlJywgJ2JlZm9yZScsIHRydWUsIDEuM2VtLCAkdG9wOjFweCwgJG1hcmdpbjoxMHB4KSB7XG5cdFx0IG1hcmdpbi1sZWZ0OiAzcHg7XG5cdCB9XG4gfVxuXG4gLmFkZHJlc3MtZnVsbCB7XG4gXHRtYXJnaW4tYm90dG9tOiAkc21hbGw7XG5cblx0QGluY2x1ZGUgaWNvbignYWRkcmVzcycsICdiZWZvcmUnLCB0cnVlLCAxLjNlbSwgJHRvcDowLCAkbWFyZ2luOjVweCkge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0LnN0cmVldC1hZGRyZXNzLXdyYXAsXG5cdC5jaXR5LXBvc3Rjb2RlIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDI1cHg7XG5cdH1cbiB9XG5cbiAuc29jaWFsLW5ldHdvcmstbGluayB7XG5cdCBtYXJnaW4tYm90dG9tOiAkc21hbGw7XG5cblx0ICYuZmFjZWJvb2sge1xuXHRcdCAgQGluY2x1ZGUgaWNvbignZmFjZWJvb2stc3F1YXJlZCcsICdiZWZvcmUnLCB0cnVlLCAxLjNlbSwgJHRvcDoxcHgsICRtYXJnaW46N3B4KSB7XG5cdFx0XHQgIGNvbG9yOiAkZmFjZWJvb2s7XG5cdFx0ICB9XG5cdCB9XG5cbiAgICYueW91dHViZSB7XG5cdFx0ICBAaW5jbHVkZSBpY29uKCd5b3V0dWJlJywgJ2JlZm9yZScsIHRydWUsIDEuM2VtLCAkdG9wOjFweCwgJG1hcmdpbjo3cHgpIHtcblx0XHRcdCAgY29sb3I6ICR5b3V0dWJlO1xuXHRcdCAgfVxuXHQgfVxuIH1cblxuIC5jb250YWN0LXVzLXBhZ2UtY29udGVudCB7XG5cdCBtYXJnaW4tdG9wOiAkbm9ybTtcbiB9XG4iLCIuYWN0LWxpc3Qge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICBoMiB7XG4gICAgcGFkZGluZzogJGxhcmdlIDAgJHNtYWxsO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oI0VERUJFMSwgMTAlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkbm9ybTtcbiAgfVxuXG59XG5cbi5hY3QtbWVudSB7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWFtYS1iZWFyLWFuZC11cCkge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIG1hcmdpbjogJG5vcm0gMDtcblxuICAgIGxpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkc21hbGw7XG5cbiAgICAgIGE6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcInxcIjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkc21hbGw7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGE6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5hY3Qtd3JhcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy1ib3R0b206ICRzbWFsbDtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFREVCRTE7XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG5cbiAgLmFjdC10aHVtYm5haWwge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1hbWEtYmVhci1hbmQtdXApIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgQGluY2x1ZGUgc3Bhbig1IG9mIDEyKTtcbiAgICB9XG4gIH1cblxuICAuYWN0LWRldGFpbHMge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1ib3R0b206ICRsYXJnZTtcbiAgfVxuXG4gIC5hY3QtdmlkZW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1hbWEtYmVhci1hbmQtdXApIHtcbiAgICAgIEBpbmNsdWRlIHBhZCgzLCAzKTtcbiAgICB9XG4gIH1cbn1cblxuLmFjdC1saXN0LnByZXNlbnRlcnMge1xuICAuYWN0LXRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWFtYS1iZWFyLWFuZC11cCkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBAaW5jbHVkZSBzcGFuKDIgb2YgMTIpO1xuICAgIH1cbiAgfVxufVxuIiwiQGluY2x1ZGUgYnJlYWtwb2ludCgkbWFtYS1iZWFyLWFuZC11cCkge1xuICAuZXhoaWJpdG9ycy1jYXRlZ29yeS1saXN0IHtcbiAgICBAaW5jbHVkZSBnYWxsZXJ5KDYgb2YgMTIpO1xuICB9XG59XG5cbi5leGhpYml0b3JzLWNhdGVnb3J5LWxpc3Qge1xuICBtYXJnaW4tYm90dG9tOiAkbWVkO1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHhsYXJnZTtcbiAgfVxufVxuXG4uZXhoaWJpdG9ycy1tZW51IHtcbiAgbWFyZ2luLWJvdHRvbTogJGxhcmdlO1xuXG4gIGEge1xuICAgIHBhZGRpbmctcmlnaHQ6ICRub3JtO1xuICB9XG59XG4iLCIvLyBJc29sYXRpb24gU3ludGF4XG4vLyA9PT09PT09PT09PT09PT09XG5cblxuLy8gSXNvbGF0ZSBbTWl4aW5dXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIFNldCBpc29sYXRpb24gYXMgYW4gb3ZlcnJpZGUuXG4vLyAtICRsb2NhdGlvbjogPHNwYW4+XG5AbWl4aW4gaXNvbGF0ZShcbiAgJGlzb2xhdGU6IDFcbikge1xuICAkaW5zcGVjdDogJGlzb2xhdGU7XG5cbiAgJG91dHB1dDogKFxuICAgIHB1c2g6IGlzb2xhdGUoJGlzb2xhdGUpLFxuICAgIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRpc29sYXRlKSxcbiAgKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoaXNvbGF0ZSwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBpc29sYXRlLW91dHB1dCgkb3V0cHV0Li4uKTtcbn1cblxuXG4vLyBJc29sYXRlIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGFuIGlzb2xhdGlvbiBvZmZzZXQgd2lkdGguXG4vLyAtICRsb2NhdGlvbjogPHNwYW4+XG5AZnVuY3Rpb24gaXNvbGF0ZShcbiAgJGlzb2xhdGU6IDFcbikge1xuICAkaXNvbGF0ZTogcGFyc2Utc3BhbigkaXNvbGF0ZSk7XG4gICRpc29sYXRpb246IHN1c3ktZ2V0KHNwYW4sICRpc29sYXRlKTtcblxuICBAaWYgJGlzb2xhdGlvbiBhbmQgbm90KGdldC1sb2NhdGlvbigkaXNvbGF0ZSkpIHtcbiAgICAkbmV3OiAoXG4gICAgICBzcGFuOiBudWxsLFxuICAgICAgbG9jYXRpb246ICRpc29sYXRpb24sXG4gICAgKTtcbiAgICAkaXNvbGF0ZTogbWFwLW1lcmdlKCRpc29sYXRlLCAkbmV3KTtcbiAgfVxuXG4gIEByZXR1cm4gZ2V0LWlzb2xhdGlvbigkaXNvbGF0ZSk7XG59XG5cblxuLy8gR2V0IElzb2xhdGlvblxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBpc29sYXRpb24gb2Zmc2V0IHdpZHRoXG4vLyAtICRpbnB1dDogPG1hcD5cbkBmdW5jdGlvbiBnZXQtaXNvbGF0aW9uKFxuICAkaW5wdXRcbikge1xuICAkbG9jYXRpb24gICA6IGdldC1sb2NhdGlvbigkaW5wdXQpO1xuICAkY29sdW1ucyAgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRpbnB1dCk7XG4gICR3aWR0aCAgICAgIDogbnVsbDtcblxuICBAaWYgdHlwZS1vZigkbG9jYXRpb24pID09IG51bWJlciBhbmQgbm90KHVuaXRsZXNzKCRsb2NhdGlvbikpIHtcbiAgICAkd2lkdGg6ICRsb2NhdGlvbjtcbiAgfSBAZWxzZSBpZiAkbG9jYXRpb24ge1xuICAgICRwdXNoOiAkbG9jYXRpb24gLSAxO1xuICAgIEBpZiAkcHVzaCA+IDAge1xuICAgICAgJHB1c2g6IG1hcC1tZXJnZSgkaW5wdXQsIChcbiAgICAgICAgc3BhbjogJHB1c2gsXG4gICAgICAgIGxvY2F0aW9uOiAxLFxuICAgICAgICBzcHJlYWQ6IHdpZGUsXG4gICAgICApKTtcbiAgICAgICR3aWR0aDogZ2V0LXNwYW4td2lkdGgoJHB1c2gpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRpbnB1dCkgPT0gc3BsaXRcbiAgICAgIGFuZCBzdXN5LWdldChndXR0ZXJzLCAkaW5wdXQpID4gMCB7XG4gICAgJHdpZHRoOiBpZigkd2lkdGggPT0gbnVsbCwgZ3V0dGVycygkaW5wdXQpLCAkd2lkdGggKyBndXR0ZXJzKCRpbnB1dCkpO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGggb3IgMDtcbn1cbiIsIi8vIEdhbGxlcnkgU3ludGF4XG4vLyA9PT09PT09PT09PT09PVxuXG4vLyBHYWxsZXJ5XG4vLyAtLS0tLS0tXG4vLyBDcmVhdGUgYW4gaXNvbGF0ZWQgZ2FsbGVyeVxuLy8gLSAkc3BhbiAgICAgICAgOiA8c3Bhbj5cbi8vIC0gWyRzZWxlY3Rvcl0gIDogY2hpbGQgfCBvZi10eXBlXG5AbWl4aW4gZ2FsbGVyeShcbiAgJHNwYW4sXG4gICRzZWxlY3RvcjogY2hpbGRcbikge1xuICAkaW5zcGVjdCAgICA6ICRzcGFuO1xuICAkc3BhbiAgICAgICA6IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkc3BhbiAgICAgICA6IG1hcC1tZXJnZSgkc3BhbiwgKGxvY2F0aW9uOiAxKSk7XG5cbiAgJG4gICAgICAgICAgICA6IHN1c3ktZ2V0KHNwYW4sICRzcGFuKTtcbiAgJGNvbHVtbnMgICAgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGNvbnRleHQgICAgICA6IHN1c3ktY291bnQoJGNvbHVtbnMpO1xuICAkZmxvdyAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuXG4gICRpbnNpZGUgICAgICAgOiBpcy1pbnNpZGUoJHNwYW4pO1xuICAkZnJvbSAgICAgICAgIDogZnJvbSgkZmxvdyk7XG4gICRsaW5lICAgICAgICAgOiBmbG9vcigkY29udGV4dCAvICRuKTtcbiAgJHN5bW1ldHJpY2FsICA6IGlzLXN5bW1ldHJpY2FsKCRjb2x1bW5zKTtcblxuICAkb3V0cHV0OiAoXG4gICAgd2lkdGggICAgICAgICAgICAgOiBudWxsLFxuICAgIGZsb2F0ICAgICAgICAgICAgIDogZnJvbSxcbiAgICBtYXJnaW4tYmVmb3JlICAgICA6IG51bGwsXG4gICAgbWFyZ2luLWFmdGVyICAgICAgOiBudWxsLFxuICAgIHBhZGRpbmctYmVmb3JlICAgIDogbnVsbCxcbiAgICBwYWRkaW5nLWFmdGVyICAgICA6IG51bGwsXG4gICAgZmxvdyAgICAgICAgICAgICAgOiAkZmxvdyxcbiAgKTtcblxuICBAaWYgJGluc2lkZSB7XG4gICAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcbiAgICAkb3V0cHV0OiBtYXAtbWVyZ2UoJG91dHB1dCwgKFxuICAgICAgcGFkZGluZy1iZWZvcmU6IG1hcC1nZXQoJGd1dHRlcnMsIGJlZm9yZSksXG4gICAgICBwYWRkaW5nLWFmdGVyOiBtYXAtZ2V0KCRndXR0ZXJzLCBhZnRlciksXG4gICAgKSk7XG4gIH1cblxuICBAaWYgJHN5bW1ldHJpY2FsIHtcbiAgICAkb3V0cHV0OiBtYXAtbWVyZ2UoJG91dHB1dCwgKHdpZHRoOiBnZXQtc3Bhbi13aWR0aCgkc3BhbikpKTtcbiAgfVxuXG4gICRib3ggICAgICAgICAgOiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRnbG9iYWwtYm94ICAgOiBpZihzdXN5LWdldChnbG9iYWwtYm94LXNpemluZykgPT0gJ2JvcmRlci1ib3gnLCB0cnVlLCBmYWxzZSk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGdhbGxlcnksICRpbnNwZWN0KTtcblxuICAvLyBDb2xsZWN0aXZlIE91dHB1dFxuICBAaWYgJGJveCA9PSBib3JkZXItYm94IG9yICgkaW5zaWRlIGFuZCBub3QoJGJveCkgYW5kIG5vdCgkZ2xvYmFsLWJveCkpIHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6IGJvcmRlci1ib3gpKTtcbiAgfSBAZWxzZSBpZiAkYm94ID09IGNvbnRlbnQtYm94IHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6IGNvbnRlbnQtYm94KSk7XG4gIH1cblxuICBAaW5jbHVkZSBmbG9hdC1zcGFuLW91dHB1dCgkb3V0cHV0Li4uKTtcblxuICAvLyBJbmRpdmlkdWFsIExvb3BcbiAgQGZvciAkaXRlbSBmcm9tIDEgdGhyb3VnaCAkbGluZSB7XG4gICAgJG50aDogJyN7JGxpbmV9biArICN7JGl0ZW19JztcbiAgICAmOm50aC0jeyRzZWxlY3Rvcn0oI3skbnRofSkge1xuICAgICAgLy8gSW5kaXZpZHVhbCBQcmVwXG4gICAgICAkb3V0cHV0OiAoXG4gICAgICAgIHdpZHRoICAgICAgICAgICAgIDogaWYoJHN5bW1ldHJpY2FsLCBudWxsLCBnZXQtc3Bhbi13aWR0aCgkc3BhbikpLFxuICAgICAgICBmbG9hdCAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgIG1hcmdpbi1iZWZvcmUgICAgIDogZ2V0LWlzb2xhdGlvbigkc3BhbiksXG4gICAgICAgIG1hcmdpbi1hZnRlciAgICAgIDogLTEwMCUsXG4gICAgICAgIHBhZGRpbmctYmVmb3JlICAgIDogbnVsbCxcbiAgICAgICAgcGFkZGluZy1hZnRlciAgICAgOiBudWxsLFxuICAgICAgICBmbG93ICAgICAgICAgICAgICA6ICRmbG93LFxuICAgICAgKTtcblxuICAgICAgLy8gSW5kaXZpZHVhbCBPdXRwdXRcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4tb3V0cHV0KCRvdXRwdXQuLi4pO1xuXG4gICAgICBAaWYgZ2V0LWVkZ2UoJHNwYW4pID09IGZpcnN0IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWs7XG4gICAgICAgIEBpbmNsdWRlIGZpcnN0KCRzcGFuKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBub2JyZWFrO1xuICAgICAgfVxuXG4gICAgICAvLyBJbmRpdmlkdWFsIExvY2F0aW9uIEluY3JlbWVudFxuICAgICAgJGxvY2F0aW9uOiBnZXQtbG9jYXRpb24oJHNwYW4pICsgJG47XG4gICAgICAkbG9jYXRpb246IGlmKCRsb2NhdGlvbiA+ICRjb250ZXh0LCAxLCAkbG9jYXRpb24pO1xuICAgICAgJHNwYW46IG1hcC1tZXJnZSgkc3BhbiwgKGxvY2F0aW9uOiAkbG9jYXRpb24pKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZsb2F0IEVuZHMgQVBJXG4vLyA9PT09PT09PT09PT09PVxuXG4vLyBTdXN5IEVuZCBEZWZhdWx0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gUFJJVkFURVxuQGluY2x1ZGUgc3VzeS1kZWZhdWx0cygoXG4gIGxhc3QtZmxvdzogdG8sXG4pKTtcblxuLy8gRmxvYXQgTGFzdFxuLy8gLS0tLS0tLS0tLVxuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuQG1peGluIGZsb2F0LWxhc3QoXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSxcbiAgJGxhc3QtZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgbGFzdC1mbG93KSxcbiAgJG1hcmdpbjogMFxuKSB7XG4gICR0bzogdG8oJGZsb3cpO1xuXG4gICRvdXRwdXQ6IChcbiAgICBmbG9hdDogaWYoJGxhc3QtZmxvdyA9PSB0bywgJHRvLCBudWxsKSxcbiAgICBtYXJnaW4tI3skdG99OiAkbWFyZ2luLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cblxuLy8gRmxvYXQgRmlyc3Rcbi8vIC0tLS0tLS0tLS0tXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gZmxvYXQtZmlyc3QoXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gICRvdXRwdXQ6IChcbiAgICBtYXJnaW4tI3tmcm9tKCRmbG93KX06IDAsXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
