/*! sanitize.css v4.1.0 | CC0 License | github.com/jonathantneal/sanitize.css */
/* Display definitions
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 * 2. Add the correct display in IE.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
  /* 1 */
  display: block; }

/**
 * Add the correct display in IE 9-.
 */
audio,
canvas,
progress,
video {
  display: inline-block; }

/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

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

/* Elements of HTML (https://www.w3.org/TR/html5/semantics.html)
   ========================================================================== */
/**
 * 1. Remove repeating backgrounds in all browsers (opinionated).
 * 2. Add box sizing inheritence in all browsers (opinionated).
 */
*,
::before,
::after {
  background-repeat: no-repeat;
  /* 1 */
  box-sizing: inherit;
  /* 2 */ }

/**
 * 1. Add text decoration inheritance in all browsers (opinionated).
 * 2. Add vertical alignment inheritence in all browsers (opinionated).
 */
::before,
::after {
  text-decoration: inherit;
  /* 1 */
  vertical-align: inherit;
  /* 2 */ }

/**
 * 1. Add border box sizing in all browsers (opinionated).
 * 2. Add the default cursor in all browsers (opinionated).
 * 3. Add a flattened line height in all browsers (opinionated).
 * 4. Prevent font size adjustments after orientation changes in IE and iOS.
 */
html {
  box-sizing: border-box;
  /* 1 */
  cursor: default;
  /* 2 */
  font-family: sans-serif;
  /* 3 */
  line-height: 1.5;
  /* 3 */
  -ms-text-size-adjust: 100%;
  /* 4 */
  -webkit-text-size-adjust: 100%;
  /* 5 */ }

/* Sections (https://www.w3.org/TR/html5/sections.html)
   ========================================================================== */
/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0; }

/**
 * Correct the font sizes and margins on `h1` elements within
 * `section` and `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: .67em 0; }

/* Grouping content (https://www.w3.org/TR/html5/grouping-content.html)
   ========================================================================== */
/**
 * 1. Correct font sizing inheritance and scaling in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/**
 * 1. Correct the height in Firefox.
 * 2. Add visible overflow in Edge and IE.
 */
hr {
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */ }

/**
 * Remove the list style on navigation lists in all browsers (opinionated).
 */
nav ol,
nav ul {
  list-style: none; }

/* Text-level semantics
   ========================================================================== */
/**
 * 1. Add a bordered underline effect in all browsers.
 * 2. Remove text decoration in Firefox 40+.
 */
abbr[title] {
  border-bottom: 1px dotted;
  /* 1 */
  text-decoration: none;
  /* 2 */ }

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit; }

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

/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic; }

/**
 * Add the correct colors in IE 9-.
 */
mark {
  background-color: #ffff00;
  color: #000000; }

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

/**
 * Correct the font size in all browsers.
 */
small {
  font-size: 83.3333%; }

/**
 * Change the positioning on superscript and subscript elements
 * in all browsers (opinionated).
 * 1. Correct the font size in all browsers.
 */
sub,
sup {
  font-size: 83.3333%;
  /* 1 */
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -.25em; }

sup {
  top: -.5em; }

/*
 * Remove the text shadow on text selections (opinionated).
 * 1. Restore the coloring undone by defining the text shadow (opinionated).
 */

::selection {
  background-color: #b3d4fc;
  /* 1 */
  color: #000000;
  /* 1 */
  text-shadow: none; }

/* Embedded content (https://www.w3.org/TR/html5/embedded-content-0.html)
   ========================================================================== */
/*
 * Change the alignment on media elements in all browers (opinionated).
 */
audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle; }

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

/**
 * Change the fill color to match the text color in all browsers (opinionated).
 */
svg {
  fill: currentColor; }

/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden; }

/* Links (https://www.w3.org/TR/html5/links.html#links)
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove the gaps in underlines in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */ }

/**
 * Remove the outline when hovering in all browsers (opinionated).
 */
a:hover {
  outline-width: 0; }

/* Tabular data (https://www.w3.org/TR/html5/tabular-data.html)
   ========================================================================== */
/*
 * Remove border spacing in all browsers (opinionated).
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

/* transform-style:  (https://www.w3.org/TR/html5/forms.html)
   ========================================================================== */
/**
 * 1. Remove the default styling in all browsers (opinionated).
 * 3. Remove the margin in Firefox and Safari.
 */
button,
input,
select,
textarea {
  background-color: transparent;
  /* 1 */
  border-style: none;
  /* 1 */
  color: inherit;
  /* 1 */
  font-size: 1em;
  /* 1 */
  margin: 0;
  /* 3 */ }

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

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

/**
 * 1. Prevent the WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */ }

/**
 * Remove the inner border and padding in Firefox.
 */
::-moz-focus-inner {
  border-style: none;
  padding: 0; }

/**
 * Correct the focus styles unset by the previous rule.
 */
:-moz-focusring {
  outline: 1px dotted ButtonText; }

/**
 * Correct the border, margin, and padding in all browsers.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: .35em .625em .75em; }

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

/**
 * 1. Remove the vertical scrollbar in IE.
 * 2. Change the resize direction on textareas in all browsers (opinionated).
 */
textarea {
  overflow: auto;
  /* 1 */
  resize: vertical;
  /* 2 */ }

/**
 * Remove the padding in IE 10-.
 */
[type="checkbox"],
[type="radio"] {
  padding: 0; }

/**
 * Correct the cursor style on increment and decrement buttons in Chrome.
 */
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto; }

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

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari for OS X.
 */
::-webkit-search-cancel-button,
::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Correct the text style on placeholders in Chrome, Edge, and Safari.
 */
::-webkit-input-placeholder {
  color: inherit;
  opacity: .54; }

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

/* WAI-ARIA (https://www.w3.org/TR/html5/dom.html#wai-aria)
   ========================================================================== */
/**
 * Change the cursor on busy elements (opinionated).
 */
[aria-busy="true"] {
  cursor: progress; }

/*
 * Change the cursor on control elements (opinionated).
 */
[aria-controls] {
  cursor: pointer; }

/*
 * Change the cursor on disabled, not-editable, or otherwise
 * inoperable elements (opinionated).
 */
[aria-disabled] {
  cursor: default; }

/* User interaction (https://www.w3.org/TR/html5/editing.html)
   ========================================================================== */
/*
 * Remove the tapping delay on clickable elements (opinionated).
 * 1. Remove the tapping delay in IE 10.
 */
a,
area,
button,
input,
label,
select,
textarea,
[tabindex] {
  -ms-touch-action: manipulation;
  /* 1 */
  touch-action: manipulation; }

/*
 * Change the display on visually hidden accessible elements (opinionated).
 */
[hidden][aria-hidden="false"] {
  clip: rect(0, 0, 0, 0);
  display: inherit;
  position: absolute; }

[hidden][aria-hidden="false"]:focus {
  clip: auto; }

/*------------------------------------------------------------------
[Variables]
-------------------------------------------------------------------*/
/*
<div class="palette">
    <div class="color primary"><div class="variants"></div></div>
    <div class="color utility"><div class="variants"></div></div>
    <div class="color accent"><div class="variants"></div></div>
    <div class="color secondary"><div class="variants"></div></div>
    <div class="color foreground"><div class="variants"></div></div>
    <div class="color background"><div class="variants"></div></div>
</div>
 */
.palette {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: row;
      flex-direction: row;
  -ms-flex-pack: distribute;
      justify-content: space-around;
  max-width: 100%; }

