@charset "UTF-8";
html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

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

@media all {
  /**
	 *  @section Normalisation Module
	 */
  /* (en) Global reset of paddings and margins for all HTML elements */
  /* (de) Globales Zurücksetzen der Innen- und Außenabstände für alle HTML-Elemente */
  * {
    margin: 0;
    padding: 0;
  }
  /* (en) Correction: margin/padding reset caused too small select boxes. */
  /* (de) Korrektur: Das Zurücksetzen der Abstände verursacht zu kleine Selectboxen. */
  option {
    padding-left: 0.4em;
  }
  select {
    padding: 1px;
  }
  /*
	* (en) Global fix of the Italics bugs in IE 5.x and IE 6
	* (de) Globale Korrektur des Italics Bugs des IE 5.x und IE 6
	*
	* @bugfix
	* @affected   IE 5.x/Win, IE6
	* @css-for    IE 5.x/Win, IE6
	* @valid      yes
	*/
  * html body * {
    overflow: visible;
  }
  /*
	* (en) Fix for rounding errors when scaling font sizes in older versions of Opera browser
	*      Standard values for colors and text alignment
	*
	* (de) Beseitigung von Rundungsfehler beim Skalieren von Schriftgrößen in älteren Opera Versionen
	*      Vorgabe der Standardfarben und Textausrichtung
	*/
  body {
    font-size: 100%;
    background: #fff;
    color: #000;
    text-align: left;
  }
  /* (en) avoid visible outlines on DIV and h[x] elements in Webkit browsers */
  /* (de) Vermeidung sichtbarer Outline-Rahmen in Webkit-Browsern */
  div:target,
  h1:target,
  h2:target,
  h3:target,
  h4:target,
  h5:target,
  h6:target {
    outline: 0 none;
  }
  /* (en) HTML5 - adjusting visual formatting model to block level */
  /* (de) HTML5 - Elements werden als Blockelemente definiert */
  article,
  aside,
  details,
  figcaption,
  figure,
  footer,
  header,
  main,
  nav,
  section,
  summary {
    display: block;
  }
  /* (en) HTML5 - default media element styles */
  /* (de) HTML5 - Standard Eigenschaften für Media-Elemente */
  audio,
  canvas,
  video {
    display: inline-block;
  }
  /* (en) HTML5 - don't show <audio> element if there aren't controls */
  /* (de) HTML5 - <audio> ohne Kontrollelemente sollten nicht angezeigt werden */
  audio:not([controls]) {
    display: none;
  }
  /* (en) HTML5 - add missing styling in IE & old FF for hidden attribute */
  /* (de) HTML5 - Eigenschaften für das hidden-Attribut in älteren IEs und FF nachrüsten */
  [hidden] {
    display: none;
  }
  /* (en) Prevent iOS text size adjust after orientation change, without disabling user zoom. */
  /* (de) Verdindert die automatische Textanpassung bei Orientierungswechsel, ohne Zoom zu blockieren */
  html {
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
  }
  /* (en) set correct box-modell in IE8/9 plus remove padding */
  /* (de) Setze das richtige Box-Modell im IE8/9 und entferne unnötiges Padding */
  input[type="checkbox"],
  input[type="radio"] {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: 0;
  }
  /* (en) force consistant appearance of input[type="search"] elements in all browser */
  /* (de) Einheitliches Erscheinungsbild für input[type="search"] Elemente erzwingen */
  input[type="search"] {
    -webkit-appearance: textfield;
    -webkit-box-sizing: content-box;
    box-sizing: content-box;
  }
  input[type="search"]::-webkit-search-cancel-button,
  input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  /* (en) Correct overflow displayed oddly in IE 9 */
  /* (de) Korrigiert fehlerhafte overflow Voreinstellung des IE 9 */
  svg:not(:root) {
    overflow: hidden;
  }
  /* (en) Address margin not present in IE 8/9 and Safari 5 */
  /* (en) Ergänzt fehlenden Margin in IE 8/9 und Safari 5 */
  figure {
    margin: 0;
  }
  /* (en) Clear borders for <fieldset> and <img> elements */
  /* (de) Rahmen für <fieldset> und <img> Elemente löschen */
  fieldset,
  img {
    border: 0 solid;
  }
  /* (en) new standard values for lists, blockquote, cite and tables */
  /* (de) Neue Standardwerte für Listen, Zitate und Tabellen */
  ul,
  ol,
  dl {
    margin: 0 0 1em 1em;
  }
  li {
    line-height: 1.5em;
    margin-left: 0.8em;
  }
  dt {
    font-weight: bold;
  }
  dd {
    margin: 0 0 1em 0.8em;
  }
  blockquote {
    margin: 0 0 1em 0.8em;
  }
  q {
    quotes: none;
  }
  blockquote:before,
  blockquote:after,
  q:before,
  q:after {
    content: '';
    content: none;
  }
  table {
    border-collapse: collapse;
    border-spacing: 0;
  }
  /**
	* @section Float Handling Module
	*/
  /* (en) clearfix method for clearing floats */
  /* (de) Clearfix-Methode zum Clearen der Float-Umgebungen */
  .ym-clearfix:before {
    content: "";
    display: table;
  }
  .ym-clearfix:after {
    clear: both;
    content: ".";
    display: block;
    font-size: 0;
    height: 0;
    visibility: hidden;
  }
  /* (en) alternative solutions to contain floats */
  /* (de) Alternative Methoden zum Einschließen von Float-Umgebungen */
  .ym-contain-dt {
    display: table;
    table-layout: fixed;
    width: 100%;
  }
  .ym-contain-oh {
    display: block;
    overflow: hidden;
    width: 100%;
  }
  .ym-contain-fl {
    float: left;
    width: 100%;
  }
  /**
	* @section Column Module
	*
	* default column config:
	* |-------------------------------|
	* | col1    | col3      | col2    |
	* | 20%     | flexible  | 20%     |
	* |-------------------------------|
	*/
  .ym-column {
    display: table;
    table-layout: fixed;
    width: 100%;
  }
  .ym-col1 {
    float: left;
    width: 20%;
  }
  .ym-col2 {
    float: right;
    width: 20%;
  }
  .ym-col3 {
    width: auto;
    margin: 0 20%;
  }
  .ym-cbox {
    padding: 0 10px;
  }
  .ym-cbox-left {
    padding: 0 10px 0 0;
  }
  .ym-cbox-right {
    padding: 0 0 0 10px;
  }
  /* (en) IE-Clearing: Only used in Internet Explorer, switched on in iehacks.css */
  /* (de) IE-Clearing: Benötigt nur der Internet Explorer und über iehacks.css zugeschaltet */
  .ym-ie-clearing {
    display: none;
  }
  /**
	* @section Grid Module
	*/
  .ym-grid {
    display: table;
    table-layout: fixed;
    width: 100%;
    list-style-type: none;
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
  }
  .ym-gl {
    float: left;
    margin: 0;
  }
  .ym-gr {
    float: right;
    margin: 0 0 0 -5px;
  }
  .ym-g20 {
    width: 20%;
  }
  .ym-g40 {
    width: 40%;
  }
  .ym-g60 {
    width: 60%;
  }
  .ym-g80 {
    width: 80%;
  }
  .ym-g25 {
    width: 25%;
  }
  .ym-g33 {
    width: 33.333%;
  }
  .ym-g50 {
    width: 50%;
  }
  .ym-g66 {
    width: 66.666%;
  }
  .ym-g75 {
    width: 75%;
  }
  .ym-g38 {
    width: 38.2%;
  }
  .ym-g62 {
    width: 61.8%;
  }
  .ym-gbox {
    padding: 0 10px;
  }
  .ym-gbox-left {
    padding: 0 10px 0 0;
  }
  .ym-gbox-right {
    padding: 0 0 0 10px;
  }
  .ym-equalize {
    overflow: hidden;
  }
  .ym-equalize > [class*="ym-g"] {
    display: table-cell;
    float: none;
    margin: 0;
    vertical-align: top;
  }
  .ym-equalize > [class*="ym-g"] > [class*="ym-gbox"] {
    padding-bottom: 10000px;
    margin-bottom: -10000px;
  }
  /**
	* @section Form Module
	*/
  /** Vertical-Forms - technical base (standard)
	*
	* |-------------------------------|
	* | form                          |
	* |-------------------------------|
	* |   label                       |
	* |   input / select / textarea   |
	* |-------------------------------|
	* | /form                         |
	* |-------------------------------|
	*
	* (en) Styling of forms where both label and input/select/textarea are styled with display:block;
	* (de) Formulargestaltung, bei der sowohl label als auch input/select/textarea mit display:block; gestaltet werden
	*/
  .ym-form,
  .ym-form fieldset {
    overflow: hidden;
  }
  .ym-form div {
    position: relative;
  }
  .ym-form label,
  .ym-form .ym-label,
  .ym-form .ym-message {
    position: relative;
    line-height: 1.5;
    display: block;
  }
  .ym-form .ym-message {
    clear: both;
  }
  .ym-form .ym-fbox-check label {
    display: inline;
  }
  .ym-form input,
  .ym-form textarea {
    cursor: text;
  }
  .ym-form .ym-fbox-check input,
  .ym-form input[type="image"],
  .ym-form input[type="radio"],
  .ym-form input[type="checkbox"],
  .ym-form select,
  .ym-form label {
    cursor: pointer;
  }
  .ym-form textarea {
    overflow: auto;
  }
  .ym-form input.hidden,
  .ym-form input[type=hidden] {
    display: none !important;
  }
  .ym-form .ym-fbox:before,
  .ym-form .ym-fbox-text:before,
  .ym-form .ym-fbox-select:before,
  .ym-form .ym-fbox-check:before,
  .ym-form .ym-fbox-button:before {
    content: "";
    display: table;
  }
  .ym-form .ym-fbox:after,
  .ym-form .ym-fbox-text:after,
  .ym-form .ym-fbox-select:after,
  .ym-form .ym-fbox-check:after,
  .ym-form .ym-fbox-button:after {
    clear: both;
    content: ".";
    display: block;
    font-size: 0;
    height: 0;
    visibility: hidden;
  }
  .ym-form .ym-fbox-check input:focus,
  .ym-form .ym-fbox-check input:hover,
  .ym-form .ym-fbox-check input:active,
  .ym-form input[type="radio"]:focus,
  .ym-form input[type="radio"]:hover,
  .ym-form input[type="radio"]:active,
  .ym-form input[type="checkbox"]:focus,
  .ym-form input[type="checkbox"]:hover,
  .ym-form input[type="checkbox"]:active {
    border: 0 none;
  }
  .ym-form input,
  .ym-form textarea,
  .ym-form select {
    display: block;
    position: relative;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 70%;
  }
  .ym-form .ym-fbox-check input,
  .ym-form input[type="radio"],
  .ym-form input[type="checkbox"] {
    display: inline;
    margin-left: 0;
    margin-right: 0.5ex;
    width: auto;
    height: auto;
  }
  .ym-form input[type="image"] {
    border: 0;
    display: inline;
    height: auto;
    margin: 0;
    padding: 0;
    width: auto;
  }
  .ym-form label,
  .ym-form .ym-label {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  .ym-form .ym-fbox-button input {
    display: inline;
    overflow: visible;
    width: auto;
  }
  .ym-form .ym-inline {
    display: inline-block;
    float: none;
    margin-right: 0;
    width: auto;
    vertical-align: baseline;
  }
  /* default form wrapper width */
  .ym-fbox-wrap {
    display: table;
    table-layout: fixed;
    width: 70%;
  }
  .ym-fbox-wrap input,
  .ym-fbox-wrap textarea,
  .ym-fbox-wrap select {
    width: 100%;
  }
  .ym-fbox-wrap input[type="image"] {
    width: auto;
  }
  .ym-fbox-wrap input[type="radio"],
  .ym-fbox-wrap input[type="checkbox"] {
    display: inline;
    width: auto;
    margin-left: 0;
    margin-right: 0.5ex;
  }
  .ym-fbox-wrap label,
  .ym-fbox-wrap .ym-label {
    display: inline;
  }
  .ym-full input,
  .ym-full textarea,
  .ym-full select {
    width: 100%;
  }
  .ym-full .ym-fbox-wrap {
    width: 100%;
  }
  /**
	*  Columnar forms display - technical base (optional)
	*
	*  |-------------------------------------------|
	*  | form                                      |
	*  |-------------------------------------------|
	*  |                                           |
	*  |   label   |   input / select / textarea   |
	*  |                                           |
	*  |-------------------------------------------|
	*  | /form                                     |
	*  |-------------------------------------------|
	*
	*  (en) Styling of forms where label floats left of form-elements
	*  (de) Formulargestaltung, bei der die label-Elemente nach links fließen
	*/
  .ym-columnar input,
  .ym-columnar textarea,
  .ym-columnar select {
    float: left;
    margin-right: -3px;
  }
  .ym-columnar label,
  .ym-columnar .ym-label {
    display: inline;
    float: left;
    width: 30%;
    z-index: 1;
  }
  .ym-columnar .ym-fbox-check input,
  .ym-columnar .ym-message {
    margin-left: 30%;
  }
  .ym-columnar .ym-fbox-wrap {
    margin-left: 30%;
    margin-right: -3px;
  }
  .ym-columnar .ym-fbox-wrap .ym-message {
    margin-left: 0%;
  }
  .ym-columnar .ym-fbox-wrap label {
    float: none;
    width: auto;
    z-index: 1;
    margin-left: 0;
  }
  .ym-columnar .ym-fbox-wrap input {
    margin-left: 0;
    position: relative;
  }
  .ym-columnar .ym-fbox-check {
    position: relative;
  }
  .ym-columnar .ym-fbox-check label,
  .ym-columnar .ym-fbox-check .ym-label {
    padding-top: 0;
  }
  .ym-columnar .ym-fbox-check input {
    top: 3px;
  }
  .ym-columnar .ym-fbox-button input {
    float: none;
    margin-right: 1em;
  }
  .ym-fbox-wrap + .ym-fbox-wrap {
    margin-top: 0.5em;
  }
  /* global and local columnar settings for button alignment */
  .ym-columnar fieldset .ym-fbox-button,
  fieldset.ym-columnar .ym-fbox-button {
    padding-left: 30%;
  }
  /**
	* @section Accessibility Module
	*
	* (en) skip links and hidden content
	* (de) Skip-Links und versteckte Inhalte
	*/
  /* (en) classes for invisible elements in the base layout */
  /* (de) Klassen für unsichtbare Elemente im Basislayout */
  .ym-skip,
  .ym-hideme,
  .ym-print {
    position: absolute;
    top: -32768px;
    left: -32768px;
  }
  /* (en) make skip links visible when using tab navigation */
  /* (de) Skip-Links für Tab-Navigation sichtbar schalten */
  .ym-skip:focus,
  .ym-skip:active {
    position: static;
    top: 0;
    left: 0;
  }
  /* skiplinks:technical setup */
  .ym-skiplinks {
    position: absolute;
    top: 0px;
    left: -32768px;
    z-index: 1000;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style-type: none;
  }
  .ym-skiplinks .ym-skip:focus,
  .ym-skiplinks .ym-skip:active {
    left: 32768px;
    outline: 0 none;
    position: absolute;
    width: 100%;
  }
}

@media print {
  /**
	* @section print adjustments for core modules
	*
	* (en) float containment for grids. Uses display:table to avoid bugs in FF & IE
	* (de) Floats in Grids einschließen. Verwendet display:table, um Darstellungsprobleme im FF & IE zu vermeiden
	*
	* @bugfix
	* @since     3.0
	* @affected  FF2.0, FF3.0, IE7
	* @css-for   all browsers
	* @valid     yes
	*/
  .ym-grid > .ym-gl,
  .ym-grid > .ym-gr {
    overflow: visible;
    display: table;
    table-layout: fixed;
  }
  /* (en) make .ym-print class visible */
  /* (de) .ym-print-Klasse sichtbar schalten */
  .ym-print {
    position: static;
    left: 0;
  }
  /* (en) generic class to hide elements for print */
  /* (de) Allgemeine CSS Klasse, um beliebige Elemente in der Druckausgabe auszublenden */
  .ym-noprint {
    display: none !important;
  }
}

#cssmenu,
#cssmenu ul,
#cssmenu ul li,
#cssmenu ul li a,
#cssmenu #menu-button {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
  line-height: 1;
  display: block;
  position: relative;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

#cssmenu:after,
#cssmenu > ul:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0;
}

#cssmenu #menu-button {
  display: none;
}

#cssmenu {
  width: auto;
  line-height: 1;
  background: transparent;
}

#menu-line {
  position: absolute;
  top: 0;
  left: 0;
  height: 0;
  -webkit-transition: all 0.25s ease-out;
  transition: all 0.25s ease-out;
}

#cssmenu ul {
  background-color: #fff;
}

#cssmenu > ul > li {
  float: left;
}

#cssmenu.align-center > ul {
  font-size: 0;
  text-align: center;
}

#cssmenu.align-center > ul > li {
  display: inline-block;
  float: none;
}

#cssmenu.align-center ul ul {
  text-align: left;
}

#cssmenu.align-right > ul > li {
  float: right;
}

#cssmenu.align-right ul ul {
  text-align: right;
}

#cssmenu > ul > li > a {
  padding: 20px;
  font-size: 14px;
  font-weight: 400;
  text-decoration: none;
  text-transform: uppercase;
  color: #4e4e4e;
  -webkit-transition: color .2s ease;
  transition: color .2s ease;
}

#cssmenu > ul > li > a:hover {
  background: none;
}

#cssmenu > ul > li:hover > a {
  color: #aa85a3;
}

#cssmenu > ul > li.active > a {
  font-weight: 700;
}

#cssmenu > ul > li.has-sub > a {
  padding-right: 25px;
}

#cssmenu > ul > li.has-sub > a::after {
  position: absolute;
  top: 21px;
  right: 10px;
  width: 4px;
  height: 4px;
  border-bottom: 1px solid #000000;
  border-right: 1px solid #000000;
  content: "";
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  -webkit-transition: border-color 0.2s ease;
  transition: border-color 0.2s ease;
}

#cssmenu > ul > li.has-sub:hover > a::after {
  border-color: #009ae1;
}

#cssmenu ul ul {
  position: absolute;
  left: -9999px;
}

#cssmenu li:hover > ul {
  left: auto;
}

#cssmenu.align-right li:hover > ul {
  right: 0;
}

#cssmenu ul ul ul {
  margin-left: 100%;
  top: 0;
}

#cssmenu.align-right ul ul ul {
  margin-left: 0;
  margin-right: 100%;
}

#cssmenu ul ul li {
  height: 0;
  -webkit-transition: height .2s ease;
  transition: height .2s ease;
}

#cssmenu ul li:hover > ul > li {
  height: 32px;
}

#cssmenu ul ul li a {
  padding: 10px 20px;
  width: 160px;
  font-size: 12px;
  background: #333333;
  text-decoration: none;
  color: #dddddd;
  -webkit-transition: color .2s ease;
  transition: color .2s ease;
}

#cssmenu ul ul li:hover > a,
#cssmenu ul ul li a:hover {
  color: #ffffff;
}

#cssmenu ul ul li.has-sub > a::after {
  position: absolute;
  top: 13px;
  right: 10px;
  width: 4px;
  height: 4px;
  border-bottom: 1px solid #dddddd;
  border-right: 1px solid #dddddd;
  content: "";
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  -webkit-transition: border-color 0.2s ease;
  transition: border-color 0.2s ease;
}

#cssmenu.align-right ul ul li.has-sub > a::after {
  right: auto;
  left: 10px;
  border-bottom: 0;
  border-right: 0;
  border-top: 1px solid #dddddd;
  border-left: 1px solid #dddddd;
}

#cssmenu ul ul li.has-sub:hover > a::after {
  border-color: #ffffff;
}

@media all and (max-width: 1020px) {
  #cssmenu {
    width: 100%;
  }
  #cssmenu ul {
    width: 100%;
    display: none;
  }
  #cssmenu.align-center > ul,
  #cssmenu.align-right ul ul {
    text-align: left;
  }
  #cssmenu ul li,
  #cssmenu ul ul li,
  #cssmenu ul li:hover > ul > li {
    width: 100%;
    height: auto;
    border-top: 1px solid rgba(120, 120, 120, 0.15);
  }
  #cssmenu ul li {
    text-align: center;
  }
  #cssmenu ul li a,
  #cssmenu ul ul li a {
    width: 100%;
  }
  #cssmenu > ul > li,
  #cssmenu.align-center > ul > li,
  #cssmenu.align-right > ul > li {
    float: none;
    display: block;
  }
  #cssmenu ul ul li a {
    padding: 20px 20px 20px 30px;
    font-size: 12px;
    color: #000000;
    background: none;
  }
  #cssmenu ul ul li:hover > a,
  #cssmenu ul ul li a:hover {
    color: #000000;
  }
  #cssmenu ul ul ul li a {
    padding-left: 40px;
  }
  #cssmenu ul ul,
  #cssmenu ul ul ul {
    position: relative;
    left: 0;
    right: auto;
    width: 100%;
    margin: 0;
  }
  #cssmenu > ul > li.has-sub > a::after,
  #cssmenu ul ul li.has-sub > a::after {
    display: none;
  }
  #menu-line {
    display: none;
  }
  #cssmenu #menu-button {
    display: block;
    margin: -3px 20px 0 0;
    padding: 22px 43px 20px 20px;
    color: #000000;
    cursor: pointer;
    font-size: 14px;
    text-transform: uppercase;
  }
  #cssmenu #menu-button::after {
    content: '';
    position: absolute;
    top: 20px;
    right: 20px;
    display: block;
    width: 15px;
    height: 2px;
    background: #000000;
  }
  #cssmenu #menu-button::before {
    content: '';
    position: absolute;
    top: 25px;
    right: 20px;
    display: block;
    width: 15px;
    height: 7px;
    border-top: 2px solid #000000;
    border-bottom: 2px solid #000000;
  }
  #cssmenu .submenu-button {
    position: absolute;
    z-index: 10;
    right: 0;
    top: 0;
    display: block;
    border-left: 1px solid rgba(120, 120, 120, 0.15);
    height: 52px;
    width: 52px;
    cursor: pointer;
  }
  #cssmenu .submenu-button::after {
    content: '';
    position: absolute;
    top: 21px;
    left: 26px;
    display: block;
    width: 1px;
    height: 11px;
    background: #000000;
    z-index: 99;
  }
  #cssmenu .submenu-button::before {
    content: '';
    position: absolute;
    left: 21px;
    top: 26px;
    display: block;
    width: 11px;
    height: 1px;
    background: #000000;
    z-index: 99;
  }
  #cssmenu .submenu-button.submenu-opened:after {
    display: none;
  }
}

@media all {
  /*!
	* @section global typography settings
	*
	* vertical rhythm settings (based on em-unit)
	* -------------------------------------------
	* basefont-size:  16px (100%)
	* line-height  :  26px (factor: 1.625) */
  /* Alle Schriftgrößen auf Standardgröße (16 Pixel) zurücksetzen */
  html * {
    font-size: 100%;
  }
  /**
	* Schriftgröße von monospaced Elemente in allen Browsern auf 16 Pixel setzen
	*
	* @see: http://webkit.org/blog/67/strange-medium/
	*/
  textarea,
  pre,
  code,
  kbd,
  samp,
  var,
  tt {
    font-family: Consolas, "Lucida Console", "Andale Mono", "Bitstream Vera Sans Mono", "Courier New", Courier;
  }
  /*! font-size: 16px; */
  body {
    font-family: "neuzeit-grotesk", Arial, Helvetica, sans-serif;
    font-size: 100%;
    font-weight: 300;
    color: #4e4e4e;
  }
  /*--- Überschriften ------------------------------------------------------------------------*/
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-family: "neuzeit-grotesk", Arial, Helvetica, sans-serif;
    font-weight: 300;
    color: #161e21;
    margin: 0;
  }
  h1 {
    /*! font-size: 48px; */
    font-size: 200%;
    line-height: 1.08333;
    margin: 0 0 1em 0;
  }
  h1:first-child {
    margin-top: 1.5em;
  }
  h1.home-title {
    margin-top: 0;
  }
  h2 {
    /*! font-size: 25px; */
    font-size: 160%;
    line-height: 2.08;
    margin: 0 0 0.5em 0;
  }
  p + h2 {
    margin-top: 2em;
  }
  h3 {
    /*! font-size: 24px; */
    font-size: 130%;
    line-height: 1.08333;
    margin: 0 0 1.08333em 0;
  }
  h4 {
    /*! font-size: 21px; */
    font-size: 131.25%;
    line-height: 1.2381;
    margin: 0 0 1.2381em 0;
  }
  h5 {
    /*! font-size: 18px; */
    font-size: 112.5%;
    line-height: 1.44444;
    margin: 0 0 1.44444em 0;
  }
  h6 {
    /*! font-size: 14px; */
    font-size: 87.5%;
    font-weight: bold;
    line-height: 1.85714;
    margin: 0 0 1.85714em 0;
  }
  /* --- Listen  -------------------------------------------------------------------------------- */
  ul,
  ol,
  dl {
    font-size: 100%;
    line-height: 1.625;
    margin: 0 0 1.625em 0;
  }
  ul {
    list-style-type: disc;
  }
  ol {
    list-style-type: decimal;
  }
  ul ul {
    list-style-type: circle;
    margin-top: 0;
  }
  ol ol {
    list-style-type: lower-latin;
    margin-top: 0;
  }
  ol ul {
    list-style-type: circle;
    margin-top: 0;
  }
  li {
    font-size: 100%;
    line-height: 1.625;
    margin-left: 1.2em;
  }
  dt {
    font-weight: bold;
  }
  dd {
    margin: 0 0 1.625em 0.8em;
  }
  /* --- Allgemeine Textauszeichnung ------------------------------------------ */
  p {
    font-size: 100%;
    line-height: 1.625;
    margin: 0 0 1.625em 0;
  }
  blockquote,
  cite,
  q {
    font-style: normal;
  }
  blockquote {
    margin: 2em 1.5em 1em 1.5em;
    text-align: center;
    font-weight: 400;
  }
  strong,
  b {
    font-weight: bold;
  }
  em,
  i {
    font-style: italic;
  }
  big {
    /*! font-size: 16px; */
    font-size: 100%;
    line-height: 1.625;
  }
  small {
    /*! font-size: 12px; */
    font-size: 75%;
    line-height: 2.16667;
  }
  /*--- Links ----------------------------------------------------------------------------------------- */
  a {
    text-decoration: underline;
    color: #4e4e4e;
  }
  a:active {
    outline: none;
  }
  /* Maximaler Kontrast für Tab Focus - Ändern Sie diese Regel mit Bedacht */
  a:hover,
  a:focus {
    background-color: transparent;
    color: #aa85a3;
    text-decoration: none;
  }
  .footer-link {
    text-transform: uppercase;
    font-size: 0.9em;
    text-decoration: none;
    display: inline-block;
    margin-right: 10px;
  }
  .footer-link:hover {
    text-decoration: none;
  }
  /* --- images ------------------ */
  img,
  figure {
    margin: 0;
  }
  .flexible {
    margin-bottom: 1.625em;
    max-width: 100%;
    height: auto;
  }
  /* IE6 workaround - 2% space for possible borders */
  * html .flexible {
    width: 98%;
  }
  .bordered {
    margin-bottom: 1.625em;
    border: 2px #eee solid;
    border: 2px white solid;
    -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.25);
    box-shadow: 0 0 3px rgba(0, 0, 0, 0.25);
  }
  /**
	* ----------------------------------------------------------------------- #
	*
	* Generic Content Classes
	*
	* Standardklassen zur Positionierung und Hervorhebung
	*
	* @section content-generic-classes
	*/
  .small {
    font-size: 0.85em;
  }
  .big {
    font-size: 1.2em;
  }
  .float-left {
    float: left;
    display: inline;
    margin: 0 1em 1.625em 0;
  }
  .float-right {
    float: right;
    display: inline;
    margin: 0 0 1.625em 1em;
  }
  .center {
    display: block;
    text-align: center;
    margin: 0 auto 1.625em auto;
  }
  .autor {
    text-align: center;
    font-size: 0.9em;
  }
  .zitat-page {
    margin: 4em 3em 1em 3em;
  }
  .logo-featured {
    margin-top: 65px;
  }
  /**
	* ------------------------------------------------------------------------------------------------- #
	*
	* Tabellen
	*
	* Generische Klassen für die Tabellenbreite und Gestaltungsvorschriften für Tabellen
	*
	* @section content-tables
	*/
  table {
    width: 100%;
    border-collapse: collapse;
    color: #4e4e4e;
    border-top: 1px #ccc solid;
    border-bottom: 1px #ccc solid;
    margin: 0 0 1.5em 0;
  }
  table.narrow {
    margin: 0 0 1.5625em 0;
  }
  table.narrow th,
  table.narrow td {
    padding: 0 0.5em;
    line-height: 1.5625;
  }
  table.fixed {
    table-layout: fixed;
  }
  table.bordertable {
    border: 1px #ccc solid;
  }
  table.bordertable thead th {
    background: #e0e0e0;
    border-right: 1px #ccc solid;
    border-bottom: 1px #ccc solid;
  }
  table.bordertable tbody th[scope="row"] {
    background: #f0f0f0;
  }
  table.bordertable tbody th {
    border-right: 1px solid #ccc;
  }
  table.bordertable tbody td {
    border-right: 1px solid #ccc;
  }
  caption {
    font-variant: small-caps;
  }
  th,
  td {
    line-height: 1.625em;
    vertical-align: top;
    padding: 0.78125em 0.5em;
  }
  th *:first-child,
  td *:first-child {
    margin-top: 0;
  }
  th.nowrap,
  td.nowrap {
    white-space: nowrap;
  }
  thead th {
    text-align: left;
    color: #000;
    border-bottom: 2px #000 solid;
  }
  tbody {
    /* highlight row on mouse over */
  }
  tbody th {
    text-align: left;
    border-top: 1px solid #ccc;
  }
  tbody td {
    text-align: left;
    border-top: 1px solid #ccc;
  }
  tbody tr:hover th,
  tbody tr:hover td {
    background: #f8f8f8;
  }
}

