
@import url("https://fonts.googleapis.com/css?family=Bitter:700|Open+Sans");
/* ==========================================================================
 * Styles
 * ========================================================================== */
/* Vendor */
/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Correct the line height in all browsers.
 * 3. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
/* Document
   ========================================================================== */
html {
  font-family: sans-serif; /* 1 */
  line-height: 1.15; /* 2 */
  -ms-text-size-adjust: 100%; /* 3 */
  -webkit-text-size-adjust: 100%; /* 3 */
}
/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0;
}
/**
 * Add the correct display in IE 9-.
 */
article, aside, footer, header, nav, section {
  display: block;
}
/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
/* Grouping content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */
figcaption, figure, main { /* 1 */
  display: block;
}
/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 40px;
}
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}
/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent; /* 1 */
  -webkit-text-decoration-skip: objects; /* 2 */
}
/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */
a:active, a:hover {
  outline-width: 0;
}
/**
 * 1. Remove the bottom border in Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}
/**
 * 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: bolder;
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code, kbd, samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}
/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic;
}
/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000;
}
/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}
/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
/* Embedded content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
audio, video {
  display: inline-block;
}
/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}
/**
 * Remove the border on images inside links in IE 10-.
 */
img {
  border-style: none;
}
/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden;
}
/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button, input, optgroup, select, textarea {
  font-family: sans-serif; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}
/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button, input { /* 1 */
  overflow: visible;
}
/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button, select { /* 1 */
  text-transform: none;
}
/**
 * 1. Prevent a 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.
 */
button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}
/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}
/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
}
/**
 * Remove the default vertical scrollbar in IE.
 */
textarea {
  overflow: auto;
}
/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type="checkbox"], [type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}
/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button {
  height: auto;
}
/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}
/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}
/* Interactive
   ========================================================================== */
/*
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 */
details, menu {
  display: block;
}
/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}
/* Scripting
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
canvas {
  display: inline-block;
}
/**
 * Add the correct display in IE.
 */
template {
  display: none;
}
/* Hidden
   ========================================================================== */
/**
 * Add the correct display in IE 10-.
 */
[hidden] {
  display: none;
}
/*! 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: bolder;
}
/**
 * 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).
 */
::-moz-selection {
	background-color: #b3d4fc; /* 1 */
	color: #000000; /* 1 */
	text-shadow: none;
}
::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;
}
/*@import "0_vendor/vendor";*/
/*
  Settings

  Weight: 0

  Styleguide Settings
*/
/* ==========================================================================
 * Mixins
 * ========================================================================== */
/*
  Mixins

  Mixins can be used via `@apply`. For example,
  ```css
  .c-label {
    @apply --m-text-overflow-ellipsis;
  }
  ```

  Styleguide Settings.Mixins
*/
/*
  Text Ellipsis

  `--m-text-overflow-ellipsis`

  Styleguide: Settings.Mixins.Text Ellipsis
*/
/* ==========================================================================
 * Variables
 * ========================================================================== */
:root {

  /* Headings */
}
/*
  Colors

  <div class="sg-color-blocks">
    <div class="sg-color-block sg-color-block--blue"><code>--color-blue</code></div>
    <div class="sg-color-block sg-color-block--gray"><code>--color-gray</code></div>
    <div class="sg-color-block sg-color-block--gray-light"><code>--color-gray-light</code></div>
    <div class="sg-color-block sg-color-block--charcoal"><code>--color-charcoal</code></div>
  </div>

  Styleguide Settings.Colors
*/
/* These styles are used by the style guide example */
.sg-color-block {
  -ms-flex-align: center;
      align-items: center;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: justify;
      justify-content: space-between;
}
.sg-color-block:not(:last-child) {
  margin-bottom: 12px;
}
.sg-color-block:after {
  border-radius: 0.2em;
  content: "";
  display: block;
  height: 36px;
  width: 50%;
}
.sg-color-block--blue:after{
  background: #3498db;
}
.sg-color-block--gray:after{
  background: #999;
}
.sg-color-block--gray-light:after{
  background: #ddd;
}
.sg-color-block--charcoal:after{
  background: #111;
}
/*
  Elements

  Weight: 1

  Styleguide Elements
*/
/* ==========================================================================
 * Body
 * ========================================================================== */
body {
  background-color: #fff;
}
/* ==========================================================================
 * Buttons
 * ========================================================================== */