.color {
  width: calc(20% - 1rem);
  height: 170px;
  display: block;
  border: 1px solid #fff;
  position: relative; }
  .color:before, .color:after {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 30%;
    bottom: 0;
    left: 0;
    border-top: 1px solid #fff;
    padding: 0.5rem;
    text-transform: uppercase;
    font-size: 85%;
    overflow: hidden;
    word-wrap: nowrap;
    text-overflow: ellipsis; }
  .color:before {
    background-color: white;
    font-weight: bold; }
  .color:after {
    padding-top: 1.5rem;
    font-size: 70%;
    color: gray; }
  .color.primary:before {
    content: "primary"; }
  .color.primary:after {
    content: ""; }
  .color.primary .variants {
    border-left: 2px solid white;
    border-bottom: 2px solid white;
    position: absolute;
    height: 7.5rem;
    width: 1.5rem;
    right: 0;
    top: 0;
    background: linear-gradient(to bottom, #259357 0rem, #259357 1.5rem, #A81C21 1.5rem, #A81C21 3rem, #8c1317 3rem, #8c1317 4.5rem, #FFFFFF 4.5rem, #FFFFFF 6rem, #000000 6rem, #000000 7.5rem); }
  .color.background {
    background-color: #ffffff; }
    .color.background:before {
      content: "background"; }
    .color.background:after {
      content: "#ffffff"; }
    .color.background .variants {
      border-left: 2px solid white;
      border-bottom: 2px solid white;
      position: absolute;
      height: 4.5rem;
      width: 1.5rem;
      right: 0;
      top: 0;
      background: linear-gradient(to bottom, #ffffff 0rem, #ffffff 1.5rem, #EBE9E3 1.5rem, #EBE9E3 3rem, #000 3rem, #000 4.5rem); }

body:before {
  content: "smartphone 768";
  display: none; }
  @media (min-width: 1680px) {
    body:before {
      content: "desktop 1600"; } }
  @media (min-width: 1280px) and (max-width: 1679px) {
    body:before {
      content: "desktop 1200"; } }
  @media (min-width: 992px) and (max-width: 1279px) {
    body:before {
      content: "desktop 960"; } }
  @media (min-width: 768px) and (max-width: 991px) {
    body:before {
      content: "tablet 768"; } }

:root {
  font-size: 20px; }

html, body {
  height: 100%;
  min-height: 100%; }

html {
  font-size: 20px; }

body {
  line-height: 1.1;
  color: #000000;
  font-family: "Arquitecta", sans-serif;
  font-weight: normal;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  background: #FFFFFF; }
  body:before {
    content: "smartphone 768";
    display: none; }
    @media (min-width: 1680px) {
      body:before {
        content: "desktop 1600"; } }
    @media (min-width: 1280px) and (max-width: 1679px) {
      body:before {
        content: "desktop 1200"; } }
    @media (min-width: 992px) and (max-width: 1279px) {
      body:before {
        content: "desktop 960"; } }
    @media (min-width: 768px) and (max-width: 991px) {
      body:before {
        content: "tablet 768"; } }

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

ul {
  list-style-position: inside;
  padding: 0; }

a {
  text-decoration: none;
  color: #A81C21; }
  a:hover {
    color: #8c1317; }

h1, h2, h3, h4, h5, h6 {
  font-family: "Arquitecta", sans-serif;
  line-height: 1;
  font-weight: normal;
  text-transform: uppercase;
  margin: 0; }
  h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
    display: block;
    margin-top: 7px;
    line-height: 1.2;
    font-size: 24px;
    font-size: 1.2rem; }
  h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
    color: #000000; }

canvas {
  max-width: 100%; }

h1 {
  font-size: 55px;
  font-size: 2.75rem; }

h2 {
  font-size: 28px;
  font-size: 1.4rem; }

h3 {
  font-size: 25px;
  font-size: 1.25rem;
  margin-bottom: 18px; }

h4 {
  font-size: 30px;
  font-size: 1.5rem; }

h5 {
  font-size: 25px;
  font-size: 1.25rem; }

h6 {
  font-size: 20px;
  font-size: 1rem; }

@font-face {
  font-family: 'Arquitecta';
  src: url("../fonts/arquitecta-bold-webfont.woff2") format("woff2"), url("../fonts/arquitecta-bold-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal; }

@media print {
  *,
  *:before,
  *:after,
  *:first-letter,
  *:first-line {
    color: #000 !important;
    /* Black prints faster:
		http://www.sanbeiji.com/archives/953 */
    box-shadow: none !important;
    text-shadow: none !important;
    position: relative !important;
    transition: none !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  /*
	* Don't show links that are fragment identifiers,
	* or use the `javascript:` pseudo protocol
	*/
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: ""; }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }
  body {
    background: transparent !important;
    font-size: 12px !important; }
    body::after {
      display: none !important; }
  /*
	* Printing Tables:
	* http://css-discuss.incutio.com/wiki/Printing_Tables
	*/
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  h1 {
    font-size: 22px !important; }
  h2, h3 {
    font-size: 14px !important; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  * {
    transition: none !important; }
  :root {
    font-size: 15px; }
  html, body {
    height: 100%;
    min-height: 100%; }
  body {
    color: #c9302c;
    font-family: "Arquitecta", sans-serif;
    font-weight: 700;
    -webkit-font-smoothing: antialiased;
    background: #c9302c; }
  .same-height {
    height: auto !important; }
  #breadcrumbs {
    display: none; }
  .footer {
    display: none; }
  body.single-_recipe {
    padding: 30px 45px; }
    body.single-_recipe .c-section, body.single-_recipe .c-section--default .c-section__body, body.single-_recipe .c-section--default .c-section__media {
      background: transparent !important; }
    body.single-_recipe .c-social, body.single-_recipe .c-btn {
      display: none; }
    body.single-_recipe .c-menu-primary {
      margin-top: 0; }
      body.single-_recipe .c-menu-primary nav {
        display: none !important; }
      body.single-_recipe .c-menu-primary .c-menu-primary__wrapper {
        max-width: 100%; }
    body.single-_recipe .c-menu-mobile {
      display: none; }
    body.single-_recipe .logo {
      width: 120px; }
    body.single-_recipe .c-section--header {
      float: none;
      padding-top: 20px;
      width: 100%; }
      body.single-_recipe .c-section--header .c-section__wrapper {
        display: block;
        float: none;
        text-align: left;
        padding-left: 0 !important;
        padding-right: 0 !important;
        padding-top: 20px;
        padding-bottom: 20px;
        width: 100%; }
        body.single-_recipe .c-section--header .c-section__wrapper .c-section__body__wrapper {
          margin: 0;
          padding: 0 !important; }
        body.single-_recipe .c-section--header .c-section__wrapper h1 {
          margin-bottom: 0; }
      body.single-_recipe .c-section--header .c-section__body {
        width: 100% !important;
        max-width: inherit !important; }
      body.single-_recipe .c-section--header .c-section__media {
        display: inline-block;
        float: none;
        left: 0 !important;
        right: 0 !important;
        width: 100%;
        overflow: hidden;
        background-image: none !important; }
        body.single-_recipe .c-section--header .c-section__media img {
          max-height: 350px !important;
          width: auto; }
    body.single-_recipe .c-section--default .c-section__media {
      text-align: left; }
      body.single-_recipe .c-section--default .c-section__media .c-section__media__wrapper {
        padding: 0; }
      body.single-_recipe .c-section--default .c-section__media ._related_product {
        display: none;
        float: none;
        margin-bottom: 10px;
        width: 100%; }
        body.single-_recipe .c-section--default .c-section__media ._related_product h3 {
          margin-bottom: 0;
          text-align: center; }
        body.single-_recipe .c-section--default .c-section__media ._related_product img {
          margin-top: 0;
          margin-bottom: 10px; }
      body.single-_recipe .c-section--default .c-section__media h3 {
        text-align: left; }
      body.single-_recipe .c-section--default .c-section__media ul {
        font-size: 13px;
        text-align: left; }
    body.single-_recipe .c-section--default .c-section__body .c-section__body__wrapper {
      margin: 0;
      padding: 0; }
      body.single-_recipe .c-section--default .c-section__body .c-section__body__wrapper .sep {
        margin-bottom: 20px;
        padding-bottom: 0; }
      body.single-_recipe .c-section--default .c-section__body .c-section__body__wrapper ul {
        font-size: 13px; }
      body.single-_recipe .c-section--default .c-section__body .c-section__body__wrapper p {
        margin-bottom: 8px; }
    body.single-_recipe .c-section--default .c-section__body .tool {
      display: none; }
    body.single-_recipe .c-section--related {
      display: none !important; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzL19yZXNldC5zY3NzIiwicHJpbnQuY3NzIiwiYmFzZS9fdmFycy5zY3NzIiwiYmFzZS9fcGFsZXR0ZS5zY3NzIiwidXRpbHMvX3Jlc3BvbnNpdmUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL19icmVha3BvaW50LnNjc3MiLCJiYXNlL19nbG9iYWxzLnNjc3MiLCJ1dGlscy9fbWl4aW5zLnNjc3MiLCJfZm9udHMuc2NzcyIsInByaW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0ZBQWdGO0FBRWhGO2dGQUNnRjtBQUVoRjs7OztHQUlHO0FBRUg7Ozs7Ozs7Ozs7OztFQVdVLE9BQU87RUFDaEIsZUFBZSxFQUNmOztBQUVEOztHQUVHO0FBRUg7Ozs7RUFJQyxzQkFBc0IsRUFDdEI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNDLGNBQWM7RUFDZCxVQUFVLEVBQ1Y7O0FBRUQ7OztHQUdHO0FBRUg7O0VBRUMsY0FBYyxFQUNkOztBQUVEO2dGQUNnRjtBQUVoRjs7O0dBR0c7QUFFSDs7O0VBR0MsNkJBQTZCO0VBQUUsT0FBTztFQUN0QyxvQkFBb0I7RUFBRSxPQUFPLEVBQzdCOztBQUVEOzs7R0FHRztBQUVIOztFQUVDLHlCQUF5QjtFQUFFLE9BQU87RUFDbEMsd0JBQXdCO0VBQUUsT0FBTyxFQUNqQzs7QUFFRDs7Ozs7R0FLRztBQUVIO0VBQ0MsdUJBQXVCO0VBQUUsT0FBTztFQUNoQyxnQkFBZ0I7RUFBRSxPQUFPO0VBQ3pCLHdCQUF3QjtFQUFFLE9BQU87RUFDakMsaUJBQWlCO0VBQUUsT0FBTztFQUMxQiwyQkFBMkI7RUFBRSxPQUFPO0VBQ3BDLCtCQUErQjtFQUFFLE9BQU8sRUFDeEM7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOztHQUVHO0FBRUg7RUFDQyxVQUFVLEVBQ1Y7O0FBRUQ7OztHQUdHO0FBRUg7RUFDQyxlQUFlO0VBQ2YsZ0JBQWdCLEVBQ2hCOztBQUVEO2dGQUNnRjtB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WUFBWTtRQUNaLGlCQUFpQjtRQUNqQixrQ0FBa0MsRUFVbEM7UUE1RUg7VUFzRUksNkJBQTZCO1VBQzdCLFlBQVksRUFJWjtJQTNFSjtNQWtGRyxpQkFBaUIsRUF5QmpCO01BM0dIO1FBb0ZJLFdBQVcsRUFDWDtNQXJGSjtRQXVGSSxjQUFjO1FBQ2QsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQixZQUFZLEVBU1o7UUFuR0o7VUE0RkssaUJBQWlCO1VBQ2pCLG1CQUFtQixFQUNuQjtRQTlGTDtVQWdHSyxjQUFjO1VBQ2Qsb0JBQW9CLEVBQ3BCO01BbEdMO1FBcUdJLGlCQUFpQixFQUNqQjtNQXRHSjtRQXdHSSxnQkFBZ0I7UUFDaEIsaUJBQWlCLEVBQ2pCO0lBMUdKO01BK0dJLFVBQVU7TUFDVixXQUFXLEVBY1g7TUE5SEo7UUFtSEssb0JBQW9CO1FBQ3BCLGtCQUFrQixFQUNsQjtNQXJITDtRQXdISyxnQkFBZ0IsRUFDaEI7TUF6SEw7UUE0SEssbUJBQW1CLEVBQ25CO0lBN0hMO01BZ0lJLGNBQWMsRUFDZDtJQWpJSjtNQXNJRSx5QkFBeUIsRUFDekIsRUFBQSIsImZpbGUiOiJwcmludC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgc2FuaXRpemUuY3NzIHY0LjEuMCB8IENDMCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9qb25hdGhhbnRuZWFsL3Nhbml0aXplLmNzcyAqL1xuXG4vKiBEaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscywgLyogMSAqL1xuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbm1haW4sIC8qIDIgKi9cbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7IC8qIDEgKi9cblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcblx0ZGlzcGxheTogbm9uZTtcblx0aGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5cbnRlbXBsYXRlLCAvKiAxICovXG5baGlkZGVuXSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEVsZW1lbnRzIG9mIEhUTUwgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9zZW1hbnRpY3MuaHRtbClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gUmVtb3ZlIHJlcGVhdGluZyBiYWNrZ3JvdW5kcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIEFkZCBib3ggc2l6aW5nIGluaGVyaXRlbmNlIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbiosXG46OmJlZm9yZSxcbjo6YWZ0ZXIge1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyAvKiAxICovXG5cdGJveC1zaXppbmc6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBBZGQgdGV4dCBkZWNvcmF0aW9uIGluaGVyaXRhbmNlIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gQWRkIHZlcnRpY2FsIGFsaWdubWVudCBpbmhlcml0ZW5jZSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG46OmJlZm9yZSxcbjo6YWZ0ZXIge1xuXHR0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7IC8qIDEgKi9cblx0dmVydGljYWwtYWxpZ246IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBBZGQgYm9yZGVyIGJveCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBBZGQgdGhlIGRlZmF1bHQgY3Vyc29yIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMy4gQWRkIGEgZmxhdHRlbmVkIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogNC4gUHJldmVudCBmb250IHNpemUgYWRqdXN0bWVudHMgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBJRSBhbmQgaU9TLlxuICovXG5cbmh0bWwge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG5cdGN1cnNvcjogZGVmYXVsdDsgLyogMiAqL1xuXHRmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMyAqL1xuXHRsaW5lLWhlaWdodDogMS41OyAvKiAzICovXG5cdC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiA0ICovXG5cdC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogNSAqL1xufVxuXG4vKiBTZWN0aW9ucyAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L3NlY3Rpb25zLmh0bWwpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbmJvZHkge1xuXHRtYXJnaW46IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplcyBhbmQgbWFyZ2lucyBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpblxuICogYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcblx0Zm9udC1zaXplOiAyZW07XG5cdG1hcmdpbjogLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudCAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2dyb3VwaW5nLWNvbnRlbnQuaHRtbClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBmb250IHNpemluZyBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuXHRmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cblx0Zm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBoZWlnaHQgaW4gRmlyZWZveC5cbiAqIDIuIEFkZCB2aXNpYmxlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcblx0aGVpZ2h0OiAwOyAvKiAxICovXG5cdG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBsaXN0IHN0eWxlIG9uIG5hdmlnYXRpb24gbGlzdHMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxubmF2IG9sLFxubmF2IHVsIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIGEgYm9yZGVyZWQgdW5kZXJsaW5lIGVmZmVjdCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGV4dCBkZWNvcmF0aW9uIGluIEZpcmVmb3ggNDArLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsgLyogMSAqL1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcblx0Zm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICovXG5cbmRmbiB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgY29sb3JzIGluIElFIDktLlxuICovXG5cbm1hcmsge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZjAwO1xuXHRjb2xvcjogIzAwMDAwMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuXHRmb250LXNpemU6IDgzLjMzMzMlO1xufVxuXG4vKipcbiAqIENoYW5nZSB0aGUgcG9zaXRpb25pbmcgb24gc3VwZXJzY3JpcHQgYW5kIHN1YnNjcmlwdCBlbGVtZW50c1xuICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAxLiBDb3JyZWN0IHRoZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG5cdGZvbnQtc2l6ZTogODMuMzMzMyU7IC8qIDEgKi9cblx0bGluZS1oZWlnaHQ6IDA7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuXHRib3R0b206IC0uMjVlbTtcbn1cblxuc3VwIHtcblx0dG9wOiAtLjVlbTtcbn1cblxuLypcbiAqIFJlbW92ZSB0aGUgdGV4dCBzaGFkb3cgb24gdGV4dCBzZWxlY3Rpb25zIChvcGluaW9uYXRlZCkuXG4gKiAxLiBSZXN0b3JlIHRoZSBjb2xvcmluZyB1bmRvbmUgYnkgZGVmaW5pbmcgdGhlIHRleHQgc2hhZG93IChvcGluaW9uYXRlZCkuXG4gKi9cblxuOjotbW96LXNlbGVjdGlvbiB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNiM2Q0ZmM7IC8qIDEgKi9cblx0Y29sb3I6ICMwMDAwMDA7IC8qIDEgKi9cblx0dGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cbjo6c2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2IzZDRmYzsgLyogMSAqL1xuXHRjb2xvcjogIzAwMDAwMDsgLyogMSAqL1xuXHR0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudCAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2VtYmVkZGVkLWNvbnRlbnQtMC5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIENoYW5nZSB0aGUgYWxpZ25tZW50IG9uIG1lZGlhIGVsZW1lbnRzIGluIGFsbCBicm93ZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5pZnJhbWUsXG5pbWcsXG5zdmcsXG52aWRlbyB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gKi9cblxuaW1nIHtcblx0Ym9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKipcbiAqIENoYW5nZSB0aGUgZmlsbCBjb2xvciB0byBtYXRjaCB0aGUgdGV4dCBjb2xvciBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5zdmcge1xuXHRmaWxsOiBjdXJyZW50Q29sb3I7XG59XG5cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBMaW5rcyAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2xpbmtzLmh0bWwjbGlua3MpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgZ2FwcyBpbiB1bmRlcmxpbmVzIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICovXG5cbmEge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuXHQtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBvdXRsaW5lIHdoZW4gaG92ZXJpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuYTpob3ZlciB7XG5cdG91dGxpbmUtd2lkdGg6IDA7XG59XG5cbi8qIFRhYnVsYXIgZGF0YSAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L3RhYnVsYXItZGF0YS5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFJlbW92ZSBib3JkZXIgc3BhY2luZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG50YWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG4vKiB0cmFuc2Zvcm0tc3R5bGU6ICAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2Zvcm1zLmh0bWwpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgZGVmYXVsdCBzdHlsaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMy4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuXHRib3JkZXItc3R5bGU6IG5vbmU7IC8qIDEgKi9cblx0Y29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cblx0Zm9udC1zaXplOiAxZW07IC8qIDEgKi9cblx0bWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBDb3JyZWN0IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIFByZXZlbnQgdGhlIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG46Oi1tb3otZm9jdXMtaW5uZXIge1xuXHRib3JkZXItc3R5bGU6IG5vbmU7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5cbjotbW96LWZvY3VzcmluZyB7XG5cdG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmZpZWxkc2V0IHtcblx0Ym9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcblx0bWFyZ2luOiAwIDJweDtcblx0cGFkZGluZzogLjM1ZW0gLjYyNWVtIC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuXHRkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuXHRtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cblx0cGFkZGluZzogMDsgLyogMiAqL1xuXHR3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gKiAyLiBDaGFuZ2UgdGhlIHJlc2l6ZSBkaXJlY3Rpb24gb24gdGV4dGFyZWFzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbnRleHRhcmVhIHtcblx0b3ZlcmZsb3c6IGF1dG87IC8qIDEgKi9cblx0cmVzaXplOiB2ZXJ0aWNhbDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvbiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG46Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuXHRoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG5cdG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBmb3IgT1MgWC5cbiAqL1xuXG46Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG46Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgdGV4dCBzdHlsZSBvbiBwbGFjZWhvbGRlcnMgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG5cdGNvbG9yOiBpbmhlcml0O1xuXHRvcGFjaXR5OiAuNTQ7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cblx0Zm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBXQUktQVJJQSAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2RvbS5odG1sI3dhaS1hcmlhKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIGN1cnNvciBvbiBidXN5IGVsZW1lbnRzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuW2FyaWEtYnVzeT1cInRydWVcIl0ge1xuXHRjdXJzb3I6IHByb2dyZXNzO1xufVxuXG4vKlxuICogQ2hhbmdlIHRoZSBjdXJzb3Igb24gY29udHJvbCBlbGVtZW50cyAob3BpbmlvbmF0ZWQpLlxuICovXG5cblthcmlhLWNvbnRyb2xzXSB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLypcbiAqIENoYW5nZSB0aGUgY3Vyc29yIG9uIGRpc2FibGVkLCBub3QtZWRpdGFibGUsIG9yIG90aGVyd2lzZVxuICogaW5vcGVyYWJsZSBlbGVtZW50cyAob3BpbmlvbmF0ZWQpLlxuICovXG5cblthcmlhLWRpc2FibGVkXSB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyogVXNlciBpbnRlcmFjdGlvbiAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2VkaXRpbmcuaHRtbClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBSZW1vdmUgdGhlIHRhcHBpbmcgZGVsYXkgb24gY2xpY2thYmxlIGVsZW1lbnRzIChvcGluaW9uYXRlZCkuXG4gKiAxLiBSZW1vdmUgdGhlIHRhcHBpbmcgZGVsYXkgaW4gSUUgMTAuXG4gKi9cblxuYSxcbmFyZWEsXG5idXR0b24sXG5pbnB1dCxcbmxhYmVsLFxuc2VsZWN0LFxudGV4dGFyZWEsXG5bdGFiaW5kZXhdIHtcblx0LW1zLXRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyAvKiAxICovXG5cdHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG4vKlxuICogQ2hhbmdlIHRoZSBkaXNwbGF5IG9uIHZpc3VhbGx5IGhpZGRlbiBhY2Nlc3NpYmxlIGVsZW1lbnRzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuW2hpZGRlbl1bYXJpYS1oaWRkZW49XCJmYWxzZVwiXSB7XG5cdGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG5cdGRpc3BsYXk6IGluaGVyaXQ7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuW2hpZGRlbl1bYXJpYS1oaWRkZW49XCJmYWxzZVwiXTpmb2N1cyB7XG5cdGNsaXA6IGF1dG87XG59IiwiLyohIHNhbml0aXplLmNzcyB2NC4xLjAgfCBDQzAgTGljZW5zZSB8IGdpdGh1Yi5jb20vam9uYXRoYW50bmVhbC9zYW5pdGl6ZS5jc3MgKi9cbi8qIERpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cbnRlbXBsYXRlLFxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEVsZW1lbnRzIG9mIEhUTUwgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9zZW1hbnRpY3MuaHRtbClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIFJlbW92ZSByZXBlYXRpbmcgYmFja2dyb3VuZHMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBBZGQgYm94IHNpemluZyBpbmhlcml0ZW5jZSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuKixcbjo6YmVmb3JlLFxuOjphZnRlciB7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogMS4gQWRkIHRleHQgZGVjb3JhdGlvbiBpbmhlcml0YW5jZSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIEFkZCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW5oZXJpdGVuY2UgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbjo6YmVmb3JlLFxuOjphZnRlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogaW5oZXJpdDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogMS4gQWRkIGJvcmRlciBib3ggc2l6aW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gQWRkIHRoZSBkZWZhdWx0IGN1cnNvciBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDMuIEFkZCBhIGZsYXR0ZW5lZCBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDQuIFByZXZlbnQgZm9udCBzaXplIGFkanVzdG1lbnRzIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gSUUgYW5kIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgY3Vyc29yOiBkZWZhdWx0O1xuICAvKiAyICovXG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAzICovXG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIC8qIDMgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDQgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiA1ICovIH1cblxuLyogU2VjdGlvbnMgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9zZWN0aW9ucy5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemVzIGFuZCBtYXJnaW5zIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluXG4gKiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogLjY3ZW0gMDsgfVxuXG4vKiBHcm91cGluZyBjb250ZW50IChodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvZ3JvdXBpbmctY29udGVudC5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCBmb250IHNpemluZyBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBoZWlnaHQgaW4gRmlyZWZveC5cbiAqIDIuIEFkZCB2aXNpYmxlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBsaXN0IHN0eWxlIG9uIG5hdmlnYXRpb24gbGlzdHMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbm5hdiBvbCxcbm5hdiB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIEFkZCBhIGJvcmRlcmVkIHVuZGVybGluZSBlZmZlY3QgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRleHQgZGVjb3JhdGlvbiBpbiBGaXJlZm94IDQwKy5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGNvbG9ycyBpbiBJRSA5LS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmMDA7XG4gIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODMuMzMzMyU7IH1cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIHBvc2l0aW9uaW5nIG9uIHN1cGVyc2NyaXB0IGFuZCBzdWJzY3JpcHQgZWxlbWVudHNcbiAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMS4gQ29ycmVjdCB0aGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA4My4zMzMzJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtLjI1ZW07IH1cblxuc3VwIHtcbiAgdG9wOiAtLjVlbTsgfVxuXG4vKlxuICogUmVtb3ZlIHRoZSB0ZXh0IHNoYWRvdyBvbiB0ZXh0IHNlbGVjdGlvbnMgKG9waW5pb25hdGVkKS5cbiAqIDEuIFJlc3RvcmUgdGhlIGNvbG9yaW5nIHVuZG9uZSBieSBkZWZpbmluZyB0aGUgdGV4dCBzaGFkb3cgKG9waW5pb25hdGVkKS5cbiAqL1xuOjotbW96LXNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiM2Q0ZmM7XG4gIC8qIDEgKi9cbiAgY29sb3I6ICMwMDAwMDA7XG4gIC8qIDEgKi9cbiAgdGV4dC1zaGFkb3c6IG5vbmU7IH1cblxuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjNkNGZjO1xuICAvKiAxICovXG4gIGNvbG9yOiAjMDAwMDAwO1xuICAvKiAxICovXG4gIHRleHQtc2hhZG93OiBub25lOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnQgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lbWJlZGRlZC1jb250ZW50LTAuaHRtbClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQ2hhbmdlIHRoZSBhbGlnbm1lbnQgb24gbWVkaWEgZWxlbWVudHMgaW4gYWxsIGJyb3dlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuYXVkaW8sXG5jYW52YXMsXG5pZnJhbWUsXG5pbWcsXG5zdmcsXG52aWRlbyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lOyB9XG5cbi8qKlxuICogQ2hhbmdlIHRoZSBmaWxsIGNvbG9yIHRvIG1hdGNoIHRoZSB0ZXh0IGNvbG9yIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5zdmcge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cblxuLyoqXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIExpbmtzIChodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvbGlua3MuaHRtbCNsaW5rcylcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgZ2FwcyBpbiB1bmRlcmxpbmVzIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBvdXRsaW5lIHdoZW4gaG92ZXJpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmE6aG92ZXIge1xuICBvdXRsaW5lLXdpZHRoOiAwOyB9XG5cbi8qIFRhYnVsYXIgZGF0YSAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L3RhYnVsYXItZGF0YS5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZW1vdmUgYm9yZGVyIHNwYWNpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxuLyogdHJhbnNmb3JtLXN0eWxlOiAgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9mb3Jtcy5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBkZWZhdWx0IHN0eWxpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAzLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovIH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIENvcnJlY3QgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2UgaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICogMS4gUHJldmVudCB0aGUgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG46LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7IH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IC4zNWVtIC42MjVlbSAuNzVlbTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqLyB9XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gKiAyLiBDaGFuZ2UgdGhlIHJlc2l6ZSBkaXJlY3Rpb24gb24gdGV4dGFyZWFzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAvKiAxICovXG4gIHJlc2l6ZTogdmVydGljYWw7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvbiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBmb3IgT1MgWC5cbiAqL1xuOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgdGV4dCBzdHlsZSBvbiBwbGFjZWhvbGRlcnMgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG46Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgb3BhY2l0eTogLjU0OyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi8gfVxuXG4vKiBXQUktQVJJQSAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2RvbS5odG1sI3dhaS1hcmlhKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQ2hhbmdlIHRoZSBjdXJzb3Igb24gYnVzeSBlbGVtZW50cyAob3BpbmlvbmF0ZWQpLlxuICovXG5bYXJpYS1idXN5PVwidHJ1ZVwiXSB7XG4gIGN1cnNvcjogcHJvZ3Jlc3M7IH1cblxuLypcbiAqIENoYW5nZSB0aGUgY3Vyc29yIG9uIGNvbnRyb2wgZWxlbWVudHMgKG9waW5pb25hdGVkKS5cbiAqL1xuW2FyaWEtY29udHJvbHNdIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi8qXG4gKiBDaGFuZ2UgdGhlIGN1cnNvciBvbiBkaXNhYmxlZCwgbm90LWVkaXRhYmxlLCBvciBvdGhlcndpc2VcbiAqIGlub3BlcmFibGUgZWxlbWVudHMgKG9waW5pb25hdGVkKS5cbiAqL1xuW2FyaWEtZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi8qIFVzZXIgaW50ZXJhY3Rpb24gKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lZGl0aW5nLmh0bWwpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFJlbW92ZSB0aGUgdGFwcGluZyBkZWxheSBvbiBjbGlja2FibGUgZWxlbWVudHMgKG9waW5pb25hdGVkKS5cbiAqIDEuIFJlbW92ZSB0aGUgdGFwcGluZyBkZWxheSBpbiBJRSAxMC5cbiAqL1xuYSxcbmFyZWEsXG5idXR0b24sXG5pbnB1dCxcbmxhYmVsLFxuc2VsZWN0LFxudGV4dGFyZWEsXG5bdGFiaW5kZXhdIHtcbiAgLW1zLXRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAvKiAxICovXG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9XG5cbi8qXG4gKiBDaGFuZ2UgdGhlIGRpc3BsYXkgb24gdmlzdWFsbHkgaGlkZGVuIGFjY2Vzc2libGUgZWxlbWVudHMgKG9waW5pb25hdGVkKS5cbiAqL1xuW2hpZGRlbl1bYXJpYS1oaWRkZW49XCJmYWxzZVwiXSB7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIGRpc3BsYXk6IGluaGVyaXQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuXG5baGlkZGVuXVthcmlhLWhpZGRlbj1cImZhbHNlXCJdOmZvY3VzIHtcbiAgY2xpcDogYXV0bzsgfVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuW1ZhcmlhYmxlc11cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbjxkaXYgY2xhc3M9XCJwYWxldHRlXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbG9yIHByaW1hcnlcIj48ZGl2IGNsYXNzPVwidmFyaWFudHNcIj48L2Rpdj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sb3IgdXRpbGl0eVwiPjxkaXYgY2xhc3M9XCJ2YXJpYW50c1wiPjwvZGl2PjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2xvciBhY2NlbnRcIj48ZGl2IGNsYXNzPVwidmFyaWFudHNcIj48L2Rpdj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sb3Igc2Vjb25kYXJ5XCI+PGRpdiBjbGFzcz1cInZhcmlhbnRzXCI+PC9kaXY+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbG9yIGZvcmVncm91bmRcIj48ZGl2IGNsYXNzPVwidmFyaWFudHNcIj48L2Rpdj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sb3IgYmFja2dyb3VuZFwiPjxkaXYgY2xhc3M9XCJ2YXJpYW50c1wiPjwvZGl2PjwvZGl2PlxuPC9kaXY+XG4gKi9cbi5wYWxldHRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4uY29sb3Ige1xuICB3aWR0aDogY2FsYygyMCUgLSAxcmVtKTtcbiAgaGVpZ2h0OiAxNzBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY29sb3I6YmVmb3JlLCAuY29sb3I6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDMwJTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2ZmZjtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDg1JTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdvcmQtd3JhcDogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XG4gIC5jb2xvcjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5jb2xvcjphZnRlciB7XG4gICAgcGFkZGluZy10b3A6IDEuNXJlbTtcbiAgICBmb250LXNpemU6IDcwJTtcbiAgICBjb2xvcjogZ3JheTsgfVxuICAuY29sb3IucHJpbWFyeTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwicHJpbWFyeVwiOyB9XG4gIC5jb2xvci5wcmltYXJ5OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5jb2xvci5wcmltYXJ5IC52YXJpYW50cyB7XG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgd2hpdGU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogNy41cmVtO1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMyNTkzNTcgMHJlbSwgIzI1OTM1NyAxLjVyZW0sICNBODFDMjEgMS41cmVtLCAjQTgxQzIxIDNyZW0sICM4YzEzMTcgM3JlbSwgIzhjMTMxNyA0LjVyZW0sICNGRkZGRkYgNC41cmVtLCAjRkZGRkZGIDZyZW0sICMwMDAwMDAgNnJlbSwgIzAwMDAwMCA3LjVyZW0pOyB9XG4gIC5jb2xvci5iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmNvbG9yLmJhY2tncm91bmQ6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiYmFja2dyb3VuZFwiOyB9XG4gICAgLmNvbG9yLmJhY2tncm91bmQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIjZmZmZmZmXCI7IH1cbiAgICAuY29sb3IuYmFja2dyb3VuZCAudmFyaWFudHMge1xuICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogNC41cmVtO1xuICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmZmZmZiAwcmVtLCAjZmZmZmZmIDEuNXJlbSwgI0VCRTlFMyAxLjVyZW0sICNFQkU5RTMgM3JlbSwgIzAwMCAzcmVtLCAjMDAwIDQuNXJlbSk7IH1cblxuYm9keTpiZWZvcmUge1xuICBjb250ZW50OiBcInNtYXJ0cGhvbmUgNzY4XCI7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE2ODBweCkge1xuICAgIGJvZHk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiZGVza3RvcCAxNjAwXCI7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSBhbmQgKG1heC13aWR0aDogMTY3OXB4KSB7XG4gICAgYm9keTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJkZXNrdG9wIDEyMDBcIjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDEyNzlweCkge1xuICAgIGJvZHk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiZGVza3RvcCA5NjBcIjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgYm9keTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJ0YWJsZXQgNzY4XCI7IH0gfVxuXG46cm9vdCB7XG4gIGZvbnQtc2l6ZTogMjBweDsgfVxuXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlOyB9XG5cbmh0bWwge1xuICBmb250LXNpemU6IDIwcHg7IH1cblxuYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LWZhbWlseTogXCJBcnF1aXRlY3RhXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGOyB9XG4gIGJvZHk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcInNtYXJ0cGhvbmUgNzY4XCI7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxNjgwcHgpIHtcbiAgICAgIGJvZHk6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJkZXNrdG9wIDE2MDBcIjsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkgYW5kIChtYXgtd2lkdGg6IDE2NzlweCkge1xuICAgICAgYm9keTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcImRlc2t0b3AgMTIwMFwiOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgICAgIGJvZHk6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJkZXNrdG9wIDk2MFwiOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgICAgYm9keTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcInRhYmxldCA3NjhcIjsgfSB9XG5cbnAsIHVsIHtcbiAgbWFyZ2luOiAwIDAgMjVweCAwOyB9XG4gIHA6bGFzdC1jaGlsZCwgdWw6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG51bCB7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgcGFkZGluZzogMDsgfVxuXG5hIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogI0E4MUMyMTsgfVxuICBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzhjMTMxNzsgfVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgZm9udC1mYW1pbHk6IFwiQXJxdWl0ZWN0YVwiLCBzYW5zLXNlcmlmO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luOiAwOyB9XG4gIGgxIHNtYWxsLCBoMiBzbWFsbCwgaDMgc21hbGwsIGg0IHNtYWxsLCBoNSBzbWFsbCwgaDYgc21hbGwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXNpemU6IDEuMnJlbTsgfVxuICBoMSBhLCBoMiBhLCBoMyBhLCBoNCBhLCBoNSBhLCBoNiBhIHtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuXG5jYW52YXMge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuaDEge1xuICBmb250LXNpemU6IDU1cHg7XG4gIGZvbnQtc2l6ZTogMi43NXJlbTsgfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgZm9udC1zaXplOiAxLjRyZW07IH1cblxuaDMge1xuICBmb250LXNpemU6IDI1cHg7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMzBweDtcbiAgZm9udC1zaXplOiAxLjVyZW07IH1cblxuaDUge1xuICBmb250LXNpemU6IDI1cHg7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0FycXVpdGVjdGEnO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2FycXVpdGVjdGEtYm9sZC13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9hcnF1aXRlY3RhLWJvbGQtd2ViZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAqLFxuICAqOmJlZm9yZSxcbiAgKjphZnRlcixcbiAgKjpmaXJzdC1sZXR0ZXIsXG4gICo6Zmlyc3QtbGluZSB7XG4gICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgICAvKiBCbGFjayBwcmludHMgZmFzdGVyOlxuXHRcdGh0dHA6Ly93d3cuc2FuYmVpamkuY29tL2FyY2hpdmVzLzk1MyAqL1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cbiAgLypcblx0KiBEb24ndCBzaG93IGxpbmtzIHRoYXQgYXJlIGZyYWdtZW50IGlkZW50aWZpZXJzLFxuXHQqIG9yIHVzZSB0aGUgYGphdmFzY3JpcHQ6YCBwc2V1ZG8gcHJvdG9jb2xcblx0Ki9cbiAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIGJvZHkge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7IH1cbiAgICBib2R5OjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLypcblx0KiBQcmludGluZyBUYWJsZXM6XG5cdCogaHR0cDovL2Nzcy1kaXNjdXNzLmluY3V0aW8uY29tL3dpa2kvUHJpbnRpbmdfVGFibGVzXG5cdCovXG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50OyB9XG4gIGgyLCBoMyB7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7IH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMzsgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG4gICoge1xuICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxuICA6cm9vdCB7XG4gICAgZm9udC1zaXplOiAxNXB4OyB9XG4gIGh0bWwsIGJvZHkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlOyB9XG4gIGJvZHkge1xuICAgIGNvbG9yOiAjYzkzMDJjO1xuICAgIGZvbnQtZmFtaWx5OiBcIkFycXVpdGVjdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIGJhY2tncm91bmQ6ICNjOTMwMmM7IH1cbiAgLnNhbWUtaGVpZ2h0IHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAjYnJlYWRjcnVtYnMge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmZvb3RlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBib2R5LnNpbmdsZS1fcmVjaXBlIHtcbiAgICBwYWRkaW5nOiAzMHB4IDQ1cHg7IH1cbiAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLXNlY3Rpb24sIGJvZHkuc2luZ2xlLV9yZWNpcGUgLmMtc2VjdGlvbi0tZGVmYXVsdCAuYy1zZWN0aW9uX19ib2R5LCBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLXNlY3Rpb24tLWRlZmF1bHQgLmMtc2VjdGlvbl9fbWVkaWEge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAgIGJvZHkuc2luZ2xlLV9yZWNpcGUgLmMtc29jaWFsLCBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLWJ0biB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgYm9keS5zaW5nbGUtX3JlY2lwZSAuYy1tZW51LXByaW1hcnkge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAgICAgYm9keS5zaW5nbGUtX3JlY2lwZSAuYy1tZW51LXByaW1hcnkgbmF2IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLW1lbnUtcHJpbWFyeSAuYy1tZW51LXByaW1hcnlfX3dyYXBwZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLW1lbnUtbW9iaWxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5sb2dvIHtcbiAgICAgIHdpZHRoOiAxMjBweDsgfVxuICAgIGJvZHkuc2luZ2xlLV9yZWNpcGUgLmMtc2VjdGlvbi0taGVhZGVyIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgYm9keS5zaW5nbGUtX3JlY2lwZSAuYy1zZWN0aW9uLS1oZWFkZXIgLmMtc2VjdGlvbl9fd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLXNlY3Rpb24tLWhlYWRlciAuYy1zZWN0aW9uX193cmFwcGVyIC5jLXNlY3Rpb25fX2JvZHlfX3dyYXBwZXIge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgYm9keS5zaW5nbGUtX3JlY2lwZSAuYy1zZWN0aW9uLS1oZWFkZXIgLmMtc2VjdGlvbl9fd3JhcHBlciBoMSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgYm9keS5zaW5nbGUtX3JlY2lwZSAuYy1zZWN0aW9uLS1oZWFkZXIgLmMtc2VjdGlvbl9fYm9keSB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC13aWR0aDogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gICAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLXNlY3Rpb24tLWhlYWRlciAuYy1zZWN0aW9uX19tZWRpYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLXNlY3Rpb24tLWhlYWRlciAuYy1zZWN0aW9uX19tZWRpYSBpbWcge1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDM1MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLXNlY3Rpb24tLWRlZmF1bHQgLmMtc2VjdGlvbl9fbWVkaWEge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgYm9keS5zaW5nbGUtX3JlY2lwZSAuYy1zZWN0aW9uLS1kZWZhdWx0IC5jLXNlY3Rpb25fX21lZGlhIC5jLXNlY3Rpb25fX21lZGlhX193cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgYm9keS5zaW5nbGUtX3JlY2lwZSAuYy1zZWN0aW9uLS1kZWZhdWx0IC5jLXNlY3Rpb25fX21lZGlhIC5fcmVsYXRlZF9wcm9kdWN0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAgIGJvZHkuc2luZ2xlLV9yZWNpcGUgLmMtc2VjdGlvbi0tZGVmYXVsdCAuYy1zZWN0aW9uX19tZWRpYSAuX3JlbGF0ZWRfcHJvZHVjdCBoMyB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgICAgYm9keS5zaW5nbGUtX3JlY2lwZSAuYy1zZWN0aW9uLS1kZWZhdWx0IC5jLXNlY3Rpb25fX21lZGlhIC5fcmVsYXRlZF9wcm9kdWN0IGltZyB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gICAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLXNlY3Rpb24tLWRlZmF1bHQgLmMtc2VjdGlvbl9fbWVkaWEgaDMge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLXNlY3Rpb24tLWRlZmF1bHQgLmMtc2VjdGlvbl9fbWVkaWEgdWwge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLXNlY3Rpb24tLWRlZmF1bHQgLmMtc2VjdGlvbl9fYm9keSAuYy1zZWN0aW9uX19ib2R5X193cmFwcGVyIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIGJvZHkuc2luZ2xlLV9yZWNpcGUgLmMtc2VjdGlvbi0tZGVmYXVsdCAuYy1zZWN0aW9uX19ib2R5IC5jLXNlY3Rpb25fX2JvZHlfX3dyYXBwZXIgLnNlcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gICAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLXNlY3Rpb24tLWRlZmF1bHQgLmMtc2VjdGlvbl9fYm9keSAuYy1zZWN0aW9uX19ib2R5X193cmFwcGVyIHVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4OyB9XG4gICAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLXNlY3Rpb24tLWRlZmF1bHQgLmMtc2VjdGlvbl9fYm9keSAuYy1zZWN0aW9uX19ib2R5X193cmFwcGVyIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7IH1cbiAgICBib2R5LnNpbmdsZS1fcmVjaXBlIC5jLXNlY3Rpb24tLWRlZmF1bHQgLmMtc2VjdGlvbl9fYm9keSAudG9vbCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgYm9keS5zaW5nbGUtX3JlY2lwZSAuYy1zZWN0aW9uLS1yZWxhdGVkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4iLCIkZGVidWctbW9kZTogZmFsc2UgIWRlZmF1bHQ7XG5cbiRmb250cy1kaXI6ICcuLi9mb250cycgIWRlZmF1bHQ7XG4kaW1hZ2UtZGlyOiAnLi4vaW1hZ2VzJyAhZGVmYXVsdDtcblxuJGNvbnRhaW5lci13aWR0aC14czogNzY4O1xuJGNvbnRhaW5lci13aWR0aC1zbTogNzY4O1xuJGNvbnRhaW5lci13aWR0aC1tZDogOTYwO1xuJGNvbnRhaW5lci13aWR0aC1sZzogMTIwMDtcbiRjb250YWluZXItd2lkdGgteGxnOiAxNjAwO1xuXG4kc3VzeTogKFxuXHRjb2x1bW5zOiAyNCxcblx0Y29udGFpbmVyOiA5MCUsXG5cdGdsb2JhbC1ib3gtc2l6aW5nOiBib3JkZXItYm94XG4pO1xuXG4kbGlnaHQ6IDIwMCAhZGVmYXVsdDtcbiRyZWd1bGFyOiA0MDAgIWRlZmF1bHQ7XG4kbWVkaXVtOiA1MDAgIWRlZmF1bHQ7XG4kYm9sZDogNzAwICFkZWZhdWx0O1xuJGJsYWNrOiA4MDAgIWRlZmF1bHQ7XG5cbiRiYXNlLWZvbnQtY29udGV4dDogMjAgIWRlZmF1bHQ7XG4kYmFzZS1mb250LXNpemU6ICRiYXNlLWZvbnQtY29udGV4dCAqIDFweDtcbiRiYXNlLWxpbmUtaGVpZ2h0OiAxLjE7XG5cbi8vICRmb250LXNjcmlwdDogc2VyaWYgIWRlZmF1bHQ7XG4vLyAkZm9udC1saWdodDogc2Fucy1zZXJpZiAhZGVmYXVsdDtcbi8vICRmb250LXJlZ3VsYXI6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4vLyAkZm9udC1tZWRpdW06IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4vLyAkZm9udC1ib2xkOiBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLyAkYmFzZS1mb250LWZhbWlseTogJGZvbnQtbWVkaXVtICFkZWZhdWx0O1xuJGJhc2UtZm9udC13ZWlnaHQ6ICRyZWd1bGFyICFkZWZhdWx0O1xuXG5cbiRzY2hlbWUtY29sb3Ita2V5OiAnYmFzZScgIWRlZmF1bHQ7XG5cblxuJHNjaGVtZS1vcGFjaXR5OiAoXG4gICdsaWdodCc6IDAuOCxcbiAgJ21lZGl1bSc6IDAuNSxcbiAgJ2RhcmsnOiAwLjJcbikgIWRlZmF1bHQ7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5bVmFyaWFibGVzXVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4kc2NoZW1lLWNvbG9yczogKFxuXHQncHJpbWFyeSc6IChcblx0XHQnZ3JlZW4nOiAjMjU5MzU3LFxuXHRcdCdyZWQnOiAjQTgxQzIxLFxuXHRcdCdyZWQtaG92ZXInOiBkYXJrZW4oc2F0dXJhdGUoI0E4MUMyMSwgNC42NyksIDcuMjUpLFxuXHRcdCdsaWdodCc6I0ZGRkZGRixcblx0XHQnZGFyayc6IzAwMDAwMFxuXHQpLFxuXG5cdC8vICdyZWQnOiAoXG5cdC8vIFx0J2Jhc2UnOiAjOTNjZjQ4LFxuXHQvLyBcdCdtZWRpdW0nOiAjNGNhOTQ4LFxuXHQvLyBcdCdkYXJrJzogIzI3YTg0ZlxuXHQvLyApLFxuXG5cdC8vICdmb3JlZ3JvdW5kJzogKFxuXHQvLyBcdCdiYXNlJzogIzgwNmE1NiwgIC8vYnJvd25cblx0Ly8gXHQnbGlnaHQnOiAjOGVjNTQ5LCAvL2dyZWVuXG5cdC8vICksXG5cblx0J2JhY2tncm91bmQnOiAoXG5cdFx0J2Jhc2UnOiAjZmZmZmZmLFxuXHRcdCdsaWdodCc6ICNFQkU5RTMsXG5cdFx0J2RhcmsnOiAjMDAwXG5cdClcbik7XG4kZ2xvYmFsLWNvbG9yLWRhcms6IzAwMDAwMDtcbiRnbG9iYWwtY29sb3ItbGlnaHQ6I0ZGRkZGRjtcbiRnbG9iYWwtY29sb3ItcHJpbWFyeTojQTgxQzIxO1xuJGdsb2JhbC1jb2xvci1tdXRlZDojNmY2ZjZmO1xuJGdsb2JhbC1jb2xvci1zZWNvbmRhcnk6IzI1OTM1NztcblxuJGdsb2JhbC1iYWNrZ3JvdW5kOiRnbG9iYWwtY29sb3ItbGlnaHQ7XG4kZ2xvYmFsLWJhY2tncm91bmQtcHJpbWFyeTokZ2xvYmFsLWNvbG9yLXByaW1hcnk7IFxuJGdsb2JhbC1iYWNrZ3JvdW5kLXNlY29uZGFyeTokZ2xvYmFsLWNvbG9yLXNlY29uZGFyeTsgLy8gZ3JlZW5cbiRnbG9iYWwtYmFja2dyb3VuZC1tdXRlZDojQzRDNEM0O1xuJGdsb2JhbC1iYWNrZ3JvdW5kLXRoaXJkOiNFQkU5RTM7XG5cbiRnbG9iYWwtY29sb3ItbGluazokZ2xvYmFsLWNvbG9yLXByaW1hcnk7XG4kZ2xvYmFsLWNvbG9yLWxpbmstaG92ZXI6ZGFya2VuKHNhdHVyYXRlKCRnbG9iYWwtY29sb3ItbGluaywgNC42NyksIDcuMjUpO1xuXG4kZm9udC1zaXplLWNvbnRleHQ6IDIwO1xuJGZvbnQtcmVndWxhcjogJ0FycXVpdGVjdGEnLCBzYW5zLXNlcmlmO1xuJGZvbnQtYmFzZTogJGZvbnQtcmVndWxhcjtcbiRmb250LWJhc2UtY29sb3I6ICRnbG9iYWwtY29sb3ItZGFyaztcblxuJHNlbWktYm9sZDogNzAwO1xuXG4kbWVudS1oZWlnaHQ6MTY1cHg7XG4kbWVudS1oZWlnaHQtc2xpZGVyOiRtZW51LWhlaWdodCArIDIwO1xuJG1lbnUtY2FydC1oZWlnaHQ6NzBweDtcbiRtZW51LWNhcnQtd2lkdGg6JG1lbnUtY2FydC1oZWlnaHQ7XG4kbWVudS1jYXJ0LWhlaWdodC1zOjUwcHg7XG4kbWVudS1jYXJ0LXdpZHRoLXM6JG1lbnUtY2FydC1oZWlnaHQtcztcblxuJGZvb3Rlci1iYWNrZ3JvdW5kOiRnbG9iYWwtYmFja2dyb3VuZC10aGlyZDtcbiRmb290ZXItc29jaWFsLXdpZHRoOjcwcHg7XG4kZm9vdGVyLXNvY2lhbC1oZWlnaHQ6JGZvb3Rlci1zb2NpYWwtd2lkdGg7XG5cbiRob21lLXNsaWRlci1zdHJpcGUtaGVpZ2h0OjE1dmg7XG4kaG9tZS1zbGlkZXItc3RyaXBlLWhlaWdodC1zOjc1cHg7XG4kaG9tZS1zbGlkZXItYmctY29sb3I6JGdsb2JhbC1iYWNrZ3JvdW5kLXRoaXJkO1xuJGhvbWUtc2xpZGVyLXRyaWFuZ2xlLXdpZHRoOjY0cHg7XG4kaG9tZS1zbGlkZXItdHJpYW5nbGUtaGVpZ2h0OigkaG9tZS1zbGlkZXItdHJpYW5nbGUtd2lkdGggLyAyKTtcbiRob21lLXNsaWRlci10cmlhbmdsZS1jb2xvcjokaG9tZS1zbGlkZXItYmctY29sb3I7XG5cbiRzbGlkZXItZG90LWNvbG9yOiRnbG9iYWwtYmFja2dyb3VuZC1wcmltYXJ5O1xuJHNsaWRlci1kb3QtY29sb3ItYWN0aXZlOnRyYW5zcGFyZW50O1xuJHNsaWRlci1kb3QtYm9yZGVyOjJweDtcbiRzbGlkZXItZG90LWJvcmRlci1jb2xvcjokZ2xvYmFsLWJhY2tncm91bmQtcHJpbWFyeTtcbiRzbGlkZXItZG90LWJvcmRlci1jb2xvci1hY3RpdmU6JGdsb2JhbC1iYWNrZ3JvdW5kLXByaW1hcnk7XG4kc2xpZGVyLWRvdC13aWR0aDoxOXB4IC0gKCRzbGlkZXItZG90LWJvcmRlciAqIDIpO1xuXG4kcHJvZHVjdC1oZWFkZXItYmFja2dyb3VuZDokZ2xvYmFsLWJhY2tncm91bmQ7XG4kcHJvZHVjdC1oZWFkZXItY29sb3ItbXV0ZWQ6JGZvbnQtYmFzZS1jb2xvcjtcbiRwcm9kdWN0LWhlYWRlci1zZXAtY29sb3I6JGdsb2JhbC1iYWNrZ3JvdW5kLW11dGVkO1xuJHByb2R1Y3QtaGVhZGVyLXNlcC1oZWlnaHQ6MnB4O1xuJHByb2R1Y3QtaGVhZGVyLXNlcC1tYXJnaW46MzBweDtcblxuJGNvcHlyaWdodC1jb2xvcjojQTVBNUE1OyIsIi8qXG48ZGl2IGNsYXNzPVwicGFsZXR0ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2xvciBwcmltYXJ5XCI+PGRpdiBjbGFzcz1cInZhcmlhbnRzXCI+PC9kaXY+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbG9yIHV0aWxpdHlcIj48ZGl2IGNsYXNzPVwidmFyaWFudHNcIj48L2Rpdj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sb3IgYWNjZW50XCI+PGRpdiBjbGFzcz1cInZhcmlhbnRzXCI+PC9kaXY+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbG9yIHNlY29uZGFyeVwiPjxkaXYgY2xhc3M9XCJ2YXJpYW50c1wiPjwvZGl2PjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2xvciBmb3JlZ3JvdW5kXCI+PGRpdiBjbGFzcz1cInZhcmlhbnRzXCI+PC9kaXY+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbG9yIGJhY2tncm91bmRcIj48ZGl2IGNsYXNzPVwidmFyaWFudHNcIj48L2Rpdj48L2Rpdj5cbjwvZGl2PlxuICovXG5cbiR2YXJpYW50LWhlaWdodDogMS41cmVtO1xuXG4ucGFsZXR0ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmNvbG9yIHtcbiAgICB3aWR0aDogY2FsYygyMCUgLSAxcmVtKTtcbiAgICBoZWlnaHQ6IDE3MHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAzMCU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmZmY7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiA4NSU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3b3JkLXdyYXA6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIHBhZGRpbmctdG9wOiAxLjVyZW07XG4gICAgZm9udC1zaXplOiA3MCU7XG4gICAgY29sb3I6IGdyYXk7XG4gIH1cblxuICBAZWFjaCAkY29sb3Ita2V5LCAkY29sb3ItdmFyaWFudHMgaW4gJHNjaGVtZS1jb2xvcnMge1xuICAgICRiYXNlLWNvbG9yLXZhbHVlOiBtYXAtZ2V0KCRjb2xvci12YXJpYW50cywgJ2Jhc2UnKTtcblxuICAgICYuI3skY29sb3Ita2V5fSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci12YWx1ZTtcblxuICAgICAgJjpiZWZvcmUgeyBjb250ZW50OiBcIiN7JGNvbG9yLWtleX1cIjsgfVxuICAgICAgJjphZnRlciB7IGNvbnRlbnQ6IFwiI3skYmFzZS1jb2xvci12YWx1ZX1cIjsgfVxuXG4gICAgICAkdmFyaWFudC1ncmFkaWVudDogKHVucXVvdGUoXCJ0byBib3R0b21cIiksKTtcblxuICAgICAgJGluZGV4OiAwO1xuICAgICAgQGVhY2ggJHZhcmlhbnQtbmFtZSwgJHZhcmlhbnQtdmFsdWUgaW4gJGNvbG9yLXZhcmlhbnRzIHtcbiAgICAgICAgJHZhcmlhbnQtZ3JhZGllbnQ6IGFwcGVuZCgkdmFyaWFudC1ncmFkaWVudCwgJHZhcmlhbnQtdmFsdWUgJGluZGV4ICogJHZhcmlhbnQtaGVpZ2h0KTtcbiAgICAgICAgJGluZGV4OiAkaW5kZXggKyAxO1xuICAgICAgICAkdmFyaWFudC1ncmFkaWVudDogYXBwZW5kKCR2YXJpYW50LWdyYWRpZW50LCAkdmFyaWFudC12YWx1ZSAkaW5kZXggKiAkdmFyaWFudC1oZWlnaHQpO1xuICAgICAgfVxuXG4gICAgICAudmFyaWFudHMge1xuICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgd2hpdGU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiAkdmFyaWFudC1oZWlnaHQgKiBsZW5ndGgoJGNvbG9yLXZhcmlhbnRzKTtcbiAgICAgICAgd2lkdGg6ICR2YXJpYW50LWhlaWdodDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCN7JHZhcmlhbnQtZ3JhZGllbnR9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImJvZHkge1xuXG5cdCY6YmVmb3JlIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCR4bGctb25seSkge1xuXHRcdFx0Y29udGVudDogXCJkZXNrdG9wICN7JGNvbnRhaW5lci13aWR0aC14bGd9XCI7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGctb25seSkge1xuXHRcdFx0Y29udGVudDogXCJkZXNrdG9wICN7JGNvbnRhaW5lci13aWR0aC1sZ31cIjtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRtZC1vbmx5KSB7XG5cdFx0XHRjb250ZW50OiBcImRlc2t0b3AgI3skY29udGFpbmVyLXdpZHRoLW1kfVwiO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtLW9ubHkpIHtcblx0XHRcdGNvbnRlbnQ6IFwidGFibGV0ICN7JGNvbnRhaW5lci13aWR0aC1zbX1cIjtcblx0XHR9XG5cblx0XHRjb250ZW50OiBcInNtYXJ0cGhvbmUgI3skY29udGFpbmVyLXdpZHRoLXhzfVwiO1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRCcmVha3BvaW50LVNldHRpbmdzOiAoXG4gICdkZWZhdWx0IG1lZGlhJzogYWxsLFxuICAnZGVmYXVsdCBmZWF0dXJlJzogbWluLXdpZHRoLFxuICAnZGVmYXVsdCBwYWlyJzogd2lkdGgsXG5cbiAgJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJzogZmFsc2UsXG4gICd0byBlbXMnOiBmYWxzZSxcbiAgJ3RyYW5zZm9ybSByZXNvbHV0aW9ucyc6IHRydWUsXG5cbiAgJ25vIHF1ZXJpZXMnOiBmYWxzZSxcbiAgJ25vIHF1ZXJ5IGZhbGxiYWNrcyc6IGZhbHNlLFxuXG4gICdiYXNlIGZvbnQgc2l6ZSc6IDE2cHgsXG5cbiAgJ2xlZ2FjeSBzeW50YXgnOiBmYWxzZVxuKTtcblxuJGJyZWFrcG9pbnQ6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImJyZWFrcG9pbnQvc2V0dGluZ3NcIjtcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvY29udGV4dCc7XG5AaW1wb3J0ICdicmVha3BvaW50L2hlbHBlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9wYXJzZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvbm8tcXVlcnknO1xuXG5AaW1wb3J0ICdicmVha3BvaW50L3Jlc3BvbmQtdG8nO1xuXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9sZWdhY3ktc2V0dGluZ3NcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nO1xuXG4gIC8vIFJlc2V0IGNvbnRleHRzXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xuXG4gICRicmVha3BvaW50OiBicmVha3BvaW50KCRxdWVyeSwgZmFsc2UpO1xuXG4gICRxdWVyeS1zdHJpbmc6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeScpO1xuICAkcXVlcnktZmFsbGJhY2s6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdmYWxsYmFjaycpO1xuXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdjb250ZXh0IGhvbGRlcicpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeSBjb3VudCcpICFnbG9iYWw7XG5cbiAgLy8gQWxsb3cgZm9yIGFuIGFzLW5lZWRlZCBvdmVycmlkZSBvciB1c2FnZSBvZiBubyBxdWVyeSBmYWxsYmFjay5cbiAgQGlmICRuby1xdWVyeSAhPSBmYWxzZSB7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiAkbm8tcXVlcnk7XG4gIH1cblxuICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICB9XG5cbiAgLy8gUHJpbnQgT3V0IFF1ZXJ5IFN0cmluZ1xuICBAaWYgbm90IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBtZWRpYSAjeyRxdWVyeS1zdHJpbmd9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykgIT0gZmFsc2Ugb3IgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSA9PSB0cnVlIHtcblxuICAgICR0eXBlOiB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSk7XG4gICAgJHByaW50OiBmYWxzZTtcblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Jvb2wnKSB7XG4gICAgICAkcHJpbnQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnbGlzdCcpIHtcbiAgICAgIEBlYWNoICR3cmFwcGVyIGluIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gJHdyYXBwZXIge1xuICAgICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdyaXRlIEZhbGxiYWNrXG4gICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIGFuZCAoJHByaW50ID09IHRydWUpIHtcbiAgICAgICR0eXBlLWZhbGxiYWNrOiB0eXBlLW9mKCRxdWVyeS1mYWxsYmFjayk7XG5cbiAgICAgIEBpZiAoJHR5cGUtZmFsbGJhY2sgIT0gJ2Jvb2wnKSB7XG4gICAgICAgICN7JHF1ZXJ5LWZhbGxiYWNrfSAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcbn1cblxuXG5AbWl4aW4gbXEoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiOnJvb3Qge1xuXHRmb250LXNpemU6ICRmb250LXNpemUtY29udGV4dCAqIDFweDtcbn1cblxuaHRtbCwgYm9keSB7XG5cdGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbn1cblxuaHRtbCB7XG5cdGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xufVxuYm9keSB7XG5cdGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcblx0Y29sb3I6ICRnbG9iYWwtY29sb3ItZGFyaztcblx0Zm9udC1mYW1pbHk6ICRmb250LWJhc2U7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7ICAgIFxuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0YmFja2dyb3VuZDogJGdsb2JhbC1iYWNrZ3JvdW5kO1xuXHQmOmJlZm9yZSB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkeGxnLW9ubHkpIHtcblx0XHRcdGNvbnRlbnQ6IFwiZGVza3RvcCAjeyRjb250YWluZXItd2lkdGgteGxnfVwiO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnLW9ubHkpIHtcblx0XHRcdGNvbnRlbnQ6IFwiZGVza3RvcCAjeyRjb250YWluZXItd2lkdGgtbGd9XCI7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbWQtb25seSkge1xuXHRcdFx0Y29udGVudDogXCJkZXNrdG9wICN7JGNvbnRhaW5lci13aWR0aC1tZH1cIjtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzbS1vbmx5KSB7XG5cdFx0XHRjb250ZW50OiBcInRhYmxldCAjeyRjb250YWluZXItd2lkdGgtc219XCI7XG5cdFx0fVxuXG5cdFx0Y29udGVudDogXCJzbWFydHBob25lICN7JGNvbnRhaW5lci13aWR0aC14c31cIjtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbnAsIHVsIHtcblx0bWFyZ2luOiAwIDAgMjVweCAwO1xuXG5cdCY6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG51bCB7XG5cdGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcblx0cGFkZGluZzogMDtcbn1cblxuYSB7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Y29sb3I6ICRnbG9iYWwtY29sb3ItbGluaztcblxuXHQmOmhvdmVyIHtcblx0XHRjb2xvcjogJGdsb2JhbC1jb2xvci1saW5rLWhvdmVyO1xuXHR9XG59XG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0Zm9udC1mYW1pbHk6ICRmb250LXJlZ3VsYXI7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHQvL2NvbG9yOiRmb250LWJhc2UtY29sb3I7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdG1hcmdpbjogMDtcblxuXHRzbWFsbCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luLXRvcDogN3B4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdFx0QGluY2x1ZGUgY2FsYy1yZW0oMjQpO1xuXHR9XG5cblx0YSB7XG5cdFx0Y29sb3I6JGZvbnQtYmFzZS1jb2xvcjtcblx0fVxufVxuY2FudmFze1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5oMSB7XG5cdC8vIEBpbmNsdWRlIGNhbGMtcmVtKCRiYXNlLWZvbnQtY29udGV4dCAqIDIuNSk7XG5cdEBpbmNsdWRlIGNhbGMtcmVtKDU1KTtcbn1cblxuaDIge1xuXHQvLyBAaW5jbHVkZSBjYWxjLXJlbSgkYmFzZS1mb250LWNvbnRleHQgKiAxLjgpO1xuXHRAaW5jbHVkZSBjYWxjLXJlbSgyOCk7XG59XG5cbmgzIHtcblx0Ly8gQGluY2x1ZGUgY2FsYy1yZW0oJGJhc2UtZm9udC1jb250ZXh0ICogMS43NSk7XG5cdEBpbmNsdWRlIGNhbGMtcmVtKDI1KTtcblx0bWFyZ2luLWJvdHRvbTogMThweDtcbn1cblxuaDQge1xuXHRAaW5jbHVkZSBjYWxjLXJlbSgkYmFzZS1mb250LWNvbnRleHQgKiAxLjUpO1xufVxuXG5oNSB7XG5cdEBpbmNsdWRlIGNhbGMtcmVtKCRiYXNlLWZvbnQtY29udGV4dCAqIDEuMjUpO1xufVxuXG5oNiB7XG5cdEBpbmNsdWRlIGNhbGMtcmVtKCRiYXNlLWZvbnQtY29udGV4dCAqIDEpO1xufSIsIkBpbXBvcnQgXCJtaXhpbnMvX2J1dHRvbi5zY3NzXCI7XG5AaW1wb3J0IFwibWl4aW5zL19saW5rcy5zY3NzXCI7XG5cbkBtaXhpbiB1bnN0eWxlZC1saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vLy8gVGhlIHZ3IHVuaXQgKHZpZXdwb3J0IHdpZHRoKSBpcyBlcXVhbCB0byAxLzEwMHRoIG9yIDElIG9mIHRoZSB3aWR0aCBvZiB0aGUgdmlld3BvcnQuXG4vLy8gSW4gdGhlIGV4YW1wbGUgYmVsb3csIGlmIHRoZSB3aWR0aCBvZiB0aGUgdmlld3BvcnQgaXMgMTAwMHB4LCB0aGUgZm9udCBzaXplIG9mIHRoZSBoMSB3aWxsIGJlIDQwcHguXG5AZnVuY3Rpb24gZ2V0LXZ3KCRzaXplLCAkbWF4OiBmYWxzZSwgJG1pbjogZmFsc2UsICRjb250ZXh0OiAkY29udGFpbmVyLXdpZHRoLXhsZykge1xuICAgICR2dy1jb250ZXh0OiAoJGNvbnRleHQgKiAuMDEpOyAvLyAxJSB2aWV3cG9ydCB3aWR0aFxuICAgIEByZXR1cm4gKCRzaXplIC8gJHZ3LWNvbnRleHQpICsgdnc7XG59XG5cbkBmdW5jdGlvbiBnZXQtdmgoJHNpemUsICRjb250ZXh0OiAkY29udGFpbmVyLXdpZHRoLXhsZykge1xuICAgICR2aC1jb250ZXh0OiAoJGNvbnRleHQgKiAuMDEpOyAvLyAxJSB2aWV3cG9ydCB3aWR0aFxuICAgIEByZXR1cm4gKCRzaXplIC8gJHZoLWNvbnRleHQpICsgdmg7XG59XG5cbkBtaXhpbiBob3Jpem9udGFsLWFsaWduKCRwZXJjZW50OiA1MCUpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkcGVyY2VudCAqIC0xKTtcbn1cblxuQG1peGluIHZlcnRpY2FsLWFsaWduKCRwZXJjZW50OiA1MCUpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRwZXJjZW50ICogLTEpO1xufVxuXG5AbWl4aW4gY2FsYy12dygkc2l6ZSwgJG1pbi1zaXplOiBmYWxzZSwgJG1pbi1icmVha3BvaW50OiBmYWxzZSwgJG1heC1icmVha3BvaW50OiAkY29udGFpbmVyLXdpZHRoLXhsZykge1xuICBmb250LXNpemU6IGdldC12dygkc2l6ZSk7XG5cbiAgLy9QcmV2ZW50IGZvbnQtc2l6ZSBmcm9tIGdldHRpbmcgdG9vIHNtYWxsXG4gIEBpZiAkbWluLXNpemUgIT0gZmFsc2Uge1xuICAgIEBpZiB0eXBlLW9mKCRtaW4tYnJlYWtwb2ludCkgPT0gZmFsc2Uge1xuICAgICAgICBAd2FybiBcImAjeyRtaW4tYnJlYWtwb2ludH1gIGlzIG5vdCBkZWZpbmVkLlwiO1xuICAgIH1cblxuICAgICRzbWFsbC1zY3JlZW46IFwiKG1heC13aWR0aDogI3skbWluLWJyZWFrcG9pbnR9KVwiO1xuICAgIEBtZWRpYSAjeyRzbWFsbC1zY3JlZW59IHtcbiAgICAgICAgQGluY2x1ZGUgY2FsYy1yZW0oJG1pbi1zaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBQcmV2ZW50IGZvbnQtc2l6ZSBmcm9tIGdldHRpbmcgdG9vIGJpZ1xuICAkd2lkZS1zY3JlZW46IFwiKG1pbi13aWR0aDogI3skbWF4LWJyZWFrcG9pbnR9cHgpXCI7XG4gIEBtZWRpYSAjeyR3aWRlLXNjcmVlbn0ge1xuICAgICAgQGluY2x1ZGUgY2FsYy1yZW0oJHNpemUpO1xuICB9XG59XG5cbi8vLyBTaW1pbGFyIHRvIHZ3LCB0aGUgdmggdW5pdCAodmlld3BvcnQgaGVpZ2h0KSBpcyBlcXVhbCB0byAxLzEwMHRoIG9yIDElIG9mIHRoZSBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0LlxuLy8vIEluIHRoaXMgZXhhbXBsZSwgaWYgdGhlIHZpZXdwb3J0IGhlaWdodCBpcyA3MDBweCwgdGhlIG1heC1oZWlnaHQgb2YgdGhlIGltYWdlIHdpbGwgYmUgMTc1cHggKDI1w5c3MDAvMTAwID0gMTc1ICkuXG5AZnVuY3Rpb24gY2FsYy12aCgkc2l6ZSwgJGNvbnRleHQ6ICRiYXNlLWZvbnQtY29udGV4dCkge1xuXG59XG5cbi8vLyBUZXN0IGlmIGAkdmFsdWVgIGlzIGEgdmFsaWQgZGlyZWN0aW9uXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWUgLSBWYWx1ZSB0byB0ZXN0XG4vLy8gQHJldHVybiB7Qm9vbH1cbkBmdW5jdGlvbiBpcy1kaXJlY3Rpb24oJHZhbHVlKSB7XG4gICRpcy1rZXl3b3JkOiBpbmRleCgodG8gdG9wLCB0byB0b3AgcmlnaHQsIHRvIHJpZ2h0IHRvcCwgdG8gcmlnaHQsIHRvIGJvdHRvbSByaWdodCwgdG8gcmlnaHQgYm90dG9tLCB0byBib3R0b20sIHRvIGJvdHRvbSBsZWZ0LCB0byBsZWZ0IGJvdHRvbSwgdG8gbGVmdCwgdG8gbGVmdCB0b3AsIHRvIHRvcCBsZWZ0KSwgJHZhbHVlKTtcbiAgJGlzLWFuZ2xlOiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicgYW5kIGluZGV4KCdkZWcnICdncmFkJyAndHVybicgJ3JhZCcsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQHJldHVybiAkaXMta2V5d29yZCBvciAkaXMtYW5nbGU7XG59XG5cbi8vLyBDb252ZXJ0IGEgZGlyZWN0aW9uIHRvIGxlZ2FjeSBzeW50YXhcbi8vLyBAcGFyYW0ge0tleXdvcmQgfCBBbmdsZX0gJHZhbHVlIC0gVmFsdWUgdG8gY29udmVydFxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtZGlyZWN0aW9uXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb252ZXJ0LWFuZ2xlXG4vLy8gQHRocm93IENhbm5vdCBjb252ZXJ0IGAjeyR2YWx1ZX1gIHRvIGxlZ2FjeSBzeW50YXggYmVjYXVzZSBpdCBkb2Vzbid0IHNlZW0gdG8gYmUgYSBkaXJlY3Rpb24uO1xuQGZ1bmN0aW9uIGxlZ2FjeS1kaXJlY3Rpb24oJHZhbHVlKSB7XG4gIEBpZiBpcy1kaXJlY3Rpb24oJHZhbHVlKSA9PSBmYWxzZSB7XG4gICAgQGVycm9yIFwiQ2Fubm90IGNvbnZlcnQgYCN7JHZhbHVlfWAgdG8gbGVnYWN5IHN5bnRheCBiZWNhdXNlIGl0IGRvZXNuJ3Qgc2VlbSB0byBiZSBhIGRpcmVjdGlvbi5cIjtcbiAgfVxuXG4gICRjb252ZXJzaW9uLW1hcDogKFxuICAgIHRvIHRvcCAgICAgICAgICA6IGJvdHRvbSxcbiAgICB0byB0b3AgcmlnaHQgICAgOiBib3R0b20gbGVmdCxcbiAgICB0byByaWdodCB0b3AgICAgOiBsZWZ0IGJvdHRvbSxcbiAgICB0byByaWdodCAgICAgICAgOiBsZWZ0LFxuICAgIHRvIGJvdHRvbSByaWdodCA6IHRvcCBsZWZ0LFxuICAgIHRvIHJpZ2h0IGJvdHRvbSA6IGxlZnQgdG9wLFxuICAgIHRvIGJvdHRvbSAgICAgICA6IHRvcCxcbiAgICB0byBib3R0b20gbGVmdCAgOiB0b3AgcmlnaHQsXG4gICAgdG8gbGVmdCBib3R0b20gIDogcmlnaHQgdG9wLFxuICAgIHRvIGxlZnQgICAgICAgICA6IHJpZ2h0LFxuICAgIHRvIGxlZnQgdG9wICAgICA6IHJpZ2h0IGJvdHRvbSxcbiAgICB0byB0b3AgbGVmdCAgICAgOiBib3R0b20gcmlnaHRcbiAgKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGNvbnZlcnNpb24tbWFwLCAkdmFsdWUpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGNvbnZlcnNpb24tbWFwLCAkdmFsdWUpO1xuICB9XG5cbiAgQHJldHVybiA5MGRlZyAtICR2YWx1ZTtcbn1cblxuQG1peGluIGxpbmVhci1ncmFkaWVudCgkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHMuLi4pIHtcbiAgQGlmIGlzLWRpcmVjdGlvbigkZGlyZWN0aW9uKSA9PSBmYWxzZSB7XG4gICAgJGNvbG9yLXN0b3BzOiAkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHM7XG4gICAgJGRpcmVjdGlvbjogMTgwZGVnO1xuICB9XG5cbiAgYmFja2dyb3VuZDogbnRoKG50aCgkY29sb3Itc3RvcHMsIDEpLCAxKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVnYWN5LWRpcmVjdGlvbigkZGlyZWN0aW9uKSwgJGNvbG9yLXN0b3BzKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRkaXJlY3Rpb24sICRjb2xvci1zdG9wcyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLi4uKSB7XG4gICAgLW1vei10cmFuc2l0aW9uOiAgICAkdHJhbnNpdGlvbjtcbiAgICAtby10cmFuc2l0aW9uOiAgICAgICR0cmFuc2l0aW9uO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG4gICAgdHJhbnNpdGlvbjogICAgICAgICAkdHJhbnNpdGlvbjtcbn1cblxuLy8vIENsZWFyZml4IGV4dGVuZFxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vIC5mb28ge1xuLy8vIEBleHRlbmQgJWNsZWFyZml4O1xuLy8vIH1cblxuJWNsZWFyZml4IHtcbiAgICAqem9vbTogMTtcblxuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxufVxuXG4vLy8gUmVwc29uc2l2ZSBpbWFnZSBleHRlbmRcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAuZm9vIHtcbi8vLyBpbWcge1xuLy8vIEBleHRlbmQgJWltZy1yZXNwb25zaXZlO1xuLy8vIH1cbi8vLyB9XG4laW1nLXJlc3BvbnNpdmUge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi8vLyBHaXZlbiB0aGUgbG9jYXRpb24gb2YgYSB3ZWJmb250LCB3aWxsIGdlbmVyYXRlIGEgZm9udC1mYWNlIGRlY2xhcmF0aW9uIHdpdGggbXVsdGlwbGUgZmlsZSBmb3JtYXRzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZm9udC1uYW1lIC0gRm9udCBmYW1pbHkgbmFtZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZmlsZS1uYW1lIC0gRmlsZSBuYW1lIChubyBleHRlbnNpb24pXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR3ZWlnaHQgW25vcm1hbF0gLSBGb250IHdlaWdodFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3R5bGUgW25vcm1hbF0gLSBGb250IHN0eWxlXG5cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyBAaW5jbHVkZSBmb250LWZhY2UoJ2dvdGhhbScsICcvZm9udHMvZ290aGFtJyk7XG5AbWl4aW4gZm9udC1mYWNlKCRmb250LW5hbWUsICRmaWxlLW5hbWUsICR3ZWlnaHQ6IG5vcm1hbCwgJHN0eWxlOiBub3JtYWwpIHtcbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IHF1b3RlKCRmb250LW5hbWUpO1xuICAgIHNyYzogdXJsKCRmaWxlLW5hbWUgKyAnLmVvdCcpO1xuICAgIHNyYzogdXJsKCRmaWxlLW5hbWUgKyAnLmVvdD8jaWVmaXgnKSAgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgdXJsKCRmaWxlLW5hbWUgKyAnLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgIHVybCgkZmlsZS1uYW1lICsgJy50dGYnKSAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgdXJsKCRmaWxlLW5hbWUgKyAnLnN2ZyMjeyRmb250LW5hbWV9JykgIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICB9XG59XG5cbi8vLyBDcmVhdGUgcm91bmRlZCBjb3JuZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ9IC0gQXJjIHZhbHVlLCBjYW4gYmUgcHggb3IgcGVyY2VudFxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vIEBpbmNsdWRlIHJvdW5kZWQtY29ybmVycyg1MCUpO1xuQG1peGluIHJvdW5kZWQtY29ybmVycygkYXJjKSB7XG5cdC1tb3otYm9yZGVyLXJhZGl1czogJGFyYztcblx0LXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYXJjO1xuXHRib3JkZXItcmFkaXVzOiAkYXJjO1xuXHQta2h0bWwtYm9yZGVyLXJhZGl1czogJGFyYztcbn1cblxuLy8vIENvbnZlcnQgcHggZm9udC1zaXplIHRvIGVtXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRweCAtIEZvbnQgc2l6ZSAoMThweClcbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbnRleHQgLSBDb250ZXh0IGZvbnQgc2l6ZSAoMThweClcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vL2ZvbnQtc2l6ZTogY2FsYy1lbSgxOHB4LCAyMHB4KTtcbkBmdW5jdGlvbiBjYWxjLWVtKCRzaXplLCAkY29udGV4dDogJGJhc2UtZm9udC1jb250ZXh0KSB7XG4gICAgQHJldHVybiAoJHNpemUgLyAkY29udGV4dCkgKiAxZW07XG59XG5cbkBtaXhpbiBjYWxjLXJlbSgkc2l6ZSwgJGNvbnRleHQ6ICRiYXNlLWZvbnQtY29udGV4dCkge1xuICBmb250LXNpemU6ICRzaXplICsgcHg7XG4gIGZvbnQtc2l6ZTogKCRzaXplIC8gJGNvbnRleHQpICogMXJlbTtcbn1cblxuLy8vIENyZWF0ZSBhIHRleHQtc2hhZG93XG5AbWl4aW4gbGV0dGVycHJlc3MoJHNoYWRvdyl7XG4gICAgdGV4dC1zaGFkb3c6IG1peChibGFjaywgJHNoYWRvdywgMTUlKSAwIDFweCAwO1xufVxuXG4vLy8gQ3JlYXRlIGEgc21hbGwgYmFkZ2UgLSB0ZXh0IHdpdGggYmFja2dyb3VuZCAoTXkgSW5ib3ggWzEwXSlcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyBAaW5jbHVkZSBiYWRnZSgjMDAwLCAjZmZmKTtcbkBtaXhpbiBiYWRnZSgkYmFja2dyb3VuZCwgJGNvbG9yLCAkd2lkdGg6IGZhbHNlLCAkaGVpZ2h0OiBmYWxzZSkge1xuICAgIEBpbmNsdWRlIHJvdW5kZWQtY29ybmVycyg1MCUpO1xuICAgIEBpbmNsdWRlIGxldHRlcnByZXNzKCRiYWNrZ3JvdW5kKTtcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQoJGJhY2tncm91bmQsIG1peChibGFjaywgJGJhY2tncm91bmQsIDIwJSkpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjokYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTJweDtcblxuICAgIC8vZm9udC1zaXplOiA4MCU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwLjVlbSAwLjhlbTtcbiAgICBwYWRkaW5nOiAzcHggN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCAkaG9yaXogOiAuNWVtICwgJHZlcnQgOiAuNWVtICwgJGJsdXIgOiAwcHggLCAkc3ByZWFkIDogMHB4ICwgJGNvbG9yIDogIzAwMDAwMCApe1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRob3JpeiAkdmVydCAkYmx1ciAkc3ByZWFkICRjb2xvcjtcbiAgLW1vei1ib3gtc2hhZG93OiAkaG9yaXogJHZlcnQgJGJsdXIgJHNwcmVhZCAkY29sb3I7XG4gIGJveC1zaGFkb3c6ICRob3JpeiAkdmVydCAkYmx1ciAkc3ByZWFkICRjb2xvcjtcbn1cblxuQG1peGluIGRlYnVnbWVzc2FnZSgkbWVzc2FnZSwgJHNpemUsICRjb2xvcjogcmdiYSgyNTUsMjU1LDAsIDAuNiksICRjb2xvcl90ZXh0OiAjMDAwMDAwICl7XG4gICAgJjo6YWZ0ZXJ7XG4gICAgICAgIGNvbnRlbnQ6ICRtZXNzYWdlOyBiYWNrZ3JvdW5kOiAjeyRjb2xvcn07IGNvbG9yOiAjeyRjb2xvcl90ZXh0fTtcbiAgICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBib2xkOyBkaXNwbGF5OiBibG9jazsgdGV4dC1hbGlnbjogY2VudGVyOyBoZWlnaHQ6IDMwcHg7IGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7IHJpZ2h0OiAwOyBsZWZ0OiAwOyBib3R0b206IDA7IHotaW5kZXg6IDk5OTtcbiAgICB9XG59XG4iLCIvL0BpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1PcGVuK1NhbnM6NDAwLDYwMCk7XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnQXJxdWl0ZWN0YSc7XG4gICAgc3JjOiAgdXJsKCcjeyRmb250cy1kaXJ9L2FycXVpdGVjdGEtYm9sZC13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJyN7JGZvbnRzLWRpcn0vYXJxdWl0ZWN0YS1ib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufSIsIi8vTG9hZCBtaXhpbnMsIGZ1bmN0aW9ucy4uLlxuQGltcG9ydCBcInV0aWxzL19sb2FkZXJcIjtcblxuLy8gaHRtbCwgaGVhZGluZywgZXRjLlxuQGltcG9ydCBcImJhc2UvX2dsb2JhbHNcIjtcblxuLy9fZm9udHNcbkBpbXBvcnQgXCJfZm9udHMuc2Nzc1wiO1xuXG4kZm9udC1zaXplLWNvbnRleHQ6IDE1O1xuJGZvbnQtcmVndWxhcjogJ0FycXVpdGVjdGEnLCBzYW5zLXNlcmlmO1xuJGZvbnQtYmFzZTogJGZvbnQtcmVndWxhcjtcblxuJHNlbWktYm9sZDogNzAwO1xuXG5cbiRzY2hlbWUtY29sb3JzOiAoXG5cdFx0XHRcdCdwcmltYXJ5JzogKFxuXHRcdFx0XHRcdFx0XHRcdCdncmVlbic6ICM4ZWM1NDksXG5cdFx0XHRcdFx0XHRcdFx0J2Jyb3duJzogIzgwNmE1Nixcblx0XHRcdFx0XHRcdFx0XHQnZGFyayc6ICNjOTMwMmNcblx0XHRcdFx0KSxcblxuXHRcdFx0XHQnYnJvd24nOiAoXG5cdFx0XHRcdFx0XHRcdFx0J2Jhc2UnOiAjODA2YTU2LFxuXHRcdFx0XHRcdFx0XHRcdCdtZWRpdW0nOiAjNWEzZjI2LFxuXHRcdFx0XHRcdFx0XHRcdCdsaWdodCc6ICNmNmY1ZjEsXG5cdFx0XHRcdFx0Ly8nZGFyayc6ICM1YTNmMjZcblx0XHRcdFx0XHRcdFx0XHQnZGFyayc6ICMzYjMwMjhcblx0XHRcdFx0KSxcblxuXHRcdFx0XHQnZ3JlZW4nOiAoXG5cdFx0XHRcdFx0XHRcdFx0J2Jhc2UnOiAjOTNjZjQ4LFxuXHRcdFx0XHRcdFx0XHRcdCdtZWRpdW0nOiAjNGNhOTQ4LFxuXHRcdFx0XHRcdFx0XHRcdCdkYXJrJzogIzI3YTg0ZlxuXHRcdFx0XHQpLFxuXG5cdFx0XHRcdCdmb3JlZ3JvdW5kJzogKFxuXHRcdFx0XHRcdFx0XHRcdCdiYXNlJzogIzgwNmE1NiwgIC8vYnJvd25cblx0XHRcdFx0XHRcdFx0XHQnbGlnaHQnOiAjOGVjNTQ5LCAvL2dyZWVuXG5cdFx0XHRcdCksXG5cblx0XHRcdFx0J2JhY2tncm91bmQnOiAoXG5cdFx0XHRcdFx0XHRcdFx0J2Jhc2UnOiAjZTllOWU5LFxuXHRcdFx0XHRcdFx0XHRcdCdsaWdodCc6ICNmZmZmZmYsXG5cdFx0XHRcdFx0XHRcdFx0J2RhcmsnOiAjMDAwXG5cdFx0XHRcdClcbik7XG5cblxuXG5AbWVkaWEgcHJpbnQge1xuXHQqLFxuXHQqOmJlZm9yZSxcblx0KjphZnRlcixcblx0KjpmaXJzdC1sZXR0ZXIsXG5cdCo6Zmlyc3QtbGluZSB7XG5cdFx0Y29sb3I6ICMwMDAgIWltcG9ydGFudDsgLyogQmxhY2sgcHJpbnRzIGZhc3Rlcjpcblx0XHRodHRwOi8vd3d3LnNhbmJlaWppLmNvbS9hcmNoaXZlcy85NTMgKi9cblx0XHRib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0dGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcblx0XHR0cmFuc2l0aW9uOm5vbmUhaW1wb3J0YW50O1xuXHR9XG5cblx0YSxcblx0YTp2aXNpdGVkIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0fVxuXG5cdGFbaHJlZl06YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiO1xuXHR9XG5cblx0YWJiclt0aXRsZV06YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjtcblx0fVxuXG5cdC8qXG5cdCogRG9uJ3Qgc2hvdyBsaW5rcyB0aGF0IGFyZSBmcmFnbWVudCBpZGVudGlmaWVycyxcblx0KiBvciB1c2UgdGhlIGBqYXZhc2NyaXB0OmAgcHNldWRvIHByb3RvY29sXG5cdCovXG5cblx0YVtocmVmXj1cIiNcIl06YWZ0ZXIsXG5cdGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0fVxuXG5cdHByZSxcblx0YmxvY2txdW90ZSB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgIzk5OTtcblx0XHRwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG5cdH1cblxuXHRib2R5IHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdH1cblxuXHRcdGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuXHR9XG5cblx0Lypcblx0KiBQcmludGluZyBUYWJsZXM6XG5cdCogaHR0cDovL2Nzcy1kaXNjdXNzLmluY3V0aW8uY29tL3dpa2kvUHJpbnRpbmdfVGFibGVzXG5cdCovXG5cblx0dGhlYWQge1xuXHRcdGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDtcblx0fVxuXG5cdHRyLFxuXHRpbWcge1xuXHRcdHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcblx0fVxuXG5cdGltZyB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdH1cblxuXHRoMSB7XG5cdFx0Zm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG5cdH1cblxuXHRoMiwgaDMge1xuXHRcdGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuXHR9XG5cblx0cCxcblx0aDIsXG5cdGgzIHtcblx0XHRvcnBoYW5zOiAzO1xuXHRcdHdpZG93czogMztcblx0fVxuXG5cdGgyLFxuXHRoMyB7XG5cdFx0cGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG5cdH1cblx0KiB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cblxuXHQ6cm9vdCB7XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLWNvbnRleHQgKiAxcHg7XG5cdH1cblxuXHRodG1sLCBib2R5IHtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0bWluLWhlaWdodDogMTAwJTtcblx0fVxuXG5cdGJvZHkge1xuXHRcdGNvbG9yOiBzY2hlbWUtY29sb3IoJ3ByaW1hcnknLCAnZGFyaycpO1xuXHRcdGZvbnQtZmFtaWx5OiAkZm9udC1iYXNlO1xuXHRcdGZvbnQtd2VpZ2h0OiAkc2VtaS1ib2xkO1xuXHRcdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRcdGJhY2tncm91bmQ6IHNjaGVtZS1jb2xvcigncHJpbWFyeScsICdkYXJrJyk7XG5cdH1cblxuXHQuc2FtZS1oZWlnaHQge1xuXHRcdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuXHR9XG5cblx0I2JyZWFkY3J1bWJzIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LmZvb3RlciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdGJvZHkuc2luZ2xlLV9yZWNpcGUge1xuXHRcdHBhZGRpbmc6IDMwcHggNDVweDtcblxuXHRcdC5jLXNlY3Rpb24sIC5jLXNlY3Rpb24tLWRlZmF1bHQgLmMtc2VjdGlvbl9fYm9keSwgLmMtc2VjdGlvbi0tZGVmYXVsdCAuYy1zZWN0aW9uX19tZWRpYSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXHRcdH1cblxuXHRcdC5jLXNvY2lhbCwgLmMtYnRuIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cblxuXG5cblx0XHQuYy1tZW51LXByaW1hcnkge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdG5hdiB7ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O31cblx0XHRcdC5jLW1lbnUtcHJpbWFyeV9fd3JhcHBlciB7XG5cdFx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYy1tZW51LW1vYmlsZSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdC5sb2dvIHtcblx0XHRcdHdpZHRoOiAxMjBweDtcblx0XHR9XG5cblx0XHQuYy1zZWN0aW9uLS1oZWFkZXIge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRwYWRkaW5nLXRvcDogMjBweDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHQuYy1zZWN0aW9uX193cmFwcGVyIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMjBweDtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDIwcHg7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHQuYy1zZWN0aW9uX19ib2R5X193cmFwcGVyIHtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHRcdGgxIHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5jLXNlY3Rpb25fX2JvZHkge1xuXHRcdFx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHRcdFx0XHRtYXgtd2lkdGg6IGluaGVyaXQgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0LmMtc2VjdGlvbl9fbWVkaWEge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXG5cdFx0XHRcdGxlZnQ6IDAgIWltcG9ydGFudDsgcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcblxuXHRcdFx0XHRpbWcge1xuXG5cdFx0XHRcdFx0bWF4LWhlaWdodDogMzUwcHggIWltcG9ydGFudDtcblx0XHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0XHQvL3RvcDogNTAlO1xuXHRcdFx0XHRcdC8vdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdFx0XHRcdC8vaGVpZ2h0OiBhdXRvO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmMtc2VjdGlvbi0tZGVmYXVsdCAge1xuXG5cdFx0XHQuYy1zZWN0aW9uX19tZWRpYSB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRcdC5jLXNlY3Rpb25fX21lZGlhX193cmFwcGVye1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ll9yZWxhdGVkX3Byb2R1Y3Qge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRoMyB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGgzIHtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0XHR9XG5cdFx0XHRcdHVsIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuYy1zZWN0aW9uX19ib2R5IHtcblx0XHRcdFx0LmMtc2VjdGlvbl9fYm9keV9fd3JhcHBlciB7XG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdFx0XHQuc2VwIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHR1bCB7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cCB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiA4cHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdC50b29sIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmMtc2VjdGlvbi0tcmVsYXRlZCB7XG5cdFx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG59XG4iXX0= */