/* =Scss Variables
-------------------------------------------------------------- */
/* =Global
-------------------------------------------------------------- */
*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

/* =Template
-------------------------------------------------------------- */
.container {
  width: 80%;
  max-width: 1300px;
  height: 130px;
  margin: 0 auto;
  padding: 0;
  background-color: #fff;
}

.smaller .container {
  height: 80px;
  -webkit-transition: height 0.3s;
  transition: height 0.3s;
}

/* =Header
-------------------------------------------------------------- */
header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  -webkit-transition: height 0.3s;
  transition: height 0.3s;
}

header nav a {
  line-height: 150px;
  margin-left: 20px;
  color: #9fdbfc;
  font-weight: 700;
  font-size: 18px;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

header nav a:hover {
  color: white;
}

header.smaller {
  height: 75px;
}

header.smaller nav a {
  line-height: 75px;
}

/* =Extras
-------------------------------------------------------------- */
.clearfix:after {
  visibility: hidden;
  display: block;
  content: "";
  clear: both;
  height: 0;
}

/* =Media Queries
-------------------------------------------------------------- */
@media screen and (max-width: 1100px) {
  .container {
    width: 90%;
  }
}

@media all and (max-width: 660px) {
  /* =Header
	-------------------------------------------------------------- */
  .container {
    width: 100%;
  }
  header h1#logo {
    display: block;
    float: none;
    margin: 0 auto;
    height: 100px;
    line-height: 100px;
    text-align: center;
  }
  header nav {
    display: block;
    float: right;
    width: 100%;
    height: 50px;
    margin: -36px 0 0 100px;
  }
  header nav a {
    line-height: 50px;
    margin: 0 10px;
  }
  header.smaller {
    height: 75px;
  }
  header.smaller h1#logo {
    height: 40px;
    line-height: 40px;
    font-size: 30px;
  }
  header.smaller nav {
    height: 35px;
  }
  header.smaller nav a {
    line-height: 35px;
  }
  header.smaller .container {
    height: 62px;
  }
}

@media all and (max-width: 600px) {
  #info-bar a {
    display: block;
  }
  #info-bar span.all-tutorials,
  #info-bar span.back-to-tutorial {
    width: 100%;
  }
  #info-bar span.all-tutorials,
  #info-bar span.back-to-tutorial {
    float: none;
    text-align: center;
  }
  #info-bar span.all-tutorials {
    border-bottom: solid 1px #0793e2;
  }
}