/*
  Buttons

  Markup:
  <button>Button</button>

  Styleguide: Elements.Buttons
*/
button {
  color: #111;
  cursor: pointer;
  font-family: "Open Sans", "Arial", sans-serif;
  font-size: 14px;
  -webkit-font-smoothing: inherit;
  line-height: 1.5;
  padding: 0;
  text-align: center;
  text-decoration: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
/* ==========================================================================
 * Lists
 * ========================================================================== */
/*
  Lists

  Markup:
  <h3>Ordered List</h3>
  <ol>
    <li>List Item 1</li>
    <li>List Item 2</li>
    <li>List Item 3</li>
  </ol>
  <h3>Unordered List</h3>
  <ul>
    <li>List Item 1</li>
    <li>List Item 2
      <ul>
        <li>List Item 1</li>
        <li>List Item 2</li>
        <li>List Item 3</li>
      </ul>
    </li>
    <li>List Item 3</li>
  </ul>

  Styleguide: Elements.Lists
*/
ol, ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
/*
  Definition Lists

  Markup:
  <dl>
    <dt>Definition List Title</dt>
    <dd>This is a definition list division.</dd>
    <dt>Definition List Title</dt>
    <dd>This is a definition list division.</dd>
    <dt>Definition List Title</dt>
    <dd>This is a definition list division.</dd>
  </dl>

  Styleguide: Elements.Lists.Definition Lists
*/
dl, dt, dd {
  margin: 0;
}
/* ==========================================================================
 * Typography
 * ========================================================================== */
/*
  Typography

  Styleguide: Elements.Typography
*/
html {
  color: #111;
  font-family: "Open Sans", "Arial", sans-serif;
  font-size: 14px;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-weight: 400;
  line-height: 1.5;
}
/*
  Headings

  Markup:
  <h1>Heading 1</h1>
  <h2>Heading 2</h2>
  <h3>Heading 3</h3>
  <h4>Heading 4</h4>
  <h5>Heading 5</h5>
  <h6>Heading 6</h6>

  Styleguide: Elements.Typography.Headings
*/
h1, h2, h3, h4, h5, h6 {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
}
/*
  Paragraphs

  Markup:
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

  Styleguide: Elements.Typography.Paragraphs
*/
p {
  margin: 0;
}
p:not(:last-child) {
  margin-bottom: 24px;
}
/*
  Links

  Markup:
  <a>Link</a>

  Styleguide: Elements.Typography.Links
*/
a {
  color: #3498db;
  cursor: pointer;
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
::-moz-selection {
  background: #3498db;
  color: #fff;
}
::selection {
  background: #3498db;
  color: #fff;
}
/*
  Components

  Weight: 2

  Styleguide Components
*/
/* ==========================================================================
 * Buttons
 * ========================================================================== */
/*
  Buttons

  Markup:
  <button class="c-button">Button</button>

  Styleguide: Components.Buttons
*/
.c-button {
  border: 1px solid #ddd;
  border-radius: 0.2em;
  padding: 6px 12px;
}
/*
  Layout

  Weight: 3

  Styleguide Layout
*/
/* ==========================================================================
 * Section
 * ========================================================================== */
/*
  Section

  Markup:
  <section class="l-section">
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
  </section>

  Styleguide: Layout.Section
*/
.l-section {
  padding: 24px;
}
/*
  Helpers

  Weight: 4

  Styleguide Helpers
*/
/* ==========================================================================
 * Typography
 * ========================================================================== */
/*
  Typography

  Styleguide: Helpers.Typography
*/
/*
  Text Alignment

  Markup:
  <p class="h-text-align-left">Lorem ipsum dolor sit amet.</p>
  <p class="h-text-align-center">Lorem ipsum dolor sit amet.</p>
  <p class="h-text-align-right">Lorem ipsum dolor sit amet.</p>

  Styleguide: Helpers.Typography.Text Alignment
*/
.h-text-align-left { text-align: left !important; }
.h-text-align-center { text-align: center !important; }
.h-text-align-right { text-align: right !important; }
/*
  Text Ellipsis

  Markup:
  <p class="h-text-overflow-ellipsis">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

  Styleguide: Helpers.Typography.Text Ellipsis
*/
.h-text-overflow-ellipsis {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
/* Style Guide */
/* ==========================================================================
 * Slideout Menu
 * ========================================================================== */
@media screen and (max-width: 979px) {
  .sg-overlay{
    background: #000000;
    background: rgba(0, 0, 0, 0.4);
    bottom: 0;
    content: "";
    cursor: pointer;
    display: block;
    left: 0;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    right: 0;
    top: 0;
    transition: opacity 0.3s ease-in-out;
    z-index: 99;
  }
}
@media screen and (max-width: 979px) {
  .sg-overlay.is-visible{
    opacity: 1;
    pointer-events: all;
  }
}
.sg-slideout-menu {
  background: #fff;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  width: 180px;
  z-index: 100;
}
@media screen and (max-width: 979px) {
  .sg-slideout-menu{
    bottom: 0;
    left: 0;
    position: absolute;
    top: 0;
    -ms-transform: translateX(-100%);
        transform: translateX(-100%);
    transition: box-shadow 0.3s ease-in-out,
      transform 0.3s ease-in-out;
  }
}
@media screen and (min-width: 980px) {
  .sg-slideout-menu{
    border-right: 1px solid #ddd;
  }
}
@media screen and (max-width: 979px) {
  .sg-slideout-menu.is-visible{
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
    -ms-transform: translateX(0);
        transform: translateX(0);
  }
}
/* ==========================================================================
 * Style Guide
 * ========================================================================== */
:root { /* Don't convert to rem */ /* Don't convert to rem */ /* Don't convert to rem */
}
.sg-page {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  height: 100vh;
  overflow: hidden;
}
.sg-page__header {
  -ms-flex-align: center;
      align-items: center;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
  display: -ms-flexbox;
  display: flex;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding: 12px;
  z-index: 300;
}
.sg-page__main {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-positive: 1;
      flex-grow: 1;
  overflow: hidden;
  position: relative;
}
.sg-header {
  -ms-flex-align: center;
      align-items: center;
  display: -ms-flexbox;
  display: flex;
}
.sg-header__title {
  color: #3498db;
  font-weight: 700;
  text-transform: uppercase;
}
.sg-hamburger {
  cursor: pointer;
  display: inline-block;
  margin: -6px;
  margin-right: 6px;
  padding: 6px;
}
@media screen and (min-width: 980px) {
  .sg-hamburger{
    display: none;
  }
}
.sg-hamburger__icon {
  height: 18PX;
  pointer-events: none;
  position: relative;
  width: 18PX;
}
.sg-hamburger__line {
  background-color: #3498db;
  border-radius: 100px;
  display: block;
  height: 2PX;
  left: 0;
  position: absolute;
  transition: top 0.15s ease-in-out 0.15s,
      bottom 0.15s ease-in-out 0.15s,
      transform 0.15s ease-in-out;
  width: 100%;
}
.is-active .sg-hamburger__line {
  transition: top 0.15s ease-in-out,
        bottom 0.15s ease-in-out,
        transform 0.15s ease-in-out 0.15s;
}
.sg-hamburger__line:nth-child(1) {
  top: 1PX;
  -ms-transform: translateY(-50%) rotate(0deg);
      transform: translateY(-50%) rotate(0deg);
}
.is-active .sg-hamburger__line:nth-child(1) {
  top: 50%;
  -ms-transform: translateY(-50%) rotate(45deg);
      transform: translateY(-50%) rotate(45deg);
}
.sg-hamburger__line:nth-child(2) {
  top: 50%;
  -ms-transform: translateY(-50%) rotate(0deg);
      transform: translateY(-50%) rotate(0deg);
}
.is-active .sg-hamburger__line:nth-child(2) {
  -ms-transform: translateY(-50%) rotate(45deg);
      transform: translateY(-50%) rotate(45deg);
}
.sg-hamburger__line:nth-child(3) {
  bottom: 1PX;
  -ms-transform: translateY(50%) rotate(0deg);
      transform: translateY(50%) rotate(0deg);
}
.is-active .sg-hamburger__line:nth-child(3) {
  bottom: 50%;
  -ms-transform: translateY(50%) rotate(-45deg);
      transform: translateY(50%) rotate(-45deg);
}
.sg-sidebar {
  padding-bottom: 12px;
  padding-top: 12px;
}
@media screen and (min-width: 900px) {
  .sg-sidebar{
    -ms-flex-preferred-size: 250px;
        flex-basis: 250px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    position: relative;
  }
}
.sg-sidebar__menu a {
  color: #111;
  display: block;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 12px;
  text-decoration: none;
}
.sg-sidebar__menu a:hover {
  background: #000000;
  background: rgba(0, 0, 0, 0.05);
}
.sg-sidebar__menu ul a {
  padding-left: 24px;
}
.sg-main {
  -ms-flex-positive: 1;
      flex-grow: 1;
  -webkit-overflow-scrolling: touch;
  overflow-x: hidden;
  overflow-y: auto;
}
.sg-section {
  padding-bottom: 36px;
  padding-top: 36px;
}
.sg-section--depth-1 {
  background-color: #3498db;
  color: #fff;
}
.sg-section--depth-1 a {
  color: #fff;
}
.sg-section__header:not(:last-child) {
  margin-bottom: 24px;
}
.sg-section__h1 {
  font-family: "Bitter", "Arial", sans-serif;
  font-weight: 700;
  line-height: 1.2;
  font-size: 30px;
}
.sg-section__h1:not(:last-child){
  margin-bottom: 12px;
}
.sg-section__h2 {
  font-family: "Bitter", "Arial", sans-serif;
  font-weight: 700;
  line-height: 1.2;
  font-size: 22px;
}
.sg-section__h2:not(:last-child){
  margin-bottom: 12px;
}
.sg-section__h3 {
  font-family: "Bitter", "Arial", sans-serif;
  font-weight: 700;
  line-height: 1.2;
  font-size: 16px;
}
.sg-section__h3:not(:last-child){
  margin-bottom: 12px;
}
.sg-section__h4 {
  font-family: "Bitter", "Arial", sans-serif;
  font-weight: 700;
  line-height: 1.2;
  font-size: 14px;
}
.sg-section__h4:not(:last-child){
  margin-bottom: 12px;
}
.sg-section__description {
  border-left: 1px solid #ddd;
  max-width: 600px;
  padding-left: 12px;
}
.sg-section__description:not(:last-child) {
  margin-bottom: 12px;
}
.sg-section__markup-label {
  -ms-flex-align: center;
      align-items: center;
  background: #000000;
  background: rgba(0, 0, 0, 0.05);
  border: 1px solid #ddd;
  border-bottom: 0;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: justify;
      justify-content: space-between;
  padding: 6px;
}
.sg-section__markup-label:first-child {
  border-top: none;
  margin-top: 0;
  padding-top: 0;
}
.sg-section__markup {
  border: 1px solid #ddd;
  border-bottom: 0;
  padding: 24px;
}
.sg-section.is-dark .sg-section__markup {
  background: #111;
}
.sg-section__code {
  background: #000000;
  background: rgba(0, 0, 0, 0.05);
  border: 1px solid #ddd;
  padding: 12px;
}
.sg-container {
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}
.sg-c-label {
  letter-spacing: 0.1em;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
}
/* ==========================================================================
 * Syntax Highlighting
 * ========================================================================== */
code, pre {
  color: #111;
  direction: ltr;
  font-family: "Consolas", "Liberation Mono", "Menlo", "Courier", monospace;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
  line-height: 1.4;
  overflow: auto;
  -webkit-overflow-scroll: touch;
  -moz-tab-size: 4;
    -o-tab-size: 4;
       tab-size: 4;
  text-align: left;
  white-space: pre;
  word-break: normal;
  word-spacing: normal;
}
pre {
  margin: 0;
}
pre code {
  background-color: transparent;
  padding: 0;
}
code {
  background-color: #000000;
  background-color: rgba(0, 0, 0, 0.05);
  border-radius: 2px;
  font-size: 12px;
  padding: 3px 6px;
}
.token.comment, .token.prolog, .token.doctype, .token.cdata {
  color: #999;
}
.token.string, .token.attr-value {
  color: #183691;
}
.token.punctuation, .token.operator {
  color: #999;
}
.token.entity, .token.url, .token.symbol, .token.number, .token.boolean, .token.variable, .token.constant, .token.property, .token.regex, .token.inserted {
  color: #183691;
}
.token.atrule, .token.keyword, .token.attr-name, .language-autohotkey .token.selector {
  color: #795da3;
}
.token.function, .token.deleted, .language-autohotkey .token.tag {
  color: #9a050f;
}
.token.tag, .token.selector, .language-autohotkey .token.keyword {
  color: #63a35c;
}
.token.important, .token.function, .token.bold {
  font-weight: 700;
}
.token.italic {
  font-style: italic;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jc3Mvc3R5bGVzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub3JtYWxpemUuY3NzL25vcm1hbGl6ZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvc2FuaXRpemUuY3NzL3Nhbml0aXplLmNzcyIsIi4uLy4uL3NyYy9jc3MvMV9zZXR0aW5ncy9taXhpbnMuY3NzIiwiLi4vLi4vc3JjL2Nzcy8xX3NldHRpbmdzL3ZhcmlhYmxlcy5jc3MiLCIuLi8uLi9zcmMvY3NzLzJfZWxlbWVudHMvYm9keS5jc3MiLCIuLi8uLi9zcmMvY3NzLzJfZWxlbWVudHMvYnV0dG9ucy5jc3MiLCIuLi8uLi9zcmMvY3NzLzJfZWxlbWVudHMvbGlzdHMuY3NzIiwiLi4vLi4vc3JjL2Nzcy8yX2VsZW1lbnRzL3R5cG9ncmFwaHkuY3NzIiwiLi4vLi4vc3JjL2Nzcy8zX2NvbXBvbmVudHMvYnV0dG9ucy5jc3MiLCIuLi8uLi9zcmMvY3NzLzRfbGF5b3V0L3NlY3Rpb25zLmNzcyIsIi4uLy4uL3NyYy9jc3MvNV9oZWxwZXJzL3R5cG9ncmFwaHkuY3NzIiwiLi4vLi4vc3JjL2Nzcy82X3N0eWxlZ3VpZGUvc2xpZGVvdXQtbWVudS5jc3MiLCIuLi8uLi9zcmMvY3NzLzZfc3R5bGVndWlkZS9zdHlsZWd1aWRlLmNzcyIsIi4uLy4uL3NyYy9jc3MvNl9zdHlsZWd1aWRlL3N5bnRheC1oaWdobGlnaHRpbmcuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFPQSw0RUFBNEU7QUFQNUU7O2dGQUVnRjtBQUVoRixZQUFZO0FDSlosNEVBQTRFO0FBRTVFOzs7OztHQUtHO0FBRUg7Z0ZBQ2dGO0FBRWhGO0VBQ0Usd0JBQXdCLENBQUMsT0FBTztFQUNoQyxrQkFBa0IsQ0FBQyxPQUFPO0VBQzFCLDJCQUEyQixDQUFDLE9BQU87RUFDbkMsK0JBQStCLENBQUMsT0FBTztDQUN4QztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0UsVUFBVTtDQUNYO0FBRUQ7O0dB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QUMzQjtBQUVEO0VBR0UsaUJBQXFDO0NBQ3RDO0FBRUQ7RUFDRSxtQkFBbUI7Q0FDcEIiLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBTdHlsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIFZlbmRvciAqL1xuQGltcG9ydCBcIm5vcm1hbGl6ZS5jc3NcIjtcbkBpbXBvcnQgXCJzYW5pdGl6ZS5jc3NcIjtcbkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PUJpdHRlcjo3MDB8T3BlbitTYW5zXCIpO1xuLypAaW1wb3J0IFwiMF92ZW5kb3IvdmVuZG9yXCI7Ki9cblxuLypcbiAgU2V0dGluZ3NcblxuICBXZWlnaHQ6IDBcblxuICBTdHlsZWd1aWRlIFNldHRpbmdzXG4qL1xuQGltcG9ydCBcIjFfc2V0dGluZ3MvbWl4aW5zXCI7XG5AaW1wb3J0IFwiMV9zZXR0aW5ncy92YXJpYWJsZXNcIjtcblxuLypcbiAgRWxlbWVudHNcblxuICBXZWlnaHQ6IDFcblxuICBTdHlsZWd1aWRlIEVsZW1lbnRzXG4qL1xuQGltcG9ydCBcIjJfZWxlbWVudHMvYm9keVwiO1xuQGltcG9ydCBcIjJfZWxlbWVudHMvYnV0dG9uc1wiO1xuQGltcG9ydCBcIjJfZWxlbWVudHMvbGlzdHNcIjtcbkBpbXBvcnQgXCIyX2VsZW1lbnRzL3R5cG9ncmFwaHlcIjtcblxuLypcbiAgQ29tcG9uZW50c1xuXG4gIFdlaWdodDogMlxuXG4gIFN0eWxlZ3VpZGUgQ29tcG9uZW50c1xuKi9cbkBpbXBvcnQgXCIzX2NvbXBvbmVudHMvYnV0dG9uc1wiO1xuXG4vKlxuICBMYXlvdXRcblxuICBXZWlnaHQ6IDNcblxuICBTdHlsZWd1aWRlIExheW91dFxuKi9cbkBpbXBvcnQgXCI0X2xheW91dC9zZWN0aW9uc1wiO1xuXG4vKlxuICBIZWxwZXJzXG5cbiAgV2VpZ2h0OiA0XG5cbiAgU3R5bGVndWlkZSBIZWxwZXJzXG4qL1xuQGltcG9ydCBcIjVfaGVscGVycy90eXBvZ3JhcGh5XCI7XG5cbi8qIFN0eWxlIEd1aWRlICovXG5AaW1wb3J0IFwiNl9zdHlsZWd1aWRlL3NsaWRlb3V0LW1lbnVcIjtcbkBpbXBvcnQgXCI2X3N0eWxlZ3VpZGUvc3R5bGVndWlkZVwiO1xuQGltcG9ydCBcIjZfc3R5bGVndWlkZS9zeW50YXgtaGlnaGxpZ2h0aW5nXCI7XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2NS4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDIgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5cbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5tYWluIHsgLyogMSAqL1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmUtd2lkdGg6IDA7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIEZpcmVmb3ggMzktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscywgLyogMSAqL1xubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIFNjcmlwdGluZ1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBIaWRkZW5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qISBzYW5pdGl6ZS5jc3MgdjQuMS4wIHwgQ0MwIExpY2Vuc2UgfCBnaXRodWIuY29tL2pvbmF0aGFudG5lYWwvc2FuaXRpemUuY3NzICovXG5cbi8qIERpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLCAvKiAxICovXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxubWFpbiwgLyogMiAqL1xubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHsgLyogMSAqL1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuXHRkaXNwbGF5OiBub25lO1xuXHRoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxudGVtcGxhdGUsIC8qIDEgKi9cbltoaWRkZW5dIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLyogRWxlbWVudHMgb2YgSFRNTCAoaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L3NlbWFudGljcy5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgcmVwZWF0aW5nIGJhY2tncm91bmRzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gQWRkIGJveCBzaXppbmcgaW5oZXJpdGVuY2UgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuKixcbjo6YmVmb3JlLFxuOjphZnRlciB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IC8qIDEgKi9cblx0Ym94LXNpemluZzogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIEFkZCB0ZXh0IGRlY29yYXRpb24gaW5oZXJpdGFuY2UgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBBZGQgdmVydGljYWwgYWxpZ25tZW50IGluaGVyaXRlbmNlIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbjo6YmVmb3JlLFxuOjphZnRlciB7XG5cdHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsgLyogMSAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIEFkZCBib3JkZXIgYm94IHNpemluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIEFkZCB0aGUgZGVmYXVsdCBjdXJzb3IgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAzLiBBZGQgYSBmbGF0dGVuZWQgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiA0LiBQcmV2ZW50IGZvbnQgc2l6ZSBhZGp1c3RtZW50cyBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIElFIGFuZCBpT1MuXG4gKi9cblxuaHRtbCB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cblx0Y3Vyc29yOiBkZWZhdWx0OyAvKiAyICovXG5cdGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAzICovXG5cdGxpbmUtaGVpZ2h0OiAxLjU7IC8qIDMgKi9cblx0LW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDQgKi9cblx0LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiA1ICovXG59XG5cbi8qIFNlY3Rpb25zIChodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvc2VjdGlvbnMuaHRtbClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuYm9keSB7XG5cdG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemVzIGFuZCBtYXJnaW5zIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluXG4gKiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuXHRmb250LXNpemU6IDJlbTtcblx0bWFyZ2luOiAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50IChodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvZ3JvdXBpbmctY29udGVudC5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGZvbnQgc2l6aW5nIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuXHRmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGhlaWdodCBpbiBGaXJlZm94LlxuICogMi4gQWRkIHZpc2libGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuXHRoZWlnaHQ6IDA7IC8qIDEgKi9cblx0b3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGxpc3Qgc3R5bGUgb24gbmF2aWdhdGlvbiBsaXN0cyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5uYXYgb2wsXG5uYXYgdWwge1xuXHRsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBBZGQgYSBib3JkZXJlZCB1bmRlcmxpbmUgZWZmZWN0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0ZXh0IGRlY29yYXRpb24gaW4gRmlyZWZveCA0MCsuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuXHRib3JkZXItYm90dG9tOiAxcHggZG90dGVkOyAvKiAxICovXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICovXG5cbmIsXG5zdHJvbmcge1xuXHRmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuXHRmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuXG5kZm4ge1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGNvbG9ycyBpbiBJRSA5LS5cbiAqL1xuXG5tYXJrIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZmYwMDtcblx0Y29sb3I6ICMwMDAwMDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcblx0Zm9udC1zaXplOiA4My4zMzMzJTtcbn1cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIHBvc2l0aW9uaW5nIG9uIHN1cGVyc2NyaXB0IGFuZCBzdWJzY3JpcHQgZWxlbWVudHNcbiAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMS4gQ29ycmVjdCB0aGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuXHRmb250LXNpemU6IDgzLjMzMzMlOyAvKiAxICovXG5cdGxpbmUtaGVpZ2h0OiAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcblx0Ym90dG9tOiAtLjI1ZW07XG59XG5cbnN1cCB7XG5cdHRvcDogLS41ZW07XG59XG5cbi8qXG4gKiBSZW1vdmUgdGhlIHRleHQgc2hhZG93IG9uIHRleHQgc2VsZWN0aW9ucyAob3BpbmlvbmF0ZWQpLlxuICogMS4gUmVzdG9yZSB0aGUgY29sb3JpbmcgdW5kb25lIGJ5IGRlZmluaW5nIHRoZSB0ZXh0IHNoYWRvdyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbjo6LW1vei1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjYjNkNGZjOyAvKiAxICovXG5cdGNvbG9yOiAjMDAwMDAwOyAvKiAxICovXG5cdHRleHQtc2hhZG93OiBub25lO1xufVxuXG46OnNlbGVjdGlvbiB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNiM2Q0ZmM7IC8qIDEgKi9cblx0Y29sb3I6ICMwMDAwMDA7IC8qIDEgKi9cblx0dGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnQgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lbWJlZGRlZC1jb250ZW50LTAuaHRtbClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBDaGFuZ2UgdGhlIGFsaWdubWVudCBvbiBtZWRpYSBlbGVtZW50cyBpbiBhbGwgYnJvd2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8ge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICovXG5cbmltZyB7XG5cdGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIGZpbGwgY29sb3IgdG8gbWF0Y2ggdGhlIHRleHQgY29sb3IgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuc3ZnIHtcblx0ZmlsbDogY3VycmVudENvbG9yO1xufVxuXG4vKipcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogTGlua3MgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9saW5rcy5odG1sI2xpbmtzKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIGdhcHMgaW4gdW5kZXJsaW5lcyBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAqL1xuXG5hIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cblx0LXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgb3V0bGluZSB3aGVuIGhvdmVyaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbmE6aG92ZXIge1xuXHRvdXRsaW5lLXdpZHRoOiAwO1xufVxuXG4vKiBUYWJ1bGFyIGRhdGEgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS90YWJ1bGFyLWRhdGEuaHRtbClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBSZW1vdmUgYm9yZGVyIHNwYWNpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxudGFibGUge1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRib3JkZXItc3BhY2luZzogMDtcbn1cblxuLyogdHJhbnNmb3JtLXN0eWxlOiAgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9mb3Jtcy5odG1sKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGRlZmF1bHQgc3R5bGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDMuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cblx0Ym9yZGVyLXN0eWxlOiBub25lOyAvKiAxICovXG5cdGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG5cdGZvbnQtc2l6ZTogMWVtOyAvKiAxICovXG5cdG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gQ29ycmVjdCB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cblx0b3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBQcmV2ZW50IHRoZSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuOjotbW96LWZvY3VzLWlubmVyIHtcblx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG46LW1vei1mb2N1c3Jpbmcge1xuXHRvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5maWVsZHNldCB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG5cdG1hcmdpbjogMCAycHg7XG5cdHBhZGRpbmc6IC4zNWVtIC42MjVlbSAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcblx0ZGlzcGxheTogdGFibGU7IC8qIDEgKi9cblx0bWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG5cdHBhZGRpbmc6IDA7IC8qIDIgKi9cblx0d2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICogMi4gQ2hhbmdlIHRoZSByZXNpemUgZGlyZWN0aW9uIG9uIHRleHRhcmVhcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG50ZXh0YXJlYSB7XG5cdG92ZXJmbG93OiBhdXRvOyAvKiAxICovXG5cdHJlc2l6ZTogdmVydGljYWw7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcblx0cGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb24gaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuXHRvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgZm9yIE9TIFguXG4gKi9cblxuOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHRleHQgc3R5bGUgb24gcGxhY2Vob2xkZXJzIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuXHRjb2xvcjogaW5oZXJpdDtcblx0b3BhY2l0eTogLjU0O1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG5cdGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogV0FJLUFSSUEgKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9kb20uaHRtbCN3YWktYXJpYSlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ2hhbmdlIHRoZSBjdXJzb3Igb24gYnVzeSBlbGVtZW50cyAob3BpbmlvbmF0ZWQpLlxuICovXG5cblthcmlhLWJ1c3k9XCJ0cnVlXCJdIHtcblx0Y3Vyc29yOiBwcm9ncmVzcztcbn1cblxuLypcbiAqIENoYW5nZSB0aGUgY3Vyc29yIG9uIGNvbnRyb2wgZWxlbWVudHMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5bYXJpYS1jb250cm9sc10ge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBDaGFuZ2UgdGhlIGN1cnNvciBvbiBkaXNhYmxlZCwgbm90LWVkaXRhYmxlLCBvciBvdGhlcndpc2VcbiAqIGlub3BlcmFibGUgZWxlbWVudHMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5bYXJpYS1kaXNhYmxlZF0ge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIFVzZXIgaW50ZXJhY3Rpb24gKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lZGl0aW5nLmh0bWwpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVtb3ZlIHRoZSB0YXBwaW5nIGRlbGF5IG9uIGNsaWNrYWJsZSBlbGVtZW50cyAob3BpbmlvbmF0ZWQpLlxuICogMS4gUmVtb3ZlIHRoZSB0YXBwaW5nIGRlbGF5IGluIElFIDEwLlxuICovXG5cbmEsXG5hcmVhLFxuYnV0dG9uLFxuaW5wdXQsXG5sYWJlbCxcbnNlbGVjdCxcbnRleHRhcmVhLFxuW3RhYmluZGV4XSB7XG5cdC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgLyogMSAqL1xuXHR0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbn1cblxuLypcbiAqIENoYW5nZSB0aGUgZGlzcGxheSBvbiB2aXN1YWxseSBoaWRkZW4gYWNjZXNzaWJsZSBlbGVtZW50cyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbltoaWRkZW5dW2FyaWEtaGlkZGVuPVwiZmFsc2VcIl0ge1xuXHRjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuXHRkaXNwbGF5OiBpbmhlcml0O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbltoaWRkZW5dW2FyaWEtaGlkZGVuPVwiZmFsc2VcIl06Zm9jdXMge1xuXHRjbGlwOiBhdXRvO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIE1peGluc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgTWl4aW5zXG5cbiAgTWl4aW5zIGNhbiBiZSB1c2VkIHZpYSBgQGFwcGx5YC4gRm9yIGV4YW1wbGUsXG4gIGBgYGNzc1xuICAuYy1sYWJlbCB7XG4gICAgQGFwcGx5IC0tbS10ZXh0LW92ZXJmbG93LWVsbGlwc2lzO1xuICB9XG4gIGBgYFxuXG4gIFN0eWxlZ3VpZGUgU2V0dGluZ3MuTWl4aW5zXG4qL1xuXG4vKlxuICBUZXh0IEVsbGlwc2lzXG5cbiAgYC0tbS10ZXh0LW92ZXJmbG93LWVsbGlwc2lzYFxuXG4gIFN0eWxlZ3VpZGU6IFNldHRpbmdzLk1peGlucy5UZXh0IEVsbGlwc2lzXG4qL1xuXG46cm9vdCB7XG4gIC0tbS10ZXh0LW92ZXJmbG93LWVsbGlwc2lzOiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzICFpbXBvcnRhbnQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVmFyaWFibGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG46cm9vdCB7XG4gIC0tYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0OiAjZmZmO1xuICAtLWJhY2tncm91bmQtY29sb3ItZGFyazogdmFyKC0tY29sb3ItY2hhcmNvYWwpO1xuICAtLWJvcmRlci1jb2xvci1kZWZhdWx0OiB2YXIoLS1jb2xvci1ncmF5LWxpZ2h0KTtcbiAgLS1ib3JkZXItZGVmYXVsdDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvci1kZWZhdWx0KTtcbiAgLS1ib3JkZXItcmFkaXVzLWRlZmF1bHQ6IDAuMmVtO1xuICAtLWJveC1zaGFkb3ctZGVmYXVsdDogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgLS1jb2xvci1ibHVlOiAjMzQ5OGRiO1xuICAtLWNvbG9yLWNoYXJjb2FsOiAjMTExO1xuICAtLWNvbG9yLWdyYXk6ICM5OTk7XG4gIC0tY29sb3ItZ3JheS1saWdodDogI2RkZDtcbiAgLS1mb250LWZhbWlseS1kZWZhdWx0OiBcIk9wZW4gU2Fuc1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIC0tZm9udC1mYW1pbHktc2Vjb25kYXJ5OiBcIkJpdHRlclwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIC0tZm9udC1zaXplLWRlZmF1bHQ6IHZhcigtLWZvbnQtc2l6ZS1tZWQpO1xuICAtLWZvbnQtc2l6ZS14eGw6IDMwcHg7XG4gIC0tZm9udC1zaXplLXhsOiAyMnB4O1xuICAtLWZvbnQtc2l6ZS1sZzogMTZweDtcbiAgLS1mb250LXNpemUtbWVkOiAxNHB4O1xuICAtLWZvbnQtc2l6ZS1zbTogMTJweDtcbiAgLS1mb250LXNpemUteHM6IDEwcHg7XG4gIC0tZm9udC13ZWlnaHQtZGVmYXVsdDogdmFyKC0tZm9udC13ZWlnaHQtbm9ybWFsKTtcbiAgLS1mb250LXdlaWdodC1ib2xkOiA3MDA7XG4gIC0tZm9udC13ZWlnaHQtbm9ybWFsOiA0MDA7XG4gIC0tZm9udC13ZWlnaHQtbGlnaHQ6IDEwMDtcbiAgLS1sZXR0ZXItc3BhY2luZy13aWRlOiAwLjFlbTtcbiAgLS1saW5lLWhlaWdodC1kZWZhdWx0OiAxLjU7XG4gIC0tbGluZS1oZWlnaHQtc206IDEuMjtcbiAgLS1zcGFjaW5nLXhsOiA0OHB4O1xuICAtLXNwYWNpbmctbGc6IDM2cHg7XG4gIC0tc3BhY2luZy1tZWQ6IDI0cHg7XG4gIC0tc3BhY2luZy1zbTogMTJweDtcbiAgLS1zcGFjaW5nLXhzOiA2cHg7XG4gIC0tdGV4dC1zaGFkb3ctZGVmYXVsdDogMCAwIDVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIC0tdGhlbWUtY29sb3ItYWNjZW50OiB2YXIoLS1jb2xvci1ibHVlKTtcbiAgLS10aGVtZS1jb2xvci1ib3JkZXI6IHZhcigtLWNvbG9yLWdyYXkpO1xuICAtLXRoZW1lLWNvbG9yLWlucHV0OiB2YXIoLS1jb2xvci1ncmF5KTtcbiAgLS10aGVtZS1jb2xvci10ZXh0OiB2YXIoLS1jb2xvci1jaGFyY29hbCk7XG4gIC0tdGhlbWUtY29sb3ItdGV4dC1tdXRlZDogdmFyKC0tY29sb3ItZ3JheSk7XG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbi1kZWZhdWx0OiAwLjJzO1xuICAtLXRyYW5zaXRpb24tdGltaW5nLWRlZmF1bHQ6IGVhc2UtaW4tb3V0O1xuICAtLXRyYW5zaXRpb24tZGVmYXVsdDogYWxsIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24tZGVmYXVsdCkgdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZGVmYXVsdCk7XG5cbiAgLyogSGVhZGluZ3MgKi9cblxuICAtLWhlYWRpbmc6IHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktc2Vjb25kYXJ5KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLXNtKTtcbiAgICB9XG4gIH1cblxuICAtLWhlYWRpbmctaDE6IHtcbiAgICBAYXBwbHkgLS1oZWFkaW5nO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXh4bCk7XG4gIH1cblxuICAtLWhlYWRpbmctaDI6IHtcbiAgICBAYXBwbHkgLS1oZWFkaW5nO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhsKTtcbiAgfVxuXG4gIC0taGVhZGluZy1oMzoge1xuICAgIEBhcHBseSAtLWhlYWRpbmc7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xuICB9XG5cbiAgLS1oZWFkaW5nLWg0OiB7XG4gICAgQGFwcGx5IC0taGVhZGluZztcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1tZWQpO1xuICB9XG5cbiAgLS1oZWFkaW5nLWg1OiB7XG4gICAgQGFwcGx5IC0taGVhZGluZztcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gIH1cblxuICAtLWhlYWRpbmctaDY6IHtcbiAgICBAYXBwbHkgLS1oZWFkaW5nO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhzKTtcbiAgfVxufVxuXG4vKlxuICBDb2xvcnNcblxuICA8ZGl2IGNsYXNzPVwic2ctY29sb3ItYmxvY2tzXCI+XG4gICAgPGRpdiBjbGFzcz1cInNnLWNvbG9yLWJsb2NrIHNnLWNvbG9yLWJsb2NrLS1ibHVlXCI+PGNvZGU+LS1jb2xvci1ibHVlPC9jb2RlPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZy1jb2xvci1ibG9jayBzZy1jb2xvci1ibG9jay0tZ3JheVwiPjxjb2RlPi0tY29sb3ItZ3JheTwvY29kZT48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2ctY29sb3ItYmxvY2sgc2ctY29sb3ItYmxvY2stLWdyYXktbGlnaHRcIj48Y29kZT4tLWNvbG9yLWdyYXktbGlnaHQ8L2NvZGU+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNnLWNvbG9yLWJsb2NrIHNnLWNvbG9yLWJsb2NrLS1jaGFyY29hbFwiPjxjb2RlPi0tY29sb3ItY2hhcmNvYWw8L2NvZGU+PC9kaXY+XG4gIDwvZGl2PlxuXG4gIFN0eWxlZ3VpZGUgU2V0dGluZ3MuQ29sb3JzXG4qL1xuXG4vKiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgYnkgdGhlIHN0eWxlIGd1aWRlIGV4YW1wbGUgKi9cbi5zZy1jb2xvci1ibG9jayB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctc20pO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtZGVmYXVsdCk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IHZhcigtLXNwYWNpbmctbGcpO1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbn1cblxuQGVhY2ggJGNvbG9yIGluICggYmx1ZSwgZ3JheSwgZ3JheS1saWdodCwgY2hhcmNvYWwgKSB7XG4gIC5zZy1jb2xvci1ibG9jay0tJChjb2xvcikge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLSQoY29sb3IpKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBCb2R5XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0KTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBCdXR0b25zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBCdXR0b25zXG5cbiAgTWFya3VwOlxuICA8YnV0dG9uPkJ1dHRvbjwvYnV0dG9uPlxuXG4gIFN0eWxlZ3VpZGU6IEVsZW1lbnRzLkJ1dHRvbnNcbiovXG5cbmJ1dHRvbiB7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1jb2xvci10ZXh0KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktZGVmYXVsdCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWRlZmF1bHQpO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtZGVmYXVsdCk7XG4gIHBhZGRpbmc6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBMaXN0c1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgTGlzdHNcblxuICBNYXJrdXA6XG4gIDxoMz5PcmRlcmVkIExpc3Q8L2gzPlxuICA8b2w+XG4gICAgPGxpPkxpc3QgSXRlbSAxPC9saT5cbiAgICA8bGk+TGlzdCBJdGVtIDI8L2xpPlxuICAgIDxsaT5MaXN0IEl0ZW0gMzwvbGk+XG4gIDwvb2w+XG4gIDxoMz5Vbm9yZGVyZWQgTGlzdDwvaDM+XG4gIDx1bD5cbiAgICA8bGk+TGlzdCBJdGVtIDE8L2xpPlxuICAgIDxsaT5MaXN0IEl0ZW0gMlxuICAgICAgPHVsPlxuICAgICAgICA8bGk+TGlzdCBJdGVtIDE8L2xpPlxuICAgICAgICA8bGk+TGlzdCBJdGVtIDI8L2xpPlxuICAgICAgICA8bGk+TGlzdCBJdGVtIDM8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2xpPlxuICAgIDxsaT5MaXN0IEl0ZW0gMzwvbGk+XG4gIDwvdWw+XG5cbiAgU3R5bGVndWlkZTogRWxlbWVudHMuTGlzdHNcbiovXG5cbm9sLFxudWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qXG4gIERlZmluaXRpb24gTGlzdHNcblxuICBNYXJrdXA6XG4gIDxkbD5cbiAgICA8ZHQ+RGVmaW5pdGlvbiBMaXN0IFRpdGxlPC9kdD5cbiAgICA8ZGQ+VGhpcyBpcyBhIGRlZmluaXRpb24gbGlzdCBkaXZpc2lvbi48L2RkPlxuICAgIDxkdD5EZWZpbml0aW9uIExpc3QgVGl0bGU8L2R0PlxuICAgIDxkZD5UaGlzIGlzIGEgZGVmaW5pdGlvbiBsaXN0IGRpdmlzaW9uLjwvZGQ+XG4gICAgPGR0PkRlZmluaXRpb24gTGlzdCBUaXRsZTwvZHQ+XG4gICAgPGRkPlRoaXMgaXMgYSBkZWZpbml0aW9uIGxpc3QgZGl2aXNpb24uPC9kZD5cbiAgPC9kbD5cblxuICBTdHlsZWd1aWRlOiBFbGVtZW50cy5MaXN0cy5EZWZpbml0aW9uIExpc3RzXG4qL1xuXG5kbCxcbmR0LFxuZGQge1xuICBtYXJnaW46IDA7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVHlwb2dyYXBoeVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgVHlwb2dyYXBoeVxuXG4gIFN0eWxlZ3VpZGU6IEVsZW1lbnRzLlR5cG9ncmFwaHlcbiovXG5cbmh0bWwge1xuICBjb2xvcjogdmFyKC0tdGhlbWUtY29sb3ItdGV4dCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kZWZhdWx0KTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtZGVmYXVsdCk7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtZGVmYXVsdCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1kZWZhdWx0KTtcbn1cblxuLypcbiAgSGVhZGluZ3NcblxuICBNYXJrdXA6XG4gIDxoMT5IZWFkaW5nIDE8L2gxPlxuICA8aDI+SGVhZGluZyAyPC9oMj5cbiAgPGgzPkhlYWRpbmcgMzwvaDM+XG4gIDxoND5IZWFkaW5nIDQ8L2g0PlxuICA8aDU+SGVhZGluZyA1PC9oNT5cbiAgPGg2PkhlYWRpbmcgNjwvaDY+XG5cbiAgU3R5bGVndWlkZTogRWxlbWVudHMuVHlwb2dyYXBoeS5IZWFkaW5nc1xuKi9cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWRlZmF1bHQpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtZGVmYXVsdCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1kZWZhdWx0KTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKlxuICBQYXJhZ3JhcGhzXG5cbiAgTWFya3VwOlxuICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLjwvcD5cbiAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS48L3A+XG5cbiAgU3R5bGVndWlkZTogRWxlbWVudHMuVHlwb2dyYXBoeS5QYXJhZ3JhcGhzXG4qL1xuXG5wIHtcbiAgbWFyZ2luOiAwO1xuXG4gICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy1tZWQpO1xuICB9XG59XG5cbi8qXG4gIExpbmtzXG5cbiAgTWFya3VwOlxuICA8YT5MaW5rPC9hPlxuXG4gIFN0eWxlZ3VpZGU6IEVsZW1lbnRzLlR5cG9ncmFwaHkuTGlua3NcbiovXG5cbmEge1xuICBjb2xvcjogdmFyKC0tdGhlbWUtY29sb3ItYWNjZW50KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cblxuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10aGVtZS1jb2xvci1hY2NlbnQpO1xuICBjb2xvcjogI2ZmZjtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBCdXR0b25zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBCdXR0b25zXG5cbiAgTWFya3VwOlxuICA8YnV0dG9uIGNsYXNzPVwiYy1idXR0b25cIj5CdXR0b248L2J1dHRvbj5cblxuICBTdHlsZWd1aWRlOiBDb21wb25lbnRzLkJ1dHRvbnNcbiovXG5cbi5jLWJ1dHRvbiB7XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLWRlZmF1bHQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWRlZmF1bHQpO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXhzKSB2YXIoLS1zcGFjaW5nLXNtKTtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBTZWN0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICBTZWN0aW9uXG5cbiAgTWFya3VwOlxuICA8c2VjdGlvbiBjbGFzcz1cImwtc2VjdGlvblwiPlxuICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uPC9wPlxuICA8L3NlY3Rpb24+XG5cbiAgU3R5bGVndWlkZTogTGF5b3V0LlNlY3Rpb25cbiovXG5cbi5sLXNlY3Rpb24ge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLW1lZCk7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVHlwb2dyYXBoeVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAgVHlwb2dyYXBoeVxuXG4gIFN0eWxlZ3VpZGU6IEhlbHBlcnMuVHlwb2dyYXBoeVxuKi9cblxuLypcbiAgVGV4dCBBbGlnbm1lbnRcblxuICBNYXJrdXA6XG4gIDxwIGNsYXNzPVwiaC10ZXh0LWFsaWduLWxlZnRcIj5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldC48L3A+XG4gIDxwIGNsYXNzPVwiaC10ZXh0LWFsaWduLWNlbnRlclwiPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LjwvcD5cbiAgPHAgY2xhc3M9XCJoLXRleHQtYWxpZ24tcmlnaHRcIj5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldC48L3A+XG5cbiAgU3R5bGVndWlkZTogSGVscGVycy5UeXBvZ3JhcGh5LlRleHQgQWxpZ25tZW50XG4qL1xuXG4uaC10ZXh0LWFsaWduLWxlZnQgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbi5oLXRleHQtYWxpZ24tY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cbi5oLXRleHQtYWxpZ24tcmlnaHQgeyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG5cbi8qXG4gIFRleHQgRWxsaXBzaXNcblxuICBNYXJrdXA6XG4gIDxwIGNsYXNzPVwiaC10ZXh0LW92ZXJmbG93LWVsbGlwc2lzXCI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS48L3A+XG5cbiAgU3R5bGVndWlkZTogSGVscGVycy5UeXBvZ3JhcGh5LlRleHQgRWxsaXBzaXNcbiovXG5cbi5oLXRleHQtb3ZlcmZsb3ctZWxsaXBzaXMge1xuICBAYXBwbHkgLS1tLXRleHQtb3ZlcmZsb3ctZWxsaXBzaXM7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogU2xpZGVvdXQgTWVudVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNnLW92ZXJsYXkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgICBib3R0b206IDA7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGVmdDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0O1xuICAgIHotaW5kZXg6IDk5O1xuICB9XG5cbiAgJi5pcy12aXNpYmxlIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgfVxuICB9XG59XG5cbi5zZy1zbGlkZW91dC1tZW51IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0KTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIHdpZHRoOiAxODBweDtcbiAgei1pbmRleDogMTAwO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4zcyBlYXNlLWluLW91dCxcbiAgICAgIHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICBib3JkZXItcmlnaHQ6IHZhcigtLWJvcmRlci1kZWZhdWx0KTtcbiAgfVxuXG4gICYuaXMtdmlzaWJsZSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIH1cbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIFN0eWxlIEd1aWRlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG46cm9vdCB7XG4gIC0tc2ctaGFtYnVyZ2VyLXdpZHRoOiAxOFBYOyAvKiBEb24ndCBjb252ZXJ0IHRvIHJlbSAqL1xuICAtLXNnLWhhbWJ1cmdlci1oZWlnaHQ6IDE4UFg7IC8qIERvbid0IGNvbnZlcnQgdG8gcmVtICovXG4gIC0tc2ctaGFtYnVyZ2VyLWJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAtLXNnLWhhbWJ1cmdlci1jb2xvcjogdmFyKC0tdGhlbWUtY29sb3ItYWNjZW50KTtcbiAgLS1zZy1oYW1idXJnZXItbGluZS1oZWlnaHQ6IDJQWDsgLyogRG9uJ3QgY29udmVydCB0byByZW0gKi9cbiAgLS1zZy1oYW1idXJnZXItdHJhbnNpdGlvbi1lYXNpbmc6IGVhc2UtaW4tb3V0O1xuICAtLXNnLWhhbWJ1cmdlci10cmFuc2l0aW9uLXRpbWluZzogMC4xNXM7XG59XG5cbi5zZy1wYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmX19oZWFkZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctc20pO1xuICAgIHotaW5kZXg6IDMwMDtcbiAgfVxuXG4gICZfX21haW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG5cbi5zZy1oZWFkZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuXG4gICZfX3RpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tdGhlbWUtY29sb3ItYWNjZW50KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxufVxuXG4uc2ctaGFtYnVyZ2VyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogY2FsYyh2YXIoLS1zcGFjaW5nLXhzKSAqIC0xKTtcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLXhzKTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy14cyk7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJl9faWNvbiB7XG4gICAgaGVpZ2h0OiB2YXIoLS1zZy1oYW1idXJnZXItaGVpZ2h0KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IHZhcigtLXNnLWhhbWJ1cmdlci13aWR0aCk7XG4gIH1cblxuICAmX19saW5lIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZy1oYW1idXJnZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNnLWhhbWJ1cmdlci1ib3JkZXItcmFkaXVzKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IHZhcigtLXNnLWhhbWJ1cmdlci1saW5lLWhlaWdodCk7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNpdGlvbjogdG9wIHZhcigtLXNnLWhhbWJ1cmdlci10cmFuc2l0aW9uLXRpbWluZykgdmFyKC0tc2ctaGFtYnVyZ2VyLXRyYW5zaXRpb24tZWFzaW5nKSB2YXIoLS1zZy1oYW1idXJnZXItdHJhbnNpdGlvbi10aW1pbmcpLFxuICAgICAgYm90dG9tIHZhcigtLXNnLWhhbWJ1cmdlci10cmFuc2l0aW9uLXRpbWluZykgdmFyKC0tc2ctaGFtYnVyZ2VyLXRyYW5zaXRpb24tZWFzaW5nKSB2YXIoLS1zZy1oYW1idXJnZXItdHJhbnNpdGlvbi10aW1pbmcpLFxuICAgICAgdHJhbnNmb3JtIHZhcigtLXNnLWhhbWJ1cmdlci10cmFuc2l0aW9uLXRpbWluZykgdmFyKC0tc2ctaGFtYnVyZ2VyLXRyYW5zaXRpb24tZWFzaW5nKTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5pcy1hY3RpdmUgJiB7XG4gICAgICB0cmFuc2l0aW9uOiB0b3AgdmFyKC0tc2ctaGFtYnVyZ2VyLXRyYW5zaXRpb24tdGltaW5nKSB2YXIoLS1zZy1oYW1idXJnZXItdHJhbnNpdGlvbi1lYXNpbmcpLFxuICAgICAgICBib3R0b20gdmFyKC0tc2ctaGFtYnVyZ2VyLXRyYW5zaXRpb24tdGltaW5nKSB2YXIoLS1zZy1oYW1idXJnZXItdHJhbnNpdGlvbi1lYXNpbmcpLFxuICAgICAgICB0cmFuc2Zvcm0gdmFyKC0tc2ctaGFtYnVyZ2VyLXRyYW5zaXRpb24tdGltaW5nKSB2YXIoLS1zZy1oYW1idXJnZXItdHJhbnNpdGlvbi1lYXNpbmcpIHZhcigtLXNnLWhhbWJ1cmdlci10cmFuc2l0aW9uLXRpbWluZyk7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgdG9wOiBjYWxjKHZhcigtLXNnLWhhbWJ1cmdlci1saW5lLWhlaWdodCkgLyAyKTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMGRlZyk7XG5cbiAgICAgIC5pcy1hY3RpdmUgJiB7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMGRlZyk7XG5cbiAgICAgIC5pcy1hY3RpdmUgJiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgIGJvdHRvbTogY2FsYyh2YXIoLS1zZy1oYW1idXJnZXItbGluZS1oZWlnaHQpIC8gMik7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKSByb3RhdGUoMGRlZyk7XG5cbiAgICAgIC5pcy1hY3RpdmUgJiB7XG4gICAgICAgIGJvdHRvbTogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnNnLXNpZGViYXIge1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2luZy1zbSk7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjaW5nLXNtKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCkge1xuICAgIGZsZXgtYmFzaXM6IDI1MHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICZfX21lbnUge1xuICAgIGEge1xuICAgICAgY29sb3I6IHZhcigtLXRoZW1lLWNvbG9yLXRleHQpO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gICAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLXhzKSB2YXIoLS1zcGFjaW5nLXNtKTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdWwgYSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNpbmctbWVkKTtcbiAgICB9XG4gIH1cbn1cblxuLnNnLW1haW4ge1xuICBmbGV4LWdyb3c6IDE7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uc2ctc2VjdGlvbiB7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjaW5nLWxnKTtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNpbmctbGcpO1xuXG4gICYtLWRlcHRoLTEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWNvbG9yLWFjY2VudCk7XG4gICAgY29sb3I6ICNmZmY7XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxuXG4gICZfX2hlYWRlciB7XG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctbWVkKTtcbiAgICB9XG4gIH1cblxuICAmX19oMSB7XG4gICAgQGFwcGx5IC0taGVhZGluZy1oMTtcbiAgfVxuXG4gICZfX2gyIHtcbiAgICBAYXBwbHkgLS1oZWFkaW5nLWgyO1xuICB9XG5cbiAgJl9faDMge1xuICAgIEBhcHBseSAtLWhlYWRpbmctaDM7XG4gIH1cblxuICAmX19oNCB7XG4gICAgQGFwcGx5IC0taGVhZGluZy1oNDtcbiAgfVxuXG4gICZfX2Rlc2NyaXB0aW9uIHtcbiAgICBib3JkZXItbGVmdDogdmFyKC0tYm9yZGVyLWRlZmF1bHQpO1xuICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjaW5nLXNtKTtcblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLXNtKTtcbiAgICB9XG4gIH1cblxuICAmX19tYXJrdXAtbGFiZWwge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci1kZWZhdWx0KTtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcteHMpO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX21hcmt1cCB7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItZGVmYXVsdCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLW1lZCk7XG5cbiAgICAuc2ctc2VjdGlvbi5pcy1kYXJrICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1kYXJrKTtcbiAgICB9XG4gIH1cblxuICAmX19jb2RlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgIGJvcmRlcjogdmFyKC0tYm9yZGVyLWRlZmF1bHQpO1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctc20pO1xuICB9XG59XG5cbi5zZy1jb250YWluZXIge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNpbmctbWVkKTtcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2luZy1tZWQpO1xufVxuXG4uc2ctYy1sYWJlbCB7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1sZXR0ZXItc3BhY2luZy13aWRlKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHMpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogU3ludGF4IEhpZ2hsaWdodGluZ1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuOnJvb3Qge1xuICAtLXByaXNtLWdyZWVuOiAjNjNhMzVjO1xuICAtLXByaXNtLXB1cnBsZTogIzc5NWRhMztcbiAgLS1wcmlzbS1ibHVlOiAjMTgzNjkxO1xuICAtLXByaXNtLWdyYXk6IHZhcigtLWNvbG9yLWdyYXkpO1xufVxuXG5jb2RlLFxucHJlIHtcbiAgY29sb3I6IHZhcigtLXRoZW1lLWNvbG9yLXRleHQpO1xuICBkaXJlY3Rpb246IGx0cjtcbiAgZm9udC1mYW1pbHk6IFwiQ29uc29sYXNcIiwgXCJMaWJlcmF0aW9uIE1vbm9cIiwgXCJNZW5sb1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xuICBoeXBoZW5zOiBub25lO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGw6IHRvdWNoO1xuICB0YWItc2l6ZTogNDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbn1cblxucHJlIHtcbiAgbWFyZ2luOiAwO1xuXG4gIGNvZGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuY29kZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICBwYWRkaW5nOiAzcHggNnB4O1xufVxuXG4udG9rZW4uY29tbWVudCxcbi50b2tlbi5wcm9sb2csXG4udG9rZW4uZG9jdHlwZSxcbi50b2tlbi5jZGF0YSB7XG4gIGNvbG9yOiB2YXIoLS1wcmlzbS1ncmF5KTtcbn1cblxuLnRva2VuLnN0cmluZyxcbi50b2tlbi5hdHRyLXZhbHVlIHtcbiAgY29sb3I6IHZhcigtLXByaXNtLWJsdWUpO1xufVxuXG4udG9rZW4ucHVuY3R1YXRpb24sXG4udG9rZW4ub3BlcmF0b3Ige1xuICBjb2xvcjogdmFyKC0tdGhlbWUtY29sb3ItdGV4dC1tdXRlZCk7XG59XG5cbi50b2tlbi5lbnRpdHksXG4udG9rZW4udXJsLFxuLnRva2VuLnN5bWJvbCxcbi50b2tlbi5udW1iZXIsXG4udG9rZW4uYm9vbGVhbixcbi50b2tlbi52YXJpYWJsZSxcbi50b2tlbi5jb25zdGFudCxcbi50b2tlbi5wcm9wZXJ0eSxcbi50b2tlbi5yZWdleCxcbi50b2tlbi5pbnNlcnRlZCB7XG4gIGNvbG9yOiB2YXIoLS1wcmlzbS1ibHVlKTtcbn1cblxuLnRva2VuLmF0cnVsZSxcbi50b2tlbi5rZXl3b3JkLFxuLnRva2VuLmF0dHItbmFtZSxcbi5sYW5ndWFnZS1hdXRvaG90a2V5IC50b2tlbi5zZWxlY3RvciB7XG4gIGNvbG9yOiB2YXIoLS1wcmlzbS1wdXJwbGUpO1xufVxuXG4udG9rZW4uZnVuY3Rpb24sXG4udG9rZW4uZGVsZXRlZCxcbi5sYW5ndWFnZS1hdXRvaG90a2V5IC50b2tlbi50YWcge1xuICBjb2xvcjogIzlhMDUwZjtcbn1cblxuLnRva2VuLnRhZyxcbi50b2tlbi5zZWxlY3Rvcixcbi5sYW5ndWFnZS1hdXRvaG90a2V5IC50b2tlbi5rZXl3b3JkIHtcbiAgY29sb3I6IHZhcigtLXByaXNtLWdyZWVuKTtcbn1cblxuLnRva2VuLmltcG9ydGFudCxcbi50b2tlbi5mdW5jdGlvbixcbi50b2tlbi5ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xufVxuXG4udG9rZW4uaXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuIl19 */