@media all {
  .intro {
    margin-bottom: 80px;
    margin-top: 35px;
    text-align: center;
  }
  .intro strong {
    letter-spacing: 1px;
  }
  .insertion {
    height: 320px;
    text-align: center;
    color: #fff;
  }
  .insertion.insertion__call2action {
    background: url("img/mandala.jpg") no-repeat center center;
    background-size: cover;
    padding: 50px;
  }
  .insertion.insertion__call2action .big {
    font-weight: 400;
  }
  .insertion h3 {
    color: #fff;
  }
  .insertion.insertion__tagcloud--osteopathie {
    background: url("img/tagcloud-osteopathie.jpg") no-repeat center center;
    height: 335px;
    background-size: cover;
  }
  .insertion.insertion__tagcloud--inpp {
    background: url("img/tagcloud-inpp.jpg") no-repeat center left;
    height: 335px;
    background-size: cover;
  }
  .insertion .wrap {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .grid__50-50--featured {
    text-align: center;
    margin-bottom: 50px;
  }
  .grid__50-50--featured .featured-image {
    width: 100%;
    margin-bottom: 45px;
  }
  .grid__50-50--featured h3 {
    font-size: 25px;
    font-weight: 300;
    color: #4e4e4e;
  }
  .readmore {
    font-size: 12px;
    text-transform: uppercase;
  }
  .readmore a {
    padding: 4px 9px 0 8px;
    display: inline-block;
    color: #aa85a3;
    text-decoration: none;
    border: 1px solid #aa85a3;
  }
  .readmore a:hover {
    background-color: #aa85a3;
    color: #fff;
    -webkit-transition: 0.3s;
    transition: 0.3s;
  }
}

@media screen {
  body {
    overflow-y: scroll;
    /* force vertical scrollbar */
    background-color: #f0ecf3;
  }
  /* Layout Module Configuration & fallback for unsupported media queries */
  .ym-wrapper {
    min-width: 760px;
    width: 80%;
    max-width: 1300px;
    margin: 0 auto;
  }
  .ym-wbox {
    background-color: #fff;
  }
  .title-img {
    height: 705px;
    margin-top: 130px;
  }
  .title-home {
    background: url("img/title-home.jpg") no-repeat top center;
    background-size: cover;
  }
  .title-osteopathie {
    background: url("img/osteopathie.jpg") no-repeat top center;
    background-size: cover;
  }
  .title-inpp {
    background: url("img/lampe.jpg") no-repeat top center;
    background-size: cover;
  }
  .title-about {
    background: url("img/mirjam-auerbach.jpg") no-repeat top center;
    background-size: cover;
  }
  .title-praxis {
    background: url("img/praxis.jpg") no-repeat top center;
    background-size: cover;
  }
  .title-kontakt {
    background: url("img/hello.jpg") no-repeat top center;
    background-size: cover;
  }
  .title-impressum {
    background: url("img/hand-fuss.jpg") no-repeat top center;
    background-size: cover;
  }
  .branding {
    float: left;
    margin: 54px 20px 0 20px;
  }
  .branding a {
    display: block;
    padding: 0;
    color: #4e4e4e;
    text-transform: uppercase;
    text-decoration: none;
    letter-spacing: 1px;
    font-size: 18px;
  }
  .branding a:hover {
    background: none;
  }
  header nav {
    float: right;
    margin-right: 20px;
    margin-top: 36px;
  }
  header.smaller .branding {
    margin-top: 30px;
  }
  header.smaller nav {
    margin-top: 14px;
  }
  .main {
    padding: 50px 150px;
  }
  footer {
    margin: 0;
    padding: 1.5em;
    background-color: #e2dfdb;
  }
  footer p {
    margin: 0;
    font-size: 0.9em;
  }
  footer .left {
    float: left;
    margin-right: 20px;
  }
  footer .right {
    float: right;
    margin-left: 20px;
  }
  /* Column-Set Configuration: 1-3 (sidebar right) */
  .ym-column {
    display: block;
    overflow: hidden;
    padding-right: 340px;
    width: auto;
  }
  /* content - column */
  .ym-col1 {
    float: left;
    width: 100%;
  }
  /* sidebar - column */
  .ym-col3 {
    position: relative;
    float: left;
    width: 340px;
    margin-left: 0;
    margin-right: -340px;
  }
  .ym-col1 .ym-cbox {
    padding: 0 0.75em 0 1.5em;
  }
  .ym-col3 .ym-cbox {
    padding: 0 20px 0 12px;
  }
  .ym-gbox {
    padding: 0 1.5em 0 0;
  }
}

.ym-g50.ym-gl .ym-gbox {
  padding-right: 2em;
  padding-left: 0;
}

.ym-g50.ym-gr .ym-gbox {
  padding-left: 2em;
  padding-right: 0;
}

/* reset fallback values in modern browsers */
@media screen and (min-width: 0px) {
  .ym-wrapper {
    min-width: 0px;
  }
}

@media screen and (max-width: 1300px) {
  .title-img {
    height: 500px;
  }
}

@media screen and (max-width: 1100px) {
  .ym-wrapper {
    width: 90%;
  }
  .main {
    padding: 50px 100px;
  }
  .ym-g50.ym-gl .ym-gbox {
    padding-right: 1.5em;
  }
  .ym-g50.ym-gr .ym-gbox {
    padding-left: 1.5em;
  }
}

@media screen and (max-width: 1020px) {
  header .branding a  {
    padding: 0;
  }
  header nav {
    float: right;
    margin-top: -37px;
    margin-right: 0;
    width: 100%;
    margin-left: 100px;
    text-align: right;
  }
  header.smaller .branding {
    margin-top: 30px;
  }
  header.smaller nav {
    margin-top: -39px;
  }
  .title-img {
    height: 400px;
  }
}

@media screen and (max-width: 768px) {
  /* Linearisation for Grid- and Column-Module, based on CSS class .linearize-level-1 */
  .linearize-level-1,
  .linearize-level-1 > [class*="ym-c"],
  .linearize-level-1 > [class*="ym-g"] {
    /* linearization for grids and columns module */
    display: block;
    float: none;
    padding: 0;
    margin: 0;
    width: auto !important;
  }
  .linearize-level-1 > [class*="ym-c"] > [class*="ym-cbox"],
  .linearize-level-1 > [class*="ym-g"] > [class*="ym-gbox"] {
    /* reset defined gutter values */
    margin: 0;
    padding: 0;
    /* optional for containing floats */
    overflow: hidden;
  }
  .main {
    padding: 50px 50px;
  }
  header {
    text-align: center;
  }
  .logo {
    float: none;
    margin: 0 auto;
  }
  nav {
    float: none;
    margin: 30px auto 0px auto;
  }
}

@media screen and (max-width: 660px) {
  .ym-wrapper {
    width: 100%;
  }
  header.smaller .branding {
    margin-top: 18px;
  }
  header.smaller nav {
    margin-top: -39px;
  }
  .title-img {
    height: 300px;
  }
}

@media screen and (max-width: 480px) {
  .ym-wbox {
    padding: 0;
  }
  footer,
  .main {
    padding-left: 10px;
    padding-right: 10px;
  }
  /* Linearisation for Grid- and Column-Module, based on CSS class .linearize-level-2 */
  .linearize-level-2,
  .linearize-level-2 > [class*="ym-c"],
  .linearize-level-2 > [class*="ym-g"] {
    /* linearization for grids and columns module */
    display: block;
    float: none;
    padding: 0;
    margin: 0;
    width: auto !important;
  }
  .linearize-level-2 > [class*="ym-c"] > [class*="ym-cbox"],
  .linearize-level-2 > [class*="ym-g"] > [class*="ym-gbox"] {
    /* reset defined gutter values */
    margin: 0;
    padding: 0;
    /* optional for containing floats */
    overflow: hidden;
  }
  .title-img {
    height: 250px;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19ib3gtc2l6aW5nLnNjc3MiLCJjb3JlL19iYXNlLnNjc3MiLCJjb3JlL2Jhc2UtbW9kdWxlcy9fbm9ybWFsaXphdGlvbi5zY3NzIiwiY29yZS9iYXNlLW1vZHVsZXMvX2Zsb2F0LWhhbmRsaW5nLnNjc3MiLCJtaXhpbnMvX3lhbWwtbWl4aW5zLWNvcmUuc2NzcyIsImNvcmUvYmFzZS1tb2R1bGVzL19jb2x1bW5zLnNjc3MiLCJfeWFtbC12YXItZ2xvYmFscy5zY3NzIiwiY29yZS9iYXNlLW1vZHVsZXMvX2dyaWRzLWNvcmUuc2NzcyIsImNvcmUvYmFzZS1tb2R1bGVzL19mb3Jtcy1jb3JlLnNjc3MiLCJjb3JlL2Jhc2UtbW9kdWxlcy9fYWNjZXNzaWJpbGl0eS5zY3NzIiwiY29yZS9iYXNlLW1vZHVsZXMvX3ByaW50LWNvcmUuc2NzcyIsInNjcmVlbi9fbWVudS5zY3NzIiwic2NyZWVuL190eXBvZ3JhcGh5LnNjc3MiLCJfeWFtbC12YXItdHlwb2dyYXBoeS5zY3NzIiwibW9kdWxlcy9fc3RpY2t5aGVhZGVyLnNjc3MiLCJtb2R1bGVzL19tb2R1bGVzLnNjc3MiLCJzY3JlZW4vX2xheW91dC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0dmO0VBQ0UsK0JBQXNCO1VBQXRCLHVCQUFzQjtDQUN2Qjs7QUFFRDtFQUlJLDRCQUFtQjtVQUFuQixvQkFBbUI7Q0FDcEI7O0FDVEw7RUNGQzs7SUFFRztFQUVILHFFQUFxRTtFQUNyRSxvRkFBb0Y7RUFDcEY7SUFBSSxVQUFRO0lBQUUsV0FBUztHQUFJO0VBRTNCLDBFQUEwRTtFQUMxRSxxRkFBcUY7RUFDckY7SUFBUyxvQkFBa0I7R0FBSTtFQUMvQjtJQUFTLGFBQVc7R0FBSTtFQUV4Qjs7Ozs7Ozs7R0FRRTtFQUVGO0lBQWdCLGtCQUFnQjtHQUFJO0VB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LFVBQVM7SUFDVCx1QkFBc0I7R0FDdEI7RUFFRDs7SUFFQyxpQ0FBaUM7SUFDakMsVUFBUztJQUNULFdBQVU7SUFDVixvQ0FBb0M7SUFDcEMsaUJBQWdCO0dBQ2hCO0VZcUlEO0lBQ0csbUJBQWtCO0dBQ3JCO0VBRUE7SUFDQyxtQkFBa0I7R0FDbEI7RUFFRDtJQUNDLFlBQVc7SUFDWCxlQUFjO0dBQ2Q7RUFFRDtJQUNDLFlBQVc7SUFDWCwyQkFBMEI7R0FDMUI7Q2pCdThDRDs7QWlCbjhDRDtFQUVDO0lBQ0MsWUFBVztHQUNYO0VBR0Q7SUFFRSxpQkFBZ0I7R0FDaEI7RUFIRjtJQUtFLGtCQUFpQjtHQUNqQjtFQUlGO0lBQ0csY0FBYTtHQUNkO0NqQis3Q0Y7O0FpQnY3Q0Q7RUFFQztJQUNDLFdBQVU7R0FDVjtFQUlEOztJQUVDLG1CQUFrQjtJQUNsQixvQkFBbUI7R0FDbkI7RUFFRCxzRkFBc0Y7RVpwTnRGOzs7SUFHQyxnREFBZ0Q7SUFDaEQsZUFBYztJQUNkLFlBQVc7SUFDWCxXQUFVO0lBQ1YsVUFBUztJQUNULHVCQUFzQjtHQUN0QjtFQUVEOztJQUVDLGlDQUFpQztJQUNqQyxVQUFTO0lBQ1QsV0FBVTtJQUNWLG9DQUFvQztJQUNwQyxpQkFBZ0I7R0FDaEI7RVl3TUQ7SUFDRyxjQUFhO0dBQ2Q7Q2pCazhDRiIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKiwgKjo6YWZ0ZXIsICo6OmJlZm9yZSB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cbkBtZWRpYSBhbGwge1xuICAvKipcblx0ICogIEBzZWN0aW9uIE5vcm1hbGlzYXRpb24gTW9kdWxlXG5cdCAqL1xuICAvKiAoZW4pIEdsb2JhbCByZXNldCBvZiBwYWRkaW5ncyBhbmQgbWFyZ2lucyBmb3IgYWxsIEhUTUwgZWxlbWVudHMgKi9cbiAgLyogKGRlKSBHbG9iYWxlcyBadXLDvGNrc2V0emVuIGRlciBJbm5lbi0gdW5kIEF1w59lbmFic3TDpG5kZSBmw7xyIGFsbGUgSFRNTC1FbGVtZW50ZSAqL1xuICAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICAvKiAoZW4pIENvcnJlY3Rpb246IG1hcmdpbi9wYWRkaW5nIHJlc2V0IGNhdXNlZCB0b28gc21hbGwgc2VsZWN0IGJveGVzLiAqL1xuICAvKiAoZGUpIEtvcnJla3R1cjogRGFzIFp1csO8Y2tzZXR6ZW4gZGVyIEFic3TDpG5kZSB2ZXJ1cnNhY2h0IHp1IGtsZWluZSBTZWxlY3Rib3hlbi4gKi9cbiAgb3B0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNGVtO1xuICB9XG4gIHNlbGVjdCB7XG4gICAgcGFkZGluZzogMXB4O1xuICB9XG4gIC8qXG5cdCogKGVuKSBHbG9iYWwgZml4IG9mIHRoZSBJdGFsaWNzIGJ1Z3MgaW4gSUUgNS54IGFuZCBJRSA2XG5cdCogKGRlKSBHbG9iYWxlIEtvcnJla3R1ciBkZXMgSXRhbGljcyBCdWdzIGRlcyBJRSA1LnggdW5kIElFIDZcblx0KlxuXHQqIEBidWdmaXhcblx0KiBAYWZmZWN0ZWQgICBJRSA1LngvV2luLCBJRTZcblx0KiBAY3NzLWZvciAgICBJRSA1LngvV2luLCBJRTZcblx0KiBAdmFsaWQgICAgICB5ZXNcblx0Ki9cbiAgKiBodG1sIGJvZHkgKiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cbiAgLypcblx0KiAoZW4pIEZpeCBmb3Igcm91bmRpbmcgZXJyb3JzIHdoZW4gc2NhbGluZyBmb250IHNpemVzIGluIG9sZGVyIHZlcnNpb25zIG9mIE9wZXJhIGJyb3dzZXJcblx0KiAgICAgIFN0YW5kYXJkIHZhbHVlcyBmb3IgY29sb3JzIGFuZCB0ZXh0IGFsaWdubWVudFxuXHQqXG5cdCogKGRlKSBCZXNlaXRpZ3VuZyB2b24gUnVuZHVuZ3NmZWhsZXIgYmVpbSBTa2FsaWVyZW4gdm9uIFNjaHJpZnRncsO2w59lbiBpbiDDpGx0ZXJlbiBPcGVyYSBWZXJzaW9uZW5cblx0KiAgICAgIFZvcmdhYmUgZGVyIFN0YW5kYXJkZmFyYmVuIHVuZCBUZXh0YXVzcmljaHR1bmdcblx0Ki9cbiAgYm9keSB7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICAvKiAoZW4pIGF2b2lkIHZpc2libGUgb3V0bGluZXMgb24gRElWIGFuZCBoW3hdIGVsZW1lbnRzIGluIFdlYmtpdCBicm93c2VycyAqL1xuICAvKiAoZGUpIFZlcm1laWR1bmcgc2ljaHRiYXJlciBPdXRsaW5lLVJhaG1lbiBpbiBXZWJraXQtQnJvd3Nlcm4gKi9cbiAgZGl2OnRhcmdldCxcbiAgaDE6dGFyZ2V0LFxuICBoMjp0YXJnZXQsXG4gIGgzOnRhcmdldCxcbiAgaDQ6dGFyZ2V0LFxuICBoNTp0YXJnZXQsXG4gIGg2OnRhcmdldCB7XG4gICAgb3V0bGluZTogMCBub25lO1xuICB9XG4gIC8qIChlbikgSFRNTDUgLSBhZGp1c3RpbmcgdmlzdWFsIGZvcm1hdHRpbmcgbW9kZWwgdG8gYmxvY2sgbGV2ZWwgKi9cbiAgLyogKGRlKSBIVE1MNSAtIEVsZW1lbnRzIHdlcmRlbiBhbHMgQmxvY2tlbGVtZW50ZSBkZWZpbmllcnQgKi9cbiAgYXJ0aWNsZSxcbiAgYXNpZGUsXG4gIGRldGFpbHMsXG4gIGZpZ2NhcHRpb24sXG4gIGZpZ3VyZSxcbiAgZm9vdGVyLFxuICBoZWFkZXIsXG4gIG1haW4sXG4gIG5hdixcbiAgc2VjdGlvbixcbiAgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLyogKGVuKSBIVE1MNSAtIGRlZmF1bHQgbWVkaWEgZWxlbWVudCBzdHlsZXMgKi9cbiAgLyogKGRlKSBIVE1MNSAtIFN0YW5kYXJkIEVpZ2Vuc2NoYWZ0ZW4gZsO8ciBNZWRpYS1FbGVtZW50ZSAqL1xuICBhdWRpbyxcbiAgY2FudmFzLFxuICB2aWRlbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIC8qIChlbikgSFRNTDUgLSBkb24ndCBzaG93IDxhdWRpbz4gZWxlbWVudCBpZiB0aGVyZSBhcmVuJ3QgY29udHJvbHMgKi9cbiAgLyogKGRlKSBIVE1MNSAtIDxhdWRpbz4gb2huZSBLb250cm9sbGVsZW1lbnRlIHNvbGx0ZW4gbmljaHQgYW5nZXplaWd0IHdlcmRlbiAqL1xuICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLyogKGVuKSBIVE1MNSAtIGFkZCBtaXNzaW5nIHN0eWxpbmcgaW4gSUUgJiBvbGQgRkYgZm9yIGhpZGRlbiBhdHRyaWJ1dGUgKi9cbiAgLyogKGRlKSBIVE1MNSAtIEVpZ2Vuc2NoYWZ0ZW4gZsO8ciBkYXMgaGlkZGVuLUF0dHJpYnV0IGluIMOkbHRlcmVuIElFcyB1bmQgRkYgbmFjaHLDvHN0ZW4gKi9cbiAgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLyogKGVuKSBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLiAqL1xuICAvKiAoZGUpIFZlcmRpbmRlcnQgZGllIGF1dG9tYXRpc2NoZSBUZXh0YW5wYXNzdW5nIGJlaSBPcmllbnRpZXJ1bmdzd2VjaHNlbCwgb2huZSBab29tIHp1IGJsb2NraWVyZW4gKi9cbiAgaHRtbCB7XG4gICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICB9XG4gIC8qIChlbikgc2V0IGNvcnJlY3QgYm94LW1vZGVsbCBpbiBJRTgvOSBwbHVzIHJlbW92ZSBwYWRkaW5nICovXG4gIC8qIChkZSkgU2V0emUgZGFzIHJpY2h0aWdlIEJveC1Nb2RlbGwgaW0gSUU4LzkgdW5kIGVudGZlcm5lIHVubsO2dGlnZXMgUGFkZGluZyAqL1xuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIC8qIChlbikgZm9yY2UgY29uc2lzdGFudCBhcHBlYXJhbmNlIG9mIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0gZWxlbWVudHMgaW4gYWxsIGJyb3dzZXIgKi9cbiAgLyogKGRlKSBFaW5oZWl0bGljaGVzIEVyc2NoZWludW5nc2JpbGQgZsO8ciBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIEVsZW1lbnRlIGVyendpbmdlbiAqL1xuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIH1cbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG4gIC8qIChlbikgQ29ycmVjdCBvdmVyZmxvdyBkaXNwbGF5ZWQgb2RkbHkgaW4gSUUgOSAqL1xuICAvKiAoZGUpIEtvcnJpZ2llcnQgZmVobGVyaGFmdGUgb3ZlcmZsb3cgVm9yZWluc3RlbGx1bmcgZGVzIElFIDkgKi9cbiAgc3ZnOm5vdCg6cm9vdCkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbiAgLyogKGVuKSBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaSA1ICovXG4gIC8qIChlbikgRXJnw6RuenQgZmVobGVuZGVuIE1hcmdpbiBpbiBJRSA4LzkgdW5kIFNhZmFyaSA1ICovXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC8qIChlbikgQ2xlYXIgYm9yZGVycyBmb3IgPGZpZWxkc2V0PiBhbmQgPGltZz4gZWxlbWVudHMgKi9cbiAgLyogKGRlKSBSYWhtZW4gZsO8ciA8ZmllbGRzZXQ+IHVuZCA8aW1nPiBFbGVtZW50ZSBsw7ZzY2hlbiAqL1xuICBmaWVsZHNldCxcbiAgaW1nIHtcbiAgICBib3JkZXI6IDAgc29saWQ7XG4gIH1cbiAgLyogKGVuKSBuZXcgc3RhbmRhcmQgdmFsdWVzIGZvciBsaXN0cywgYmxvY2txdW90ZSwgY2l0ZSBhbmQgdGFibGVzICovXG4gIC8qIChkZSkgTmV1ZSBTdGFuZGFyZHdlcnRlIGbDvHIgTGlzdGVuLCBaaXRhdGUgdW5kIFRhYmVsbGVuICovXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbjogMCAwIDFlbSAxZW07XG4gIH1cbiAgbGkge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBtYXJnaW4tbGVmdDogMC44ZW07XG4gIH1cbiAgZHQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIGRkIHtcbiAgICBtYXJnaW46IDAgMCAxZW0gMC44ZW07XG4gIH1cbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgMWVtIDAuOGVtO1xuICB9XG4gIHEge1xuICAgIHF1b3Rlczogbm9uZTtcbiAgfVxuICBibG9ja3F1b3RlOmJlZm9yZSxcbiAgYmxvY2txdW90ZTphZnRlcixcbiAgcTpiZWZvcmUsXG4gIHE6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGNvbnRlbnQ6IG5vbmU7XG4gIH1cbiAgdGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIH1cbiAgLyoqXG5cdCogQHNlY3Rpb24gRmxvYXQgSGFuZGxpbmcgTW9kdWxlXG5cdCovXG4gIC8qIChlbikgY2xlYXJmaXggbWV0aG9kIGZvciBjbGVhcmluZyBmbG9hdHMgKi9cbiAgLyogKGRlKSBDbGVhcmZpeC1NZXRob2RlIHp1bSBDbGVhcmVuIGRlciBGbG9hdC1VbWdlYnVuZ2VuICovXG4gIC55bS1jbGVhcmZpeDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbiAgLnltLWNsZWFyZml4OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIi5cIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuICAvKiAoZW4pIGFsdGVybmF0aXZlIHNvbHV0aW9ucyB0byBjb250YWluIGZsb2F0cyAqL1xuICAvKiAoZGUpIEFsdGVybmF0aXZlIE1ldGhvZGVuIHp1bSBFaW5zY2hsaWXDn2VuIHZvbiBGbG9hdC1VbWdlYnVuZ2VuICovXG4gIC55bS1jb250YWluLWR0IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC55bS1jb250YWluLW9oIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC55bS1jb250YWluLWZsIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAvKipcblx0KiBAc2VjdGlvbiBDb2x1bW4gTW9kdWxlXG5cdCpcblx0KiBkZWZhdWx0IGNvbHVtbiBjb25maWc6XG5cdCogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG5cdCogfCBjb2wxICAgIHwgY29sMyAgICAgIHwgY29sMiAgICB8XG5cdCogfCAyMCUgICAgIHwgZmxleGlibGUgIHwgMjAlICAgICB8XG5cdCogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG5cdCovXG4gIC55bS1jb2x1bW4ge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnltLWNvbDEge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyMCU7XG4gIH1cbiAgLnltLWNvbDIge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMjAlO1xuICB9XG4gIC55bS1jb2wzIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46IDAgMjAlO1xuICB9XG4gIC55bS1jYm94IHtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gIH1cbiAgLnltLWNib3gtbGVmdCB7XG4gICAgcGFkZGluZzogMCAxMHB4IDAgMDtcbiAgfVxuICAueW0tY2JveC1yaWdodCB7XG4gICAgcGFkZGluZzogMCAwIDAgMTBweDtcbiAgfVxuICAvKiAoZW4pIElFLUNsZWFyaW5nOiBPbmx5IHVzZWQgaW4gSW50ZXJuZXQgRXhwbG9yZXIsIHN3aXRjaGVkIG9uIGluIGllaGFja3MuY3NzICovXG4gIC8qIChkZSkgSUUtQ2xlYXJpbmc6IEJlbsO2dGlndCBudXIgZGVyIEludGVybmV0IEV4cGxvcmVyIHVuZCDDvGJlciBpZWhhY2tzLmNzcyB6dWdlc2NoYWx0ZXQgKi9cbiAgLnltLWllLWNsZWFyaW5nIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC8qKlxuXHQqIEBzZWN0aW9uIEdyaWQgTW9kdWxlXG5cdCovXG4gIC55bS1ncmlkIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbiAgLnltLWdsIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLnltLWdyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luOiAwIDAgMCAtNXB4O1xuICB9XG4gIC55bS1nMjAge1xuICAgIHdpZHRoOiAyMCU7XG4gIH1cbiAgLnltLWc0MCB7XG4gICAgd2lkdGg6IDQwJTtcbiAgfVxuICAueW0tZzYwIHtcbiAgICB3aWR0aDogNjAlO1xuICB9XG4gIC55bS1nODAge1xuICAgIHdpZHRoOiA4MCU7XG4gIH1cbiAgLnltLWcyNSB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAueW0tZzMzIHtcbiAgICB3aWR0aDogMzMuMzMzJTtcbiAgfVxuICAueW0tZzUwIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC55bS1nNjYge1xuICAgIHdpZHRoOiA2Ni42NjYlO1xuICB9XG4gIC55bS1nNzUge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLnltLWczOCB7XG4gICAgd2lkdGg6IDM4LjIlO1xuICB9XG4gIC55bS1nNjIge1xuICAgIHdpZHRoOiA2MS44JTtcbiAgfVxuICAueW0tZ2JveCB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG4gIC55bS1nYm94LWxlZnQge1xuICAgIHBhZGRpbmc6IDAgMTBweCAwIDA7XG4gIH1cbiAgLnltLWdib3gtcmlnaHQge1xuICAgIHBhZGRpbmc6IDAgMCAwIDEwcHg7XG4gIH1cbiAgLnltLWVxdWFsaXplIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gIC55bS1lcXVhbGl6ZSA+IFtjbGFzcyo9XCJ5bS1nXCJdIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG4gIC55bS1lcXVhbGl6ZSA+IFtjbGFzcyo9XCJ5bS1nXCJdID4gW2NsYXNzKj1cInltLWdib3hcIl0ge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMDAwMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IC0xMDAwMHB4O1xuICB9XG4gIC8qKlxuXHQqIEBzZWN0aW9uIEZvcm0gTW9kdWxlXG5cdCovXG4gIC8qKiBWZXJ0aWNhbC1Gb3JtcyAtIHRlY2huaWNhbCBiYXNlIChzdGFuZGFyZClcblx0KlxuXHQqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuXHQqIHwgZm9ybSAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuXHQqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuXHQqIHwgICBsYWJlbCAgICAgICAgICAgICAgICAgICAgICAgfFxuXHQqIHwgICBpbnB1dCAvIHNlbGVjdCAvIHRleHRhcmVhICAgfFxuXHQqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuXHQqIHwgL2Zvcm0gICAgICAgICAgICAgICAgICAgICAgICAgfFxuXHQqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuXHQqXG5cdCogKGVuKSBTdHlsaW5nIG9mIGZvcm1zIHdoZXJlIGJvdGggbGFiZWwgYW5kIGlucHV0L3NlbGVjdC90ZXh0YXJlYSBhcmUgc3R5bGVkIHdpdGggZGlzcGxheTpibG9jaztcblx0KiAoZGUpIEZvcm11bGFyZ2VzdGFsdHVuZywgYmVpIGRlciBzb3dvaGwgbGFiZWwgYWxzIGF1Y2ggaW5wdXQvc2VsZWN0L3RleHRhcmVhIG1pdCBkaXNwbGF5OmJsb2NrOyBnZXN0YWx0ZXQgd2VyZGVuXG5cdCovXG4gIC55bS1mb3JtLFxuICAueW0tZm9ybSBmaWVsZHNldCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuICAueW0tZm9ybSBkaXYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAueW0tZm9ybSBsYWJlbCxcbiAgLnltLWZvcm0gLnltLWxhYmVsLFxuICAueW0tZm9ybSAueW0tbWVzc2FnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLnltLWZvcm0gLnltLW1lc3NhZ2Uge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIC55bS1mb3JtIC55bS1mYm94LWNoZWNrIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cbiAgLnltLWZvcm0gaW5wdXQsXG4gIC55bS1mb3JtIHRleHRhcmVhIHtcbiAgICBjdXJzb3I6IHRleHQ7XG4gIH1cbiAgLnltLWZvcm0gLnltLWZib3gtY2hlY2sgaW5wdXQsXG4gIC55bS1mb3JtIGlucHV0W3R5cGU9XCJpbWFnZVwiXSxcbiAgLnltLWZvcm0gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAueW0tZm9ybSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gIC55bS1mb3JtIHNlbGVjdCxcbiAgLnltLWZvcm0gbGFiZWwge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICAueW0tZm9ybSB0ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cbiAgLnltLWZvcm0gaW5wdXQuaGlkZGVuLFxuICAueW0tZm9ybSBpbnB1dFt0eXBlPWhpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAueW0tZm9ybSAueW0tZmJveDpiZWZvcmUsXG4gIC55bS1mb3JtIC55bS1mYm94LXRleHQ6YmVmb3JlLFxuICAueW0tZm9ybSAueW0tZmJveC1zZWxlY3Q6YmVmb3JlLFxuICAueW0tZm9ybSAueW0tZmJveC1jaGVjazpiZWZvcmUsXG4gIC55bS1mb3JtIC55bS1mYm94LWJ1dHRvbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbiAgLnltLWZvcm0gLnltLWZib3g6YWZ0ZXIsXG4gIC55bS1mb3JtIC55bS1mYm94LXRleHQ6YWZ0ZXIsXG4gIC55bS1mb3JtIC55bS1mYm94LXNlbGVjdDphZnRlcixcbiAgLnltLWZvcm0gLnltLWZib3gtY2hlY2s6YWZ0ZXIsXG4gIC55bS1mb3JtIC55bS1mYm94LWJ1dHRvbjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCIuXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbiAgLnltLWZvcm0gLnltLWZib3gtY2hlY2sgaW5wdXQ6Zm9jdXMsXG4gIC55bS1mb3JtIC55bS1mYm94LWNoZWNrIGlucHV0OmhvdmVyLFxuICAueW0tZm9ybSAueW0tZmJveC1jaGVjayBpbnB1dDphY3RpdmUsXG4gIC55bS1mb3JtIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpmb2N1cyxcbiAgLnltLWZvcm0gaW5wdXRbdHlwZT1cInJhZGlvXCJdOmhvdmVyLFxuICAueW0tZm9ybSBpbnB1dFt0eXBlPVwicmFkaW9cIl06YWN0aXZlLFxuICAueW0tZm9ybSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Zm9jdXMsXG4gIC55bS1mb3JtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpob3ZlcixcbiAgLnltLWZvcm0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmFjdGl2ZSB7XG4gICAgYm9yZGVyOiAwIG5vbmU7XG4gIH1cbiAgLnltLWZvcm0gaW5wdXQsXG4gIC55bS1mb3JtIHRleHRhcmVhLFxuICAueW0tZm9ybSBzZWxlY3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDcwJTtcbiAgfVxuICAueW0tZm9ybSAueW0tZmJveC1jaGVjayBpbnB1dCxcbiAgLnltLWZvcm0gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAueW0tZm9ybSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNWV4O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAueW0tZm9ybSBpbnB1dFt0eXBlPVwiaW1hZ2VcIl0ge1xuICAgIGJvcmRlcjogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC55bS1mb3JtIGxhYmVsLFxuICAueW0tZm9ybSAueW0tbGFiZWwge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuICAueW0tZm9ybSAueW0tZmJveC1idXR0b24gaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAueW0tZm9ybSAueW0taW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuICAvKiBkZWZhdWx0IGZvcm0gd3JhcHBlciB3aWR0aCAqL1xuICAueW0tZmJveC13cmFwIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIHdpZHRoOiA3MCU7XG4gIH1cbiAgLnltLWZib3gtd3JhcCBpbnB1dCxcbiAgLnltLWZib3gtd3JhcCB0ZXh0YXJlYSxcbiAgLnltLWZib3gtd3JhcCBzZWxlY3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC55bS1mYm94LXdyYXAgaW5wdXRbdHlwZT1cImltYWdlXCJdIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAueW0tZmJveC13cmFwIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgLnltLWZib3gtd3JhcCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNWV4O1xuICB9XG4gIC55bS1mYm94LXdyYXAgbGFiZWwsXG4gIC55bS1mYm94LXdyYXAgLnltLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cbiAgLnltLWZ1bGwgaW5wdXQsXG4gIC55bS1mdWxsIHRleHRhcmVhLFxuICAueW0tZnVsbCBzZWxlY3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC55bS1mdWxsIC55bS1mYm94LXdyYXAge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC8qKlxuXHQqICBDb2x1bW5hciBmb3JtcyBkaXNwbGF5IC0gdGVjaG5pY2FsIGJhc2UgKG9wdGlvbmFsKVxuXHQqXG5cdCogIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuXHQqICB8IGZvcm0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcblx0KiAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG5cdCogIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuXHQqICB8ICAgbGFiZWwgICB8ICAgaW5wdXQgLyBzZWxlY3QgLyB0ZXh0YXJlYSAgIHxcblx0KiAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG5cdCogIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuXHQqICB8IC9mb3JtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcblx0KiAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG5cdCpcblx0KiAgKGVuKSBTdHlsaW5nIG9mIGZvcm1zIHdoZXJlIGxhYmVsIGZsb2F0cyBsZWZ0IG9mIGZvcm0tZWxlbWVudHNcblx0KiAgKGRlKSBGb3JtdWxhcmdlc3RhbHR1bmcsIGJlaSBkZXIgZGllIGxhYmVsLUVsZW1lbnRlIG5hY2ggbGlua3MgZmxpZcOfZW5cblx0Ki9cbiAgLnltLWNvbHVtbmFyIGlucHV0LFxuICAueW0tY29sdW1uYXIgdGV4dGFyZWEsXG4gIC55bS1jb2x1bW5hciBzZWxlY3Qge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogLTNweDtcbiAgfVxuICAueW0tY29sdW1uYXIgbGFiZWwsXG4gIC55bS1jb2x1bW5hciAueW0tbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzAlO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbiAgLnltLWNvbHVtbmFyIC55bS1mYm94LWNoZWNrIGlucHV0LFxuICAueW0tY29sdW1uYXIgLnltLW1lc3NhZ2Uge1xuICAgIG1hcmdpbi1sZWZ0OiAzMCU7XG4gIH1cbiAgLnltLWNvbHVtbmFyIC55bS1mYm94LXdyYXAge1xuICAgIG1hcmdpbi1sZWZ0OiAzMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xuICB9XG4gIC55bS1jb2x1bW5hciAueW0tZmJveC13cmFwIC55bS1tZXNzYWdlIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbiAgLnltLWNvbHVtbmFyIC55bS1mYm94LXdyYXAgbGFiZWwge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHotaW5kZXg6IDE7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLnltLWNvbHVtbmFyIC55bS1mYm94LXdyYXAgaW5wdXQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAueW0tY29sdW1uYXIgLnltLWZib3gtY2hlY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAueW0tY29sdW1uYXIgLnltLWZib3gtY2hlY2sgbGFiZWwsXG4gIC55bS1jb2x1bW5hciAueW0tZmJveC1jaGVjayAueW0tbGFiZWwge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG4gIC55bS1jb2x1bW5hciAueW0tZmJveC1jaGVjayBpbnB1dCB7XG4gICAgdG9wOiAzcHg7XG4gIH1cbiAgLnltLWNvbHVtbmFyIC55bS1mYm94LWJ1dHRvbiBpbnB1dCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnltLWZib3gtd3JhcCArIC55bS1mYm94LXdyYXAge1xuICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICB9XG4gIC8qIGdsb2JhbCBhbmQgbG9jYWwgY29sdW1uYXIgc2V0dGluZ3MgZm9yIGJ1dHRvbiBhbGlnbm1lbnQgKi9cbiAgLnltLWNvbHVtbmFyIGZpZWxkc2V0IC55bS1mYm94LWJ1dHRvbixcbiAgZmllbGRzZXQueW0tY29sdW1uYXIgLnltLWZib3gtYnV0dG9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwJTtcbiAgfVxuICAvKipcblx0KiBAc2VjdGlvbiBBY2Nlc3NpYmlsaXR5IE1vZHVsZVxuXHQqXG5cdCogKGVuKSBza2lwIGxpbmtzIGFuZCBoaWRkZW4gY29udGVudFxuXHQqIChkZSkgU2tpcC1MaW5rcyB1bmQgdmVyc3RlY2t0ZSBJbmhhbHRlXG5cdCovXG4gIC8qIChlbikgY2xhc3NlcyBmb3IgaW52aXNpYmxlIGVsZW1lbnRzIGluIHRoZSBiYXNlIGxheW91dCAqL1xuICAvKiAoZGUpIEtsYXNzZW4gZsO8ciB1bnNpY2h0YmFyZSBFbGVtZW50ZSBpbSBCYXNpc2xheW91dCAqL1xuICAueW0tc2tpcCxcbiAgLnltLWhpZGVtZSxcbiAgLnltLXByaW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMzI3NjhweDtcbiAgICBsZWZ0OiAtMzI3NjhweDtcbiAgfVxuICAvKiAoZW4pIG1ha2Ugc2tpcCBsaW5rcyB2aXNpYmxlIHdoZW4gdXNpbmcgdGFiIG5hdmlnYXRpb24gKi9cbiAgLyogKGRlKSBTa2lwLUxpbmtzIGbDvHIgVGFiLU5hdmlnYXRpb24gc2ljaHRiYXIgc2NoYWx0ZW4gKi9cbiAgLnltLXNraXA6Zm9jdXMsXG4gIC55bS1za2lwOmFjdGl2ZSB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgfVxuICAvKiBza2lwbGlua3M6dGVjaG5pY2FsIHNldHVwICovXG4gIC55bS1za2lwbGlua3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDBweDtcbiAgICBsZWZ0OiAtMzI3NjhweDtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgfVxuICAueW0tc2tpcGxpbmtzIC55bS1za2lwOmZvY3VzLFxuICAueW0tc2tpcGxpbmtzIC55bS1za2lwOmFjdGl2ZSB7XG4gICAgbGVmdDogMzI3NjhweDtcbiAgICBvdXRsaW5lOiAwIG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIC8qKlxuXHQqIEBzZWN0aW9uIHByaW50IGFkanVzdG1lbnRzIGZvciBjb3JlIG1vZHVsZXNcblx0KlxuXHQqIChlbikgZmxvYXQgY29udGFpbm1lbnQgZm9yIGdyaWRzLiBVc2VzIGRpc3BsYXk6dGFibGUgdG8gYXZvaWQgYnVncyBpbiBGRiAmIElFXG5cdCogKGRlKSBGbG9hdHMgaW4gR3JpZHMgZWluc2NobGllw59lbi4gVmVyd2VuZGV0IGRpc3BsYXk6dGFibGUsIHVtIERhcnN0ZWxsdW5nc3Byb2JsZW1lIGltIEZGICYgSUUgenUgdmVybWVpZGVuXG5cdCpcblx0KiBAYnVnZml4XG5cdCogQHNpbmNlICAgICAzLjBcblx0KiBAYWZmZWN0ZWQgIEZGMi4wLCBGRjMuMCwgSUU3XG5cdCogQGNzcy1mb3IgICBhbGwgYnJvd3NlcnNcblx0KiBAdmFsaWQgICAgIHllc1xuXHQqL1xuICAueW0tZ3JpZCA+IC55bS1nbCxcbiAgLnltLWdyaWQgPiAueW0tZ3Ige1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIH1cbiAgLyogKGVuKSBtYWtlIC55bS1wcmludCBjbGFzcyB2aXNpYmxlICovXG4gIC8qIChkZSkgLnltLXByaW50LUtsYXNzZSBzaWNodGJhciBzY2hhbHRlbiAqL1xuICAueW0tcHJpbnQge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbGVmdDogMDtcbiAgfVxuICAvKiAoZW4pIGdlbmVyaWMgY2xhc3MgdG8gaGlkZSBlbGVtZW50cyBmb3IgcHJpbnQgKi9cbiAgLyogKGRlKSBBbGxnZW1laW5lIENTUyBLbGFzc2UsIHVtIGJlbGllYmlnZSBFbGVtZW50ZSBpbiBkZXIgRHJ1Y2thdXNnYWJlIGF1c3p1YmxlbmRlbiAqL1xuICAueW0tbm9wcmludCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbiNjc3NtZW51LFxuI2Nzc21lbnUgdWwsXG4jY3NzbWVudSB1bCBsaSxcbiNjc3NtZW51IHVsIGxpIGEsXG4jY3NzbWVudSAjbWVudS1idXR0b24ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4jY3NzbWVudTphZnRlcixcbiNjc3NtZW51ID4gdWw6YWZ0ZXIge1xuICBjb250ZW50OiBcIi5cIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNsZWFyOiBib3RoO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBoZWlnaHQ6IDA7XG59XG5cbiNjc3NtZW51ICNtZW51LWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNjc3NtZW51IHtcbiAgd2lkdGg6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuI21lbnUtbGluZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgLW1zLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG59XG5cbiNjc3NtZW51IHVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuI2Nzc21lbnUgPiB1bCA+IGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbiNjc3NtZW51LmFsaWduLWNlbnRlciA+IHVsIHtcbiAgZm9udC1zaXplOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbiNjc3NtZW51LmFsaWduLWNlbnRlciA+IHVsID4gbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiBub25lO1xufVxuXG4jY3NzbWVudS5hbGlnbi1jZW50ZXIgdWwgdWwge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4jY3NzbWVudS5hbGlnbi1yaWdodCA+IHVsID4gbGkge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbiNjc3NtZW51LmFsaWduLXJpZ2h0IHVsIHVsIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbiNjc3NtZW51ID4gdWwgPiBsaSA+IGEge1xuICBwYWRkaW5nOiAyMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICM0ZTRlNGU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgLjJzIGVhc2U7XG4gIC1tb3otdHJhbnNpdGlvbjogY29sb3IgLjJzIGVhc2U7XG4gIC1tcy10cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogY29sb3IgLjJzIGVhc2U7XG4gIHRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlO1xufVxuXG4jY3NzbWVudSA+IHVsID4gbGkgPiBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cblxuI2Nzc21lbnUgPiB1bCA+IGxpOmhvdmVyID4gYSB7XG4gIGNvbG9yOiAjYWE4NWEzO1xufVxuXG4jY3NzbWVudSA+IHVsID4gbGkuYWN0aXZlID4gYSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbiNjc3NtZW51ID4gdWwgPiBsaS5oYXMtc3ViID4gYSB7XG4gIHBhZGRpbmctcmlnaHQ6IDI1cHg7XG59XG5cbiNjc3NtZW51ID4gdWwgPiBsaS5oYXMtc3ViID4gYTo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMjFweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHdpZHRoOiA0cHg7XG4gIGhlaWdodDogNHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDAwMDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwMDAwMDtcbiAgY29udGVudDogXCJcIjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtby10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xuICAtbW96LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG4gIC1tcy10cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xufVxuXG4jY3NzbWVudSA+IHVsID4gbGkuaGFzLXN1Yjpob3ZlciA+IGE6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5YWUxO1xufVxuXG4jY3NzbWVudSB1bCB1bCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTk5OTlweDtcbn1cblxuI2Nzc21lbnUgbGk6aG92ZXIgPiB1bCB7XG4gIGxlZnQ6IGF1dG87XG59XG5cbiNjc3NtZW51LmFsaWduLXJpZ2h0IGxpOmhvdmVyID4gdWwge1xuICByaWdodDogMDtcbn1cblxuI2Nzc21lbnUgdWwgdWwgdWwge1xuICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgdG9wOiAwO1xufVxuXG4jY3NzbWVudS5hbGlnbi1yaWdodCB1bCB1bCB1bCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDEwMCU7XG59XG5cbiNjc3NtZW51IHVsIHVsIGxpIHtcbiAgaGVpZ2h0OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGhlaWdodCAuMnMgZWFzZTtcbiAgLW1vei10cmFuc2l0aW9uOiBoZWlnaHQgLjJzIGVhc2U7XG4gIC1tcy10cmFuc2l0aW9uOiBoZWlnaHQgLjJzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IGhlaWdodCAuMnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IC4ycyBlYXNlO1xufVxuXG4jY3NzbWVudSB1bCBsaTpob3ZlciA+IHVsID4gbGkge1xuICBoZWlnaHQ6IDMycHg7XG59XG5cbiNjc3NtZW51IHVsIHVsIGxpIGEge1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIHdpZHRoOiAxNjBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiAjMzMzMzMzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjZGRkZGRkO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlO1xuICAtbW96LXRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlO1xuICAtbXMtdHJhbnNpdGlvbjogY29sb3IgLjJzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlO1xuICB0cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZTtcbn1cblxuI2Nzc21lbnUgdWwgdWwgbGk6aG92ZXIgPiBhLFxuI2Nzc21lbnUgdWwgdWwgbGkgYTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4jY3NzbWVudSB1bCB1bCBsaS5oYXMtc3ViID4gYTo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTNweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHdpZHRoOiA0cHg7XG4gIGhlaWdodDogNHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZGRkZDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZGRkZDtcbiAgY29udGVudDogXCJcIjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAtby10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG4gIC1tb3otdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbiAgLW1zLXRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG59XG5cbiNjc3NtZW51LmFsaWduLXJpZ2h0IHVsIHVsIGxpLmhhcy1zdWIgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxMHB4O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkZGRkO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkZGRkZGQ7XG59XG5cbiNjc3NtZW51IHVsIHVsIGxpLmhhcy1zdWI6aG92ZXIgPiBhOjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogI2ZmZmZmZjtcbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogMTAyMHB4KSB7XG4gICNjc3NtZW51IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAjY3NzbWVudSB1bCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjY3NzbWVudS5hbGlnbi1jZW50ZXIgPiB1bCxcbiAgI2Nzc21lbnUuYWxpZ24tcmlnaHQgdWwgdWwge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgI2Nzc21lbnUgdWwgbGksXG4gICNjc3NtZW51IHVsIHVsIGxpLFxuICAjY3NzbWVudSB1bCBsaTpob3ZlciA+IHVsID4gbGkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxMjAsIDEyMCwgMTIwLCAwLjE1KTtcbiAgfVxuICAjY3NzbWVudSB1bCBsaSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gICNjc3NtZW51IHVsIGxpIGEsXG4gICNjc3NtZW51IHVsIHVsIGxpIGEge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gICNjc3NtZW51ID4gdWwgPiBsaSxcbiAgI2Nzc21lbnUuYWxpZ24tY2VudGVyID4gdWwgPiBsaSxcbiAgI2Nzc21lbnUuYWxpZ24tcmlnaHQgPiB1bCA+IGxpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAjY3NzbWVudSB1bCB1bCBsaSBhIHtcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggMjBweCAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG4gICNjc3NtZW51IHVsIHVsIGxpOmhvdmVyID4gYSxcbiAgI2Nzc21lbnUgdWwgdWwgbGkgYTpob3ZlciB7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gIH1cbiAgI2Nzc21lbnUgdWwgdWwgdWwgbGkgYSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICB9XG4gICNjc3NtZW51IHVsIHVsLFxuICAjY3NzbWVudSB1bCB1bCB1bCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gICNjc3NtZW51ID4gdWwgPiBsaS5oYXMtc3ViID4gYTo6YWZ0ZXIsXG4gICNjc3NtZW51IHVsIHVsIGxpLmhhcy1zdWIgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjbWVudS1saW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjc3NtZW51ICNtZW51LWJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAtM3B4IDIwcHggMCAwO1xuICAgIHBhZGRpbmc6IDIycHggNDNweCAyMHB4IDIwcHg7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG4gICNjc3NtZW51ICNtZW51LWJ1dHRvbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDIwcHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgfVxuICAjY3NzbWVudSAjbWVudS1idXR0b246OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMjVweDtcbiAgICByaWdodDogMjBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDdweDtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgIzAwMDAwMDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzAwMDAwMDtcbiAgfVxuICAjY3NzbWVudSAuc3VibWVudS1idXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDEyMCwgMTIwLCAxMjAsIDAuMTUpO1xuICAgIGhlaWdodDogNTJweDtcbiAgICB3aWR0aDogNTJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgI2Nzc21lbnUgLnN1Ym1lbnUtYnV0dG9uOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMjFweDtcbiAgICBsZWZ0OiAyNnB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAxMXB4O1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgei1pbmRleDogOTk7XG4gIH1cbiAgI2Nzc21lbnUgLnN1Ym1lbnUtYnV0dG9uOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAyMXB4O1xuICAgIHRvcDogMjZweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIHotaW5kZXg6IDk5O1xuICB9XG4gICNjc3NtZW51IC5zdWJtZW51LWJ1dHRvbi5zdWJtZW51LW9wZW5lZDphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWVkaWEgYWxsIHtcbiAgLyohXG5cdCogQHNlY3Rpb24gZ2xvYmFsIHR5cG9ncmFwaHkgc2V0dGluZ3Ncblx0KlxuXHQqIHZlcnRpY2FsIHJoeXRobSBzZXR0aW5ncyAoYmFzZWQgb24gZW0tdW5pdClcblx0KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCogYmFzZWZvbnQtc2l6ZTogIDE2cHggKDEwMCUpXG5cdCogbGluZS1oZWlnaHQgIDogIDI2cHggKGZhY3RvcjogMS42MjUpICovXG4gIC8qIEFsbGUgU2NocmlmdGdyw7bDn2VuIGF1ZiBTdGFuZGFyZGdyw7bDn2UgKDE2IFBpeGVsKSB6dXLDvGNrc2V0emVuICovXG4gIGh0bWwgKiB7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICB9XG4gIC8qKlxuXHQqIFNjaHJpZnRncsO2w59lIHZvbiBtb25vc3BhY2VkIEVsZW1lbnRlIGluIGFsbGVuIEJyb3dzZXJuIGF1ZiAxNiBQaXhlbCBzZXR6ZW5cblx0KlxuXHQqIEBzZWU6IGh0dHA6Ly93ZWJraXQub3JnL2Jsb2cvNjcvc3RyYW5nZS1tZWRpdW0vXG5cdCovXG4gIHRleHRhcmVhLFxuICBwcmUsXG4gIGNvZGUsXG4gIGtiZCxcbiAgc2FtcCxcbiAgdmFyLFxuICB0dCB7XG4gICAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkx1Y2lkYSBDb25zb2xlXCIsIFwiQW5kYWxlIE1vbm9cIiwgXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb3VyaWVyIE5ld1wiLCBDb3VyaWVyO1xuICB9XG4gIC8qISBmb250LXNpemU6IDE2cHg7ICovXG4gIGJvZHkge1xuICAgIGZvbnQtZmFtaWx5OiBcIm5ldXplaXQtZ3JvdGVza1wiLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGNvbG9yOiAjNGU0ZTRlO1xuICB9XG4gIC8qLS0tIMOcYmVyc2NocmlmdGVuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIGZvbnQtZmFtaWx5OiBcIm5ldXplaXQtZ3JvdGVza1wiLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgY29sb3I6ICMxNjFlMjE7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIGgxIHtcbiAgICAvKiEgZm9udC1zaXplOiA0OHB4OyAqL1xuICAgIGZvbnQtc2l6ZTogMjAwJTtcbiAgICBsaW5lLWhlaWdodDogMS4wODMzMztcbiAgICBtYXJnaW46IDAgMCAxZW0gMDtcbiAgfVxuICBoMTpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMS41ZW07XG4gIH1cbiAgaDEuaG9tZS10aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICBoMiB7XG4gICAgLyohIGZvbnQtc2l6ZTogMjVweDsgKi9cbiAgICBmb250LXNpemU6IDE2MCU7XG4gICAgbGluZS1oZWlnaHQ6IDIuMDg7XG4gICAgbWFyZ2luOiAwIDAgMC41ZW0gMDtcbiAgfVxuICBwICsgaDIge1xuICAgIG1hcmdpbi10b3A6IDJlbTtcbiAgfVxuICBoMyB7XG4gICAgLyohIGZvbnQtc2l6ZTogMjRweDsgKi9cbiAgICBmb250LXNpemU6IDEzMCU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMDgzMzM7XG4gICAgbWFyZ2luOiAwIDAgMS4wODMzM2VtIDA7XG4gIH1cbiAgaDQge1xuICAgIC8qISBmb250LXNpemU6IDIxcHg7ICovXG4gICAgZm9udC1zaXplOiAxMzEuMjUlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjIzODE7XG4gICAgbWFyZ2luOiAwIDAgMS4yMzgxZW0gMDtcbiAgfVxuICBoNSB7XG4gICAgLyohIGZvbnQtc2l6ZTogMThweDsgKi9cbiAgICBmb250LXNpemU6IDExMi41JTtcbiAgICBsaW5lLWhlaWdodDogMS40NDQ0NDtcbiAgICBtYXJnaW46IDAgMCAxLjQ0NDQ0ZW0gMDtcbiAgfVxuICBoNiB7XG4gICAgLyohIGZvbnQtc2l6ZTogMTRweDsgKi9cbiAgICBmb250LXNpemU6IDg3LjUlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjg1NzE0O1xuICAgIG1hcmdpbjogMCAwIDEuODU3MTRlbSAwO1xuICB9XG4gIC8qIC0tLSBMaXN0ZW4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBsaW5lLWhlaWdodDogMS42MjU7XG4gICAgbWFyZ2luOiAwIDAgMS42MjVlbSAwO1xuICB9XG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gIH1cbiAgb2wge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgfVxuICB1bCB1bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICBvbCBvbCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1sYXRpbjtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIG9sIHVsIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIGxpIHtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjI1O1xuICAgIG1hcmdpbi1sZWZ0OiAxLjJlbTtcbiAgfVxuICBkdCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgZGQge1xuICAgIG1hcmdpbjogMCAwIDEuNjI1ZW0gMC44ZW07XG4gIH1cbiAgLyogLS0tIEFsbGdlbWVpbmUgVGV4dGF1c3plaWNobnVuZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgcCB7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjYyNTtcbiAgICBtYXJnaW46IDAgMCAxLjYyNWVtIDA7XG4gIH1cbiAgYmxvY2txdW90ZSxcbiAgY2l0ZSxcbiAgcSB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMmVtIDEuNWVtIDFlbSAxLjVlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cbiAgYmlnIHtcbiAgICAvKiEgZm9udC1zaXplOiAxNnB4OyAqL1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBsaW5lLWhlaWdodDogMS42MjU7XG4gIH1cbiAgc21hbGwge1xuICAgIC8qISBmb250LXNpemU6IDEycHg7ICovXG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDIuMTY2Njc7XG4gIH1cbiAgLyotLS0gTGlua3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY29sb3I6ICM0ZTRlNGU7XG4gIH1cbiAgYTphY3RpdmUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbiAgLyogTWF4aW1hbGVyIEtvbnRyYXN0IGbDvHIgVGFiIEZvY3VzIC0gw4RuZGVybiBTaWUgZGllc2UgUmVnZWwgbWl0IEJlZGFjaHQgKi9cbiAgYTpob3ZlcixcbiAgYTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNhYTg1YTM7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIC5mb290ZXItbGluayB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB9XG4gIC5mb290ZXItbGluazpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIC8qIC0tLSBpbWFnZXMgLS0tLS0tLS0tLS0tLS0tLS0tICovXG4gIGltZyxcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLmZsZXhpYmxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjYyNWVtO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLyogSUU2IHdvcmthcm91bmQgLSAyJSBzcGFjZSBmb3IgcG9zc2libGUgYm9yZGVycyAqL1xuICAqIGh0bWwgLmZsZXhpYmxlIHtcbiAgICB3aWR0aDogOTglO1xuICB9XG4gIC5ib3JkZXJlZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS42MjVlbTtcbiAgICBib3JkZXI6IDJweCAjZWVlIHNvbGlkO1xuICAgIGJvcmRlcjogMnB4IHdoaXRlIHNvbGlkO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDNweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgfVxuICAvKipcblx0KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjXG5cdCpcblx0KiBHZW5lcmljIENvbnRlbnQgQ2xhc3Nlc1xuXHQqXG5cdCogU3RhbmRhcmRrbGFzc2VuIHp1ciBQb3NpdGlvbmllcnVuZyB1bmQgSGVydm9yaGVidW5nXG5cdCpcblx0KiBAc2VjdGlvbiBjb250ZW50LWdlbmVyaWMtY2xhc3Nlc1xuXHQqL1xuICAuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICB9XG4gIC5iaWcge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gIH1cbiAgLmZsb2F0LWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW46IDAgMWVtIDEuNjI1ZW0gMDtcbiAgfVxuICAuZmxvYXQtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luOiAwIDAgMS42MjVlbSAxZW07XG4gIH1cbiAgLmNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMCBhdXRvIDEuNjI1ZW0gYXV0bztcbiAgfVxuICAuYXV0b3Ige1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICB9XG4gIC56aXRhdC1wYWdlIHtcbiAgICBtYXJnaW46IDRlbSAzZW0gMWVtIDNlbTtcbiAgfVxuICAubG9nby1mZWF0dXJlZCB7XG4gICAgbWFyZ2luLXRvcDogNjVweDtcbiAgfVxuICAvKipcblx0KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICNcblx0KlxuXHQqIFRhYmVsbGVuXG5cdCpcblx0KiBHZW5lcmlzY2hlIEtsYXNzZW4gZsO8ciBkaWUgVGFiZWxsZW5icmVpdGUgdW5kIEdlc3RhbHR1bmdzdm9yc2NocmlmdGVuIGbDvHIgVGFiZWxsZW5cblx0KlxuXHQqIEBzZWN0aW9uIGNvbnRlbnQtdGFibGVzXG5cdCovXG4gIHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGNvbG9yOiAjNGU0ZTRlO1xuICAgIGJvcmRlci10b3A6IDFweCAjY2NjIHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b206IDFweCAjY2NjIHNvbGlkO1xuICAgIG1hcmdpbjogMCAwIDEuNWVtIDA7XG4gIH1cbiAgdGFibGUubmFycm93IHtcbiAgICBtYXJnaW46IDAgMCAxLjU2MjVlbSAwO1xuICB9XG4gIHRhYmxlLm5hcnJvdyB0aCxcbiAgdGFibGUubmFycm93IHRkIHtcbiAgICBwYWRkaW5nOiAwIDAuNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU2MjU7XG4gIH1cbiAgdGFibGUuZml4ZWQge1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIH1cbiAgdGFibGUuYm9yZGVydGFibGUge1xuICAgIGJvcmRlcjogMXB4ICNjY2Mgc29saWQ7XG4gIH1cbiAgdGFibGUuYm9yZGVydGFibGUgdGhlYWQgdGgge1xuICAgIGJhY2tncm91bmQ6ICNlMGUwZTA7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggI2NjYyBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggI2NjYyBzb2xpZDtcbiAgfVxuICB0YWJsZS5ib3JkZXJ0YWJsZSB0Ym9keSB0aFtzY29wZT1cInJvd1wiXSB7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgfVxuICB0YWJsZS5ib3JkZXJ0YWJsZSB0Ym9keSB0aCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbiAgfVxuICB0YWJsZS5ib3JkZXJ0YWJsZSB0Ym9keSB0ZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbiAgfVxuICBjYXB0aW9uIHtcbiAgICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gIH1cbiAgdGgsXG4gIHRkIHtcbiAgICBsaW5lLWhlaWdodDogMS42MjVlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHBhZGRpbmc6IDAuNzgxMjVlbSAwLjVlbTtcbiAgfVxuICB0aCAqOmZpcnN0LWNoaWxkLFxuICB0ZCAqOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIHRoLm5vd3JhcCxcbiAgdGQubm93cmFwIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIHRoZWFkIHRoIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGJvcmRlci1ib3R0b206IDJweCAjMDAwIHNvbGlkO1xuICB9XG4gIHRib2R5IHtcbiAgICAvKiBoaWdobGlnaHQgcm93IG9uIG1vdXNlIG92ZXIgKi9cbiAgfVxuICB0Ym9keSB0aCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgfVxuICB0Ym9keSB0ZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgfVxuICB0Ym9keSB0cjpob3ZlciB0aCxcbiAgdGJvZHkgdHI6aG92ZXIgdGQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gIH1cbn1cblxuLyogPVNjc3MgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogPUdsb2JhbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyogPVRlbXBsYXRlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNvbnRhaW5lciB7XG4gIHdpZHRoOiA4MCU7XG4gIG1heC13aWR0aDogMTMwMHB4O1xuICBoZWlnaHQ6IDEzMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLnNtYWxsZXIgLmNvbnRhaW5lciB7XG4gIGhlaWdodDogODBweDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBoZWlnaHQgMC4zcztcbiAgLW1vei10cmFuc2l0aW9uOiBoZWlnaHQgMC4zcztcbiAgLW1zLXRyYW5zaXRpb246IGhlaWdodCAwLjNzO1xuICAtby10cmFuc2l0aW9uOiBoZWlnaHQgMC4zcztcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3M7XG59XG5cbi8qID1IZWFkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDk5OTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBoZWlnaHQgMC4zcztcbiAgLW1vei10cmFuc2l0aW9uOiBoZWlnaHQgMC4zcztcbiAgLW1zLXRyYW5zaXRpb246IGhlaWdodCAwLjNzO1xuICAtby10cmFuc2l0aW9uOiBoZWlnaHQgMC4zcztcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3M7XG59XG5cbmhlYWRlciBuYXYgYSB7XG4gIGxpbmUtaGVpZ2h0OiAxNTBweDtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIGNvbG9yOiAjOWZkYmZjO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDE4cHg7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xufVxuXG5oZWFkZXIgbmF2IGE6aG92ZXIge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbmhlYWRlci5zbWFsbGVyIHtcbiAgaGVpZ2h0OiA3NXB4O1xufVxuXG5oZWFkZXIuc21hbGxlciBuYXYgYSB7XG4gIGxpbmUtaGVpZ2h0OiA3NXB4O1xufVxuXG4vKiA9RXh0cmFzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNsZWFyZml4OmFmdGVyIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogXCJcIjtcbiAgY2xlYXI6IGJvdGg7XG4gIGhlaWdodDogMDtcbn1cblxuLyogPU1lZGlhIFF1ZXJpZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDkwJTtcbiAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA2NjBweCkge1xuICAvKiA9SGVhZGVyXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIGhlYWRlciBoMSNsb2dvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgaGVhZGVyIG5hdiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNTBweDtcbiAgICBtYXJnaW46IC0zNnB4IDAgMCAxMDBweDtcbiAgfVxuICBoZWFkZXIgbmF2IGEge1xuICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgIG1hcmdpbjogMCAxMHB4O1xuICB9XG4gIGhlYWRlci5zbWFsbGVyIHtcbiAgICBoZWlnaHQ6IDc1cHg7XG4gIH1cbiAgaGVhZGVyLnNtYWxsZXIgaDEjbG9nbyB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgfVxuICBoZWFkZXIuc21hbGxlciBuYXYge1xuICAgIGhlaWdodDogMzVweDtcbiAgfVxuICBoZWFkZXIuc21hbGxlciBuYXYgYSB7XG4gICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gIH1cbiAgaGVhZGVyLnNtYWxsZXIgLmNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiA2MnB4O1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICNpbmZvLWJhciBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAjaW5mby1iYXIgc3Bhbi5hbGwtdHV0b3JpYWxzLFxuICAjaW5mby1iYXIgc3Bhbi5iYWNrLXRvLXR1dG9yaWFsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAjaW5mby1iYXIgc3Bhbi5hbGwtdHV0b3JpYWxzLFxuICAjaW5mby1iYXIgc3Bhbi5iYWNrLXRvLXR1dG9yaWFsIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgI2luZm8tYmFyIHNwYW4uYWxsLXR1dG9yaWFscyB7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMwNzkzZTI7XG4gIH1cbn1cblxuQG1lZGlhIGFsbCB7XG4gIC5pbnRybyB7XG4gICAgbWFyZ2luLWJvdHRvbTogODBweDtcbiAgICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuaW50cm8gc3Ryb25nIHtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICB9XG4gIC5pbnNlcnRpb24ge1xuICAgIGhlaWdodDogMzIwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG4gIC5pbnNlcnRpb24uaW5zZXJ0aW9uX19jYWxsMmFjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiaW1nL21hbmRhbGEuanBnXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgcGFkZGluZzogNTBweDtcbiAgfVxuICAuaW5zZXJ0aW9uLmluc2VydGlvbl9fY2FsbDJhY3Rpb24gLmJpZyB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuICAuaW5zZXJ0aW9uIGgzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuICAuaW5zZXJ0aW9uLmluc2VydGlvbl9fdGFnY2xvdWQtLW9zdGVvcGF0aGllIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWcvdGFnY2xvdWQtb3N0ZW9wYXRoaWUuanBnXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgIGhlaWdodDogMzM1cHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgfVxuICAuaW5zZXJ0aW9uLmluc2VydGlvbl9fdGFnY2xvdWQtLWlucHAge1xuICAgIGJhY2tncm91bmQ6IHVybChcImltZy90YWdjbG91ZC1pbnBwLmpwZ1wiKSBuby1yZXBlYXQgY2VudGVyIGxlZnQ7XG4gICAgaGVpZ2h0OiAzMzVweDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICB9XG4gIC5pbnNlcnRpb24gLndyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cbiAgLmdyaWRfXzUwLTUwLS1mZWF0dXJlZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gIH1cbiAgLmdyaWRfXzUwLTUwLS1mZWF0dXJlZCAuZmVhdHVyZWQtaW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7XG4gIH1cbiAgLmdyaWRfXzUwLTUwLS1mZWF0dXJlZCBoMyB7XG4gICAgZm9udC1zaXplOiAyNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgY29sb3I6ICM0ZTRlNGU7XG4gIH1cbiAgLnJlYWRtb3JlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuICAucmVhZG1vcmUgYSB7XG4gICAgcGFkZGluZzogNHB4IDlweCAwIDhweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICNhYTg1YTM7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYTg1YTM7XG4gIH1cbiAgLnJlYWRtb3JlIGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhYTg1YTM7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdHJhbnNpdGlvbjogMC4zcztcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIHtcbiAgYm9keSB7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIC8qIGZvcmNlIHZlcnRpY2FsIHNjcm9sbGJhciAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGVjZjM7XG4gIH1cbiAgLyogTGF5b3V0IE1vZHVsZSBDb25maWd1cmF0aW9uICYgZmFsbGJhY2sgZm9yIHVuc3VwcG9ydGVkIG1lZGlhIHF1ZXJpZXMgKi9cbiAgLnltLXdyYXBwZXIge1xuICAgIG1pbi13aWR0aDogNzYwcHg7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBtYXgtd2lkdGg6IDEzMDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuICAueW0td2JveCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgfVxuICAudGl0bGUtaW1nIHtcbiAgICBoZWlnaHQ6IDcwNXB4O1xuICAgIG1hcmdpbi10b3A6IDEzMHB4O1xuICB9XG4gIC50aXRsZS1ob21lIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWcvdGl0bGUtaG9tZS5qcGdcIikgbm8tcmVwZWF0IHRvcCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgfVxuICAudGl0bGUtb3N0ZW9wYXRoaWUge1xuICAgIGJhY2tncm91bmQ6IHVybChcImltZy9vc3Rlb3BhdGhpZS5qcGdcIikgbm8tcmVwZWF0IHRvcCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgfVxuICAudGl0bGUtaW5wcCB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiaW1nL2xhbXBlLmpwZ1wiKSBuby1yZXBlYXQgdG9wIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICB9XG4gIC50aXRsZS1hYm91dCB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiaW1nL21pcmphbS1hdWVyYmFjaC5qcGdcIikgbm8tcmVwZWF0IHRvcCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgfVxuICAudGl0bGUtcHJheGlzIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWcvcHJheGlzLmpwZ1wiKSBuby1yZXBlYXQgdG9wIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICB9XG4gIC50aXRsZS1rb250YWt0IHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWcvaGVsbG8uanBnXCIpIG5vLXJlcGVhdCB0b3AgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIH1cbiAgLnRpdGxlLWltcHJlc3N1bSB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiaW1nL2hhbmQtZnVzcy5qcGdcIikgbm8tcmVwZWF0IHRvcCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgfVxuICAuYnJhbmRpbmcge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogNTRweCAyMHB4IDAgMjBweDtcbiAgfVxuICAuYnJhbmRpbmcgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogIzRlNGU0ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxuICAuYnJhbmRpbmcgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxuICBoZWFkZXIgbmF2IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDM2cHg7XG4gIH1cbiAgaGVhZGVyLnNtYWxsZXIgLmJyYW5kaW5nIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICB9XG4gIGhlYWRlci5zbWFsbGVyIG5hdiB7XG4gICAgbWFyZ2luLXRvcDogMTRweDtcbiAgfVxuICAubWFpbiB7XG4gICAgcGFkZGluZzogNTBweCAxNTBweDtcbiAgfVxuICBmb290ZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxLjVlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJkZmRiO1xuICB9XG4gIGZvb3RlciBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgfVxuICBmb290ZXIgLmxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgfVxuICBmb290ZXIgLnJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIH1cbiAgLyogQ29sdW1uLVNldCBDb25maWd1cmF0aW9uOiAxLTMgKHNpZGViYXIgcmlnaHQpICovXG4gIC55bS1jb2x1bW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy1yaWdodDogMzQwcHg7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLyogY29udGVudCAtIGNvbHVtbiAqL1xuICAueW0tY29sMSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLyogc2lkZWJhciAtIGNvbHVtbiAqL1xuICAueW0tY29sMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzNDBweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0zNDBweDtcbiAgfVxuICAueW0tY29sMSAueW0tY2JveCB7XG4gICAgcGFkZGluZzogMCAwLjc1ZW0gMCAxLjVlbTtcbiAgfVxuICAueW0tY29sMyAueW0tY2JveCB7XG4gICAgcGFkZGluZzogMCAyMHB4IDAgMTJweDtcbiAgfVxuICAueW0tZ2JveCB7XG4gICAgcGFkZGluZzogMCAxLjVlbSAwIDA7XG4gIH1cbn1cblxuLnltLWc1MC55bS1nbCAueW0tZ2JveCB7XG4gIHBhZGRpbmctcmlnaHQ6IDJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4ueW0tZzUwLnltLWdyIC55bS1nYm94IHtcbiAgcGFkZGluZy1sZWZ0OiAyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi8qIHJlc2V0IGZhbGxiYWNrIHZhbHVlcyBpbiBtb2Rlcm4gYnJvd3NlcnMgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBweCkge1xuICAueW0td3JhcHBlciB7XG4gICAgbWluLXdpZHRoOiAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTMwMHB4KSB7XG4gIC50aXRsZS1pbWcge1xuICAgIGhlaWdodDogNTAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEwMHB4KSB7XG4gIC55bS13cmFwcGVyIHtcbiAgICB3aWR0aDogOTAlO1xuICB9XG4gIC5tYWluIHtcbiAgICBwYWRkaW5nOiA1MHB4IDEwMHB4O1xuICB9XG4gIC55bS1nNTAueW0tZ2wgLnltLWdib3gge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xuICB9XG4gIC55bS1nNTAueW0tZ3IgLnltLWdib3gge1xuICAgIHBhZGRpbmctbGVmdDogMS41ZW07XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyMHB4KSB7XG4gIGhlYWRlciAuYnJhbmRpbmcgYcKgIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIGhlYWRlciBuYXYge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tdG9wOiAtMzdweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMHB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIGhlYWRlci5zbWFsbGVyIC5icmFuZGluZyB7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgfVxuICBoZWFkZXIuc21hbGxlciBuYXYge1xuICAgIG1hcmdpbi10b3A6IC0zOXB4O1xuICB9XG4gIC50aXRsZS1pbWcge1xuICAgIGhlaWdodDogNDAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLyogTGluZWFyaXNhdGlvbiBmb3IgR3JpZC0gYW5kIENvbHVtbi1Nb2R1bGUsIGJhc2VkIG9uIENTUyBjbGFzcyAubGluZWFyaXplLWxldmVsLTEgKi9cbiAgLmxpbmVhcml6ZS1sZXZlbC0xLFxuICAubGluZWFyaXplLWxldmVsLTEgPiBbY2xhc3MqPVwieW0tY1wiXSxcbiAgLmxpbmVhcml6ZS1sZXZlbC0xID4gW2NsYXNzKj1cInltLWdcIl0ge1xuICAgIC8qIGxpbmVhcml6YXRpb24gZm9yIGdyaWRzIGFuZCBjb2x1bW5zIG1vZHVsZSAqL1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmxpbmVhcml6ZS1sZXZlbC0xID4gW2NsYXNzKj1cInltLWNcIl0gPiBbY2xhc3MqPVwieW0tY2JveFwiXSxcbiAgLmxpbmVhcml6ZS1sZXZlbC0xID4gW2NsYXNzKj1cInltLWdcIl0gPiBbY2xhc3MqPVwieW0tZ2JveFwiXSB7XG4gICAgLyogcmVzZXQgZGVmaW5lZCBndXR0ZXIgdmFsdWVzICovXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgLyogb3B0aW9uYWwgZm9yIGNvbnRhaW5pbmcgZmxvYXRzICovXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuICAubWFpbiB7XG4gICAgcGFkZGluZzogNTBweCA1MHB4O1xuICB9XG4gIGhlYWRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5sb2dvIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuICBuYXYge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbjogMzBweCBhdXRvIDBweCBhdXRvO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY2MHB4KSB7XG4gIC55bS13cmFwcGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBoZWFkZXIuc21hbGxlciAuYnJhbmRpbmcge1xuICAgIG1hcmdpbi10b3A6IDE4cHg7XG4gIH1cbiAgaGVhZGVyLnNtYWxsZXIgbmF2IHtcbiAgICBtYXJnaW4tdG9wOiAtMzlweDtcbiAgfVxuICAudGl0bGUtaW1nIHtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC55bS13Ym94IHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIGZvb3RlcixcbiAgLm1haW4ge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICB9XG4gIC8qIExpbmVhcmlzYXRpb24gZm9yIEdyaWQtIGFuZCBDb2x1bW4tTW9kdWxlLCBiYXNlZCBvbiBDU1MgY2xhc3MgLmxpbmVhcml6ZS1sZXZlbC0yICovXG4gIC5saW5lYXJpemUtbGV2ZWwtMixcbiAgLmxpbmVhcml6ZS1sZXZlbC0yID4gW2NsYXNzKj1cInltLWNcIl0sXG4gIC5saW5lYXJpemUtbGV2ZWwtMiA+IFtjbGFzcyo9XCJ5bS1nXCJdIHtcbiAgICAvKiBsaW5lYXJpemF0aW9uIGZvciBncmlkcyBhbmQgY29sdW1ucyBtb2R1bGUgKi9cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5saW5lYXJpemUtbGV2ZWwtMiA+IFtjbGFzcyo9XCJ5bS1jXCJdID4gW2NsYXNzKj1cInltLWNib3hcIl0sXG4gIC5saW5lYXJpemUtbGV2ZWwtMiA+IFtjbGFzcyo9XCJ5bS1nXCJdID4gW2NsYXNzKj1cInltLWdib3hcIl0ge1xuICAgIC8qIHJlc2V0IGRlZmluZWQgZ3V0dGVyIHZhbHVlcyAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIC8qIG9wdGlvbmFsIGZvciBjb250YWluaW5nIGZsb2F0cyAqL1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbiAgLnRpdGxlLWltZyB7XG4gICAgaGVpZ2h0OiAyNTBweDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AaWYgJGJvcmRlci1ib3gtc2l6aW5nID09IHRydWUge1xuICBodG1sIHsgLy8gaHR0cDovL2JpdC5seS8xcWsydFZSXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICoge1xuICAgICYsXG4gICAgJjo6YWZ0ZXIsXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4veWFtbC12YXItZ2xvYmFsc1wiLFxuXHRcdFwiLi4vbWl4aW5zL3lhbWwtbWl4aW5zLWNvcmVcIjtcblxuQG1lZGlhIGFsbCB7XG5cdEBpbXBvcnQgXCJiYXNlLW1vZHVsZXMvbm9ybWFsaXphdGlvblwiLFxuXHRcdFx0XCJiYXNlLW1vZHVsZXMvZmxvYXQtaGFuZGxpbmdcIixcblx0XHRcdFwiYmFzZS1tb2R1bGVzL2NvbHVtbnNcIixcblx0XHRcdFwiYmFzZS1tb2R1bGVzL2dyaWRzLWNvcmVcIixcblx0XHRcdFwiYmFzZS1tb2R1bGVzL2Zvcm1zLWNvcmVcIixcblx0XHRcdFwiYmFzZS1tb2R1bGVzL2FjY2Vzc2liaWxpdHlcIjtcbn1cblxuQG1lZGlhIHByaW50IHtcblx0QGltcG9ydCBcImJhc2UtbW9kdWxlcy9wcmludC1jb3JlXCI7XG59IiwiQGlmICR5bS1iYXNlLW5vcm1hbGl6YXRpb24gPT0gdHJ1ZSB7XG5cdC8qKlxuXHQgKiAgQHNlY3Rpb24gTm9ybWFsaXNhdGlvbiBNb2R1bGVcblx0ICovXG5cblx0LyogKGVuKSBHbG9iYWwgcmVzZXQgb2YgcGFkZGluZ3MgYW5kIG1hcmdpbnMgZm9yIGFsbCBIVE1MIGVsZW1lbnRzICovXG5cdC8qIChkZSkgR2xvYmFsZXMgWnVyw7xja3NldHplbiBkZXIgSW5uZW4tIHVuZCBBdcOfZW5hYnN0w6RuZGUgZsO8ciBhbGxlIEhUTUwtRWxlbWVudGUgKi9cblx0KiB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH1cblxuXHQvKiAoZW4pIENvcnJlY3Rpb246IG1hcmdpbi9wYWRkaW5nIHJlc2V0IGNhdXNlZCB0b28gc21hbGwgc2VsZWN0IGJveGVzLiAqL1xuXHQvKiAoZGUpIEtvcnJla3R1cjogRGFzIFp1csO8Y2tzZXR6ZW4gZGVyIEFic3TDpG5kZSB2ZXJ1cnNhY2h0IHp1IGtsZWluZSBTZWxlY3Rib3hlbi4gKi9cblx0b3B0aW9uIHsgcGFkZGluZy1sZWZ0OjAuNGVtOyB9IC8vIExUUlxuXHRzZWxlY3QgeyBwYWRkaW5nOjFweDsgfVxuXG5cdC8qXG5cdCogKGVuKSBHbG9iYWwgZml4IG9mIHRoZSBJdGFsaWNzIGJ1Z3MgaW4gSUUgNS54IGFuZCBJRSA2XG5cdCogKGRlKSBHbG9iYWxlIEtvcnJla3R1ciBkZXMgSXRhbGljcyBCdWdzIGRlcyBJRSA1LnggdW5kIElFIDZcblx0KlxuXHQqIEBidWdmaXhcblx0KiBAYWZmZWN0ZWQgICBJRSA1LngvV2luLCBJRTZcblx0KiBAY3NzLWZvciAgICBJRSA1LngvV2luLCBJRTZcblx0KiBAdmFsaWQgICAgICB5ZXNcblx0Ki9cblxuXHQqIGh0bWwgYm9keSAqIHsgb3ZlcmZsb3c6dmlzaWJsZTsgfVxuXG5cdC8qXG5cdCogKGVuKSBGaXggZm9yIHJvdW5kaW5nIGVycm9ycyB3aGVuIHNjYWxpbmcgZm9udCBzaXplcyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBPcGVyYSBicm93c2VyXG5cdCogICAgICBTdGFuZGFyZCB2YWx1ZXMgZm9yIGNvbG9ycyBhbmQgdGV4dCBhbGlnbm1lbnRcblx0KlxuXHQqIChkZSkgQmVzZWl0aWd1bmcgdm9uIFJ1bmR1bmdzZmVobGVyIGJlaW0gU2thbGllcmVuIHZvbiBTY2hyaWZ0Z3LDtsOfZW4gaW4gw6RsdGVyZW4gT3BlcmEgVmVyc2lvbmVuXG5cdCogICAgICBWb3JnYWJlIGRlciBTdGFuZGFyZGZhcmJlbiB1bmQgVGV4dGF1c3JpY2h0dW5nXG5cdCovXG5cdGJvZHkge1xuXHRcdGZvbnQtc2l6ZToxMDAlO1xuXG5cdFx0YmFja2dyb3VuZDojZmZmO1xuXHRcdGNvbG9yOiMwMDA7XG5cdFx0dGV4dC1hbGlnbjpsZWZ0OyAvLyBMVFJcblx0fVxuXG5cdC8qIChlbikgYXZvaWQgdmlzaWJsZSBvdXRsaW5lcyBvbiBESVYgYW5kIGhbeF0gZWxlbWVudHMgaW4gV2Via2l0IGJyb3dzZXJzICovXG5cdC8qIChkZSkgVmVybWVpZHVuZyBzaWNodGJhcmVyIE91dGxpbmUtUmFobWVuIGluIFdlYmtpdC1Ccm93c2VybiAqL1xuXHRkaXY6dGFyZ2V0LFxuXHRoMTp0YXJnZXQsXG5cdGgyOnRhcmdldCxcblx0aDM6dGFyZ2V0LFxuXHRoNDp0YXJnZXQsXG5cdGg1OnRhcmdldCxcblx0aDY6dGFyZ2V0IHtcblx0XHRvdXRsaW5lOiAwIG5vbmU7XG5cdH1cblxuXHQvKiAoZW4pIEhUTUw1IC0gYWRqdXN0aW5nIHZpc3VhbCBmb3JtYXR0aW5nIG1vZGVsIHRvIGJsb2NrIGxldmVsICovXG5cdC8qIChkZSkgSFRNTDUgLSBFbGVtZW50cyB3ZXJkZW4gYWxzIEJsb2NrZWxlbWVudGUgZGVmaW5pZXJ0ICovXG5cdGFydGljbGUsXG5cdGFzaWRlLFxuXHRkZXRhaWxzLFxuXHRmaWdjYXB0aW9uLFxuXHRmaWd1cmUsXG5cdGZvb3Rlcixcblx0aGVhZGVyLFxuXHRtYWluLFxuXHRuYXYsXG5cdHNlY3Rpb24sXG5cdHN1bW1hcnkge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0LyogKGVuKSBIVE1MNSAtIGRlZmF1bHQgbWVkaWEgZWxlbWVudCBzdHlsZXMgKi9cblx0LyogKGRlKSBIVE1MNSAtIFN0YW5kYXJkIEVpZ2Vuc2NoYWZ0ZW4gZsO8ciBNZWRpYS1FbGVtZW50ZSAqL1xuXHRhdWRpbyxcblx0Y2FudmFzLFxuXHR2aWRlbyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cblx0LyogKGVuKSBIVE1MNSAtIGRvbid0IHNob3cgPGF1ZGlvPiBlbGVtZW50IGlmIHRoZXJlIGFyZW4ndCBjb250cm9scyAqL1xuXHQvKiAoZGUpIEhUTUw1IC0gPGF1ZGlvPiBvaG5lIEtvbnRyb2xsZWxlbWVudGUgc29sbHRlbiBuaWNodCBhbmdlemVpZ3Qgd2VyZGVuICovXG5cdGF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC8qIChlbikgSFRNTDUgLSBhZGQgbWlzc2luZyBzdHlsaW5nIGluIElFICYgb2xkIEZGIGZvciBoaWRkZW4gYXR0cmlidXRlICovXG5cdC8qIChkZSkgSFRNTDUgLSBFaWdlbnNjaGFmdGVuIGbDvHIgZGFzIGhpZGRlbi1BdHRyaWJ1dCBpbiDDpGx0ZXJlbiBJRXMgdW5kIEZGIG5hY2hyw7xzdGVuICovXG5cdFtoaWRkZW5dIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LyogKGVuKSBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLiAqL1xuXHQvKiAoZGUpIFZlcmRpbmRlcnQgZGllIGF1dG9tYXRpc2NoZSBUZXh0YW5wYXNzdW5nIGJlaSBPcmllbnRpZXJ1bmdzd2VjaHNlbCwgb2huZSBab29tIHp1IGJsb2NraWVyZW4gKi9cblx0aHRtbCB7XG5cdFx0LW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG5cdFx0LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuXHR9XG5cblx0LyogKGVuKSBzZXQgY29ycmVjdCBib3gtbW9kZWxsIGluIElFOC85IHBsdXMgcmVtb3ZlIHBhZGRpbmcgKi9cblx0LyogKGRlKSBTZXR6ZSBkYXMgcmljaHRpZ2UgQm94LU1vZGVsbCBpbSBJRTgvOSB1bmQgZW50ZmVybmUgdW5uw7Z0aWdlcyBQYWRkaW5nICovXG5cdGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcblx0aW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHQvKiAoZW4pIGZvcmNlIGNvbnNpc3RhbnQgYXBwZWFyYW5jZSBvZiBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIGVsZW1lbnRzIGluIGFsbCBicm93c2VyICovXG5cdC8qIChkZSkgRWluaGVpdGxpY2hlcyBFcnNjaGVpbnVuZ3NiaWxkIGbDvHIgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSBFbGVtZW50ZSBlcnp3aW5nZW4gKi9cblx0aW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG5cdCAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcblx0ICAgIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG5cdCAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHQgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG5cdH1cblxuXHRpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuXHRpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcblx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdH1cblxuXHQvKiAoZW4pIENvcnJlY3Qgb3ZlcmZsb3cgZGlzcGxheWVkIG9kZGx5IGluIElFIDkgKi9cblx0LyogKGRlKSBLb3JyaWdpZXJ0IGZlaGxlcmhhZnRlIG92ZXJmbG93IFZvcmVpbnN0ZWxsdW5nIGRlcyBJRSA5ICovXG5cdHN2Zzpub3QoOnJvb3QpIHtcblx0ICAgIG92ZXJmbG93OiBoaWRkZW47XG5cdH1cblxuXHQvKiAoZW4pIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpIDUgKi9cblx0LyogKGVuKSBFcmfDpG56dCBmZWhsZW5kZW4gTWFyZ2luIGluIElFIDgvOSB1bmQgU2FmYXJpIDUgKi9cblx0ZmlndXJlIHtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQvKiAoZW4pIENsZWFyIGJvcmRlcnMgZm9yIDxmaWVsZHNldD4gYW5kIDxpbWc+IGVsZW1lbnRzICovXG5cdC8qIChkZSkgUmFobWVuIGbDvHIgPGZpZWxkc2V0PiB1bmQgPGltZz4gRWxlbWVudGUgbMO2c2NoZW4gKi9cblx0ZmllbGRzZXQsXG5cdGltZyB7IGJvcmRlcjowIHNvbGlkOyB9XG5cblx0LyogKGVuKSBuZXcgc3RhbmRhcmQgdmFsdWVzIGZvciBsaXN0cywgYmxvY2txdW90ZSwgY2l0ZSBhbmQgdGFibGVzICovXG5cdC8qIChkZSkgTmV1ZSBTdGFuZGFyZHdlcnRlIGbDvHIgTGlzdGVuLCBaaXRhdGUgdW5kIFRhYmVsbGVuICovXG5cdHVsLFxuXHRvbCxcblx0ZGwgeyBtYXJnaW46MCAwIDFlbSAxZW07IH0gLy8gTFRSXG5cblx0bGkge1xuXHRcdGxpbmUtaGVpZ2h0OjEuNWVtO1xuXHRcdG1hcmdpbi1sZWZ0OjAuOGVtOyAvLyBMVFJcblx0fVxuXG5cdGR0IHsgZm9udC13ZWlnaHQ6Ym9sZDsgfVxuXHRkZCB7IG1hcmdpbjowIDAgMWVtIDAuOGVtOyB9IC8vIExUUlxuXG5cdGJsb2NrcXVvdGUgeyBtYXJnaW46MCAwIDFlbSAwLjhlbTsgfSAvLyBMVFJcblx0cSB7IHF1b3Rlczogbm9uZTsgfVxuXG5cdGJsb2NrcXVvdGU6YmVmb3JlLFxuXHRibG9ja3F1b3RlOmFmdGVyLFxuXHRxOmJlZm9yZSxcblx0cTphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0Y29udGVudDpub25lO1xuXHR9XG5cblx0dGFibGUge1xuXHRcdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdFx0Ym9yZGVyLXNwYWNpbmc6IDA7XG5cdH1cbn0iLCJAaWYgJHltLWJhc2UtZmxvYXRoYW5kbGluZyA9PSB0cnVlIHtcblx0LyoqXG5cdCogQHNlY3Rpb24gRmxvYXQgSGFuZGxpbmcgTW9kdWxlXG5cdCovXG5cblx0LyogKGVuKSBjbGVhcmZpeCBtZXRob2QgZm9yIGNsZWFyaW5nIGZsb2F0cyAqL1xuXHQvKiAoZGUpIENsZWFyZml4LU1ldGhvZGUgenVtIENsZWFyZW4gZGVyIEZsb2F0LVVtZ2VidW5nZW4gKi9cblx0LnltLWNsZWFyZml4OmJlZm9yZSB7XG5cdFx0Y29udGVudDpcIlwiO1xuXHRcdGRpc3BsYXk6dGFibGU7XG5cdH1cblx0LnltLWNsZWFyZml4OmFmdGVyIHtcblx0XHRjbGVhcjpib3RoO1xuXHRcdGNvbnRlbnQ6XCIuXCI7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRmb250LXNpemU6MDtcblx0XHRoZWlnaHQ6MDtcblx0XHR2aXNpYmlsaXR5OmhpZGRlbjtcblx0fVxuXG5cdC8qIChlbikgYWx0ZXJuYXRpdmUgc29sdXRpb25zIHRvIGNvbnRhaW4gZmxvYXRzICovXG5cdC8qIChkZSkgQWx0ZXJuYXRpdmUgTWV0aG9kZW4genVtIEVpbnNjaGxpZcOfZW4gdm9uIEZsb2F0LVVtZ2VidW5nZW4gKi9cblx0LnltLWNvbnRhaW4tZHQge1xuXHRcdEBpbmNsdWRlIHltLWNvbnRhaW4oZHQpO1xuXHR9XG5cdC55bS1jb250YWluLW9oIHtcblx0XHRAaW5jbHVkZSB5bS1jb250YWluKG9oKTtcblx0fVxuXHQueW0tY29udGFpbi1mbCB7XG5cdFx0QGluY2x1ZGUgeW0tY29udGFpbihmbCk7XG5cdH1cbn1cbiIsIi8vXG4vLyBDU1MzIE1peGluc1xuLy9cblxuLy8gQk9YIFNJWklOR1xuQG1peGluIHltLWJveC1zaXppbmcoJHR5cGU6IGJvcmRlci1ib3gpIHtcblx0LXdlYmtpdC1ib3gtc2l6aW5nOlx0JHR5cGU7XG5cdC1tb3otYm94LXNpemluZzpcdCR0eXBlO1xuXHRib3gtc2l6aW5nOlx0XHRcdCR0eXBlO1xufVxuXG4vLyBCT1ggU0hBRE9XXG5AbWl4aW4geW0tYm94LXNoYWRvdygkeDogMXB4LCAkeTogMXB4LCAkYmx1cjogNXB4LCAkY29sb3I6IHJnYmEoMCwwLDAsLjUpLCAkaW5zZXQ6IGZhbHNlKSB7XG5cblx0QGlmICRpbnNldHtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAkeCAkeSAkYmx1ciAkY29sb3I7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAkeCAkeSAkYmx1ciAkY29sb3I7XG5cdH1cblx0QGVsc2Uge1xuXHQtd2Via2l0LWJveC1zaGFkb3c6ICR4ICR5ICRibHVyICRjb2xvcjtcblx0XHRcdGJveC1zaGFkb3c6ICR4ICR5ICRibHVyICRjb2xvcjtcblx0fVxufVxuXG4vLyBMaW5lYXIgR3JhZGllbnQgd2l0aCB0d28gY29sb3JzIGZvciBtb2Rlcm4gYnJvd3NlcnMgd2l0aG91dCB0aGUgY29ycmVzcG9uZGluZyBJRS1maWx0ZXJcblxuLy8gJGRpcmVjdGlvbiA9PT4gd3JpdHRlbiBpbiB0aGUgc3RhbmRhcmQtd2F5OiB0byBib3R0b20sIHRvIGxlZnQgLi4uXG4vLyAkc29saWQtY29sb3IgPT0+IHJlcGxhY2VtZW50IGNvbG9yIGZvciB0aGUgb25lIGRldmljZSB0aGF0IGNhbm5vdCBzaG93IGdyYWRpZW50cyBvciBJRS1maWx0ZXJzXG4vLyAkc3RhcnQtY29sb3IgPT0+IHdoaWNoIGNvbG9yIHRvIHN0YXJ0IHdpdGhcbi8vICRlbmQtY29sb3IgPT0+IHdoaWNoIGNvbG9yIHRvIGVuZCB3aXRoXG5cbi8vICRvdXRwdXQgPT0+IGRlZmluZXMgdGhlIG91dHB1dC10eXBlIG9mIHRoZSBjb2RlXG5cdC8vIGNzczMgICA9PT4gb25seSBDU1MzLWdyYWRpZW50c1xuXHQvLyBvbGRpZSAgPT0+IG9ubHkgSUUtZmlsdGVycyBmb3Igb2xkSUUgKHZlcnNpb25zIGJlZm9yZSA5KVxuXHQvLyBib3RoICAgPT0+IGJvdGggQ1NTMyBhbmQgb2xkSUUgdmVyc2lvbnMgYXJlIHByaW50ZWRcblxuLy8gJGZhbGxiYWNrID09PiBmYWxsYmFjayBjb2xvciBjb2RlIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgZ3JhZGllbnRzIChvbGRJRSlcblxuLy8gQXMgdGhlcmUgaXMgYSBkZWZhdWx0IGRpcmVjdGlvbiB0aGVyZSBpcyBubyB1c2UgZm9yIGEgZm91cnRoIGlmLWNhc2UuXG5cbkBtaXhpbiB5bS1saW5lYXItZ3JhZGllbnQoJGRpcmVjdGlvbjogXCJ0byBib3R0b21cIiwgJHN0YXJ0LWNvbG9yOiAjZWVlLCAkZW5kLWNvbG9yOiAjY2NjLCAkb3V0cHV0OiBib3RoLCAkZmFsbGJhY2s6ICRzdGFydC1jb2xvcikge1xuXHQkb2xkLWRpcmVjdGlvbjogdG9wO1xuXHQkdmVyeS1vbGQtZGlyZWN0aW9uOlwibGVmdCB0b3AsIGxlZnQgYm90dG9tXCI7XG5cdCRpZS1kaXJlY3Rpb246IDA7XG5cblx0QGlmICRkaXJlY3Rpb24gPT0gXCJ0byByaWdodFwiIHtcblx0XHQkdmVyeS1vbGQtZGlyZWN0aW9uOiBcImxlZnQgdG9wLCByaWdodCB0b3BcIjtcblx0XHQkb2xkLWRpcmVjdGlvbjogbGVmdDtcblx0XHQkaWUtZGlyZWN0aW9uOiAxO1xuXHR9XG5cblx0QGlmICRvdXRwdXQgIT0gXCJvbGRpZVwiIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgI3skdmVyeS1vbGQtZGlyZWN0aW9ufSwgY29sb3Itc3RvcCgwJSwkc3RhcnQtY29sb3IpLCBjb2xvci1zdG9wKDEwMCUsJGVuZC1jb2xvcikpO1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6ICAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkb2xkLWRpcmVjdGlvbiwgJHN0YXJ0LWNvbG9yLCRlbmQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IFx0LW1vei1saW5lYXItZ3JhZGllbnQoJG9sZC1kaXJlY3Rpb24sICRzdGFydC1jb2xvciwkZW5kLWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiBcdCAtbXMtbGluZWFyLWdyYWRpZW50KCRvbGQtZGlyZWN0aW9uLCAkc3RhcnQtY29sb3IsJGVuZC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogICAgXHRcdCB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JGRpcmVjdGlvbn0sICN7JHN0YXJ0LWNvbG9yfSwjeyRlbmQtY29sb3J9KVwiKTtcblx0fVxuXG5cdEBpZiAkb3V0cHV0ICE9IFwiY3NzM1wiIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2s7XG5cdFx0JGllY29sb3IxOiBpZS1oZXgtc3RyKCRzdGFydC1jb2xvcik7XG5cdFx0JGllY29sb3IyOiBpZS1oZXgtc3RyKCRlbmQtY29sb3IpO1xuXHRcdGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkdyYWRpZW50KEdyYWRpZW50VHlwZT0jeyRpZS1kaXJlY3Rpb259LCBzdGFydENvbG9yc3RyPScjeyRpZWNvbG9yMX0nLCBlbmRDb2xvcnN0cj0nI3skaWVjb2xvcjJ9Jyk7XG5cdFx0em9vbTogMTtcblx0fVxufVxuXG4vL1xuLy8gUHJvZ2Vzc2l2ZSBMaW5lYXJpemF0aW9uXG4vL1xuQG1peGluIHltLWxpbmVhcml6ZS1ncmlkcyB7XG5cdCYsXG5cdCYgPiBbY2xhc3MqPVwieW0tZ1wiXSB7XG5cdFx0LyogbGluZWFyaXphdGlvbiBmb3IgZ3JpZCBtb2R1bGUgKi9cblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbG9hdDogbm9uZTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdG1hcmdpbjogMDtcblx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHR9XG5cblx0JiA+IFtjbGFzcyo9XCJ5bS1nXCJdID4gW2NsYXNzKj1cInltLWdib3hcIl0ge1xuXHRcdC8qIHJlc2V0IGRlZmluZWQgZ3V0dGVyIHZhbHVlcyAqL1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdC8qIG9wdGlvbmFsIGZvciBjb250YWluaW5nIGZsb2F0cyAqL1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cbn1cblxuQG1peGluIHltLWxpbmVhcml6ZS1jb2x1bW5zIHtcblx0Jixcblx0JiA+IFtjbGFzcyo9XCJ5bS1jXCJdIHtcblx0XHQvKiBsaW5lYXJpemF0aW9uIGZvciBjb2x1bW4gbW9kdWxlICovXG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0cGFkZGluZzogMDtcblx0XHRtYXJnaW46IDA7XG5cdFx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcblx0fVxuXG5cdCYgPiBbY2xhc3MqPVwieW0tY1wiXSA+IFtjbGFzcyo9XCJ5bS1jYm94XCJdIHtcblx0XHQvKiByZXNldCBkZWZpbmVkIGd1dHRlciB2YWx1ZXMgKi9cblx0XHRtYXJnaW46IDAgO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Lyogb3B0aW9uYWwgZm9yIGNvbnRhaW5pbmcgZmxvYXRzICovXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxufVxuXG5AbWl4aW4geW0tbGluZWFyaXplLWdyaWRzLWFuZC1jb2x1bW5zIHtcblx0Jixcblx0JiA+IFtjbGFzcyo9XCJ5bS1jXCJdLFxuXHQmID4gW2NsYXNzKj1cInltLWdcIl0ge1xuXHRcdC8qIGxpbmVhcml6YXRpb24gZm9yIGdyaWRzIGFuZCBjb2x1bW5zIG1vZHVsZSAqL1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZsb2F0OiBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQmID4gW2NsYXNzKj1cInltLWNcIl0gPiBbY2xhc3MqPVwieW0tY2JveFwiXSxcblx0JiA+IFtjbGFzcyo9XCJ5bS1nXCJdID4gW2NsYXNzKj1cInltLWdib3hcIl0ge1xuXHRcdC8qIHJlc2V0IGRlZmluZWQgZ3V0dGVyIHZhbHVlcyAqL1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdC8qIG9wdGlvbmFsIGZvciBjb250YWluaW5nIGZsb2F0cyAqL1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cbn1cblxuQG1peGluIHltLWxpbmVhcml6ZS1mb3JtcyB7XG5cdC8vIGxpbmVhcml6YXRpb24gZm9yIGZvcm0gbW9kdWxlXG5cdCYgbGFiZWwge1xuXHRcdGZsb2F0Om5vbmU7XG5cdH1cblxuXHQmIC55bS1sYWJlbCxcblx0JiAueW0tbWVzc2FnZSxcblx0JiBpbnB1dCxcblx0JiBidXR0b24sXG5cdCYgdGV4dGFyZWEsXG5cdCYgc2VsZWN0IHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbG9hdDogbm9uZTtcblx0XHRwb3NpdGlvbjogc3RhdGljO1xuXHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0fVxuXG5cdC8vIHJlc2V0IGdyaWRzXG5cdCYgLnltLWZib3gtd3JhcCxcblx0JiAueW0tZmJveC13cmFwIFtjbGFzcyo9XCJ5bS1nXCJdIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbG9hdDogbm9uZTtcblx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRcdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0fVxuXG5cdC8vIHJlc2V0IGNvbHVtbmFyIHNldHRpbmdzXG5cdCYgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuXHQmIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcblx0JiBpbnB1dFt0eXBlPVwiaW1hZ2VcIl0ge1xuXHRcdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdFx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcblx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdH1cbn1cblxuLy9cbi8vIFRvb2xzXG4vL1xuQG1peGluIHltLWNsZWFyZml4IHtcblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6XCJcIjtcblx0XHRkaXNwbGF5OnRhYmxlO1xuXHR9XG5cblx0JjphZnRlciB7XG5cdFx0Y2xlYXI6Ym90aDtcblx0XHRjb250ZW50OlwiLlwiO1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0Zm9udC1zaXplOjA7XG5cdFx0aGVpZ2h0OjA7XG5cdFx0dmlzaWJpbGl0eTpoaWRkZW47XG5cdH1cblxuXHQvLyBJRSA8IDhcblx0em9vbTogMTtcbn1cblxuLy8gQ09OVEFJTklORyBGTE9BVFNcbkBtaXhpbiB5bS1jb250YWluKCR0eXBlOiBcImR0XCIpIHtcblxuXHRAaWYgJHR5cGUgPT0gXCJvaFwiIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0QGlmICR0eXBlID09IFwiZmxcIiB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHRAaWYgJHR5cGUgPT0gXCJkdFwiIHtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHR0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbi8vXG4vLyBZQU1MNCBDdXN0b20gR3JpZCBHZW5lcmF0b3Jcbi8vIEdlbmVyYXRlcyBDU1MgZm9yIGN1c3RvbSBncmlkcywgYmFzZWQgb24gWUFNTHMgZ3JpZC1tb2R1bGVcbi8vXG5AbWl4aW4geW0tY3VzdG9tLWdyaWQoJHByZWZpeCwgJGNvbHVtbnMsICR3aWR0aCwgJG1hcmdpbi1sZWZ0LCAkbWFyZ2luLXJpZ2h0KSB7XG5cblx0JGNvbHVtbl93aWR0aFx0OiAkd2lkdGggLyAkY29sdW1ucztcblxuXHQueW0td3JhcHBlciB7XG5cdFx0d2lkdGg6ICR3aWR0aDtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0fVxuXHQueW0tZ2JveCB7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0bWFyZ2luLWxlZnQ6ICRtYXJnaW4tbGVmdDtcblx0XHRtYXJnaW4tcmlnaHQ6ICRtYXJnaW4tcmlnaHQ7XG5cdH1cblx0W2NsYXNzKj1cInltLXB1c2gtXCJdLFxuXHRbY2xhc3MqPVwieW0tcHVsbC1cIl0geyBwb3NpdGlvbjpyZWxhdGl2ZTsgfVxuXG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvbHVtbnMge1xuXHRcdC55bS0jeyRwcmVmaXh9LSN7JGl9IHsgd2lkdGg6ICRjb2x1bW5fd2lkdGggKiAkaTsgfVxuXHR9XG5cblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyAtIDEge1xuXHRcdC55bS1wdXNoLSN7JGl9IHsgbGVmdDogJGNvbHVtbl93aWR0aCAqICRpOyB9XG5cdH1cblxuXHRAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2x1bW5zIC0gMSB7XG5cdFx0LnltLXB1bGwtI3skaX0geyBsZWZ0OiAtJGNvbHVtbl93aWR0aCAqICRpOyB9XG5cdH1cbn1cbiIsIkBpZiAkeW0tYmFzZS1jb2x1bW5zID09IHRydWUge1xuXHQvKipcblx0KiBAc2VjdGlvbiBDb2x1bW4gTW9kdWxlXG5cdCpcblx0KiBkZWZhdWx0IGNvbHVtbiBjb25maWc6XG5cdCogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG5cdCogfCBjb2wxICAgIHwgY29sMyAgICAgIHwgY29sMiAgICB8XG5cdCogfCAyMCUgICAgIHwgZmxleGlibGUgIHwgMjAlICAgICB8XG5cdCogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG5cdCovXG5cblx0LnltLWNvbHVtbiB7XG5cdFx0QGluY2x1ZGUgeW0tY29udGFpbihkdCk7XG5cdH1cblxuXHQueW0tY29sMSB7IGZsb2F0OmxlZnQ7IHdpZHRoOiR5bS1jb2x1bW4td2lkdGg7IH1cblx0LnltLWNvbDIgeyBmbG9hdDpyaWdodDsgd2lkdGg6JHltLWNvbHVtbi13aWR0aDsgfVxuXHQueW0tY29sMyB7IHdpZHRoOmF1dG87IG1hcmdpbjowICR5bS1jb2x1bW4td2lkdGg7IH1cblxuXHQueW0tY2JveCB7IHBhZGRpbmc6IDAgJHltLWNib3gtcGFkZGluZyB9XG5cdC55bS1jYm94LWxlZnQgeyBwYWRkaW5nOiAwICR5bS1jYm94LXBhZGRpbmcgMCAwIH1cblx0LnltLWNib3gtcmlnaHQgeyBwYWRkaW5nOiAwIDAgMCAkeW0tY2JveC1wYWRkaW5nIH1cblxuXHQvKiAoZW4pIElFLUNsZWFyaW5nOiBPbmx5IHVzZWQgaW4gSW50ZXJuZXQgRXhwbG9yZXIsIHN3aXRjaGVkIG9uIGluIGllaGFja3MuY3NzICovXG5cdC8qIChkZSkgSUUtQ2xlYXJpbmc6IEJlbsO2dGlndCBudXIgZGVyIEludGVybmV0IEV4cGxvcmVyIHVuZCDDvGJlciBpZWhhY2tzLmNzcyB6dWdlc2NoYWx0ZXQgKi9cblx0LnltLWllLWNsZWFyaW5nIHsgZGlzcGxheTpub25lOyB9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vXG4vLyBZQU1MIENvcmVcbi8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLyBEaXNhYmxlL0VuYWJsZSBGcmFtZXdvcmsgVXNhZ2UgZ2xvYmFsbHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHVzZS15YW1sXHRcdFx0XHQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIERpc2FibGUvRW5hYmxlIENvcmUgTW9kdWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4keW0tYmFzZS1ub3JtYWxpemF0aW9uXHQ6IHRydWUgIWRlZmF1bHQ7XG4keW0tYmFzZS1mbG9hdGhhbmRsaW5nXHQ6IHRydWUgIWRlZmF1bHQ7XG4keW0tYmFzZS1jb2x1bW5zXHRcdDogdHJ1ZSAhZGVmYXVsdDtcbiR5bS1iYXNlLWdyaWRzXHRcdFx0OiB0cnVlICFkZWZhdWx0O1xuJHltLWJhc2UtZm9ybXNcdFx0XHQ6IHRydWUgIWRlZmF1bHQ7XG4keW0tYmFzZS1hY2Nlc3NpYmlsaXR5XHQ6IHRydWUgIWRlZmF1bHQ7XG4keW0tYmFzZS1wcmludFx0XHRcdDogdHJ1ZSAhZGVmYXVsdDtcblxuQGlmICR1c2UteWFtbCA9PSBmYWxzZSB7XG5cdCR5bS1iYXNlLW5vcm1hbGl6YXRpb25cdDogZmFsc2U7XG5cdCR5bS1iYXNlLWZsb2F0aGFuZGxpbmdcdDogZmFsc2U7XG5cdCR5bS1iYXNlLWNvbHVtbnNcdFx0OiBmYWxzZTtcblx0JHltLWJhc2UtZ3JpZHNcdFx0XHQ6IGZhbHNlO1xuXHQkeW0tYmFzZS1mb3Jtc1x0XHRcdDogZmFsc2U7XG5cdCR5bS1iYXNlLWFjY2Vzc2liaWxpdHlcdDogZmFsc2U7XG5cdCR5bS1iYXNlLXByaW50XHRcdFx0OiBmYWxzZTtcbn1cblxuLy8gQ29uZmlnOiBDb2x1bW5zIE1vZHVsZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4keW0tY29sdW1uLXdpZHRoXHRcdDogMjAlICFkZWZhdWx0O1xuJHltLWNib3gtcGFkZGluZ1x0XHQ6IDEwcHggIWRlZmF1bHQ7XG5cbi8vIENvbmZpZzogR3JpZHMgTW9kdWxlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiR5bS1yb3VuZGluZy10b2xlcmFuY2VcdDogLTVweCAhZGVmYXVsdDtcbiR5bS1nYm94LXBhZGRpbmdcdFx0OiAxMHB4ICFkZWZhdWx0O1xuIiwiQGlmICR5bS1iYXNlLWdyaWRzID09IHRydWUge1xuXG5cdC8qKlxuXHQqIEBzZWN0aW9uIEdyaWQgTW9kdWxlXG5cdCovXG5cblx0LnltLWdyaWQge1xuXHRcdEBpbmNsdWRlIHltLWNvbnRhaW4oZHQpO1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRwYWRkaW5nLWxlZnQ6MDtcblx0XHRwYWRkaW5nLXJpZ2h0OjA7XG5cdFx0bWFyZ2luLWxlZnQ6MDtcblx0XHRtYXJnaW4tcmlnaHQ6MDtcblx0fVxuXG5cdC55bS1nbCB7XG5cdFx0ZmxvYXQ6bGVmdDtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQueW0tZ3Ige1xuXHRcdGZsb2F0OnJpZ2h0O1xuXHRcdG1hcmdpbjogMCAwIDAgJHltLXJvdW5kaW5nLXRvbGVyYW5jZTtcblx0fVxuXG5cdC55bS1nMjAgeyB3aWR0aDoyMCU7IH1cblx0LnltLWc0MCB7IHdpZHRoOjQwJTsgfVxuXHQueW0tZzYwIHsgd2lkdGg6NjAlOyB9XG5cdC55bS1nODAgeyB3aWR0aDo4MCU7IH1cblx0LnltLWcyNSB7IHdpZHRoOjI1JTsgfVxuXHQueW0tZzMzIHsgd2lkdGg6MzMuMzMzJTsgfVxuXHQueW0tZzUwIHsgd2lkdGg6NTAlOyB9XG5cdC55bS1nNjYgeyB3aWR0aDo2Ni42NjYlOyB9XG5cdC55bS1nNzUgeyB3aWR0aDo3NSU7IH1cblx0LnltLWczOCB7IHdpZHRoOjM4LjIlOyB9XG5cdC55bS1nNjIgeyB3aWR0aDo2MS44JTsgfVxuXG5cdC55bS1nYm94IHsgcGFkZGluZzogMCAkeW0tZ2JveC1wYWRkaW5nIH1cblx0LnltLWdib3gtbGVmdCB7IHBhZGRpbmc6IDAgJHltLWdib3gtcGFkZGluZyAwIDAgfVxuXHQueW0tZ2JveC1yaWdodCB7IHBhZGRpbmc6IDAgMCAwICR5bS1nYm94LXBhZGRpbmcgfVxuXG5cdC55bS1lcXVhbGl6ZSB7IG92ZXJmbG93OmhpZGRlbjsgfVxuXG5cdC55bS1lcXVhbGl6ZSA+IFtjbGFzcyo9XCJ5bS1nXCJdIHtcblx0XHRkaXNwbGF5OnRhYmxlLWNlbGw7XG5cdFx0ZmxvYXQ6bm9uZTtcblx0XHRtYXJnaW46MDtcblx0XHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdH1cblxuXHQueW0tZXF1YWxpemUgPiBbY2xhc3MqPVwieW0tZ1wiXSA+IFtjbGFzcyo9XCJ5bS1nYm94XCJdIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogMTAwMDBweDtcblx0XHRtYXJnaW4tYm90dG9tOiAtMTAwMDBweFxuXHR9XG59IiwiQGlmICR5bS1iYXNlLWZvcm1zID09IHRydWUge1xuXHQvKipcblx0KiBAc2VjdGlvbiBGb3JtIE1vZHVsZVxuXHQqL1xuXG5cdC8qKiBWZXJ0aWNhbC1Gb3JtcyAtIHRlY2huaWNhbCBiYXNlIChzdGFuZGFyZClcblx0KlxuXHQqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuXHQqIHwgZm9ybSAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuXHQqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuXHQqIHwgICBsYWJlbCAgICAgICAgICAgICAgICAgICAgICAgfFxuXHQqIHwgICBpbnB1dCAvIHNlbGVjdCAvIHRleHRhcmVhICAgfFxuXHQqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuXHQqIHwgL2Zvcm0gICAgICAgICAgICAgICAgICAgICAgICAgfFxuXHQqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuXHQqXG5cdCogKGVuKSBTdHlsaW5nIG9mIGZvcm1zIHdoZXJlIGJvdGggbGFiZWwgYW5kIGlucHV0L3NlbGVjdC90ZXh0YXJlYSBhcmUgc3R5bGVkIHdpdGggZGlzcGxheTpibG9jaztcblx0KiAoZGUpIEZvcm11bGFyZ2VzdGFsdHVuZywgYmVpIGRlciBzb3dvaGwgbGFiZWwgYWxzIGF1Y2ggaW5wdXQvc2VsZWN0L3RleHRhcmVhIG1pdCBkaXNwbGF5OmJsb2NrOyBnZXN0YWx0ZXQgd2VyZGVuXG5cdCovXG5cblx0LnltLWZvcm0sXG5cdC55bS1mb3JtIGZpZWxkc2V0IHsgb3ZlcmZsb3c6aGlkZGVuOyB9XG5cblx0LnltLWZvcm0ge1xuXHRcdGRpdiB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9XG5cblx0XHRsYWJlbCxcblx0XHQueW0tbGFiZWwsXG5cdFx0LnltLW1lc3NhZ2Uge1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHRsaW5lLWhlaWdodDogMS41O1xuXHRcdFx0ZGlzcGxheTpibG9jazsgLy9pbXBvcnRhbnQgZm9yIFNhZmFyaVxuXHRcdH1cblxuXHRcdC55bS1tZXNzYWdlIHtcblx0XHRcdGNsZWFyOiBib3RoO1xuXHRcdH1cblxuXHRcdC55bS1mYm94LWNoZWNrIGxhYmVsIHtcblx0XHRcdGRpc3BsYXk6aW5saW5lO1xuXHRcdH1cblxuXHRcdGlucHV0LFxuXHRcdHRleHRhcmVhIHsgY3Vyc29yOnRleHQ7IH1cblxuXHRcdC55bS1mYm94LWNoZWNrIGlucHV0LFxuXHRcdGlucHV0W3R5cGU9XCJpbWFnZVwiXSxcblx0XHRpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5cdFx0aW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuXHRcdHNlbGVjdCxcblx0XHRsYWJlbCB7XG5cdFx0XHRjdXJzb3I6cG9pbnRlcjtcblx0XHR9XG5cblx0XHQvLyBzbWFsbCBhZGp1c3RtZW50cyBmb3IgSW50ZXJuZXQgRXhwbG9yZXIgLSBhbGwgdmVyc2lvbnNcblx0XHR0ZXh0YXJlYSB7XG5cdFx0XHRvdmVyZmxvdzogYXV0bztcblx0XHR9XG5cblx0XHQvLyBIaWRpbmcgb2YgaGlkZGVuIGZpZWxkcyAob3RoZXJ3aXNlIHVnbHkgc3BhY2VzIGluIEZpcmVmb3gpXG5cdFx0Ly8gVmVyc3RlY2t0ZSBGZWxkZXIgd2lya2xpY2ggdmVyc3RlY2tlbiAoc29uc3QgZ2dmLiBow6TDn2xpY2hlIEzDvGNrZW4gaW0gRmlyZWZveClcblx0XHRpbnB1dC5oaWRkZW4sXG5cdFx0aW5wdXRbdHlwZT1oaWRkZW5dIHtcblx0XHRcdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xuXHRcdH1cblxuXHRcdC8vIHN0eWxpbmcgY29udGFpbmluZyBESVYgZWxlbWVudHNcblx0XHQvLyBHZXN0YWx0dW5nIGRlciBrYXBzZWxuZGVuIERJVi1FbGVtZW50ZVxuXHRcdC55bS1mYm94OmJlZm9yZSxcblx0XHQueW0tZmJveC10ZXh0OmJlZm9yZSxcblx0XHQueW0tZmJveC1zZWxlY3Q6YmVmb3JlLFxuXHRcdC55bS1mYm94LWNoZWNrOmJlZm9yZSxcblx0XHQueW0tZmJveC1idXR0b246YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6XCJcIjtcblx0XHRcdGRpc3BsYXk6dGFibGU7XG5cdFx0fVxuXG5cdFx0LnltLWZib3g6YWZ0ZXIsXG5cdFx0LnltLWZib3gtdGV4dDphZnRlcixcblx0XHQueW0tZmJveC1zZWxlY3Q6YWZ0ZXIsXG5cdFx0LnltLWZib3gtY2hlY2s6YWZ0ZXIsXG5cdFx0LnltLWZib3gtYnV0dG9uOmFmdGVyIHtcblx0XHRcdGNsZWFyOmJvdGg7XG5cdFx0XHRjb250ZW50OlwiLlwiO1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdGZvbnQtc2l6ZTowO1xuXHRcdFx0aGVpZ2h0OjA7XG5cdFx0XHR2aXNpYmlsaXR5OmhpZGRlbjtcblx0XHR9XG5cblx0XHQvLyBhdm9pZCBqdW1waW5nIGNoZWNrYm94ZXMgJiByYWRpb2J1dHRvbnMgaW4gSUU4XG5cdFx0LnltLWZib3gtY2hlY2sgaW5wdXQ6Zm9jdXMsXG5cdFx0LnltLWZib3gtY2hlY2sgaW5wdXQ6aG92ZXIsXG5cdFx0LnltLWZib3gtY2hlY2sgaW5wdXQ6YWN0aXZlLFxuXHRcdGlucHV0W3R5cGU9XCJyYWRpb1wiXTpmb2N1cyxcblx0XHRpbnB1dFt0eXBlPVwicmFkaW9cIl06aG92ZXIsXG5cdFx0aW5wdXRbdHlwZT1cInJhZGlvXCJdOmFjdGl2ZSxcblx0XHRpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Zm9jdXMsXG5cdFx0aW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmhvdmVyLFxuXHRcdGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTphY3RpdmUge1xuXHRcdFx0Ym9yZGVyOjAgbm9uZTtcblx0XHR9XG5cblx0XHQvLyBzdHlsaW5nIHN0YW5kYXJkIGZvcm0gZWxlbWVudHMgd2l0aCAnYWxtb3N0JyBlcXVhbCBmbGV4aWJsZSB3aWR0aFxuXHRcdC8vIEdlc3RhbHR1bmcgZGVyIGVpbnplbG5lbiBGb3JtdWxhcmVsZW1lbnRlIG1pdCBhbm7DpGhlbmQgZ2xlaWNoZXIgQnJlaXRlXG5cblx0XHQvLyBkZWZhdWx0IGZvcm0gZWxlbWVudCB3aWR0aFxuXHRcdGlucHV0LFxuXHRcdHRleHRhcmVhLFxuXHRcdHNlbGVjdCB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHRAaW5jbHVkZSB5bS1ib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuXHRcdFx0d2lkdGg6NzAlO1xuXHRcdH1cblxuXHRcdC8vIG92ZXJydWxlIHdpZHRoIHNldHRpbmdzIGZvciBpbmxpbmUgZm9ybSBlbGVtZW50cyAuLi5cblx0XHQueW0tZmJveC1jaGVjayBpbnB1dCxcblx0XHRpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5cdFx0aW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwLjVleDtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdH1cblxuXHRcdGlucHV0W3R5cGU9XCJpbWFnZVwiXSB7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0fVxuXG5cdFx0bGFiZWwsXG5cdFx0LnltLWxhYmVsIHtcblx0XHRcdEBpbmNsdWRlIHltLWJveC1zaXppbmcoYm9yZGVyLWJveCk7XG5cdFx0fVxuXG5cdFx0Ly8gc3R5bGluZyBidXR0b25zXG5cdFx0LnltLWZib3gtYnV0dG9uIHtcblx0XHRcdGlucHV0IHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdFx0XHRvdmVyZmxvdzp2aXNpYmxlOyAgLy8gRml4ZXMgSUU3IGF1dG8tcGFkZGluZyBidWdcblx0XHRcdFx0d2lkdGg6YXV0bztcblx0XHRcdH1cblx0XHR9XG5cblx0XHQueW0taW5saW5lIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGZsb2F0OiBub25lOyAvLyByZXNldCBjb2x1bW5hciBmbG9hdGluZyAuLi5cblx0XHRcdG1hcmdpbi1yaWdodDogMDsgLy8gcmVzZXQgcm91bmRpbmcgdG9sZXJhbmNlIC4uLlxuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cdFx0fVxuXHR9XG5cblx0LyogZGVmYXVsdCBmb3JtIHdyYXBwZXIgd2lkdGggKi9cblx0LnltLWZib3gtd3JhcCB7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0dGFibGUtbGF5b3V0OiBmaXhlZDtcblx0XHR3aWR0aDogNzAlO1xuXG5cdFx0aW5wdXQsXG5cdFx0dGV4dGFyZWEsXG5cdFx0c2VsZWN0IHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblxuXHRcdGlucHV0W3R5cGU9XCJpbWFnZVwiXSB7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG5cblx0XHRpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5cdFx0aW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDAuNWV4O1xuXHRcdH1cblxuXHRcdGxhYmVsLFxuXHRcdC55bS1sYWJlbCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0fVxuXHR9XG5cblx0LnltLWZ1bGwge1xuXHRcdGlucHV0LFxuXHRcdHRleHRhcmVhLFxuXHRcdHNlbGVjdCB7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdH1cblx0XHQueW0tZmJveC13cmFwIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQqICBDb2x1bW5hciBmb3JtcyBkaXNwbGF5IC0gdGVjaG5pY2FsIGJhc2UgKG9wdGlvbmFsKVxuXHQqXG5cdCogIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuXHQqICB8IGZvcm0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcblx0KiAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG5cdCogIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuXHQqICB8ICAgbGFiZWwgICB8ICAgaW5wdXQgLyBzZWxlY3QgLyB0ZXh0YXJlYSAgIHxcblx0KiAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG5cdCogIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuXHQqICB8IC9mb3JtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcblx0KiAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG5cdCpcblx0KiAgKGVuKSBTdHlsaW5nIG9mIGZvcm1zIHdoZXJlIGxhYmVsIGZsb2F0cyBsZWZ0IG9mIGZvcm0tZWxlbWVudHNcblx0KiAgKGRlKSBGb3JtdWxhcmdlc3RhbHR1bmcsIGJlaSBkZXIgZGllIGxhYmVsLUVsZW1lbnRlIG5hY2ggbGlua3MgZmxpZcOfZW5cblx0Ki9cblxuXHQueW0tY29sdW1uYXIge1xuXHRcdC8vIENvbHVtbmFyIGRpc3BsYXlcblx0XHQvLyBTcGFsdGVuLURhcnN0ZWxsdW5nXG5cblx0XHRpbnB1dCxcblx0XHR0ZXh0YXJlYSxcblx0XHRzZWxlY3Qge1xuXHRcdFx0ZmxvYXQ6bGVmdDtcblx0XHRcdG1hcmdpbi1yaWdodDogLTNweDtcblx0XHR9XG5cblx0XHRsYWJlbCxcblx0XHQueW0tbGFiZWwge1xuXHRcdFx0ZGlzcGxheTppbmxpbmU7XG5cdFx0XHRmbG9hdDpsZWZ0O1xuXHRcdFx0d2lkdGg6MzAlOyAvLyBDYW4gYmUgZml4ZWQgd2lkdGggdG9vIHwgS2FubiBhdWNoIGVpbmUgZml4ZSBBbmdhYmUgc2VpblxuXHRcdFx0ei1pbmRleDogMTtcblx0XHR9XG5cblx0XHQvLyBJbmRlbnQgQ2hlY2tib3ggZmllbGRzIHRvIG1hdGNoIGxhYmVsLXdpZHRoXG5cdFx0Ly8gQ2hlY2tib3hlbiB1bSBkZW4gZ2xlaWNoZW4gV2VydCBlaW5yw7xja2VuLCB3aWUgZGllIEJyZWl0ZSBkZXIgbGFiZWxzXG5cdFx0LnltLWZib3gtY2hlY2sgaW5wdXQsXG5cdFx0LnltLW1lc3NhZ2Uge1xuXHRcdFx0bWFyZ2luLWxlZnQ6MzAlO1xuXHRcdH1cblxuXHRcdC8vIHJlc2V0IGluZGVudGlvbiBmb3Igd3JhcHBlZCBmb3JtIGVsZW1lbnRzIC4uLlxuXHRcdC55bS1mYm94LXdyYXAge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDMwJTtcblx0XHRcdG1hcmdpbi1yaWdodDogLTNweDtcblxuXHRcdFx0LnltLW1lc3NhZ2Uge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMCU7XG5cdFx0XHR9XG5cblx0XHRcdGxhYmVsIHtcblx0XHRcdFx0ZmxvYXQ6bm9uZTtcblx0XHRcdFx0d2lkdGg6YXV0bztcblx0XHRcdFx0ei1pbmRleDogMTtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHR9XG5cblx0XHRcdGlucHV0IHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC55bS1mYm94LWNoZWNrIHtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXG5cdFx0XHRsYWJlbCxcblx0XHRcdC55bS1sYWJlbCB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHRpbnB1dCB7XG5cdFx0XHRcdHRvcDogM3B4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC55bS1mYm94LWJ1dHRvbiB7XG5cdFx0XHRpbnB1dCB7XG5cdFx0XHRcdGZsb2F0Om5vbmU7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMWVtO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC55bS1mYm94LXdyYXAgKyAueW0tZmJveC13cmFwIHtcblx0XHRtYXJnaW4tdG9wOiAwLjVlbTtcblx0fVxuXG5cdC8qIGdsb2JhbCBhbmQgbG9jYWwgY29sdW1uYXIgc2V0dGluZ3MgZm9yIGJ1dHRvbiBhbGlnbm1lbnQgKi9cblx0LnltLWNvbHVtbmFyIGZpZWxkc2V0IC55bS1mYm94LWJ1dHRvbixcblx0ZmllbGRzZXQueW0tY29sdW1uYXIgLnltLWZib3gtYnV0dG9uIHtcblx0XHRwYWRkaW5nLWxlZnQ6MzAlO1xuXHR9XG59XG4iLCJAaWYgJHltLWJhc2UtYWNjZXNzaWJpbGl0eSA9PSB0cnVlIHtcblx0LyoqXG5cdCogQHNlY3Rpb24gQWNjZXNzaWJpbGl0eSBNb2R1bGVcblx0KlxuXHQqIChlbikgc2tpcCBsaW5rcyBhbmQgaGlkZGVuIGNvbnRlbnRcblx0KiAoZGUpIFNraXAtTGlua3MgdW5kIHZlcnN0ZWNrdGUgSW5oYWx0ZVxuXHQqL1xuXG5cblx0LyogKGVuKSBjbGFzc2VzIGZvciBpbnZpc2libGUgZWxlbWVudHMgaW4gdGhlIGJhc2UgbGF5b3V0ICovXG5cdC8qIChkZSkgS2xhc3NlbiBmw7xyIHVuc2ljaHRiYXJlIEVsZW1lbnRlIGltIEJhc2lzbGF5b3V0ICovXG5cdC55bS1za2lwLFxuXHQueW0taGlkZW1lLFxuXHQueW0tcHJpbnQge1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdHRvcDotMzI3NjhweDtcblx0XHRsZWZ0Oi0zMjc2OHB4OyAvLyBMVFJcblx0fVxuXG5cdC8qIChlbikgbWFrZSBza2lwIGxpbmtzIHZpc2libGUgd2hlbiB1c2luZyB0YWIgbmF2aWdhdGlvbiAqL1xuXHQvKiAoZGUpIFNraXAtTGlua3MgZsO8ciBUYWItTmF2aWdhdGlvbiBzaWNodGJhciBzY2hhbHRlbiAqL1xuXHQueW0tc2tpcDpmb2N1cyxcblx0LnltLXNraXA6YWN0aXZlIHtcblx0XHRwb3NpdGlvbjpzdGF0aWM7XG5cdFx0dG9wOjA7XG5cdFx0bGVmdDowO1xuXHR9XG5cblx0Lyogc2tpcGxpbmtzOnRlY2huaWNhbCBzZXR1cCAqL1xuXHQueW0tc2tpcGxpbmtzIHtcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHR0b3A6MHB4O1xuXHRcdGxlZnQ6LTMyNzY4cHg7XG5cdFx0ei1pbmRleDoxMDAwO1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0bWFyZ2luOjA7XG5cdFx0cGFkZGluZzowO1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTpub25lO1xuXG5cdFx0LnltLXNraXA6Zm9jdXMsXG5cdFx0LnltLXNraXA6YWN0aXZlIHtcblx0XHRcdGxlZnQ6MzI3NjhweDtcblx0XHRcdG91dGxpbmU6MCBub25lO1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdH1cblx0fVxufVxuIiwiQGlmICR5bS1iYXNlLXByaW50ID09IHRydWUge1xuXG5cdEBpZiAkeW0tYmFzZS1ncmlkcyA9PSB0cnVlIHtcblx0LyoqXG5cdCogQHNlY3Rpb24gcHJpbnQgYWRqdXN0bWVudHMgZm9yIGNvcmUgbW9kdWxlc1xuXHQqXG5cdCogKGVuKSBmbG9hdCBjb250YWlubWVudCBmb3IgZ3JpZHMuIFVzZXMgZGlzcGxheTp0YWJsZSB0byBhdm9pZCBidWdzIGluIEZGICYgSUVcblx0KiAoZGUpIEZsb2F0cyBpbiBHcmlkcyBlaW5zY2hsaWXDn2VuLiBWZXJ3ZW5kZXQgZGlzcGxheTp0YWJsZSwgdW0gRGFyc3RlbGx1bmdzcHJvYmxlbWUgaW0gRkYgJiBJRSB6dSB2ZXJtZWlkZW5cblx0KlxuXHQqIEBidWdmaXhcblx0KiBAc2luY2UgICAgIDMuMFxuXHQqIEBhZmZlY3RlZCAgRkYyLjAsIEZGMy4wLCBJRTdcblx0KiBAY3NzLWZvciAgIGFsbCBicm93c2Vyc1xuXHQqIEB2YWxpZCAgICAgeWVzXG5cdCovXG5cdFx0LnltLWdyaWQgPiAueW0tZ2wsXG5cdFx0LnltLWdyaWQgPiAueW0tZ3Ige1xuXHRcdFx0b3ZlcmZsb3c6dmlzaWJsZTtcblx0XHRcdGRpc3BsYXk6dGFibGU7XG5cdFx0XHR0YWJsZS1sYXlvdXQ6IGZpeGVkXG5cdFx0fVxuXHR9XG5cblx0LyogKGVuKSBtYWtlIC55bS1wcmludCBjbGFzcyB2aXNpYmxlICovXG5cdC8qIChkZSkgLnltLXByaW50LUtsYXNzZSBzaWNodGJhciBzY2hhbHRlbiAqL1xuXHQueW0tcHJpbnQge1xuXHRcdHBvc2l0aW9uOnN0YXRpYztcblx0XHRsZWZ0OjA7XG5cdH1cblxuXHQvKiAoZW4pIGdlbmVyaWMgY2xhc3MgdG8gaGlkZSBlbGVtZW50cyBmb3IgcHJpbnQgKi9cblx0LyogKGRlKSBBbGxnZW1laW5lIENTUyBLbGFzc2UsIHVtIGJlbGllYmlnZSBFbGVtZW50ZSBpbiBkZXIgRHJ1Y2thdXNnYWJlIGF1c3p1YmxlbmRlbiAqL1xuXHQueW0tbm9wcmludCB7XG5cdFx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG5cdH1cbn0iLCJcbiNjc3NtZW51LFxuI2Nzc21lbnUgdWwsXG4jY3NzbWVudSB1bCBsaSxcbiNjc3NtZW51IHVsIGxpIGEsXG4jY3NzbWVudSAjbWVudS1idXR0b24ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuI2Nzc21lbnU6YWZ0ZXIsXG4jY3NzbWVudSA+IHVsOmFmdGVyIHtcbiAgY29udGVudDogXCIuXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBsaW5lLWhlaWdodDogMDtcbiAgaGVpZ2h0OiAwO1xufVxuI2Nzc21lbnUgI21lbnUtYnV0dG9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjc3NtZW51IHtcbiAgd2lkdGg6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbiNtZW51LWxpbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xufVxuXG4jY3NzbWVudSB1bCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4jY3NzbWVudSA+IHVsID4gbGkge1xuICBmbG9hdDogbGVmdDtcbn1cbiNjc3NtZW51LmFsaWduLWNlbnRlciA+IHVsIHtcbiAgZm9udC1zaXplOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4jY3NzbWVudS5hbGlnbi1jZW50ZXIgPiB1bCA+IGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogbm9uZTtcbn1cbiNjc3NtZW51LmFsaWduLWNlbnRlciB1bCB1bCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4jY3NzbWVudS5hbGlnbi1yaWdodCA+IHVsID4gbGkge1xuICBmbG9hdDogcmlnaHQ7XG59XG4jY3NzbWVudS5hbGlnbi1yaWdodCB1bCB1bCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuI2Nzc21lbnUgPiB1bCA+IGxpID4gYSB7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogIzRlNGU0ZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZTtcbiAgLW1vei10cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZTtcbiAgLW1zLXRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjJzIGVhc2U7XG59XG5cbiNjc3NtZW51ID4gdWwgPmxpID4gYTpob3ZlciB7YmFja2dyb3VuZDpub25lO31cblxuXG4jY3NzbWVudSA+IHVsID4gbGk6aG92ZXIgPiBhIHtcbiAgY29sb3I6ICNhYTg1YTM7XG59XG4jY3NzbWVudSA+IHVsID4gbGkuYWN0aXZlID4gYSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbiNjc3NtZW51ID4gdWwgPiBsaS5oYXMtc3ViID4gYSB7XG4gIHBhZGRpbmctcmlnaHQ6IDI1cHg7XG59XG4jY3NzbWVudSA+IHVsID4gbGkuaGFzLXN1YiA+IGE6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDIxcHg7XG4gIHJpZ2h0OiAxMHB4O1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDAwMDA7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDAwMDA7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbiAgLW1vei10cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xuICAtbXMtdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbn1cbiNjc3NtZW51ID4gdWwgPiBsaS5oYXMtc3ViOmhvdmVyID4gYTo6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6ICMwMDlhZTE7XG59XG4jY3NzbWVudSB1bCB1bCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTk5OTlweDtcbn1cbiNjc3NtZW51IGxpOmhvdmVyID4gdWwge1xuICBsZWZ0OiBhdXRvO1xufVxuI2Nzc21lbnUuYWxpZ24tcmlnaHQgbGk6aG92ZXIgPiB1bCB7XG4gIHJpZ2h0OiAwO1xufVxuI2Nzc21lbnUgdWwgdWwgdWwge1xuICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgdG9wOiAwO1xufVxuI2Nzc21lbnUuYWxpZ24tcmlnaHQgdWwgdWwgdWwge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAxMDAlO1xufVxuI2Nzc21lbnUgdWwgdWwgbGkge1xuICBoZWlnaHQ6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogaGVpZ2h0IC4ycyBlYXNlO1xuICAtbW96LXRyYW5zaXRpb246IGhlaWdodCAuMnMgZWFzZTtcbiAgLW1zLXRyYW5zaXRpb246IGhlaWdodCAuMnMgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogaGVpZ2h0IC4ycyBlYXNlO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgLjJzIGVhc2U7XG59XG4jY3NzbWVudSB1bCBsaTpob3ZlciA+IHVsID4gbGkge1xuICBoZWlnaHQ6IDMycHg7XG59XG4jY3NzbWVudSB1bCB1bCBsaSBhIHtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICB3aWR0aDogMTYwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYmFja2dyb3VuZDogIzMzMzMzMztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogI2RkZGRkZDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZTtcbiAgLW1vei10cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZTtcbiAgLW1zLXRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjJzIGVhc2U7XG59XG4jY3NzbWVudSB1bCB1bCBsaTpob3ZlciA+IGEsXG4jY3NzbWVudSB1bCB1bCBsaSBhOmhvdmVyIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4jY3NzbWVudSB1bCB1bCBsaS5oYXMtc3ViID4gYTo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTNweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHdpZHRoOiA0cHg7XG4gIGhlaWdodDogNHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZGRkZDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZGRkZDtcbiAgY29udGVudDogXCJcIjtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAtby10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG4gIC1tb3otdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbiAgLW1zLXRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG59XG4jY3NzbWVudS5hbGlnbi1yaWdodCB1bCB1bCBsaS5oYXMtc3ViID4gYTo6YWZ0ZXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTBweDtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZGRkZDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkZGRkO1xufVxuI2Nzc21lbnUgdWwgdWwgbGkuaGFzLXN1Yjpob3ZlciA+IGE6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmO1xufVxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogMTAyMHB4KSBcbntcblx0XG5cdFxuICAjY3NzbWVudSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgI2Nzc21lbnUgdWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgfVxuICAjY3NzbWVudS5hbGlnbi1jZW50ZXIgPiB1bCxcbiAgI2Nzc21lbnUuYWxpZ24tcmlnaHQgdWwgdWwge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgI2Nzc21lbnUgdWwgbGksXG4gICNjc3NtZW51IHVsIHVsIGxpLFxuICAjY3NzbWVudSB1bCBsaTpob3ZlciA+IHVsID4gbGkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxMjAsIDEyMCwgMTIwLCAwLjE1KTtcbiAgfVxuICBcbiAgI2Nzc21lbnUgdWwgbGkge1xuXHQgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBcbiAgXG4gICNjc3NtZW51IHVsIGxpIGEsXG4gICNjc3NtZW51IHVsIHVsIGxpIGEge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gICNjc3NtZW51ID4gdWwgPiBsaSxcbiAgI2Nzc21lbnUuYWxpZ24tY2VudGVyID4gdWwgPiBsaSxcbiAgI2Nzc21lbnUuYWxpZ24tcmlnaHQgPiB1bCA+IGxpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAjY3NzbWVudSB1bCB1bCBsaSBhIHtcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggMjBweCAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG4gICNjc3NtZW51IHVsIHVsIGxpOmhvdmVyID4gYSxcbiAgI2Nzc21lbnUgdWwgdWwgbGkgYTpob3ZlciB7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gIH1cbiAgI2Nzc21lbnUgdWwgdWwgdWwgbGkgYSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICB9XG4gICNjc3NtZW51IHVsIHVsLFxuICAjY3NzbWVudSB1bCB1bCB1bCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gICNjc3NtZW51ID4gdWwgPiBsaS5oYXMtc3ViID4gYTo6YWZ0ZXIsXG4gICNjc3NtZW51IHVsIHVsIGxpLmhhcy1zdWIgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjbWVudS1saW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjc3NtZW51ICNtZW51LWJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAtM3B4IDIwcHggMCAwO1xuICAgIHBhZGRpbmc6IDIycHggNDNweCAyMHB4IDIwcHg7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG4gIFxuICAjY3NzbWVudSAjbWVudS1idXR0b246OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyMHB4O1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIH1cbiAgI2Nzc21lbnUgI21lbnUtYnV0dG9uOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDI1cHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiA3cHg7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICMwMDAwMDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMwMDAwMDA7XG4gIH1cbiAgI2Nzc21lbnUgLnN1Ym1lbnUtYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTA7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgxMjAsIDEyMCwgMTIwLCAwLjE1KTtcbiAgICBoZWlnaHQ6IDUycHg7XG4gICAgd2lkdGg6IDUycHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gICNjc3NtZW51IC5zdWJtZW51LWJ1dHRvbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDIxcHg7XG4gICAgbGVmdDogMjZweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMTFweDtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgIHotaW5kZXg6IDk5O1xuICB9XG4gICNjc3NtZW51IC5zdWJtZW51LWJ1dHRvbjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMjFweDtcbiAgICB0b3A6IDI2cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDExcHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgICB6LWluZGV4OiA5OTtcbiAgfVxuICAjY3NzbWVudSAuc3VibWVudS1idXR0b24uc3VibWVudS1vcGVuZWQ6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi95YW1sLXZhci10eXBvZ3JhcGh5XCIsXG5cdFx0XCIuLi9taXhpbnMveWFtbC1taXhpbnMtY29yZVwiO1xuXG5AbWVkaWEgYWxsIHtcblxuXHQvKiFcblx0KiBAc2VjdGlvbiBnbG9iYWwgdHlwb2dyYXBoeSBzZXR0aW5nc1xuXHQqXG5cdCogdmVydGljYWwgcmh5dGhtIHNldHRpbmdzIChiYXNlZCBvbiBlbS11bml0KVxuXHQqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0KiBiYXNlZm9udC1zaXplOiAgI3skeW0tYmFzZS1mb250LXNpemV9cHggKCN7JHltLWJhc2UtZm9udC1zaXplLyR5bS1kZWZhdWx0LWZvbnQtc2l6ZSoxMDB9JSlcblx0KiBsaW5lLWhlaWdodCAgOiAgI3skeW0tYmFzZS1saW5lLWhlaWdodH1weCAoZmFjdG9yOiAjeyR5bS1iYXNlLWxpbmUtaGVpZ2h0IC8gJHltLWJhc2UtZm9udC1zaXplfSkgKi9cblxuXHQvKiBBbGxlIFNjaHJpZnRncsO2w59lbiBhdWYgU3RhbmRhcmRncsO2w59lICgxNiBQaXhlbCkgenVyw7xja3NldHplbiAqL1xuXG5cdGh0bWwgKiB7IGZvbnQtc2l6ZToxMDAlOyB9XG5cblx0LyoqXG5cdCogU2NocmlmdGdyw7bDn2Ugdm9uIG1vbm9zcGFjZWQgRWxlbWVudGUgaW4gYWxsZW4gQnJvd3Nlcm4gYXVmIDE2IFBpeGVsIHNldHplblxuXHQqXG5cdCogQHNlZTogaHR0cDovL3dlYmtpdC5vcmcvYmxvZy82Ny9zdHJhbmdlLW1lZGl1bS9cblx0Ki9cblxuXHR0ZXh0YXJlYSxcblx0cHJlLFxuXHRjb2RlLFxuXHRrYmQsXG5cdHNhbXAsXG5cdHZhcixcblx0dHQge1xuXHRcdGZvbnQtZmFtaWx5OiAkeW0tZm9udC1tb25vc3BhY2U7XG5cdH1cblxuXHQvKiEgZm9udC1zaXplOiAjeyR5bS1iYXNlLWZvbnQtc2l6ZX1weDsgKi9cblx0Ym9keSB7XG5cdFx0Zm9udC1mYW1pbHk6ICR5bS1mb250LXNhbnM7XG5cdFx0Zm9udC1zaXplOiAkeW0tYmFzZS1mb250LXNpemUgLyAkeW0tZGVmYXVsdC1mb250LXNpemUgKiAxMDAlO1xuXHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0Y29sb3I6ICR5bS10ZXh0LWNvbG9yO1xuXHR9XG5cblx0LyotLS0gw5xiZXJzY2hyaWZ0ZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXHRoMSxcblx0aDIsXG5cdGgzLFxuXHRoNCxcblx0aDUsXG5cdGg2IHtcblx0XHRmb250LWZhbWlseTogJHltLWZvbnQtc2Fucztcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdGNvbG9yOiAkeW0taGVhZGluZ3MtY29sb3I7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0aDEge1xuXHRcdC8qISBmb250LXNpemU6ICN7JHltLWJhc2UtZm9udC1zaXplICogJHltLWgxLWZvbnQtc2NhbGV9cHg7ICovXG5cdFx0Zm9udC1zaXplOiAyMDAlO1xuXHRcdGxpbmUtaGVpZ2h0OiAyICogJGxpbmUtaGVpZ2h0IC8gJHltLWgxLWZvbnQtc2NhbGU7XG5cdFx0bWFyZ2luOiAwIDAgMWVtIDA7XG5cblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi10b3A6IDEuNWVtO1xuXHRcdH1cblxuXHRcdCYuaG9tZS10aXRsZSB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblx0fVxuXG5cdGgyIHtcblx0XHQvKiEgZm9udC1zaXplOiAjeyR5bS1iYXNlLWZvbnQtc2l6ZSAqICR5bS1oMi1mb250LXNjYWxlfXB4OyAqL1xuXHRcdGZvbnQtc2l6ZTogMTYwJTtcblx0XHRsaW5lLWhlaWdodDogMiAqICRsaW5lLWhlaWdodCAvICR5bS1oMi1mb250LXNjYWxlO1xuXHRcdG1hcmdpbjogMCAwIDAuNWVtIDA7XG5cblx0XHRwICsgJiB7XG5cdFx0XHRtYXJnaW4tdG9wOiAyZW07XG5cblx0XHR9XG5cdFx0XG5cdH1cblxuXHRoMyB7XG5cdFx0LyohIGZvbnQtc2l6ZTogI3skeW0tYmFzZS1mb250LXNpemUgKiAkeW0taDMtZm9udC1zY2FsZX1weDsgKi9cblx0XHRmb250LXNpemU6IDEzMCU7XG5cdFx0bGluZS1oZWlnaHQ6IDEgKiAkbGluZS1oZWlnaHQgLyAkeW0taDMtZm9udC1zY2FsZTtcblx0XHRtYXJnaW46IDAgMCAkbGluZS1oZWlnaHQgLyAkeW0taDMtZm9udC1zY2FsZSoxZW0gMDtcblx0fVxuXG5cdGg0IHtcblx0XHQvKiEgZm9udC1zaXplOiAjeyR5bS1iYXNlLWZvbnQtc2l6ZSAqICR5bS1oNC1mb250LXNjYWxlfXB4OyAqL1xuXHRcdGZvbnQtc2l6ZTogJHltLWg0LWZvbnQtc2NhbGUgKiAxMDAlO1xuXHRcdGxpbmUtaGVpZ2h0OiAxICogJGxpbmUtaGVpZ2h0IC8gJHltLWg0LWZvbnQtc2NhbGU7XG5cdFx0bWFyZ2luOiAwIDAgJGxpbmUtaGVpZ2h0IC8gJHltLWg0LWZvbnQtc2NhbGUqMWVtIDA7XG5cdH1cblxuXHRoNSB7XG5cdFx0LyohIGZvbnQtc2l6ZTogI3skeW0tYmFzZS1mb250LXNpemUgKiAkeW0taDUtZm9udC1zY2FsZX1weDsgKi9cblx0XHRmb250LXNpemU6ICR5bS1oNS1mb250LXNjYWxlICogMTAwJTtcblx0XHRsaW5lLWhlaWdodDogMSAqICRsaW5lLWhlaWdodCAvICR5bS1oNS1mb250LXNjYWxlO1xuXHRcdG1hcmdpbjogMCAwICRsaW5lLWhlaWdodCAvICR5bS1oNS1mb250LXNjYWxlKjFlbSAwO1xuXHR9XG5cblx0aDYge1xuXHRcdC8qISBmb250LXNpemU6ICN7JHltLWJhc2UtZm9udC1zaXplICogJHltLWg2LWZvbnQtc2NhbGV9cHg7ICovXG5cdFx0Zm9udC1zaXplOiAkeW0taDYtZm9udC1zY2FsZSAqIDEwMCU7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0bGluZS1oZWlnaHQ6IDEgKiAkbGluZS1oZWlnaHQgLyAkeW0taDYtZm9udC1zY2FsZTtcblx0XHRtYXJnaW46IDAgMCAkbGluZS1oZWlnaHQgLyAkeW0taDYtZm9udC1zY2FsZSoxZW0gMDtcblx0fVxuXG5cdC8qIC0tLSBMaXN0ZW4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0dWwsXG5cdG9sLFxuXHRkbCB7XG5cdFx0Zm9udC1zaXplOiAkeW0tdGV4dC1mb250LXNjYWxlICogMTAwJTtcblx0XHRsaW5lLWhlaWdodDogMSAqICRsaW5lLWhlaWdodCAvICR5bS10ZXh0LWZvbnQtc2NhbGU7XG5cdFx0bWFyZ2luOiAwIDAgJGxpbmUtaGVpZ2h0IC8gJHltLXRleHQtZm9udC1zY2FsZSoxZW0gMDtcblx0fVxuXG5cdHVsIHtcblx0XHRsaXN0LXN0eWxlLXR5cGU6ZGlzYztcblx0fVxuXG5cdG9sIHtcblx0XHRsaXN0LXN0eWxlLXR5cGU6ZGVjaW1hbDtcblx0fVxuXG5cdHVsIHVsIHtcblx0XHRsaXN0LXN0eWxlLXR5cGU6Y2lyY2xlO1xuXHRcdG1hcmdpbi10b3A6MDtcblx0fVxuXG5cdG9sIG9sIHtcblx0XHRsaXN0LXN0eWxlLXR5cGU6bG93ZXItbGF0aW47XG5cdFx0bWFyZ2luLXRvcDowO1xuXHR9XG5cblx0b2wgdWwge1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTpjaXJjbGU7XG5cdFx0bWFyZ2luLXRvcDowO1xuXHR9XG5cblx0bGkge1xuXHRcdGZvbnQtc2l6ZTogJHltLXRleHQtZm9udC1zY2FsZSAqIDEwMCU7XG5cdFx0bGluZS1oZWlnaHQ6IDEgKiAkbGluZS1oZWlnaHQgLyAkeW0tdGV4dC1mb250LXNjYWxlO1xuXHRcdG1hcmdpbi1sZWZ0OiAxLjJlbTtcblx0fVxuXG5cdGR0IHtcblx0XHRmb250LXdlaWdodDpib2xkO1xuXHR9XG5cblx0ZGQge1xuXHRcdG1hcmdpbjogMCAwICRsaW5lLWhlaWdodCoxZW0gMC44ZW07XG5cdH1cblxuXHQvKiAtLS0gQWxsZ2VtZWluZSBUZXh0YXVzemVpY2hudW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdHAge1xuXHRcdGZvbnQtc2l6ZTogJHltLXRleHQtZm9udC1zY2FsZSAqIDEwMCU7XG5cdFx0bGluZS1oZWlnaHQ6IDEgKiAkbGluZS1oZWlnaHQgLyAkeW0tdGV4dC1mb250LXNjYWxlO1xuXHRcdG1hcmdpbjogMCAwICRsaW5lLWhlaWdodCAvICR5bS10ZXh0LWZvbnQtc2NhbGUqMWVtIDA7XG5cdH1cblxuXHRibG9ja3F1b3RlLFxuXHRjaXRlLFxuXHRxIHtcblx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdH1cblxuXG5cblx0YmxvY2txdW90ZSB7XG5cdFx0bWFyZ2luOiAyZW0gMS41ZW0gMWVtIDEuNWVtO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHR9XG5cblx0c3Ryb25nLFxuXHRiIHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0fVxuXG5cdGVtLFxuXHRpIHtcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdH1cblxuXHRiaWcge1xuXHRcdC8qISBmb250LXNpemU6ICN7JHltLWJhc2UtZm9udC1zaXplICogJHltLXRleHQtYmlnLWZvbnQtc2NhbGV9cHg7ICovXG5cdFx0Zm9udC1zaXplOiAkeW0tdGV4dC1iaWctZm9udC1zY2FsZSAqIDEwMCU7XG5cdFx0bGluZS1oZWlnaHQ6IDEgKiAkbGluZS1oZWlnaHQgLyAkeW0tdGV4dC1iaWctZm9udC1zY2FsZTtcblx0fVxuXG5cdHNtYWxsIHtcblx0XHQvKiEgZm9udC1zaXplOiAjeyR5bS1iYXNlLWZvbnQtc2l6ZSAqICR5bS10ZXh0LXNtYWxsLWZvbnQtc2NhbGV9cHg7ICovXG5cdFx0Zm9udC1zaXplOiAkeW0tdGV4dC1zbWFsbC1mb250LXNjYWxlICogMTAwJTtcblx0XHRsaW5lLWhlaWdodDogMSAqICRsaW5lLWhlaWdodCAvICR5bS10ZXh0LXNtYWxsLWZvbnQtc2NhbGU7XG5cdH1cblxuXHRcblx0LyotLS0gTGlua3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHRhIHtcblx0XHRcblx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRjb2xvcjogJHltLXRleHQtY29sb3I7XG5cdH1cblxuXHRhOmFjdGl2ZSB7IG91dGxpbmU6IG5vbmU7IH1cblxuXHQvKiBNYXhpbWFsZXIgS29udHJhc3QgZsO8ciBUYWIgRm9jdXMgLSDDhG5kZXJuIFNpZSBkaWVzZSBSZWdlbCBtaXQgQmVkYWNodCAqL1xuXHRhOmhvdmVyLFxuXHRhOmZvY3VzIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkeW0tbGluay1mb2N1cy1iZy1jb2xvcjtcblx0XHRjb2xvcjogJHltLWxpbmstZm9jdXMtdGV4dC1jb2xvcjtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cblx0XG5cdC8vIFNwZXppZWxsZSBMaW5ra2xhc3NlblxuXHRcblx0LmZvb3Rlci1saW5rIHtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGZvbnQtc2l6ZTogMC45ZW07XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0fVxuXHR9XG5cblxuXHQvKiAtLS0gaW1hZ2VzIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdGltZyxcblx0ZmlndXJlIHtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQuZmxleGlibGUge1xuXHRcdG1hcmdpbi1ib3R0b206ICRsaW5lLWhlaWdodCoxZW07XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxuXG5cdC8qIElFNiB3b3JrYXJvdW5kIC0gMiUgc3BhY2UgZm9yIHBvc3NpYmxlIGJvcmRlcnMgKi9cblx0KiBodG1sIC5mbGV4aWJsZSB7XG5cdFx0d2lkdGg6IDk4JTtcblx0fVxuXG5cdC5ib3JkZXJlZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogJGxpbmUtaGVpZ2h0KjFlbTtcblx0XHRib3JkZXI6IDJweCAjZWVlIHNvbGlkO1xuXHRcdGJvcmRlcjogMnB4IHJnYmEoMjU1LDI1NSwyNTUsMSkgc29saWQ7XG5cdFx0QGluY2x1ZGUgeW0tYm94LXNoYWRvdygwLDAsM3B4LHJnYmEoMCwwLDAsLjI1KSk7XG5cdH1cblxuXHQvKipcblx0KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjXG5cdCpcblx0KiBHZW5lcmljIENvbnRlbnQgQ2xhc3Nlc1xuXHQqXG5cdCogU3RhbmRhcmRrbGFzc2VuIHp1ciBQb3NpdGlvbmllcnVuZyB1bmQgSGVydm9yaGVidW5nXG5cdCpcblx0KiBAc2VjdGlvbiBjb250ZW50LWdlbmVyaWMtY2xhc3Nlc1xuXHQqL1xuXG5cdC5zbWFsbCB7XG5cdFx0Zm9udC1zaXplOiAwLjg1ZW07XG5cdH1cblxuXHQuYmlnIHtcblx0XHRmb250LXNpemU6IDEuMmVtO1xuXHR9XG5cblx0LmZsb2F0LWxlZnQge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRtYXJnaW46IDAgMWVtICRsaW5lLWhlaWdodCoxZW0gMDtcblx0fVxuXG5cdC5mbG9hdC1yaWdodCB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRtYXJnaW46IDAgMCAkbGluZS1oZWlnaHQqMWVtIDFlbTtcblx0fVxuXG5cdC5jZW50ZXIge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRtYXJnaW46IDAgYXV0byAkbGluZS1oZWlnaHQqMWVtIGF1dG87XG5cdH1cblxuXHQuYXV0b3Ige1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXNpemU6IDAuOWVtO1xuXHR9XG5cblx0LnppdGF0LXBhZ2Uge1xuXHRcdG1hcmdpbjo0ZW0gM2VtIDFlbSAzZW07XG5cdH1cblxuXHQubG9nby1mZWF0dXJlZCB7XG5cdFx0bWFyZ2luLXRvcDogNjVweDtcblx0fVxuXG5cdC8qKlxuXHQqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gI1xuXHQqXG5cdCogVGFiZWxsZW5cblx0KlxuXHQqIEdlbmVyaXNjaGUgS2xhc3NlbiBmw7xyIGRpZSBUYWJlbGxlbmJyZWl0ZSB1bmQgR2VzdGFsdHVuZ3N2b3JzY2hyaWZ0ZW4gZsO8ciBUYWJlbGxlblxuXHQqXG5cdCogQHNlY3Rpb24gY29udGVudC10YWJsZXNcblx0Ki9cblxuXHR0YWJsZSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0XHRjb2xvcjogJHltLXRleHQtY29sb3I7XG5cdFx0Ym9yZGVyLXRvcDogMXB4ICNjY2Mgc29saWQ7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4ICNjY2Mgc29saWQ7XG5cdFx0bWFyZ2luOiAwIDAgKCR5bS1iYXNlLWxpbmUtaGVpZ2h0IC0gMiApIC8gJHltLWJhc2UtbGluZS1oZWlnaHQgKiAkbGluZS1oZWlnaHQgKiAxZW0gMDtcblxuXHRcdCYubmFycm93IHtcblx0XHRcdG1hcmdpbjogMCAwICgkeW0tYmFzZS1saW5lLWhlaWdodCAtIDEgKSAvICR5bS1iYXNlLWxpbmUtaGVpZ2h0ICogJGxpbmUtaGVpZ2h0ICogMWVtIDA7XG5cblx0XHRcdHRoLFxuXHRcdFx0dGQge1xuXHRcdFx0XHRwYWRkaW5nOiAwIDAuNWVtO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogKCR5bS1iYXNlLWxpbmUtaGVpZ2h0IC0gMSApIC8gJHltLWJhc2UtbGluZS1oZWlnaHQgKiAkbGluZS1oZWlnaHQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5maXhlZCB7XG5cdFx0XHR0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuXHRcdH1cblxuXHRcdCYuYm9yZGVydGFibGUge1xuXHRcdFx0Ym9yZGVyOiAxcHggI2NjYyBzb2xpZDtcblxuXHRcdFx0dGhlYWQgdGgge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZTBlMGUwO1xuXHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCAjY2NjIHNvbGlkO1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggI2NjYyBzb2xpZDtcblx0XHRcdH1cblxuXHRcdFx0dGJvZHkge1xuXHRcdFx0XHR0aFtzY29wZT1cInJvd1wiXSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogI2YwZjBmMDtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aCB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcblx0XHRcdFx0fVxuXHRcdFx0XHR0ZCB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGNhcHRpb24ge1xuXHRcdGZvbnQtdmFyaWFudDpzbWFsbC1jYXBzO1xuXHR9XG5cblx0dGgsXG5cdHRkIHtcblx0XHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0cGFkZGluZzogKCR5bS1iYXNlLWxpbmUtaGVpZ2h0IC0gMSApIC8gJHltLWJhc2UtbGluZS1oZWlnaHQgKiAkbGluZS1oZWlnaHQgLyAyICogMWVtIDAuNWVtO1xuXHR9XG5cblx0dGggKjpmaXJzdC1jaGlsZCxcblx0dGQgKjpmaXJzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxuXG5cdHRoLm5vd3JhcCxcblx0dGQubm93cmFwIHtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR9XG5cblx0dGhlYWQgdGgge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0Y29sb3I6ICMwMDA7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMnB4ICMwMDAgc29saWQ7XG5cdH1cblxuXHR0Ym9keSB7XG5cdFx0dGgge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuXHRcdH1cblxuXHRcdHRkIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcblx0XHR9XG5cblx0XHQvKiBoaWdobGlnaHQgcm93IG9uIG1vdXNlIG92ZXIgKi9cblx0XHR0cjpob3ZlciB0aCxcblx0XHR0cjpob3ZlciB0ZCB7XG5cdFx0XHRiYWNrZ3JvdW5kOiNmOGY4Zjg7XG5cdFx0fVxuXHR9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vXG4vLyBQcmludCBNb2R1bGVcbi8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLyBEZWZhdWx0IFByaW50IFNldHRpbmdzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiR5bS1wcmludC1mb250c2l6ZVx0XHQ6IDEwcHQgIWRlZmF1bHQ7XG4keW0tcHJpbnQtYWJicmV2aWF0aW9uXHQ6IGZhbHNlICFkZWZhdWx0O1xuJHltLXByaW50LWhyZWZcdFx0XHQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy9cbi8vIFR5cG9ncmFwaHkgTW9kdWxlXG4vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8gRm9udCBTZXR0aW5nc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4keW0tZm9udC1zYW5zXHRcdFx0XHQ6IFwibmV1emVpdC1ncm90ZXNrXCIgLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuJHltLWZvbnQtc2VyaWZcdFx0XHRcdDogR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmO1xuJHltLWZvbnQtbW9ub3NwYWNlXHRcdFx0OiBDb25zb2xhcywgXCJMdWNpZGEgQ29uc29sZVwiLCBcIkFuZGFsZSBNb25vXCIsIFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgQ291cmllcjtcblxuLy8gQ29sb3IgU2V0dGluZ3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gc3RhbmRhcmQgdHlwb2dyYXBoeSBjb2xvcnNcbiR5bS10ZXh0LWNvbG9yXHRcdFx0XHQ6ICM0ZTRlNGU7XG4keW0taGVhZGluZ3MtY29sb3JcdFx0XHQ6ICMxNjFlMjE7XG4keW0tYmxvY2txdW90ZS10ZXh0LWNvbG9yXHQ6ICM2NjY7XG4keW0tYmxvY2txdW90ZS1iZy1jb2xvclx0XHQ6IHRyYW5zcGFyZW50O1xuJHltLXByZS10ZXh0LWNvbG9yXHRcdFx0OiAjODAwO1xuJHltLWtiZC10ZXh0LWNvbG9yXHRcdFx0OiAjNjY2O1xuJHltLW1hcmstdGV4dC1jb2xvclx0XHRcdDogIzAwMDtcbiR5bS1tYXJrLWJnLWNvbG9yXHRcdFx0OiAjZmYwO1xuXG5cbi8vIGxpbmsgY29sb3JzXG4keW0tbGluay10ZXh0LWNvbG9yXHRcdFx0OiAjYWE4NWEzO1xuJHltLWxpbmstYmctY29sb3JcdFx0XHQ6IHRyYW5zcGFyZW50O1xuJHltLWxpbmstZm9jdXMtdGV4dC1jb2xvclx0OiAjYWE4NWEzO1xuJHltLWxpbmstZm9jdXMtYmctY29sb3JcdFx0OiB0cmFuc3BhcmVudDtcblxuLy8gc3BlY2lhbCBjb2xvcnNcbiR5bS1oci1jb2xvclx0XHRcdFx0OiAjZWVlO1xuJHltLWhpZ2hsaWdodC10ZXh0LWNvbG9yXHQ6ICNjMzA7XG4keW0tZGltbWVkLXRleHQtY29sb3JcdFx0OiAjODg4O1xuXG4vLyBWZXJ0aWNhbCBSaHl0aG1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZm9udCB2YWx1ZXMgaGF2ZSB0byBiZSBkZWZpbmVkIGluIFtweF0gd2l0aG91dCB1bml0XG4keW0tZGVmYXVsdC1mb250LXNpemVcdFx0OiAxNjtcbiR5bS1iYXNlLWZvbnQtc2l6ZVx0XHRcdDogMTY7XG4keW0tYmFzZS1saW5lLWhlaWdodFx0XHQ6IDI2O1xuXG4keW0taDEtZm9udC1zaXplXHRcdFx0OiA0ODtcbiR5bS1oMi1mb250LXNpemVcdFx0XHQ6IDI1O1xuJHltLWgzLWZvbnQtc2l6ZVx0XHRcdDogMjQ7XG4keW0taDQtZm9udC1zaXplXHRcdFx0OiAyMTtcbiR5bS1oNS1mb250LXNpemVcdFx0XHQ6IDE4O1xuJHltLWg2LWZvbnQtc2l6ZVx0XHRcdDogMTQ7XG4keW0tdGV4dC1iaWctZm9udC1zaXplXHRcdDogMTY7XG4keW0tdGV4dC1zbWFsbC1mb250LXNpemVcdDogMTI7XG5cbi8vIHNjYWxlIGZhY3RvcnMgKGRvbid0IGNoYW5nZSAtIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSBkbylcbiRsaW5lLWhlaWdodFx0XHRcdFx0OiAkeW0tYmFzZS1saW5lLWhlaWdodCAvICR5bS1iYXNlLWZvbnQtc2l6ZTtcbiR5bS1oMS1mb250LXNjYWxlXHRcdFx0OiAkeW0taDEtZm9udC1zaXplIC8gJHltLWJhc2UtZm9udC1zaXplO1xuJHltLWgyLWZvbnQtc2NhbGVcdFx0XHQ6ICR5bS1oMi1mb250LXNpemUgLyAkeW0tYmFzZS1mb250LXNpemU7XG4keW0taDMtZm9udC1zY2FsZVx0XHRcdDogJHltLWgzLWZvbnQtc2l6ZSAvICR5bS1iYXNlLWZvbnQtc2l6ZTtcbiR5bS1oNC1mb250LXNjYWxlXHRcdFx0OiAkeW0taDQtZm9udC1zaXplIC8gJHltLWJhc2UtZm9udC1zaXplO1xuJHltLWg1LWZvbnQtc2NhbGVcdFx0XHQ6ICR5bS1oNS1mb250LXNpemUgLyAkeW0tYmFzZS1mb250LXNpemU7XG4keW0taDYtZm9udC1zY2FsZVx0XHRcdDogJHltLWg2LWZvbnQtc2l6ZSAvICR5bS1iYXNlLWZvbnQtc2l6ZTtcbiR5bS10ZXh0LWZvbnQtc2NhbGVcdFx0XHQ6IDE7XG4keW0tdGV4dC1iaWctZm9udC1zY2FsZVx0XHQ6ICR5bS10ZXh0LWJpZy1mb250LXNpemUgLyAkeW0tYmFzZS1mb250LXNpemU7XG4keW0tdGV4dC1zbWFsbC1mb250LXNjYWxlXHQ6ICR5bS10ZXh0LXNtYWxsLWZvbnQtc2l6ZSAvICR5bS1iYXNlLWZvbnQtc2l6ZTtcbiIsIlxuXG4vKiA9U2NzcyBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vLyBmb250c1xuXG5cbi8vIGNvbG91cnNcbiR3aGl0ZTpyZ2IoMjU1LDI1NSwyNTUpO1xuJGNvbG9yOnJnYig2MCwxODEsMjQ5KTtcblxuJGRhcmstZ3JleTpyZ2IoODAsODAsODApO1xuJHRleHQtZ3JleTpyZ2IoMTAwLDEwMCwxMDApO1xuXG5cblxuXG5cbi8qID1HbG9iYWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuXG5cblxuXG5cbi8qID1UZW1wbGF0ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6ODAlO1xuICAgIG1heC13aWR0aDoxMzAwcHg7XG4gICAgaGVpZ2h0OjEzMHB4O1xuICAgIG1hcmdpbjowIGF1dG87XG4gICAgcGFkZGluZzowO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgXG4gICAgLnNtYWxsZXIgJiB7XG5cdCAgICBoZWlnaHQ6IDgwcHg7XG5cdCAgICAtd2Via2l0LXRyYW5zaXRpb246aGVpZ2h0IDAuM3M7XG5cdFx0LW1vei10cmFuc2l0aW9uOmhlaWdodCAwLjNzO1xuXHRcdC1tcy10cmFuc2l0aW9uOmhlaWdodCAwLjNzO1xuXHRcdC1vLXRyYW5zaXRpb246aGVpZ2h0IDAuM3M7XG5cdFx0dHJhbnNpdGlvbjpoZWlnaHQgMC4zcztcbiAgICB9XG59XG5cblxuXG5cblxuXG5cblxuXG4vKiA9SGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuaGVhZGVyIHtcblx0d2lkdGg6MTAwJTtcblx0cG9zaXRpb246Zml4ZWQ7XG5cdHRvcDowO1xuXHRsZWZ0OjA7XG5cdHotaW5kZXg6OTk5O1xuXHQtd2Via2l0LXRyYW5zaXRpb246aGVpZ2h0IDAuM3M7XG5cdC1tb3otdHJhbnNpdGlvbjpoZWlnaHQgMC4zcztcblx0LW1zLXRyYW5zaXRpb246aGVpZ2h0IDAuM3M7XG5cdC1vLXRyYW5zaXRpb246aGVpZ2h0IDAuM3M7XG5cdHRyYW5zaXRpb246aGVpZ2h0IDAuM3M7XG5cdFx0bmF2IHtcblx0XHRcdGEge1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMTUwcHg7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OjIwcHg7XG5cdFx0XHRcdGNvbG9yOmxpZ2h0ZW4oJGNvbG9yLCAyMCUpO1xuXHRcdFx0XHRmb250LXdlaWdodDo3MDA7XG5cdFx0XHRcdGZvbnQtc2l6ZToxOHB4O1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzO1xuXHRcdFx0XHQtbW96LXRyYW5zaXRpb246IGFsbCAwLjNzO1xuXHRcdFx0XHQtbXMtdHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cdFx0XHRcdC1vLXRyYW5zaXRpb246IGFsbCAwLjNzO1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgMC4zcztcblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0Y29sb3I6JHdoaXRlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdH1cblx0Ji5zbWFsbGVyIHtcblx0XHRoZWlnaHQ6NzVweDtcblxuXHRcdG5hdiB7XG5cdFx0XHRhIHtcblx0XHRcdFx0bGluZS1oZWlnaHQ6NzVweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG5cblxuXG4vKiA9RXh0cmFzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNsZWFyZml4OmFmdGVyIHtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRkaXNwbGF5OiBibG9jaztcblx0Y29udGVudDogXCJcIjtcblx0Y2xlYXI6IGJvdGg7XG5cdGhlaWdodDogMDtcbn1cblxuXG5cblxuXG4vKiA9TWVkaWEgUXVlcmllc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQG1lZGlhIHNjcmVlbiBhbmQgKCBtYXgtd2lkdGg6IDExMDBweCkge1xuXHQuY29udGFpbmVyIHtcblx0ICAgIHdpZHRoOjkwJTtcblx0fVxuXG5cdFxufVxuXG5cblxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA2NjBweCkge1xuXHQvKiA9SGVhZGVyXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cdC5jb250YWluZXIge1xuXHRcdHdpZHRoOjEwMCU7XG5cdH1cblx0XG5cdGhlYWRlciB7XG5cdFx0aDEjbG9nbyB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0ZmxvYXQ6bm9uZTtcblx0XHRcdG1hcmdpbjowIGF1dG87XG5cdFx0XHRoZWlnaHQ6MTAwcHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMTAwcHg7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0fVxuXHRcdG5hdiB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0ZmxvYXQ6cmlnaHQ7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0aGVpZ2h0OjUwcHg7XG5cdFx0XHRtYXJnaW46LTM2cHggMCAwIDEwMHB4O1xuXHRcdFx0YSB7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiA1MHB4O1xuXHRcdFx0XHRtYXJnaW46MCAxMHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0XHQmLnNtYWxsZXIge1xuXHRcdFx0aGVpZ2h0Ojc1cHg7XG5cdFx0XHRoMSNsb2dvIHtcblx0XHRcdFx0aGVpZ2h0OjQwcHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjQwcHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTozMHB4O1xuXHRcdFx0fVxuXHRcdFx0bmF2IHtcblx0XHRcdFx0aGVpZ2h0OjM1cHg7XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OjM1cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Ji5zbWFsbGVyIC5jb250YWluZXIge1xuXHRcdFx0aGVpZ2h0OiA2MnB4O1xuXHRcdH1cblx0fVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHRcblx0I2luZm8tYmFyIHtcblx0XHRhIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0XHRzcGFuLmFsbC10dXRvcmlhbHMsXG5cdFx0c3Bhbi5iYWNrLXRvLXR1dG9yaWFsIHtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0fVxuXHRcdHNwYW4uYWxsLXR1dG9yaWFscyxcblx0XHRzcGFuLmJhY2stdG8tdHV0b3JpYWwge1xuXHRcdFx0ZmxvYXQ6bm9uZTtcblx0XHRcdHRleHQtYWxpZ246Y2VudGVyO1xuXHRcdH1cblx0XHRzcGFuLmFsbC10dXRvcmlhbHMge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTpzb2xpZCAxcHggZGFya2VuKCRjb2xvciwgMTUlKTtcblx0XHR9XG5cdH1cbn0iLCJAaW1wb3J0IFwiLi4veWFtbC12YXItdHlwb2dyYXBoeVwiLFxuXHRcdFwiLi4vbWl4aW5zL3lhbWwtbWl4aW5zLWNvcmVcIjtcblxuQG1lZGlhIGFsbCB7XG5cdFxuXHRcbi8vIEhvbWU6IEludHJvIFxuXHQuaW50cm8ge1xuXHRcdG1hcmdpbi1ib3R0b206IDgwcHg7XG5cdFx0bWFyZ2luLXRvcDogMzVweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRzdHJvbmcge1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblx0XHR9XG5cdH1cblx0XG4vLyBIb21lOiBDYWxsMkFjdGlvblxuXHQuaW5zZXJ0aW9uIHtcblx0XHRoZWlnaHQ6IDMyMHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRjb2xvcjojZmZmO1xuXHRcdFxuXHRcdCYuaW5zZXJ0aW9uX19jYWxsMmFjdGlvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoXCJpbWcvbWFuZGFsYS5qcGdcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdFx0cGFkZGluZzo1MHB4O1xuXG5cdFx0XHQuYmlnIHtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0aDMgeyBcblx0XHRcdGNvbG9yOiNmZmY7XG5cdFx0fVxuXHRcdFxuXHRcdCYuaW5zZXJ0aW9uX190YWdjbG91ZC0tb3N0ZW9wYXRoaWUge1xuXHRcdFx0YmFja2dyb3VuZDogdXJsKFwiaW1nL3RhZ2Nsb3VkLW9zdGVvcGF0aGllLmpwZ1wiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcblx0XHRcdGhlaWdodDozMzVweDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0fVxuXG5cdFx0Ji5pbnNlcnRpb25fX3RhZ2Nsb3VkLS1pbnBwIHtcblx0XHRcdGJhY2tncm91bmQ6IHVybChcImltZy90YWdjbG91ZC1pbnBwLmpwZ1wiKSBuby1yZXBlYXQgY2VudGVyIGxlZnQ7XG5cdFx0XHRoZWlnaHQ6MzM1cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdH1cblxuXHRcdC53cmFwIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdH1cblx0fVxuXHRcbiAgXG5cblxuLy8gSG9tZTogRmVhdHVyZWQgQ29udGVudFxuXHRcblx0LmdyaWRfXzUwLTUwLS1mZWF0dXJlZCB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XG5cdFx0XG5cdFx0LmZlYXR1cmVkLWltYWdlIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNDVweDtcblx0XHR9XG5cdFx0XG5cdFx0aDMge1xuXHRcdFx0Zm9udC1zaXplOiAyNXB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRcdGNvbG9yOiAjNGU0ZTRlO1xuXHRcdFx0XG5cdFx0fVxuXG5cdFx0LnltLWc1MC55bS1nciAuZmVhdHVyZWQtaW1hZ2Uge1xuXHRcdFx0QGluY2x1ZGUgbWVkaWEoIG1heC13aWR0aCA3NjhweCApIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogNDBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdFxuLy8gUmVhZCBtb3JlIExpbmtcblxuXHQucmVhZG1vcmUge1xuXHRcdFxuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFxuXHRcdGEge1xuXHRcdFx0cGFkZGluZzogNHB4IDlweCAwIDhweDtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGNvbG9yOiAkeW0tbGluay10ZXh0LWNvbG9yO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2FhODVhMztcblx0XHRcdFxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNhYTg1YTM7XG5cdFx0XHRcdGNvbG9yOiNmZmY7XG5cdFx0XHRcdHRyYW5zaXRpb246IDAuM3M7IFxuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0fVxuXG5cblxufSIsIkBpbXBvcnQgXCIuLi9feWFtbC12YXItZ2xvYmFsc1wiLFxuXHRcdFwiLi4vbWl4aW5zL3lhbWwtbWl4aW5zLWNvcmVcIjtcblxuQG1lZGlhIHNjcmVlbiB7XG5cblx0XG5cdGJvZHkge1xuXHRcdG92ZXJmbG93LXk6IHNjcm9sbDsvKiBmb3JjZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgKi9cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlY2YzO1xuXHR9XG5cblx0LyogTGF5b3V0IE1vZHVsZSBDb25maWd1cmF0aW9uICYgZmFsbGJhY2sgZm9yIHVuc3VwcG9ydGVkIG1lZGlhIHF1ZXJpZXMgKi9cblx0LnltLXdyYXBwZXIge1xuXHRcdG1pbi13aWR0aDogNzYwcHg7XG5cdFx0d2lkdGg6ODAlO1xuXHRcdG1heC13aWR0aDoxMzAwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdH1cblxuXHQueW0td2JveCB7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuXHRcblx0LnRpdGxlLWltZyB7XG5cdFx0XHRoZWlnaHQ6IDcwNXB4O1xuXHRcdFx0bWFyZ2luLXRvcDoxMzBweFxuXHR9XG5cdFxuXHQudGl0bGUtaG9tZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoJ2ltZy90aXRsZS1ob21lLmpwZycpIG5vLXJlcGVhdCB0b3AgY2VudGVyO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0fVxuXHRcblx0LnRpdGxlLW9zdGVvcGF0aGllIHtcblx0XHRcdGJhY2tncm91bmQ6IHVybCgnaW1nL29zdGVvcGF0aGllLmpwZycpIG5vLXJlcGVhdCB0b3AgY2VudGVyO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0fVxuXG5cdC50aXRsZS1pbnBwIHtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoJ2ltZy9sYW1wZS5qcGcnKSBuby1yZXBlYXQgdG9wIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHR9XG5cblx0LnRpdGxlLWFib3V0IHtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoJ2ltZy9taXJqYW0tYXVlcmJhY2guanBnJykgbm8tcmVwZWF0IHRvcCBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0fVxuXG5cdC50aXRsZS1wcmF4aXMge1xuXHRcdGJhY2tncm91bmQ6IHVybCgnaW1nL3ByYXhpcy5qcGcnKSBuby1yZXBlYXQgdG9wIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHR9XG5cblx0LnRpdGxlLWtvbnRha3Qge1xuXHQvL1x0YmFja2dyb3VuZDogdXJsKCdpbWcvaG9ja2VyLmpwZycpIG5vLXJlcGVhdCB0b3AgY2VudGVyO1xuXHRcdGJhY2tncm91bmQ6IHVybCgnaW1nL2hlbGxvLmpwZycpIG5vLXJlcGVhdCB0b3AgY2VudGVyO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdH1cblxuXHQudGl0bGUtaW1wcmVzc3VtIHtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoJ2ltZy9oYW5kLWZ1c3MuanBnJykgbm8tcmVwZWF0IHRvcCBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0fVxuXHRcblx0LmJyYW5kaW5nIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW46IDU0cHggMjBweCAwIDIwcHg7XG5cdH1cblx0XG5cdC5icmFuZGluZyB7XG5cdFx0YSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdGNvbG9yOiM0ZTRlNGU7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdFxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHRcblx0aGVhZGVyIHtcdFx0XG5cblx0XHRuYXYge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OjIwcHg7XG5cdFx0XHRtYXJnaW4tdG9wOiAzNnB4O1xuXHRcdFx0XG5cdFx0fVxuXHRcblx0fVxuXHRcblx0aGVhZGVyLnNtYWxsZXIge1xuXHRcdC5icmFuZGluZyB7XG5cdFx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXHRcdH1cblx0XHRuYXYge1xuXHRcdFx0bWFyZ2luLXRvcDogMTRweDtcblx0XHR9XG5cdH1cblxuXG5cblx0Lm1haW4ge1xuXHRcdHBhZGRpbmc6IDUwcHggMTUwcHg7XG5cdH1cblxuXHRmb290ZXIge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAxLjVlbTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZTJkZmRiO1xuXG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRmb250LXNpemU6IDAuOWVtO1xuXHRcdH1cblx0XHRcblx0XHQubGVmdCB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdG1hcmdpbi1yaWdodDoyMHB4O1xuXHRcdH1cblx0XHRcblx0XHQucmlnaHQge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdFx0fVxuXHR9XG5cblx0LyogQ29sdW1uLVNldCBDb25maWd1cmF0aW9uOiAxLTMgKHNpZGViYXIgcmlnaHQpICovXG5cdC55bS1jb2x1bW4ge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDM0MHB4O1xuXHRcdHdpZHRoOmF1dG87XG5cdH1cblxuXHQvKiBjb250ZW50IC0gY29sdW1uICovXG5cdC55bS1jb2wxIHtcblx0XHRmbG9hdDpsZWZ0O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0Lyogc2lkZWJhciAtIGNvbHVtbiAqL1xuXHQueW0tY29sMyB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0ZmxvYXQ6bGVmdDtcblx0XHR3aWR0aDogMzQwcHg7XG5cdFx0bWFyZ2luLWxlZnQ6MDtcblx0XHRtYXJnaW4tcmlnaHQ6LTM0MHB4O1xuXHR9XG5cblx0LnltLWNvbDEgLnltLWNib3ggeyBwYWRkaW5nOiAwIDAuNzVlbSAwIDEuNWVtOyB9XG5cdC55bS1jb2wzIC55bS1jYm94IHsgcGFkZGluZzogMCAyMHB4IDAgMTJweDsgfVxuXG5cdC55bS1nYm94IHsgcGFkZGluZzogMCAxLjVlbSAwIDA7IH1cblxufVxuXG4vLyAyLXNwYWx0aWdlcyBHcmlkXG5cbi55bS1nNTAueW0tZ2wge1xuXHQueW0tZ2JveCB7XG5cdFx0cGFkZGluZy1yaWdodDoyZW07XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHR9XG59XG5cbi55bS1nNTAueW0tZ3Ige1xuXHQueW0tZ2JveCB7XG5cdFx0cGFkZGluZy1sZWZ0OjJlbTtcblx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHR9XG59XG5cbi8qIHJlc2V0IGZhbGxiYWNrIHZhbHVlcyBpbiBtb2Rlcm4gYnJvd3NlcnMgKi9cbkBtZWRpYSBzY3JlZW4gYW5kICggbWluLXdpZHRoOiAwcHggKSB7XG5cdC55bS13cmFwcGVyIHtcblx0XHRtaW4td2lkdGg6IDBweDtcblx0fVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAoIG1heC13aWR0aDogMTMwMHB4KSB7XG5cdC50aXRsZS1pbWcge1xuXHRcdFx0XHRoZWlnaHQ6IDUwMHB4O1xuXHRcdH1cblx0XHRcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKCBtYXgtd2lkdGg6IDExMDBweCkge1xuXHQueW0td3JhcHBlciB7XG5cdFx0d2lkdGg6IDkwJTtcblx0fVxuXHRcdFxuXHQubWFpbiB7XG4gICAgXHRwYWRkaW5nOiA1MHB4IDEwMHB4O1xuXHR9XG5cdFx0XG5cdC8vIDItc3BhbHRpZ2VzIEdyaWRcblxuXHQueW0tZzUwLnltLWdsIHtcblx0XHQueW0tZ2JveCB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OjEuNWVtO1xuXHRcdH1cblx0fVxuXHRcblx0LnltLWc1MC55bS1nciB7XG5cdFx0LnltLWdib3gge1xuXHRcdFx0cGFkZGluZy1sZWZ0OjEuNWVtO1xuXHRcdH1cblx0fVxuXG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kICggbWF4LXdpZHRoOiAxMDIwcHgpIHtcblx0XG5cblx0XG5cdGhlYWRlciB7XG5cdFx0LmJyYW5kaW5nIHtcblx0XHRcdGHCoHtcblx0XHRcdFx0cGFkZGluZzowO1xuXHRcdFx0fVxuXHR9XHRcdFxuXG5cdFx0bmF2IHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHQgICAgbWFyZ2luLXRvcDogLTM3cHg7XG5cdFx0ICAgIG1hcmdpbi1yaWdodDogMDtcblx0XHQgICAgd2lkdGg6IDEwMCU7XG5cdFx0ICAgIG1hcmdpbi1sZWZ0OiAxMDBweDtcblx0XHQgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0fVxuXHR9XG5cdFxuXHRoZWFkZXIuc21hbGxlciB7XG5cdFx0LmJyYW5kaW5nIHtcblx0XHRcdG1hcmdpbi10b3A6IDMwcHg7XG5cdFx0fVxuXHRcdG5hdiB7XG5cdFx0XHRtYXJnaW4tdG9wOiAtMzlweDtcblx0XHR9XG5cdH1cblxuXG5cdC50aXRsZS1pbWcge1xuXHRcdFx0XHRoZWlnaHQ6IDQwMHB4O1xuXHRcdH1cblx0XHRcblxuXHRcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKCBtYXgtd2lkdGg6IDc2OHB4ICkge1xuXG5cdC8qIExpbmVhcmlzYXRpb24gZm9yIEdyaWQtIGFuZCBDb2x1bW4tTW9kdWxlLCBiYXNlZCBvbiBDU1MgY2xhc3MgLmxpbmVhcml6ZS1sZXZlbC0xICovXG5cdC5saW5lYXJpemUtbGV2ZWwtMSB7XG5cdFx0QGluY2x1ZGUgeW0tbGluZWFyaXplLWdyaWRzLWFuZC1jb2x1bW5zKCk7XG5cdH1cblx0XG5cdC5tYWluIHtcbiAgICBwYWRkaW5nOiA1MHB4IDUwcHg7XG59XG5cdFxuXHRoZWFkZXIge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcdFx0XG5cdH1cblx0XG5cdC5sb2dvIHtcblx0XHRmbG9hdDogbm9uZTtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0fVxuXG5cdG5hdiB7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0bWFyZ2luOiAzMHB4IGF1dG8gMHB4IGF1dG87XG5cdH1cblxuXHR9XG5cdFxuQG1lZGlhIHNjcmVlbiBhbmQgKCBtYXgtd2lkdGg6IDY2MHB4KSB7XG5cblx0LnltLXdyYXBwZXIge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cdFxuXHRcblx0aGVhZGVyLnNtYWxsZXIge1xuXHRcdC5icmFuZGluZyB7XG5cdFx0XHRtYXJnaW4tdG9wOiAxOHB4O1xuXHRcdH1cblx0XHRuYXYge1xuXHRcdFx0bWFyZ2luLXRvcDogLTM5cHg7XG5cdFx0fVxuXHR9XG5cdFxuXHRcblx0LnRpdGxlLWltZyB7XG5cdFx0XHRcdGhlaWdodDogMzAwcHg7XG5cdFx0fVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAoIG1heC13aWR0aDogNjAwcHgpIHtcblxuXHRcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKCBtYXgtd2lkdGg6IDQ4MHB4KSB7XG5cblx0LnltLXdib3gge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXG5cblx0Zm9vdGVyLFxuXHQubWFpbiB7XG5cdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdH1cblxuXHQvKiBMaW5lYXJpc2F0aW9uIGZvciBHcmlkLSBhbmQgQ29sdW1uLU1vZHVsZSwgYmFzZWQgb24gQ1NTIGNsYXNzIC5saW5lYXJpemUtbGV2ZWwtMiAqL1xuXHQubGluZWFyaXplLWxldmVsLTIge1xuXHRcdEBpbmNsdWRlIHltLWxpbmVhcml6ZS1ncmlkcy1hbmQtY29sdW1ucygpO1xuXHR9XG5cblx0XG5cdC50aXRsZS1pbWcge1xuXHRcdFx0XHRoZWlnaHQ6IDI1MHB4O1xuXHRcdH1cblxufSJdfQ== */
