@charset "UTF-8";
/*! Made with Bones: http://themble.com/bones :) */
/******************************************************************
Site Name:
Author:

Stylesheet: Main Stylesheet

Here's where the magic happens. Here, you'll see we are calling in
the separate media queries. The base mobile goes outside any query
and is called at the beginning, after that we call the rest
of the styles inside media queries.

Helpful articles on Sass file organization:
http://thesassway.com/advanced/modular-css-naming-conventions

******************************************************************/
/*********************
IMPORTING PARTIALS
These files are needed at the beginning so that we establish all
our mixins, functions, and variables that we'll be using across
the whole project.
*********************/
/* normalize.css 2012-07-07T09:50 UTC - http://github.com/necolas/normalize.css */
/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined in IE 8/9.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block; }

/**
 * Correct `inline-block` display not defined in IE 8/9.
 */
audio,
canvas,
video {
  display: inline-block; }

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

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

/* ==========================================================================
   Base
   ========================================================================== */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

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

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

/**
 * Address `outline` inconsistency between Chrome and other browsers.
 */
a:focus {
  outline: thin dotted; }

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

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

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

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

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

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

/*
 * proper formatting (http://blog.fontdeck.com/post/9037028497/hyphens)
*/
p {
  -webkit-hyphens: auto;
  -epub-hyphens: auto;
  -ms-hyphens: auto;
      hyphens: auto; }

/*
 * Addresses margins set differently in IE6/7.
 */
pre {
  margin: 0; }

/**
 * Correct font family set oddly in Safari 5 and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em; }

/**
 * Improve readability of pre-formatted text in all browsers.
 */
pre {
  white-space: pre-wrap; }

/**
 * Set consistent quote types.
 */
q {
  quotes: "\201C" "\201D" "\2018" "\2019"; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
q:before,
q:after {
  content: '';
  content: none; }

small, .small {
  font-size: 75%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* ==========================================================================
  Lists
========================================================================== */
/*
 * Addresses margins set differently in IE6/7.
 */
dl,
menu,
ol,
ul {
  margin: 1em 0; }

dd {
  margin: 0; }

/*
 * Addresses paddings set differently in IE6/7.
 */
menu {
  padding: 0 0 0 40px; }

ol,
ul {
  padding: 0;
  list-style-type: none; }

/*
 * Corrects list images handled incorrectly in IE7.
 */
nav ul,
nav ol {
  list-style: none;
  list-style-image: none; }

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

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

/* ==========================================================================
   Figures
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari 5.
 */
figure {
  margin: 0; }

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

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

/**
 * 1. Correct font family not being inherited in all browsers.
 * 2. Correct font size not being inherited in all browsers.
 * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
 */
button,
input,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 2 */
  margin: 0;
  /* 3 */ }

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

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

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

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

/**
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

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

/**
 * Remove inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

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

/**
 * 1. Remove default vertical scrollbar in IE 8/9.
 * 2. Improve readability and alignment in all browsers.
 */
textarea {
  overflow: auto;
  /* 1 */
  vertical-align: top;
  /* 2 */ }

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

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

.image-replacement,
.ir {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden; }

.clearfix, .cf {
  zoom: 1; }
  .clearfix:before, .clearfix:after, .cf:before, .cf:after {
    content: "";
    display: table; }
  .clearfix:after, .cf:after {
    clear: both; }

/*
use the best ampersand
http://simplebits.com/notebook/2008/08/14/ampersands-2/
*/
span.amp {
  font-family: Baskerville,'Goudy Old Style',Palatino,'Book Antiqua',serif !important;
  font-style: italic; }

/******************************************************************
Site Name:
Author:

Stylesheet: Variables

Here is where we declare all our variables like colors, fonts,
base values, and defaults. We want to make sure this file ONLY
contains variables that way our files don't get all messy.
No one likes a mess.

******************************************************************/
/*********************
COLORS
Need help w/ choosing your colors? Try this site out:
http://0to255.com/
*********************/
.bg-red {
  background-color: #fc3b3d;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

.bg-orange {
  background-color: #fda629;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

.bg-black {
  background-color: #000000;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

.bg-white {
  background-color: #fff;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

.bg-violet {
  background-color: #b480e5;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

.bg-blue {
  background-color: #0f5de5;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

.bg-pink {
  background-color: #e881aa;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

.bg-green {
  background-color: #1ab347;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

.bg-grey {
  background-color: #dfdfdf;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

/*
 i imported this one in the functions file so bones would look sweet.
 don't forget to remove it for your site.
*/
/*
some nice typographical defaults
more here: http://www.newnet-soft.com/blog/csstypography
*/
p {
  word-wrap: break-word;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
  hyphenate-lines: 3;
  -webkit-font-feature-settings: "liga", "dlig";
          font-feature-settings: "liga", "dlig"; }

/******************************************************************
Site Name:
Author:

Stylesheet: Mixins Stylesheet

This is where you can take advantage of Sass' great features: Mixins.
I won't go in-depth on how they work exactly,
there are a few articles below that will help do that. What I will
tell you is that this will help speed up simple changes like
changing a color or adding CSS3 techniques gradients.

A WORD OF WARNING: It's very easy to overdo it here. Be careful and
remember less is more.

Helpful:
http://sachagreif.com/useful-sass-mixins/
http://thesassway.com/intermediate/leveraging-sass-mixins-for-cleaner-code
http://web-design-weekly.com/blog/2013/05/12/handy-sass-mixins/

******************************************************************/
/* ========================================================================
   Component: Base
 ========================================================================== */
/*
 * 1. Set `font-size` to support `rem` units
 *    Not using `font` property because a leading hyphen (e.g. -apple-system) causes the font to break in IE11 and Edge
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Style
 */
html {
  /* 1 */
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 16px;
  font-weight: normal;
  line-height: 1.5;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 3 */
  background: #fff;
  color: #666; }

/*
 * Remove the margin in all browsers.
 */
body {
  margin: 0; }

/* Links
 ========================================================================== */
/*
 * Remove the outline on focused links when they are also active or hovered
 */
a:active,
a:hover {
  outline: none; }

/*
 * Style
 */
a,
.uk-link {
  color: #f01d4f;
  text-decoration: none;
  cursor: pointer; }

a:hover,
.uk-link:hover,
.uk-link-toggle:hover .uk-link,
.uk-link-toggle:focus .uk-link {
  color: #0f6ecd;
  text-decoration: underline; }

/* Text-level semantics
 ========================================================================== */
/*
 * 1. Add the correct text decoration in Edge.
 * 2. The shorthand declaration `underline dotted` is not supported in Safari.
 */
abbr[title] {
  /* 1 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  /* 2 */
  -webkit-text-decoration-style: dotted; }

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

/*
 * 1. Consolas has a better baseline in running text compared to `Courier`
 * 2. Correct the odd `em` font sizing in all browsers.
 * 3. Style
 */
:not(pre) > code,
:not(pre) > kbd,
:not(pre) > samp {
  /* 1 */
  font-family: Consolas, monaco, monospace;
  /* 2 */
  font-size: 0.875rem;
  /* 3 */
  color: #f0506e;
  white-space: nowrap;
  padding: 2px 6px;
  background: #f8f8f8; }

/*
 * Emphasize
 */
em {
  color: #5c6b80; }

/*
 * Insert
 */
ins {
  background: #ffd;
  color: #666;
  text-decoration: none; }

/*
 * Mark
 */
mark {
  background: #ffd;
  color: #666; }

/*
 * Quote
 */
q {
  font-style: italic; }

/*
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
 ========================================================================== */
/*
 * Remove the gap between embedded content and the bottom of their containers.
 */
audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle; }

/*
 * 1. Add responsiveness.
 * 2. Auto-scale the height. Only needed if `height` attribute is present.
 * 3. Corrects responsive `max-width` behavior if padding and border are used.
 * 4. Exclude SVGs for IE11 because they don't preserve their aspect ratio.
 */
canvas,
img,
video {
  /* 1 */
  max-width: 100%;
  /* 2 */
  height: auto;
  /* 3 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

/* 4 */
@supports (display: block) {
  svg {
    max-width: 100%;
    height: auto;
    -webkit-box-sizing: border-box;
            box-sizing: border-box; } }

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

/*
 * 1. Fix lazy loading images if parent element is set to `display: inline` and has `overflow: hidden`.
 * 2. Hide `alt` text for lazy loading images.
 * Note: Selector for background while loading img[data-src*='.jpg'][src*='data:image'] { background: grey; }
 */
img:not([src]) {
  /* 1 */
  min-width: 1px;
  /* 2 */
  visibility: hidden; }

/*
 * Iframe
 * Remove border in all browsers
 */
iframe {
  border: 0; }

/* Block elements
 ========================================================================== */
/*
 * Margins
 */
p,
ul,
ol,
dl,
pre,
address,
fieldset,
figure {
  margin: 0 0 0 0; }

/* Add margin if adjacent element */
* + p,
* + ul,
* + ol,
* + dl,
* + pre,
* + address,
* + fieldset,
* + figure {
  margin-top: 0; }

/* Headings
 ========================================================================== */
h1, .uk-h1,
h2, .uk-h2,
h3, .uk-h3,
h4, .uk-h4,
h5, .uk-h5,
h6, .uk-h6,
.uk-heading-small,
.uk-heading-medium,
.uk-heading-large,
.uk-heading-xlarge,
.uk-heading-2xlarge {
  margin: 0 0 0 0;
  font-family: "playfair-display";
  font-weight: normal;
  color: #000000;
  text-transform: none; }

/* Add margin if adjacent element */
* + h1, * + .uk-h1,
* + h2, * + .uk-h2,
* + h3, * + .uk-h3,
* + h4, * + .uk-h4,
* + h5, * + .uk-h5,
* + h6, * + .uk-h6,
* + .uk-heading-small,
* + .uk-heading-medium,
* + .uk-heading-large,
* + .uk-heading-xlarge,
* + .uk-heading-2xlarge {
  margin-top: 40px; }

/*
 * Sizes
 */
h1, .uk-h1 {
  font-size: 2.23125rem;
  line-height: 1.2; }

h2, .uk-h2 {
  font-size: 1.7rem;
  line-height: 1.3; }

h3, .uk-h3 {
  font-size: 1.5rem;
  line-height: 1.4; }

h4, .uk-h4 {
  font-size: 1.25rem;
  line-height: 1.4; }

h5, .uk-h5 {
  font-size: 16px;
  line-height: 1.4; }

h6, .uk-h6 {
  font-size: 0.875rem;
  line-height: 1.4; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  h1, .uk-h1 {
    font-size: 2.625rem; }
  h2, .uk-h2 {
    font-size: 2rem; } }

/* Lists
 ========================================================================== */
ul,
ol {
  padding-left: 0; }

/*
 * Reset margin for nested lists
 */
ul > li > ul,
ul > li > ol,
ol > li > ol,
ol > li > ul {
  margin: 0; }

/* Description lists
 ========================================================================== */
dt {
  font-weight: bold; }

dd {
  margin-left: 0; }

/* Horizontal rules
 ========================================================================== */
/*
 * 1. Show the overflow in Chrome, Edge and IE.
 * 2. Add the correct text-align in Edge and IE.
 * 3. Style
 */
hr, .uk-hr {
  /* 1 */
  overflow: visible;
  /* 2 */
  text-align: inherit;
  /* 3 */
  margin: 0 0 20px 0;
  border: 0;
  border-top: 1px solid #e5e5e5; }

/* Add margin if adjacent element */
* + hr,
* + .uk-hr {
  margin-top: 20px; }

/* Address
 ========================================================================== */
address {
  font-style: normal; }

/* Blockquotes
 ========================================================================== */
blockquote {
  margin: 0 0 20px 0;
  font-size: 1.25rem;
  line-height: 1.5;
  font-style: italic;
  color: #333; }

/* Add margin if adjacent element */
* + blockquote {
  margin-top: 20px; }

/*
 * Content
 */
blockquote p:last-of-type {
  margin-bottom: 0; }

blockquote footer {
  margin-top: 10px;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #666; }
  blockquote footer::before {
    content: "— "; }

/* Preformatted text
 ========================================================================== */
/*
 * 1. Contain overflow in all browsers.
 */
pre {
  font: 0.875rem / 1.5 Consolas, monaco, monospace;
  color: #666;
  -moz-tab-size: 4;
  -o-tab-size: 4;
     tab-size: 4;
  /* 1 */
  overflow: auto;
  padding: 10px;
  border: 1px solid #e5e5e5;
  border-radius: 3px;
  background: #fff; }

pre code {
  font-family: Consolas, monaco, monospace; }

/* Selection pseudo-element
 ========================================================================== */
::-moz-selection {
  background: #39f;
  color: #fff;
  text-shadow: none; }
::selection {
  background: #39f;
  color: #fff;
  text-shadow: none; }

/* HTML5 elements
 ========================================================================== */
/*
 * 1. Add the correct display in Edge, IE 10+, and Firefox.
 * 2. Add the correct display in IE.
 */
details,
main {
  /* 2 */
  display: block; }

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item; }

/*
 * Add the correct display in IE.
 */
template {
  display: none; }

/* Pass media breakpoints to JS
 ========================================================================== */
/*
 * Breakpoints
 */
.uk-breakpoint-s::before {
  content: "768px"; }

.uk-breakpoint-m::before {
  content: "1024px"; }

.uk-breakpoint-l::before {
  content: "1200px"; }

.uk-breakpoint-xl::before {
  content: "1600px"; }

:root {
  --uk-breakpoint-s: 768px;
  --uk-breakpoint-m: 1024px;
  --uk-breakpoint-l: 1200px;
  --uk-breakpoint-xl: 1600px; }

/* ========================================================================
   Component: Link
 ========================================================================== */
/* Muted
 ========================================================================== */
a.uk-link-muted,
.uk-link-muted a {
  color: #999; }

a.uk-link-muted:hover,
.uk-link-muted a:hover,
.uk-link-toggle:hover .uk-link-muted,
.uk-link-toggle:focus .uk-link-muted {
  color: #666; }

/* Text
 ========================================================================== */
a.uk-link-text,
.uk-link-text a {
  color: inherit; }

a.uk-link-text:hover,
.uk-link-text a:hover,
.uk-link-toggle:hover .uk-link-text,
.uk-link-toggle:focus .uk-link-text {
  color: #999; }

/* Heading
 ========================================================================== */
a.uk-link-heading,
.uk-link-heading a {
  color: inherit; }

a.uk-link-heading:hover,
.uk-link-heading a:hover,
.uk-link-toggle:hover .uk-link-heading,
.uk-link-toggle:focus .uk-link-heading {
  color: #1e87f0;
  text-decoration: none; }

/* Reset
 ========================================================================== */
/*
 * `!important` needed to override inverse component
 */
a.uk-link-reset,
.uk-link-reset a {
  color: inherit !important;
  text-decoration: none !important; }

/* Toggle
 ========================================================================== */
.uk-link-toggle {
  color: inherit !important;
  text-decoration: none !important; }

.uk-link-toggle:focus {
  outline: none; }

/* ========================================================================
   Component: Heading
 ========================================================================== */
.uk-heading-small {
  font-size: 2.6rem;
  line-height: 1.2; }

.uk-heading-medium {
  font-size: 2.8875rem;
  line-height: 1.1; }

.uk-heading-large {
  font-size: 3.4rem;
  line-height: 1.1; }

.uk-heading-xlarge {
  font-size: 4rem;
  line-height: 1; }

.uk-heading-2xlarge {
  font-size: 6rem;
  line-height: 1; }

/* Tablet Landscape and bigger */
@media (min-width: 1024px) {
  .uk-heading-small {
    font-size: 3.25rem; }
  .uk-heading-medium {
    font-size: 3.5rem; }
  .uk-heading-large {
    font-size: 4rem; }
  .uk-heading-xlarge {
    font-size: 6rem; }
  .uk-heading-2xlarge {
    font-size: 8rem; } }

/* Laptop and bigger */
@media (min-width: 1200px) {
  .uk-heading-medium {
    font-size: 4rem; }
  .uk-heading-large {
    font-size: 6rem; }
  .uk-heading-xlarge {
    font-size: 8rem; }
  .uk-heading-2xlarge {
    font-size: 11rem; } }

/* Primary
   Deprecated: Use `uk-heading-medium` instead
 ========================================================================== */
/* Tablet landscape and bigger */
/* Desktop and bigger */
/* Hero
   Deprecated: Use `uk-heading-xlarge` instead
 ========================================================================== */
/* Tablet landscape and bigger */
/* Desktop and bigger */
/* Divider
 ========================================================================== */
.uk-heading-divider {
  padding-bottom: calc(5px + 0.1em);
  border-bottom: calc(0.2px + 0.05em) solid #e5e5e5; }

/* Bullet
 ========================================================================== */
.uk-heading-bullet {
  position: relative; }

/*
 * 1. Using `inline-block` to make it work with text alignment
 * 2. Center vertically
 * 3. Style
 */
.uk-heading-bullet::before {
  content: "";
  /* 1 */
  display: inline-block;
  /* 2 */
  position: relative;
  top: calc(-0.1 * 1em);
  vertical-align: middle;
  /* 3 */
  height: calc(4px + 0.7em);
  margin-right: calc(5px + 0.2em);
  border-left: calc(5px + 0.1em) solid #e5e5e5; }

/* Line
 ========================================================================== */
/*
 * Clip the child element
 */
.uk-heading-line {
  overflow: hidden; }

/*
 * Extra markup is needed to make it work with text align
 */
.uk-heading-line > * {
  display: inline-block;
  position: relative; }

/*
 * 1. Center vertically
 * 2. Make the element as large as possible. It's clipped by the container.
 * 3. Style
 */
.uk-heading-line > ::before,
.uk-heading-line > ::after {
  content: "";
  /* 1 */
  position: absolute;
  top: calc(50% - (calc(0.2px + 0.05em) / 2));
  /* 2 */
  width: 2000px;
  /* 3 */
  border-bottom: calc(0.2px + 0.05em) solid #e5e5e5; }

.uk-heading-line > ::before {
  right: 100%;
  margin-right: calc(5px + 0.3em); }

.uk-heading-line > ::after {
  left: 100%;
  margin-left: calc(5px + 0.3em); }

/* ========================================================================
   Component: Divider
 ========================================================================== */
/*
 * 1. Reset default `hr`
 * 2. Set margin if a `div` is used for semantical reason
 */
[class*='uk-divider'] {
  /* 1 */
  border: none;
  /* 2 */
  margin-bottom: 20px; }

/* Add margin if adjacent element */
* + [class*='uk-divider'] {
  margin-top: 20px; }

/* Icon
 ========================================================================== */
.uk-divider-icon {
  position: relative;
  height: 20px;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22%23e5e5e5%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
  background-repeat: no-repeat;
  background-position: 50% 50%; }

.uk-divider-icon::before,
.uk-divider-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  max-width: calc(50% - (50px / 2));
  border-bottom: 1px solid #e5e5e5; }

.uk-divider-icon::before {
  right: calc(50% + (50px / 2));
  width: 100%; }

.uk-divider-icon::after {
  left: calc(50% + (50px / 2));
  width: 100%; }

/* Small
 ========================================================================== */
/*
 * 1. Fix height because of `inline-block`
 * 2. Using ::after and inline-block to make `text-align` work
 */
/* 1 */
.uk-divider-small {
  line-height: 0; }

/* 2 */
.uk-divider-small::after {
  content: "";
  display: inline-block;
  width: 100px;
  max-width: 100%;
  border-top: 1px solid #e5e5e5;
  vertical-align: top; }

/* Vertical
 ========================================================================== */
.uk-divider-vertical {
  width: 1px;
  height: 100px;
  margin-left: auto;
  margin-right: auto;
  border-left: 1px solid #e5e5e5; }

/* ========================================================================
   Component: List
 ========================================================================== */
.uk-list {
  padding: 0;
  list-style: none; }

/*
 * Remove margin from the last-child
 */
.uk-list > * > :last-child {
  margin-bottom: 0; }

/*
 * Style
 */
.uk-list > :nth-child(n+2),
.uk-list > * > ul {
  margin-top: 10px; }

/* Marker modifiers
 * Moving `::marker` inside `::before` to style it differently
 * To style the `::marker` is currently only supported in Firefox and Safari
 ========================================================================== */
.uk-list-disc > *,
.uk-list-circle > *,
.uk-list-square > *,
.uk-list-decimal > *,
.uk-list-hyphen > * {
  padding-left: 30px; }

/*
 * Type modifiers
 */
.uk-list-decimal {
  counter-reset: decimal; }

.uk-list-decimal > * {
  counter-increment: decimal; }

[class*='uk-list'] > ::before {
  content: '';
  position: relative;
  left: -30px;
  width: 30px;
  height: 1.5em;
  margin-bottom: -1.5em;
  display: list-item;
  list-style-position: inside;
  text-align: right; }

.uk-list-disc > ::before {
  list-style-type: disc; }

.uk-list-circle > ::before {
  list-style-type: circle; }

.uk-list-square > ::before {
  list-style-type: square; }

.uk-list-decimal > ::before {
  content: counter(decimal, decimal) " . "; }

.uk-list-hyphen > ::before {
  content: '–\00A0\00A0'; }

/*
 * Color modifiers
 */
.uk-list-muted > ::before {
  color: #999 !important; }

.uk-list-emphasis > ::before {
  color: #333 !important; }

.uk-list-primary > ::before {
  color: #1e87f0 !important; }

.uk-list-secondary > ::before {
  color: #222 !important; }

/* Image bullet modifier
 ========================================================================== */
.uk-list-bullet > * {
  padding-left: 30px; }

.uk-list-bullet > ::before {
  content: "";
  position: relative;
  left: -30px;
  width: 30px;
  height: 1.5em;
  margin-bottom: -1.5em;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23666%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: 50% 50%; }

/* Style modifiers
 ========================================================================== */
/*
 * Divider
 */
.uk-list-divider > :nth-child(n+2) {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #e5e5e5; }

/*
 * Striped
 */
.uk-list-striped > * {
  padding: 10px 10px; }
  .uk-list-striped > *:nth-of-type(odd) {
    border-top: 1px solid #e5e5e5;
    border-bottom: 1px solid #e5e5e5; }

.uk-list-striped > :nth-of-type(odd) {
  background: #f8f8f8; }

.uk-list-striped > :nth-child(n+2) {
  margin-top: 0; }

/* Size modifier
 ========================================================================== */
.uk-list-large > :nth-child(n+2),
.uk-list-large > * > ul {
  margin-top: 20px; }

.uk-list-collapse > :nth-child(n+2),
.uk-list-collapse > * > ul {
  margin-top: 0; }

/*
 * Divider
 */
.uk-list-large.uk-list-divider > :nth-child(n+2) {
  margin-top: 20px;
  padding-top: 20px; }

.uk-list-collapse.uk-list-divider > :nth-child(n+2) {
  margin-top: 0;
  padding-top: 0; }

/*
 * Striped
 */
.uk-list-large.uk-list-striped > * {
  padding: 20px 10px; }

.uk-list-collapse.uk-list-striped > * {
  padding-top: 0;
  padding-bottom: 0; }

.uk-list-large.uk-list-striped > :nth-child(n+2),
.uk-list-collapse.uk-list-striped > :nth-child(n+2) {
  margin-top: 0; }

/* ========================================================================
   Component: Description list
 ========================================================================== */
/*
 * Term
 */
.uk-description-list > dt {
  color: #333;
  font-size: 0.875rem;
  font-weight: normal;
  text-transform: uppercase; }

.uk-description-list > dt:nth-child(n+2) {
  margin-top: 20px; }

/*
 * Description
 */
/* Style modifier
 ========================================================================== */
/*
 * Line
 */
.uk-description-list-divider > dt:nth-child(n+2) {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #e5e5e5; }

/* ========================================================================
   Component: Table
 ========================================================================== */
/*
 * 1. Remove most spacing between table cells.
 * 2. Behave like a block element
 * 3. Style
 */
.uk-table {
  /* 1 */
  border-collapse: collapse;
  border-spacing: 0;
  /* 2 */
  width: 100%;
  /* 3 */
  margin-bottom: 20px; }

/* Add margin if adjacent element */
* + .uk-table {
  margin-top: 20px; }

/* Header cell
 ========================================================================== */
/*
 * 1. Style
 */
.uk-table th {
  padding: 16px 12px;
  text-align: left;
  vertical-align: bottom;
  /* 1 */
  font-size: 0.875rem;
  font-weight: normal;
  color: #999;
  text-transform: uppercase; }

/* Cell
 ========================================================================== */
.uk-table td {
  padding: 16px 12px;
  vertical-align: top; }

/*
 * Remove margin from the last-child
 */
.uk-table td > :last-child {
  margin-bottom: 0; }

/* Footer
 ========================================================================== */
.uk-table tfoot {
  font-size: 0.875rem; }

/* Caption
 ========================================================================== */
.uk-table caption {
  font-size: 0.875rem;
  text-align: left;
  color: #999; }

/* Alignment modifier
 ========================================================================== */
.uk-table-middle,
.uk-table-middle td {
  vertical-align: middle !important; }

/* Style modifiers
 ========================================================================== */
/*
 * Divider
 */
.uk-table-divider > tr:not(:first-child),
.uk-table-divider > :not(:first-child) > tr,
.uk-table-divider > :first-child > tr:not(:first-child) {
  border-top: 1px solid #e5e5e5; }

/*
 * Striped
 */
.uk-table-striped > tr:nth-of-type(odd),
.uk-table-striped tbody tr:nth-of-type(odd) {
  background: #f8f8f8;
  border-top: 1px solid #e5e5e5;
  border-bottom: 1px solid #e5e5e5; }

/*
 * Hover
 */
.uk-table-hover > tr:hover,
.uk-table-hover tbody tr:hover {
  background: #ffd; }

/* Active state
 ========================================================================== */
.uk-table > tr.uk-active,
.uk-table tbody tr.uk-active {
  background: #ffd; }

/* Size modifier
 ========================================================================== */
.uk-table-small th,
.uk-table-small td {
  padding: 10px 12px; }

.uk-table-large th,
.uk-table-large td {
  padding: 22px 12px; }

/* Justify modifier
 ========================================================================== */
.uk-table-justify th:first-child,
.uk-table-justify td:first-child {
  padding-left: 0; }

.uk-table-justify th:last-child,
.uk-table-justify td:last-child {
  padding-right: 0; }

/* Cell size modifier
 ========================================================================== */
.uk-table-shrink {
  width: 1px; }

.uk-table-expand {
  min-width: 150px; }

/* Cell link modifier
 ========================================================================== */
/*
 * Does not work with `uk-table-justify` at the moment
 */
.uk-table-link {
  padding: 0 !important; }

.uk-table-link > a {
  display: block;
  padding: 16px 12px; }

.uk-table-small .uk-table-link > a {
  padding: 10px 12px; }

/* Responsive table
 ========================================================================== */
/* Phone landscape and smaller */
@media (max-width: 1023px) {
  .uk-table-responsive,
  .uk-table-responsive tbody,
  .uk-table-responsive th,
  .uk-table-responsive td,
  .uk-table-responsive tr {
    display: block; }
  .uk-table-responsive thead {
    display: none; }
  .uk-table-responsive th,
  .uk-table-responsive td {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    overflow: visible !important;
    white-space: normal !important; }
  .uk-table-responsive th:not(:first-child):not(.uk-table-link),
  .uk-table-responsive td:not(:first-child):not(.uk-table-link),
  .uk-table-responsive .uk-table-link:not(:first-child) > a {
    padding-top: 5px !important; }
  .uk-table-responsive th:not(:last-child):not(.uk-table-link),
  .uk-table-responsive td:not(:last-child):not(.uk-table-link),
  .uk-table-responsive .uk-table-link:not(:last-child) > a {
    padding-bottom: 5px !important; }
  .uk-table-justify.uk-table-responsive th,
  .uk-table-justify.uk-table-responsive td {
    padding-left: 0;
    padding-right: 0; } }

.uk-table tbody tr {
  -webkit-transition: background-color 0.1s linear;
  transition: background-color 0.1s linear; }

/* ========================================================================
   Component: Icon
 ========================================================================== */
/*
 * Note: 1. - 7. is required for `button` elements. Needed for Close and Form Icon component.
 * 1. Remove margins in Chrome, Safari and Opera.
 * 2. Remove borders for `button`.
 * 3. Remove border-radius in Chrome.
 * 4. Address `overflow` set to `hidden` in IE.
 * 5. Correct `font` properties and `color` not being inherited for `button`.
 * 6. Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 7. Remove default `button` padding and background color
 * 8. Style
 * 9. Fill all SVG elements with the current text color if no `fill` attribute is set
 * 10. Let the container fit the height of the icon
 */
.uk-icon {
  /* 1 */
  margin: 0;
  /* 2 */
  border: none;
  /* 3 */
  border-radius: 0;
  /* 4 */
  overflow: visible;
  /* 5 */
  font: inherit;
  color: inherit;
  /* 6 */
  text-transform: none;
  /* 7. */
  padding: 0;
  background-color: transparent;
  /* 8 */
  display: inline-block;
  /* 9 */
  fill: currentcolor;
  /* 10 */
  line-height: 0; }

/* Required for `button`. */
button.uk-icon:not(:disabled) {
  cursor: pointer; }

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

/*
 * Set the fill and stroke color of all SVG elements to the current text color
 */
.uk-icon:not(.uk-preserve) [fill*='#']:not(.uk-preserve) {
  fill: currentcolor; }

.uk-icon:not(.uk-preserve) [stroke*='#']:not(.uk-preserve) {
  stroke: currentcolor; }

/*
 * Fix Firefox blurry SVG rendering: https://bugzilla.mozilla.org/show_bug.cgi?id=1046835
 */
.uk-icon > * {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0); }

/* Image modifier
 ========================================================================== */
/*
 * Display images in icon dimensions
 */
.uk-icon-image {
  width: 20px;
  height: 20px;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle; }

/* Style modifiers
 ========================================================================== */
/*
 * Link
 */
.uk-icon-link {
  color: #999; }

.uk-icon-link:hover,
.uk-icon-link:focus {
  color: #666;
  outline: none; }

/* OnClick + Active */
.uk-icon-link:active,
.uk-active > .uk-icon-link {
  color: #595959; }

/*
 * Button
 * 1. Center icon vertically and horizontally
 */
.uk-icon-button {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 36px;
  height: 36px;
  border-radius: 500px;
  background: #f8f8f8;
  color: #999;
  vertical-align: middle;
  /* 1 */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-transition: 0.1s ease-in-out;
  transition: 0.1s ease-in-out;
  -webkit-transition-property: color, background-color;
  transition-property: color, background-color; }

/* Hover + Focus */
.uk-icon-button:hover,
.uk-icon-button:focus {
  background-color: #ebebeb;
  color: #666;
  outline: none; }

/* OnClick + Active */
.uk-icon-button:active,
.uk-active > .uk-icon-button {
  background-color: #dfdede;
  color: #666; }

/* ========================================================================
   Component: Form Range
 ========================================================================== */
/*
 * 1. Normalize and defaults
 * 2. Prevent content overflow if a fixed width is used
 * 3. Take the full width
 * 4. Remove default style
 * 5. Remove white background in Chrome
 * 6. Remove padding in IE11
 */
.uk-range {
  /* 1 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0;
  vertical-align: middle;
  /* 2 */
  max-width: 100%;
  /* 3 */
  width: 100%;
  /* 4 */
  -webkit-appearance: none;
  /* 5 */
  background: transparent;
  /* 6 */
  padding: 0; }

/* Focus */
.uk-range:focus {
  outline: none; }

.uk-range::-moz-focus-outer {
  border: none; }

/* IE11 Reset */
.uk-range::-ms-track {
  height: 15px;
  background: transparent;
  border-color: transparent;
  color: transparent; }

/*
 * Improves consistency of cursor style for clickable elements
 */
.uk-range:not(:disabled)::-webkit-slider-thumb {
  cursor: pointer; }

.uk-range:not(:disabled)::-moz-range-thumb {
  cursor: pointer; }

.uk-range:not(:disabled)::-ms-thumb {
  cursor: pointer; }

/* Thumb
 ========================================================================== */
/*
 * 1. Reset
 * 2. Style
 */
/* Webkit */
.uk-range::-webkit-slider-thumb {
  /* 1 */
  -webkit-appearance: none;
  margin-top: -7px;
  /* 2 */
  height: 15px;
  width: 15px;
  border-radius: 500px;
  background: #fff;
  border: 1px solid #cccbcb; }

/* Firefox */
.uk-range::-moz-range-thumb {
  /* 1 */
  border: none;
  /* 2 */
  height: 15px;
  width: 15px;
  border-radius: 500px;
  background: #fff;
  border: 1px solid #cccbcb; }

/* Edge */
.uk-range::-ms-thumb {
  /* 1 */
  margin-top: 0; }

/* IE11 */
.uk-range::-ms-thumb {
  /* 1 */
  border: none;
  /* 2 */
  height: 15px;
  width: 15px;
  border-radius: 500px;
  background: #fff;
  border: 1px solid #cccbcb; }

/* Edge + IE11 */
.uk-range::-ms-tooltip {
  display: none; }

/* Track
 ========================================================================== */
/*
 * 1. Safari doesn't have a focus state. Using active instead.
 */
/* Webkit */
.uk-range::-webkit-slider-runnable-track {
  height: 3px;
  background: #ebebeb;
  border-radius: 500px; }

.uk-range:focus::-webkit-slider-runnable-track,
.uk-range:active::-webkit-slider-runnable-track {
  background: #d2d2d2; }

/* Firefox */
.uk-range::-moz-range-track {
  height: 3px;
  background: #ebebeb;
  border-radius: 500px; }

.uk-range:focus::-moz-range-track {
  background: #d2d2d2; }

/* Edge */
.uk-range::-ms-fill-lower,
.uk-range::-ms-fill-upper {
  height: 3px;
  background: #ebebeb;
  border-radius: 500px; }

.uk-range:focus::-ms-fill-lower,
.uk-range:focus::-ms-fill-upper {
  background: #d2d2d2; }

/* ========================================================================
   Component: Form
 ========================================================================== */
/*
 * 1. Define consistent box sizing.
 *    Default is `content-box` with following exceptions set to `border-box`
 *    `select`, `input[type="checkbox"]` and `input[type="radio"]`
 *    `input[type="search"]` in Chrome, Safari and Opera
 *    `input[type="color"]` in Firefox
 * 2. Address margins set differently in Firefox/IE and Chrome/Safari/Opera.
 * 3. Remove `border-radius` in iOS.
 * 4. Change font properties to `inherit` in all browsers.
 */
.uk-input,
.uk-select,
.uk-textarea,
.uk-radio,
.uk-checkbox {
  /* 1 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 2 */
  margin: 0;
  /* 3 */
  border-radius: 0;
  /* 4 */
  font: inherit; }

/*
 * Show the overflow in Edge.
 */
.uk-input {
  overflow: visible; }

/*
 * Remove the inheritance of text transform in Firefox.
 */
.uk-select {
  text-transform: none; }

/*
 * 1. Change font properties to `inherit` in all browsers
 * 2. Don't inherit the `font-weight` and use `bold` instead.
 * NOTE: Both declarations don't work in Chrome, Safari and Opera.
 */
.uk-select optgroup {
  /* 1 */
  font: inherit;
  /* 2 */
  font-weight: bold; }

/*
 * Remove the default vertical scrollbar in IE 10+.
 */
.uk-textarea {
  overflow: auto; }

/*
 * Remove the inner padding and cancel buttons in Chrome on OS X and Safari on OS X.
 */
.uk-input[type="search"]::-webkit-search-cancel-button,
.uk-input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/*
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
.uk-input[type="number"]::-webkit-inner-spin-button,
.uk-input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/*
 * Removes placeholder transparency in Firefox.
 */
.uk-input::-moz-placeholder,
.uk-textarea::-moz-placeholder {
  opacity: 1; }

/*
 * Improves consistency of cursor style for clickable elements
 */
.uk-radio:not(:disabled),
.uk-checkbox:not(:disabled) {
  cursor: pointer; }

/*
 * Define consistent border, margin, and padding.
 */
.uk-fieldset {
  border: none;
  margin: 0;
  padding: 0; }

/* Input, select and textarea
 * Allowed: `text`, `password`, `datetime`, `datetime-local`, `date`,  `month`,
            `time`, `week`, `number`, `email`, `url`, `search`, `tel`, `color`
 * Disallowed: `range`, `radio`, `checkbox`, `file`, `submit`, `reset` and `image`
 ========================================================================== */
/*
 * Remove default style in iOS.
 */
.uk-input,
.uk-textarea {
  -webkit-appearance: none; }

/*
 * 1. Prevent content overflow if a fixed width is used
 * 2. Take the full width
 * 3. Reset default
 * 4. Style
 */
.uk-input,
.uk-select,
.uk-textarea {
  /* 1 */
  max-width: 100%;
  /* 2 */
  width: 100%;
  /* 3 */
  border: 0 none;
  /* 4 */
  padding: 0 10px;
  background: #fff;
  color: #666;
  border: 1px solid #e5e5e5;
  -webkit-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
  -webkit-transition-property: color, background-color, border;
  transition-property: color, background-color, border; }

/*
 * Single-line
 * 1. Allow any element to look like an `input` or `select` element
 * 2. Make sure line-height is not larger than height
 *    Also needed to center the text vertically
 */
.uk-input,
.uk-select:not([multiple]):not([size]) {
  height: 40px;
  vertical-align: middle;
  /* 1 */
  display: inline-block; }

/* 2 */
.uk-input:not(input),
.uk-select:not(select) {
  line-height: 38px; }

/*
 * Multi-line
 */
.uk-select[multiple],
.uk-select[size],
.uk-textarea {
  padding-top: 4px;
  padding-bottom: 4px;
  vertical-align: top; }

/* Focus */
.uk-input:focus,
.uk-select:focus,
.uk-textarea:focus {
  outline: none;
  background-color: #fff;
  color: #666;
  border-color: #1e87f0; }

/* Disabled */
.uk-input:disabled,
.uk-select:disabled,
.uk-textarea:disabled {
  background-color: #f8f8f8;
  color: #999;
  border-color: #e5e5e5; }

/*
 * Placeholder
 */
.uk-input::-ms-input-placeholder {
  color: #999 !important; }

.uk-input::-webkit-input-placeholder {
  color: #999; }

.uk-input::-moz-placeholder {
  color: #999; }

.uk-input::placeholder {
  color: #999; }

.uk-textarea::-ms-input-placeholder {
  color: #999 !important; }

.uk-textarea::-webkit-input-placeholder {
  color: #999; }

.uk-textarea::-moz-placeholder {
  color: #999; }

.uk-textarea::placeholder {
  color: #999; }

/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Small
 */
.uk-form-small {
  font-size: 0.875rem; }

.uk-form-small:not(textarea):not([multiple]):not([size]) {
  height: 30px;
  padding-left: 8px;
  padding-right: 8px; }

.uk-form-small:not(select):not(input):not(textarea) {
  line-height: 28px; }

/*
 * Large
 */
.uk-form-large {
  font-size: 1.25rem; }

.uk-form-large:not(textarea):not([multiple]):not([size]) {
  height: 55px;
  padding-left: 12px;
  padding-right: 12px; }

.uk-form-large:not(select):not(input):not(textarea) {
  line-height: 53px; }

/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Error
 */
.uk-form-danger,
.uk-form-danger:focus {
  color: #f0506e;
  border-color: #f0506e; }

/*
 * Success
 */
.uk-form-success,
.uk-form-success:focus {
  color: #32d296;
  border-color: #32d296; }

/*
 * Blank
 */
.uk-form-blank {
  background: none;
  border-color: transparent; }

.uk-form-blank:focus {
  border-color: #e5e5e5;
  border-style: dashed; }

/* Width modifiers (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Fixed widths
 * Different widths for mini sized `input` and `select` elements
 */
input.uk-form-width-xsmall {
  width: 50px; }

select.uk-form-width-xsmall {
  width: 75px; }

.uk-form-width-small {
  width: 130px; }

.uk-form-width-medium {
  width: 200px; }

.uk-form-width-large {
  width: 500px; }

/* Select
 ========================================================================== */
/*
 * 1. Remove default style. Also works in Firefox
 * 2. Style
 * 3. Remove default style in IE 10/11
 * 4. Set `color` for options in the select dropdown, because the inherited `color` might be too light.
 */
.uk-select:not([multiple]):not([size]) {
  /* 1 */
  -webkit-appearance: none;
  -moz-appearance: none;
  /* 2 */
  padding-right: 20px;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
  background-repeat: no-repeat;
  background-position: 100% 50%; }

/* 3 */
.uk-select:not([multiple]):not([size])::-ms-expand {
  display: none; }

/* 4 */
.uk-select:not([multiple]):not([size]) option {
  color: #444; }

/*
 * Disabled
 */
.uk-select:not([multiple]):not([size]):disabled {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); }

/* Datalist
 ========================================================================== */
/*
 * 1. Remove default style in Chrome
 */
.uk-input[list] {
  padding-right: 20px;
  background-repeat: no-repeat;
  background-position: 100% 50%; }

.uk-input[list]:hover,
.uk-input[list]:focus {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%2012%208%206%2016%206%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); }

/* 1 */
.uk-input[list]::-webkit-calendar-picker-indicator {
  display: none; }

/* Radio and checkbox
 * Note: Does not work in IE11
 ========================================================================== */
/*
 * 1. Style
 * 2. Make box more robust so it clips the child element
 * 3. Vertical alignment
 * 4. Remove default style
 * 5. Fix black background on iOS
 * 6. Center icons
 */
.uk-radio,
.uk-checkbox {
  /* 1 */
  display: inline-block;
  height: 16px;
  width: 16px;
  /* 2 */
  overflow: hidden;
  /* 3 */
  margin-top: -4px;
  vertical-align: middle;
  /* 4 */
  -webkit-appearance: none;
  -moz-appearance: none;
  /* 5 */
  background-color: transparent;
  /* 6 */
  background-repeat: no-repeat;
  background-position: 50% 50%;
  border: 1px solid #cccbcb;
  -webkit-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
  -webkit-transition-property: background-color, border;
  transition-property: background-color, border; }

.uk-radio {
  border-radius: 50%; }

/* Focus */
.uk-radio:focus,
.uk-checkbox:focus {
  outline: none;
  border-color: #1e87f0; }

/*
 * Checked
 */
.uk-radio:checked,
.uk-checkbox:checked,
.uk-checkbox:indeterminate {
  background-color: #1e87f0;
  border-color: transparent; }

/* Focus */
.uk-radio:checked:focus,
.uk-checkbox:checked:focus,
.uk-checkbox:indeterminate:focus {
  background-color: #0e6ecd; }

/*
 * Icons
 */
.uk-radio:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23fff%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

.uk-checkbox:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23fff%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); }

.uk-checkbox:indeterminate {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23fff%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

/*
 * Disabled
 */
.uk-radio:disabled,
.uk-checkbox:disabled {
  background-color: #f8f8f8;
  border-color: #e5e5e5; }

.uk-radio:disabled:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23999%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

.uk-checkbox:disabled:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); }

.uk-checkbox:disabled:indeterminate {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23999%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

/* Legend
 ========================================================================== */
/*
 * Legend
 * 1. Behave like block element
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove padding so people aren't caught out if they zero out fieldsets.
 * 4. Style
 */
.uk-legend {
  /* 1 */
  width: 100%;
  /* 2 */
  color: inherit;
  /* 3 */
  padding: 0;
  /* 4 */
  font-size: 1.5rem;
  line-height: 1.4; }

/* Custom controls
 ========================================================================== */
/*
 * 1. Container fits its content
 * 2. Create position context
 * 3. Prevent content overflow
 * 4. Behave like most inline-block elements
 */
.uk-form-custom {
  /* 1 */
  display: inline-block;
  /* 2 */
  position: relative;
  /* 3 */
  max-width: 100%;
  /* 4 */
  vertical-align: middle; }

/*
 * 1. Position and resize the form control to always cover its container
 * 2. Required for Firefox for positioning to the left
 * 3. Required for Webkit to make `height` work
 * 4. Hide controle and show cursor
 * 5. Needed for the cursor
 * 6. Clip height caused by 5. Needed for Webkit only
 */
.uk-form-custom select,
.uk-form-custom input[type="file"] {
  /* 1 */
  position: absolute;
  top: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  /* 2 */
  left: 0;
  /* 3 */
  -webkit-appearance: none;
  /* 4 */
  opacity: 0;
  cursor: pointer; }

.uk-form-custom input[type="file"] {
  /* 5 */
  font-size: 500px;
  /* 6 */
  overflow: hidden; }

/* Label
 ========================================================================== */
.uk-form-label {
  color: #333;
  font-size: 0.875rem; }

/* Layout
 ========================================================================== */
/*
 * Stacked
 */
.uk-form-stacked .uk-form-label {
  display: block;
  margin-bottom: 5px; }

/*
 * Horizontal
 */
/* Tablet portrait and smaller */
@media (max-width: 1023px) {
  /* Behave like `uk-form-stacked` */
  .uk-form-horizontal .uk-form-label {
    display: block;
    margin-bottom: 5px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-form-horizontal .uk-form-label {
    width: 200px;
    margin-top: 7px;
    float: left; }
  .uk-form-horizontal .uk-form-controls {
    margin-left: 215px; }
  /* Better vertical alignment if controls are checkboxes and radio buttons with text */
  .uk-form-horizontal .uk-form-controls-text {
    padding-top: 7px; } }

/* Icons
 ========================================================================== */
/*
 * 1. Set position
 * 2. Set width
 * 3. Center icon vertically and horizontally
 * 4. Style
 */
.uk-form-icon {
  /* 1 */
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  /* 2 */
  width: 40px;
  /* 3 */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  /* 4 */
  color: #999; }

/*
 * Required for `a`.
 */
.uk-form-icon:hover {
  color: #666; }

/*
 * Make `input` element clickable through icon, e.g. if it's a `span`
 */
.uk-form-icon:not(a):not(button):not(input) {
  pointer-events: none; }

/*
 * Input padding
 */
.uk-form-icon:not(.uk-form-icon-flip) ~ .uk-input {
  padding-left: 40px !important; }

/*
 * Position modifier
 */
.uk-form-icon-flip {
  right: 0;
  left: auto; }

.uk-form-icon-flip ~ .uk-input {
  padding-right: 40px !important; }

/* ========================================================================
   Component: Button
 ========================================================================== */
/*
 * 1. Remove margins in Chrome, Safari and Opera.
 * 2. Remove borders for `button`.
 * 3. Address `overflow` set to `hidden` in IE.
 * 4. Correct `font` properties and `color` not being inherited for `button`.
 * 5. Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 6. Remove default style for `input type="submit"`in iOS.
 * 7. Style
 * 8. `line-height` is used to create a height because it also centers the text vertically for `a` elements.
 *    Better would be to use height and flexbox to center the text vertically but flexbox doesn't work in Firefox on `button` elements.
 * 9. Align text if button has a width
 * 10. Required for `a`.
 */
.uk-button {
  /* 1 */
  margin: 0;
  /* 2 */
  border: none;
  /* 3 */
  overflow: visible;
  /* 4 */
  font: inherit;
  color: inherit;
  /* 5 */
  text-transform: none;
  /* 6 */
  -webkit-appearance: none;
  border-radius: 0;
  /* 7 */
  display: inline-block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0 30px;
  vertical-align: middle;
  font-size: 0.875rem;
  /* 8 */
  line-height: 38px;
  /* 9 */
  text-align: center;
  /* 10 */
  text-decoration: none;
  text-transform: uppercase;
  -webkit-transition: 0.1s ease-in-out;
  transition: 0.1s ease-in-out;
  -webkit-transition-property: color, background-color, border-color;
  transition-property: color, background-color, border-color; }

.uk-button:not(:disabled) {
  cursor: pointer; }

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

/* Hover */
.uk-button:hover {
  /* 9 */
  text-decoration: none; }

/* Focus */
.uk-button:focus {
  outline: none; }

/* OnClick + Active */
/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-button-default {
  background-color: transparent;
  color: #333;
  border: 1px solid #e5e5e5; }

/* Hover + Focus */
.uk-button-default:hover,
.uk-button-default:focus {
  background-color: transparent;
  color: #333;
  border-color: #b2b2b2; }

/* OnClick + Active */
.uk-button-default:active,
.uk-button-default.uk-active {
  background-color: transparent;
  color: #333;
  border-color: #999898; }

/*
 * Primary
 */
.uk-button-primary {
  background-color: #1e87f0;
  color: #fff;
  border: 1px solid transparent; }

/* Hover + Focus */
.uk-button-primary:hover,
.uk-button-primary:focus {
  background-color: #0f7ae5;
  color: #fff; }

/* OnClick + Active */
.uk-button-primary:active,
.uk-button-primary.uk-active {
  background-color: #0e6ecd;
  color: #fff; }

/*
 * Secondary
 */
.uk-button-secondary {
  background-color: #222;
  color: #fff;
  border: 1px solid transparent; }

/* Hover + Focus */
.uk-button-secondary:hover,
.uk-button-secondary:focus {
  background-color: #151515;
  color: #fff; }

/* OnClick + Active */
.uk-button-secondary:active,
.uk-button-secondary.uk-active {
  background-color: #090808;
  color: #fff; }

/*
 * Danger
 */
.uk-button-danger {
  background-color: #f0506e;
  color: #fff;
  border: 1px solid transparent; }

/* Hover + Focus */
.uk-button-danger:hover,
.uk-button-danger:focus {
  background-color: #ee395b;
  color: #fff; }

/* OnClick + Active */
.uk-button-danger:active,
.uk-button-danger.uk-active {
  background-color: #ec2147;
  color: #fff; }

/*
 * Disabled
 * The same for all style modifiers
 */
.uk-button-default:disabled,
.uk-button-primary:disabled,
.uk-button-secondary:disabled,
.uk-button-danger:disabled {
  background-color: transparent;
  color: #999;
  border-color: #e5e5e5; }

/* Size modifiers
 ========================================================================== */
.uk-button-small {
  padding: 0 15px;
  line-height: 28px;
  font-size: 0.875rem; }

.uk-button-large {
  padding: 0 40px;
  line-height: 53px;
  font-size: 0.875rem; }

/* Text modifiers
 ========================================================================== */
/*
 * Text
 * 1. Reset
 * 2. Style
 */
.uk-button-text {
  /* 1 */
  padding: 0;
  line-height: 1.5;
  background: none;
  /* 2 */
  color: #333;
  position: relative; }
  .uk-button-text::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 100%;
    border-bottom: 1px solid #333;
    -webkit-transition: right 0.3s ease-out;
    transition: right 0.3s ease-out; }

/* Hover + Focus */
.uk-button-text:hover,
.uk-button-text:focus {
  color: #333; }
  .uk-button-text:hover::before,
  .uk-button-text:focus::before {
    right: 0; }

/* Disabled */
.uk-button-text:disabled {
  color: #999; }
  .uk-button-text:disabled::before {
    display: none; }

/*
 * Link
 * 1. Reset
 * 2. Style
 */
.uk-button-link {
  /* 1 */
  padding: 0;
  line-height: 1.5;
  background: none;
  /* 2 */
  color: #f01d4f; }

/* Hover + Focus */
.uk-button-link:hover,
.uk-button-link:focus {
  color: #0f6ecd;
  text-decoration: underline; }

/* Disabled */
.uk-button-link:disabled {
  color: #999;
  text-decoration: none; }

/* Group
 ========================================================================== */
/*
 * 1. Using `flex` instead of `inline-block` to prevent whitespace betweent child elements
 * 2. Behave like button
 * 3. Create position context
 */
.uk-button-group {
  /* 1 */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  /* 2 */
  vertical-align: middle;
  /* 3 */
  position: relative; }

/* Group
     ========================================================================== */
/*
     * Collapse border
     */
.uk-button-group > .uk-button:nth-child(n+2),
.uk-button-group > div:nth-child(n+2) .uk-button {
  margin-left: -1px; }

/*
     * Create position context to superimpose the successor elements border
     * Known issue: If you use an `a` element as button and an icon inside,
     * the active state will not work if you click the icon inside the button
     * Workaround: Just use a `button` or `input` element as button
     */
.uk-button-group .uk-button:hover,
.uk-button-group .uk-button:focus,
.uk-button-group .uk-button:active,
.uk-button-group .uk-button.uk-active {
  position: relative;
  z-index: 1; }

/* ========================================================================
   Component: Progress
 ========================================================================== */
/*
 * 1. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 * 2. Remove default style
 * 3. Behave like a block element
 * 4. Remove borders in Firefox and Edge
 * 5. Set background color for progress container in Firefox, IE11 and Edge
 * 6. Style
 */
.uk-progress {
  /* 1 */
  vertical-align: baseline;
  /* 2 */
  -webkit-appearance: none;
  -moz-appearance: none;
  /* 3 */
  display: block;
  width: 100%;
  /* 4 */
  border: 0;
  /* 5 */
  background-color: #f8f8f8;
  /* 6 */
  margin-bottom: 20px;
  height: 15px;
  border-radius: 500px;
  overflow: hidden; }

/* Add margin if adjacent element */
* + .uk-progress {
  margin-top: 20px; }

/*
 * Remove animated circles for indeterminate state in IE11 and Edge
 */
.uk-progress:indeterminate {
  color: transparent; }

/*
 * Progress container
 * 2. Remove progress bar for indeterminate state in Firefox
 */
.uk-progress::-webkit-progress-bar {
  background-color: #f8f8f8;
  border-radius: 500px;
  overflow: hidden; }

/* 2 */
.uk-progress:indeterminate::-moz-progress-bar {
  width: 0; }

/*
 * Progress bar
 * 1. Remove right border in IE11 and Edge
 */
.uk-progress::-webkit-progress-value {
  background-color: #1e87f0;
  -webkit-transition: width 0.6s ease;
  transition: width 0.6s ease; }

.uk-progress::-moz-progress-bar {
  background-color: #1e87f0; }

.uk-progress::-ms-fill {
  background-color: #1e87f0;
  -webkit-transition: width 0.6s ease;
  transition: width 0.6s ease;
  /* 1 */
  border: 0; }

/* ========================================================================
   Component: Section
 ========================================================================== */
/*
 * 1. Make it work with `100vh` and height in general
 */
.uk-section {
  display: flow-root;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding-top: 40px;
  padding-bottom: 40px; }

/* Desktop and bigger */
@media (min-width: 1024px) {
  .uk-section {
    padding-top: 70px;
    padding-bottom: 70px; } }

/*
 * Remove margin from the last-child
 */
.uk-section > :last-child {
  margin-bottom: 0; }

/* Size modifiers
 ========================================================================== */
/*
 * XSmall
 */
.uk-section-xsmall {
  padding-top: 20px;
  padding-bottom: 20px; }

/*
 * Small
 */
.uk-section-small {
  padding-top: 40px;
  padding-bottom: 40px; }

/*
 * Large
 */
.uk-section-large {
  padding-top: 70px;
  padding-bottom: 70px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-section-large {
    padding-top: 140px;
    padding-bottom: 140px; } }

/*
 * XLarge
 */
.uk-section-xlarge {
  padding-top: 140px;
  padding-bottom: 140px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-section-xlarge {
    padding-top: 210px;
    padding-bottom: 210px; } }

/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-section-default {
  background: #fff; }

/*
 * Muted
 */
.uk-section-muted {
  background: #f8f8f8; }

/*
 * Primary
 */
.uk-section-primary {
  background: #1e87f0; }

/*
 * Secondary
 */
.uk-section-secondary {
  background: #222; }

/* Overlap modifier
 ========================================================================== */
/*
 * Reserved modifier to make a section overlap another section with an border image
 * Implemented by the theme
 */
/* ========================================================================
   Component: Container
 ========================================================================== */
/*
 * 1. Box sizing has to be `content-box` so the max-width is always the same and
 *    unaffected by the padding on different breakpoints. It's important for the size modifiers.
 */
.uk-container {
  display: flow-root;
  /* 1 */
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-container {
    padding-left: 30px;
    padding-right: 30px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-container {
    padding-left: 40px;
    padding-right: 40px; } }

/*
 * Remove margin from the last-child
 */
.uk-container > :last-child {
  margin-bottom: 0; }

/*
 * Remove padding from nested containers
 */
.uk-container .uk-container {
  padding-left: 0;
  padding-right: 0; }

/* Size modifier
 ========================================================================== */
.uk-container-xsmall {
  max-width: 750px; }

.uk-container-small {
  max-width: 900px; }

.uk-container-large {
  max-width: 1400px; }

.uk-container-xlarge {
  max-width: 1600px; }

.uk-container-expand {
  max-width: none; }

/* Expand modifier
 ========================================================================== */
/*
 * Expand one side only
 */
.uk-container-expand-left {
  margin-left: 0; }

.uk-container-expand-right {
  margin-right: 0; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-container-expand-left.uk-container-xsmall,
  .uk-container-expand-right.uk-container-xsmall {
    max-width: calc(50% + (750px / 2) - 30px); }
  .uk-container-expand-left.uk-container-small,
  .uk-container-expand-right.uk-container-small {
    max-width: calc(50% + (900px / 2) - 30px); } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-container-expand-left,
  .uk-container-expand-right {
    max-width: calc(50% + (1200px / 2) - 40px); }
  .uk-container-expand-left.uk-container-xsmall,
  .uk-container-expand-right.uk-container-xsmall {
    max-width: calc(50% + (750px / 2) - 40px); }
  .uk-container-expand-left.uk-container-small,
  .uk-container-expand-right.uk-container-small {
    max-width: calc(50% + (900px / 2) - 40px); }
  .uk-container-expand-left.uk-container-large,
  .uk-container-expand-right.uk-container-large {
    max-width: calc(50% + (1400px / 2) - 40px); }
  .uk-container-expand-left.uk-container-xlarge,
  .uk-container-expand-right.uk-container-xlarge {
    max-width: calc(50% + (1600px / 2) - 40px); } }

/* Item
 ========================================================================== */
/*
 * Utility classes to reset container padding on the left or right side
 * Note: It has to be negative margin on the item, because it's specific to the item.
 */
.uk-container-item-padding-remove-left,
.uk-container-item-padding-remove-right {
  width: calc(100% + 15px); }

.uk-container-item-padding-remove-left {
  margin-left: -15px; }

.uk-container-item-padding-remove-right {
  margin-right: -15px; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-container-item-padding-remove-left,
  .uk-container-item-padding-remove-right {
    width: calc(100% + 30px); }
  .uk-container-item-padding-remove-left {
    margin-left: -30px; }
  .uk-container-item-padding-remove-right {
    margin-right: -30px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-container-item-padding-remove-left,
  .uk-container-item-padding-remove-right {
    width: calc(100% + 40px); }
  .uk-container-item-padding-remove-left {
    margin-left: -40px; }
  .uk-container-item-padding-remove-right {
    margin-right: -40px; } }

/* ========================================================================
   Component: Tile
 ========================================================================== */
.uk-tile {
  display: flow-root;
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding-left: 15px;
  padding-right: 15px;
  padding-top: 40px;
  padding-bottom: 40px; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-tile {
    padding-left: 30px;
    padding-right: 30px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-tile {
    padding-left: 40px;
    padding-right: 40px;
    padding-top: 70px;
    padding-bottom: 70px; } }

/*
 * Remove margin from the last-child
 */
.uk-tile > :last-child {
  margin-bottom: 0; }

/* Size modifiers
 ========================================================================== */
/*
 * XSmall
 */
.uk-tile-xsmall {
  padding-top: 20px;
  padding-bottom: 20px; }

/*
 * Small
 */
.uk-tile-small {
  padding-top: 40px;
  padding-bottom: 40px; }

/*
 * Large
 */
.uk-tile-large {
  padding-top: 70px;
  padding-bottom: 70px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-tile-large {
    padding-top: 140px;
    padding-bottom: 140px; } }

/*
 * XLarge
 */
.uk-tile-xlarge {
  padding-top: 140px;
  padding-bottom: 140px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-tile-xlarge {
    padding-top: 210px;
    padding-bottom: 210px; } }

/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-tile-default {
  background: #fff; }

/*
 * Muted
 */
.uk-tile-muted {
  background: #f8f8f8; }

/*
 * Primary
 */
.uk-tile-primary {
  background: #1e87f0; }

/*
 * Secondary
 */
.uk-tile-secondary {
  background: #222; }

/* ========================================================================
   Component: Card
 ========================================================================== */
.uk-card {
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-transition: -webkit-box-shadow 0.1s ease-in-out;
  transition: -webkit-box-shadow 0.1s ease-in-out;
  transition: box-shadow 0.1s ease-in-out;
  transition: box-shadow 0.1s ease-in-out, -webkit-box-shadow 0.1s ease-in-out; }

/* Sections
 ========================================================================== */
.uk-card-body {
  display: flow-root;
  padding: 30px 30px; }

.uk-card-header {
  display: flow-root;
  padding: 15px 30px; }

.uk-card-footer {
  display: flow-root;
  padding: 15px 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-card-body {
    padding: 40px 40px; }
  .uk-card-header {
    padding: 20px 40px; }
  .uk-card-footer {
    padding: 20px 40px; } }

/*
 * Remove margin from the last-child
 */
.uk-card-body > :last-child,
.uk-card-header > :last-child,
.uk-card-footer > :last-child {
  margin-bottom: 0; }

/* Media
 ========================================================================== */
/*
 * Reserved alignment modifier to style the media element, e.g. with `border-radius`
 * Implemented by the theme
 */
/* Title
 ========================================================================== */
.uk-card-title {
  font-size: 1.5rem;
  line-height: 1.4; }

/* Badge
 ========================================================================== */
.uk-card-badge {
  position: absolute;
  top: 30px;
  right: 30px;
  z-index: 1; }

/*
 * Remove margin from adjacent element
 */
.uk-card-badge:first-child + * {
  margin-top: 0; }

/* Hover modifier
 ========================================================================== */
.uk-card-hover:not(.uk-card-default):not(.uk-card-primary):not(.uk-card-secondary):hover {
  background: #fff;
  -webkit-box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
          box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

/* Style modifiers
 ========================================================================== */
/*
 * Default
 * Note: Header and Footer are only implemented for the default style
 */
.uk-card-default {
  background: #fff;
  color: #666;
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
          box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }

.uk-card-default .uk-card-title {
  color: #333; }

.uk-card-default.uk-card-hover:hover {
  background-color: #fff;
  -webkit-box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
          box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

.uk-card-default .uk-card-header {
  border-bottom: 1px solid #e5e5e5; }

.uk-card-default .uk-card-footer {
  border-top: 1px solid #e5e5e5; }

/*
 * Primary
 */
.uk-card-primary {
  background: #1e87f0;
  color: #fff;
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
          box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }

.uk-card-primary .uk-card-title {
  color: #fff; }

.uk-card-primary.uk-card-hover:hover {
  background-color: #1e87f0;
  -webkit-box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
          box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

/*
 * Secondary
 */
.uk-card-secondary {
  background: #222;
  color: #fff;
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
          box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }

.uk-card-secondary .uk-card-title {
  color: #fff; }

.uk-card-secondary.uk-card-hover:hover {
  background-color: #222;
  -webkit-box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
          box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

/* Size modifier
 ========================================================================== */
/*
 * Small
 */
.uk-card-small.uk-card-body,
.uk-card-small .uk-card-body {
  padding: 20px 20px; }

.uk-card-small .uk-card-header {
  padding: 13px 20px; }

.uk-card-small .uk-card-footer {
  padding: 13px 20px; }

/*
 * Large
 */
/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-card-large.uk-card-body,
  .uk-card-large .uk-card-body {
    padding: 70px 70px; }
  .uk-card-large .uk-card-header {
    padding: 35px 70px; }
  .uk-card-large .uk-card-footer {
    padding: 35px 70px; } }

/*
     * Default
     */
.uk-card-body > .uk-nav-default {
  margin-left: -30px;
  margin-right: -30px; }

.uk-card-body > .uk-nav-default:only-child {
  margin-top: -15px;
  margin-bottom: -15px; }

.uk-card-body .uk-nav-default > li > a,
.uk-card-body .uk-nav-default .uk-nav-header,
.uk-card-body .uk-nav-default .uk-nav-divider {
  padding-left: 30px;
  padding-right: 30px; }

.uk-card-body .uk-nav-default .uk-nav-sub {
  padding-left: 45px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-card-body > .uk-nav-default {
    margin-left: -40px;
    margin-right: -40px; }
  .uk-card-body > .uk-nav-default:only-child {
    margin-top: -25px;
    margin-bottom: -25px; }
  .uk-card-body .uk-nav-default > li > a,
  .uk-card-body .uk-nav-default .uk-nav-header,
  .uk-card-body .uk-nav-default .uk-nav-divider {
    padding-left: 40px;
    padding-right: 40px; }
  .uk-card-body .uk-nav-default .uk-nav-sub {
    padding-left: 55px; } }

/*
     * Small
     */
.uk-card-small > .uk-nav-default {
  margin-left: -20px;
  margin-right: -20px; }

.uk-card-small > .uk-nav-default:only-child {
  margin-top: -5px;
  margin-bottom: -5px; }

.uk-card-small .uk-nav-default > li > a,
.uk-card-small .uk-nav-default .uk-nav-header,
.uk-card-small .uk-nav-default .uk-nav-divider {
  padding-left: 20px;
  padding-right: 20px; }

.uk-card-small .uk-nav-default .uk-nav-sub {
  padding-left: 35px; }

/*
     * Large
     */
/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-card-large > .uk-nav-default {
    margin: 0; }
  .uk-card-large > .uk-nav-default:only-child {
    margin: 0; }
  .uk-card-large .uk-nav-default > li > a,
  .uk-card-large .uk-nav-default .uk-nav-header,
  .uk-card-large .uk-nav-default .uk-nav-divider {
    padding-left: 0;
    padding-right: 0; }
  .uk-card-large .uk-nav-default .uk-nav-sub {
    padding-left: 15px; } }

/* ========================================================================
   Component: Close
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
.uk-close {
  color: #999;
  -webkit-transition: 0.1s ease-in-out;
  transition: 0.1s ease-in-out;
  -webkit-transition-property: color, opacity;
  transition-property: color, opacity; }

/* Hover + Focus */
.uk-close:hover,
.uk-close:focus {
  color: #666;
  outline: none; }

/* ========================================================================
   Component: Spinner
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
/* SVG
 ========================================================================== */
.uk-spinner > * {
  -webkit-animation: uk-spinner-rotate 1.4s linear infinite;
          animation: uk-spinner-rotate 1.4s linear infinite; }

@-webkit-keyframes uk-spinner-rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg); } }

@keyframes uk-spinner-rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg); } }

/*
 * Circle
 */
.uk-spinner > * > * {
  stroke-dasharray: 88px;
  stroke-dashoffset: 0;
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-animation: uk-spinner-dash 1.4s ease-in-out infinite;
          animation: uk-spinner-dash 1.4s ease-in-out infinite;
  stroke-width: 1;
  stroke-linecap: round; }

@-webkit-keyframes uk-spinner-dash {
  0% {
    stroke-dashoffset: 88px; }
  50% {
    stroke-dashoffset: 22px;
    -webkit-transform: rotate(135deg);
            transform: rotate(135deg); }
  100% {
    stroke-dashoffset: 88px;
    -webkit-transform: rotate(450deg);
            transform: rotate(450deg); } }

@keyframes uk-spinner-dash {
  0% {
    stroke-dashoffset: 88px; }
  50% {
    stroke-dashoffset: 22px;
    -webkit-transform: rotate(135deg);
            transform: rotate(135deg); }
  100% {
    stroke-dashoffset: 88px;
    -webkit-transform: rotate(450deg);
            transform: rotate(450deg); } }

/* ========================================================================
   Component: Totop
 ========================================================================== */
/*
 * Addopts `uk-icon`
 */
.uk-totop {
  padding: 5px;
  color: #999;
  -webkit-transition: color 0.1s ease-in-out;
  transition: color 0.1s ease-in-out; }

/* Hover + Focus */
.uk-totop:hover,
.uk-totop:focus {
  color: #666;
  outline: none; }

/* OnClick */
.uk-totop:active {
  color: #333; }

/* ========================================================================
   Component: Marker
 ========================================================================== */
/*
 * Addopts `uk-icon`
 */
.uk-marker {
  padding: 5px;
  background: #222;
  color: #fff;
  border-radius: 500px; }

/* Hover + Focus */
.uk-marker:hover,
.uk-marker:focus {
  color: #fff;
  outline: none; }

/* ========================================================================
   Component: Alert
 ========================================================================== */
.uk-alert {
  position: relative;
  margin-bottom: 20px;
  padding: 15px 29px 15px 15px;
  background: #f8f8f8;
  color: #666; }

/* Add margin if adjacent element */
* + .uk-alert {
  margin-top: 20px; }

/*
 * Remove margin from the last-child
 */
.uk-alert > :last-child {
  margin-bottom: 0; }

/* Close
 * Adopts `uk-close`
 ========================================================================== */
.uk-alert-close {
  position: absolute;
  top: 20px;
  right: 15px;
  color: inherit;
  opacity: 0.4; }

/*
 * Remove margin from adjacent element
 */
.uk-alert-close:first-child + * {
  margin-top: 0; }

/*
 * Hover + Focus
 */
.uk-alert-close:hover,
.uk-alert-close:focus {
  color: inherit;
  opacity: 0.8; }

/* Style modifiers
 ========================================================================== */
/*
 * Primary
 */
.uk-alert-primary {
  background: #d8eafc;
  color: #1e87f0; }

/*
 * Success
 */
.uk-alert-success {
  background: #edfbf6;
  color: #32d296; }

/*
 * Warning
 */
.uk-alert-warning {
  background: #fef5ee;
  color: #faa05a; }

/*
 * Danger
 */
.uk-alert-danger {
  background: #fef4f6;
  color: #f0506e; }

/*
     * Content
     */
.uk-alert h1,
.uk-alert h2,
.uk-alert h3,
.uk-alert h4,
.uk-alert h5,
.uk-alert h6 {
  color: inherit; }

.uk-alert a:not([class]) {
  color: inherit;
  text-decoration: underline; }

.uk-alert a:not([class]):hover {
  color: inherit;
  text-decoration: underline; }

/* ========================================================================
   Component: Placeholder
 ========================================================================== */
.uk-placeholder {
  margin-bottom: 20px;
  padding: 30px 30px;
  background: transparent;
  border: 1px dashed #e5e5e5; }

/* Add margin if adjacent element */
* + .uk-placeholder {
  margin-top: 20px; }

/*
 * Remove margin from the last-child
 */
.uk-placeholder > :last-child {
  margin-bottom: 0; }

/* ========================================================================
   Component: Badge
 ========================================================================== */
/*
 * 1. Style
 * 2. Center child vertically and horizontally
 */
.uk-badge {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-width: 22px;
  height: 22px;
  padding: 0 5px;
  border-radius: 500px;
  vertical-align: middle;
  /* 1 */
  background: #1e87f0;
  color: #fff;
  font-size: 0.875rem;
  /* 2 */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

/*
 * Required for `a`
 */
.uk-badge:hover,
.uk-badge:focus {
  color: #fff;
  text-decoration: none;
  outline: none; }

/* ========================================================================
   Component: Label
 ========================================================================== */
.uk-label {
  display: inline-block;
  padding: 0 10px;
  background: #1e87f0;
  line-height: 1.5;
  font-size: 0.875rem;
  color: #fff;
  vertical-align: middle;
  white-space: nowrap;
  border-radius: 2px;
  text-transform: uppercase; }

/* Color modifiers
 ========================================================================== */
/*
 * Success
 */
.uk-label-success {
  background-color: #32d296;
  color: #fff; }

/*
 * Warning
 */
.uk-label-warning {
  background-color: #faa05a;
  color: #fff; }

/*
 * Danger
 */
.uk-label-danger {
  background-color: #f0506e;
  color: #fff; }

/* ========================================================================
   Component: Overlay
 ========================================================================== */
.uk-overlay {
  padding: 30px 30px; }

/*
 * Remove margin from the last-child
 */
.uk-overlay > :last-child {
  margin-bottom: 0; }

/* Icon
 ========================================================================== */
/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-overlay-default {
  background: rgba(255, 255, 255, 0.8); }

/*
 * Primary
 */
.uk-overlay-primary {
  background: rgba(34, 34, 34, 0.8); }

/* ========================================================================
   Component: Article
 ========================================================================== */
.uk-article {
  display: flow-root; }

/*
 * Remove margin from the last-child
 */
.uk-article > :last-child {
  margin-bottom: 0; }

/* Adjacent sibling
 ========================================================================== */
.uk-article + .uk-article {
  margin-top: 70px; }

/* Title
 ========================================================================== */
.uk-article-title {
  font-size: 2.23125rem;
  line-height: 1.2; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-article-title {
    font-size: 2.625rem; } }

/* Meta
 ========================================================================== */
.uk-article-meta {
  font-size: 0.875rem;
  line-height: 1.4;
  color: #999; }
  .uk-article-meta a {
    color: #999; }
  .uk-article-meta a:hover {
    color: #666;
    text-decoration: none; }

/* ========================================================================
   Component: Comment
 ========================================================================== */
/* Sections
 ========================================================================== */
.uk-comment-body {
  display: flow-root;
  overflow-wrap: break-word;
  word-wrap: break-word; }

.uk-comment-header {
  display: flow-root;
  margin-bottom: 20px; }

/*
 * Remove margin from the last-child
 */
.uk-comment-body > :last-child,
.uk-comment-header > :last-child {
  margin-bottom: 0; }

/* Title
 ========================================================================== */
.uk-comment-title {
  font-size: 1.25rem;
  line-height: 1.4; }

/* Meta
 ========================================================================== */
.uk-comment-meta {
  font-size: 0.875rem;
  line-height: 1.4;
  color: #999; }

/* Avatar
 ========================================================================== */
/* List
 ========================================================================== */
.uk-comment-list {
  padding: 0;
  list-style: none; }

/* Adjacent siblings */
.uk-comment-list > :nth-child(n+2) {
  margin-top: 70px; }

/*
 * Sublists
 * Note: General sibling selector allows reply block between comment and sublist
 */
.uk-comment-list .uk-comment ~ ul {
  margin: 70px 0 0 0;
  padding-left: 30px;
  list-style: none; }

/* Tablet and bigger */
@media (min-width: 1024px) {
  .uk-comment-list .uk-comment ~ ul {
    padding-left: 100px; } }

/* Adjacent siblings */
.uk-comment-list .uk-comment ~ ul > :nth-child(n+2) {
  margin-top: 70px; }

/* Style modifier
 ========================================================================== */
.uk-comment-primary {
  padding: 30px;
  background-color: #f8f8f8; }

/* ========================================================================
   Component: Search
 ========================================================================== */
/*
 * 1. Container fits its content
 * 2. Create position context
 * 3. Prevent content overflow
 * 4. Reset `form`
 */
.uk-search {
  /* 1 */
  display: inline-block;
  /* 2 */
  position: relative;
  /* 3 */
  max-width: 100%;
  /* 4 */
  margin: 0; }

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

/*
 * Removes placeholder transparency in Firefox.
 */
.uk-search-input::-moz-placeholder {
  opacity: 1; }

/*
 * 1. Define consistent box sizing.
 * 2. Address margins set differently in Firefox/IE and Chrome/Safari/Opera.
 * 3. Remove `border-radius` in iOS.
 * 4. Change font properties to `inherit` in all browsers
 * 5. Show the overflow in Edge.
 * 6. Remove default style in iOS.
 * 7. Vertical alignment
 * 8. Take the full container width
 * 9. Style
 */
.uk-search-input {
  /* 1 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 2 */
  margin: 0;
  /* 3 */
  border-radius: 0;
  /* 4 */
  font: inherit;
  /* 5 */
  overflow: visible;
  /* 6 */
  -webkit-appearance: none;
  /* 7 */
  vertical-align: middle;
  /* 8 */
  width: 100%;
  /* 9 */
  border: none;
  color: #666; }

.uk-search-input:focus {
  outline: none; }

/* Placeholder */
.uk-search-input:-ms-input-placeholder {
  color: #999 !important; }

.uk-search-input::-webkit-input-placeholder {
  color: #999; }

.uk-search-input::-moz-placeholder {
  color: #999; }

.uk-search-input::-ms-input-placeholder {
  color: #999; }

.uk-search-input::placeholder {
  color: #999; }

/* Icon (Adopts `uk-icon`)
 ========================================================================== */
/*
 * Remove default focus style
 */
.uk-search-icon:focus {
  outline: none; }

/*
 * Position above input
 * 1. Set position
 * 2. Center icon vertically and horizontally
 * 3. Style
 */
.uk-search .uk-search-icon {
  /* 1 */
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  /* 2 */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  /* 3 */
  color: #999; }

/*
 * Required for `a`.
 */
.uk-search .uk-search-icon:hover {
  color: #999; }

/*
 * Make `input` element clickable through icon, e.g. if it's a `span`
 */
.uk-search .uk-search-icon:not(a):not(button):not(input) {
  pointer-events: none; }

/*
 * Position modifier
 */
.uk-search .uk-search-icon-flip {
  right: 0;
  left: auto; }

/* Default modifier
 ========================================================================== */
.uk-search-default {
  width: 180px; }

/*
 * Input
 */
.uk-search-default .uk-search-input {
  height: 40px;
  padding-left: 6px;
  padding-right: 6px;
  background: transparent;
  border: 1px solid #e5e5e5; }

/* Focus */
.uk-search-default .uk-search-input:focus {
  background-color: transparent; }

/*
 * Icon
 */
.uk-search-default .uk-search-icon {
  width: 40px; }

.uk-search-default .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input {
  padding-left: 40px; }

.uk-search-default .uk-search-icon-flip ~ .uk-search-input {
  padding-right: 40px; }

/* Navbar modifier
 ========================================================================== */
.uk-search-navbar {
  width: 400px; }

/*
 * Input
 */
.uk-search-navbar .uk-search-input {
  height: 40px;
  background: transparent;
  font-size: 1.5rem; }

/*
 * Icon
 */
.uk-search-navbar .uk-search-icon {
  width: 40px; }

.uk-search-navbar .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input {
  padding-left: 40px; }

.uk-search-navbar .uk-search-icon-flip ~ .uk-search-input {
  padding-right: 40px; }

/* Large modifier
 ========================================================================== */
.uk-search-large {
  width: 500px; }

/*
 * Input
 */
.uk-search-large .uk-search-input {
  height: 80px;
  background: transparent;
  font-size: 2.625rem; }

/*
 * Icon
 */
.uk-search-large .uk-search-icon {
  width: 80px; }

.uk-search-large .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input {
  padding-left: 80px; }

.uk-search-large .uk-search-icon-flip ~ .uk-search-input {
  padding-right: 80px; }

/* Toggle
 ========================================================================== */
.uk-search-toggle {
  color: #999; }

/* Hover + Focus */
.uk-search-toggle:hover,
.uk-search-toggle:focus {
  color: #666; }

/* ========================================================================
   Component: Accordion
 ========================================================================== */
.uk-accordion {
  padding: 0;
  list-style: none; }

/* Item
 ========================================================================== */
.uk-accordion > :nth-child(n+2) {
  margin-top: 20px; }

/* Title
 ========================================================================== */
.uk-accordion-title {
  display: block;
  font-size: 1.25rem;
  line-height: 1.4;
  color: #333;
  overflow: hidden; }
  .uk-accordion-title::before {
    content: "";
    width: 1.4em;
    height: 1.4em;
    margin-left: 10px;
    float: right;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20width%3D%221%22%20height%3D%2213%22%20x%3D%226%22%20y%3D%220%22%20%2F%3E%0A%3C%2Fsvg%3E");
    background-repeat: no-repeat;
    background-position: 50% 50%; }
  .uk-open > .uk-accordion-title::before {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

/* Hover + Focus */
.uk-accordion-title:hover,
.uk-accordion-title:focus {
  color: #666;
  text-decoration: none;
  outline: none; }

/* Content
 ========================================================================== */
.uk-accordion-content {
  display: flow-root;
  margin-top: 20px; }

/*
 * Remove margin from the last-child
 */
.uk-accordion-content > :last-child {
  margin-bottom: 0; }

/* ========================================================================
   Component: Drop
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 */
.uk-drop {
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1020;
  /* 3 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 300px; }

/* Show */
.uk-drop.uk-open {
  display: block; }

/* Direction / Alignment modifiers
 ========================================================================== */
/* Direction */
[class*='uk-drop-top'] {
  margin-top: -20px; }

[class*='uk-drop-bottom'] {
  margin-top: 20px; }

[class*='uk-drop-left'] {
  margin-left: -20px; }

[class*='uk-drop-right'] {
  margin-left: 20px; }

/* Grid modifiers
 ========================================================================== */
.uk-drop-stack .uk-drop-grid > * {
  width: 100% !important; }

/* ========================================================================
   Component: Dropdown
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 * 4. Style
 */
.uk-dropdown {
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1020;
  /* 3 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-width: 200px;
  /* 4 */
  padding: 25px;
  background: #fff;
  color: #666;
  -webkit-box-shadow: 0 5px 12px rgba(0, 0, 0, 0.15);
          box-shadow: 0 5px 12px rgba(0, 0, 0, 0.15); }

/* Show */
.uk-dropdown.uk-open {
  display: block; }

/* Nav
 * Adopts `uk-nav`
 ========================================================================== */
.uk-dropdown-nav {
  white-space: nowrap;
  font-size: 0.875rem; }

/*
 * Items
 */
.uk-dropdown-nav > li > a {
  color: #999; }

/* Hover + Focus + Active */
.uk-dropdown-nav > li > a:hover,
.uk-dropdown-nav > li > a:focus,
.uk-dropdown-nav > li.uk-active > a {
  color: #666; }

/*
 * Header
 */
.uk-dropdown-nav .uk-nav-header {
  color: #333; }

/*
 * Divider
 */
.uk-dropdown-nav .uk-nav-divider {
  border-top: 1px solid #e5e5e5; }

/*
 * Sublists
 */
.uk-dropdown-nav .uk-nav-sub a {
  color: #999; }

.uk-dropdown-nav .uk-nav-sub a:hover,
.uk-dropdown-nav .uk-nav-sub a:focus,
.uk-dropdown-nav .uk-nav-sub li.uk-active > a {
  color: #666; }

/* Direction / Alignment modifiers
 ========================================================================== */
/* Direction */
[class*='uk-dropdown-top'] {
  margin-top: -10px; }

[class*='uk-dropdown-bottom'] {
  margin-top: 10px; }

[class*='uk-dropdown-left'] {
  margin-left: -10px; }

[class*='uk-dropdown-right'] {
  margin-left: 10px; }

/* Grid modifiers
 ========================================================================== */
.uk-dropdown-stack .uk-dropdown-grid > * {
  width: 100% !important; }

/* ========================================================================
   Component: Modal
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Allow scrolling for the modal dialog
 * 4. Horizontal padding
 * 5. Mask the background page
 * 6. Fade-in transition
 */
.uk-modal {
  /* 1 */
  display: none;
  /* 2 */
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1010;
  /* 3 */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  /* 4 */
  padding: 32px 32px;
  /* 5 */
  background: rgba(0, 0, 0, 0.5);
  /* 6 */
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-modal {
    padding: 50px 30px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-modal {
    padding-left: 40px;
    padding-right: 40px; } }

/*
 * Open
 */
.uk-modal.uk-open {
  opacity: 1; }

/* Page
 ========================================================================== */
/*
 * Prevent scrollbars
 */
.uk-modal-page {
  overflow: hidden; }

/* Dialog
 ========================================================================== */
/*
 * 1. Create position context for spinner and close button
 * 2. Dimensions
 * 3. Fix `max-width: 100%` not working in combination with flex and responsive images in IE11
 *    `!important` needed to overwrite `uk-width-auto`. See `#modal-media-image` in tests
 * 4. Style
 * 5. Slide-in transition
 */
.uk-modal-dialog {
  /* 1 */
  position: relative;
  /* 2 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0 auto;
  width: 600px;
  /* 3 */
  max-width: calc(100% - 0.01px) !important;
  /* 4 */
  background: #fff;
  /* 5 */
  opacity: 0;
  -webkit-transform: translateY(-100px);
          transform: translateY(-100px);
  -webkit-transition: 0.3s linear;
  transition: 0.3s linear;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: opacity, transform;
  transition-property: opacity, transform, -webkit-transform; }

/*
 * Open
 */
.uk-open > .uk-modal-dialog {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0); }

/* Size modifier
 ========================================================================== */
/*
 * Container size
 * Take the same size as the Container component
 */
.uk-modal-container .uk-modal-dialog {
  width: 1200px; }

/*
 * Full size
 * 1. Remove padding and background from modal
 * 2. Reset all default declarations from modal dialog
 */
/* 1 */
.uk-modal-full {
  padding: 0;
  background: none; }

/* 2 */
.uk-modal-full .uk-modal-dialog {
  margin: 0;
  width: 100%;
  max-width: 100%;
  -webkit-transform: translateY(0);
          transform: translateY(0); }

/* Sections
 ========================================================================== */
.uk-modal-body {
  display: flow-root;
  padding: 16px 16px; }

.uk-modal-header {
  display: flow-root;
  padding: 15px 30px;
  background: #fff;
  border-bottom: 1px solid #e5e5e5; }

.uk-modal-footer {
  display: flow-root;
  padding: 15px 30px;
  background: #fff;
  border-top: 1px solid #e5e5e5; }

/*
 * Remove margin from the last-child
 */
.uk-modal-body > :last-child,
.uk-modal-header > :last-child,
.uk-modal-footer > :last-child {
  margin-bottom: 0; }

/* Title
 ========================================================================== */
.uk-modal-title {
  font-size: 2rem;
  line-height: 1.3; }

/* Close
 * Adopts `uk-close`
 ========================================================================== */
[class*='uk-modal-close-'] {
  position: absolute;
  z-index: 1010;
  top: 10px;
  right: 10px;
  padding: 5px; }

/*
 * Remove margin from adjacent element
 */
[class*='uk-modal-close-']:first-child + * {
  margin-top: 0; }

/*
 * Hover
 */
/*
 * Default
 */
/*
 * Outside
 * 1. Prevent scrollbar on small devices
 */
.uk-modal-close-outside {
  top: 0;
  /* 1 */
  right: -5px;
  -webkit-transform: translate(0, -100%);
          transform: translate(0, -100%);
  color: white; }

.uk-modal-close-outside:hover {
  color: #fff; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  /* 1 */
  .uk-modal-close-outside {
    right: 0;
    -webkit-transform: translate(100%, -100%);
            transform: translate(100%, -100%); } }

/*
 * Full
 */
.uk-modal-close-full {
  top: 0;
  right: 0;
  padding: 20px;
  background: #fff; }

/* ========================================================================
   Component: Slideshow
 ========================================================================== */
/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-slideshow {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/* Items
 ========================================================================== */
/*
 * 1. Create position and stacking context
 * 2. Reset list
 * 3. Clip child elements
 * 4. Prevent displaying the callout information on iOS.
 */
.uk-slideshow-items {
  /* 1 */
  position: relative;
  z-index: 0;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 3 */
  overflow: hidden;
  /* 4 */
  -webkit-touch-callout: none; }

/* Item
 ========================================================================== */
/*
 * 1. Position items above each other
 * 2. Take the full width
 * 3. Clip child elements, e.g. for `uk-cover`
 * 4. Optimize animation
 * 5. Disable horizontal panning gestures in IE11 and Edge
 * 6. Suppress outline on focus
 */
.uk-slideshow-items > * {
  /* 1 */
  position: absolute;
  top: 0;
  left: 0;
  /* 2 */
  right: 0;
  bottom: 0;
  /* 3 */
  overflow: hidden;
  /* 4 */
  will-change: transform, opacity;
  /* 5 */
  -ms-touch-action: pan-y;
      touch-action: pan-y; }

/* 6 */
.uk-slideshow-items > :focus {
  outline: none; }

/*
 * Hide not active items
 */
.uk-slideshow-items > :not(.uk-active) {
  display: none; }

/* ========================================================================
   Component: Slider
 ========================================================================== */
/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-slider {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/* Container
 ========================================================================== */
/*
 * Clip child elements
 */
.uk-slider-container {
  overflow: hidden; }

/*
 * Widen container to prevent box-shadows from clipping, `large-box-shadow`
 */
.uk-slider-container-offset {
  margin: -11px -25px -39px -25px;
  padding: 11px 25px 39px 25px; }

/* Items
 ========================================================================== */
/*
 * 1. Optimize animation
 * 2. Create a containing block. In Safari it's neither created by `transform` nor `will-change`.
 */
.uk-slider-items {
  /* 1 */
  will-change: transform;
  /* 2 */
  position: relative; }

/*
 * 1. Reset list style without interfering with grid
 * 2. Prevent displaying the callout information on iOS.
 */
.uk-slider-items:not(.uk-grid) {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 2 */
  -webkit-touch-callout: none; }

.uk-slider-items.uk-grid {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }

/* Item
 ========================================================================== */
/*
 * 1. Let items take content dimensions (0 0 auto)
 * 2. Create position context
 * 3. Disable horizontal panning gestures in IE11 and Edge
 * 4. Suppress outline on focus
 */
.uk-slider-items > * {
  /* 1 */
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  /* 2 */
  position: relative;
  /* 3 */
  -ms-touch-action: pan-y;
      touch-action: pan-y; }

/* 4 */
.uk-slider-items > :focus {
  outline: none; }

/* ========================================================================
   Component: Sticky
 ========================================================================== */
/*
 * 1. Resolve frame rate issues on devices with lower frame rates by forcing hardware acceleration
 */
.uk-sticky-fixed {
  z-index: 980;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0 !important;
  /* 1 */
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

/*
 * Faster animations
 */
.uk-sticky[class*='uk-animation-'] {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s; }

.uk-sticky.uk-animation-reverse {
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s; }

/* ========================================================================
   Component: Off-canvas
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 */
.uk-offcanvas {
  /* 1 */
  display: none;
  /* 2 */
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 1000; }

/*
 * Flip modifier
 */
.uk-offcanvas-flip .uk-offcanvas {
  right: 0;
  left: auto; }

/* Bar
 ========================================================================== */
/*
 * 1. Set position
 * 2. Size and style
 * 3. Allow scrolling
 */
.uk-offcanvas-bar {
  /* 1 */
  position: absolute;
  top: 0;
  bottom: 0;
  left: -270px;
  /* 2 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 270px;
  padding: 20px 20px;
  background: #222;
  /* 3 */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-offcanvas-bar {
    left: -350px;
    width: 350px;
    padding: 40px 40px; } }

/* Flip modifier */
.uk-offcanvas-flip .uk-offcanvas-bar {
  left: auto;
  right: -270px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-offcanvas-flip .uk-offcanvas-bar {
    right: -350px; } }

/*
 * Open
 */
.uk-open > .uk-offcanvas-bar {
  left: 0; }

.uk-offcanvas-flip .uk-open > .uk-offcanvas-bar {
  left: auto;
  right: 0; }

/*
 * Slide Animation (Used in slide and push mode)
 */
.uk-offcanvas-bar-animation {
  -webkit-transition: left 0.3s ease-out;
  transition: left 0.3s ease-out; }

.uk-offcanvas-flip .uk-offcanvas-bar-animation {
  -webkit-transition-property: right;
  transition-property: right; }

/*
 * Reveal Animation
 * 1. Set position
 * 2. Clip the bar
 * 3. Animation
 * 4. Reset position
 */
.uk-offcanvas-reveal {
  /* 1 */
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  /* 2 */
  width: 0;
  overflow: hidden;
  /* 3 */
  -webkit-transition: width 0.3s ease-out;
  transition: width 0.3s ease-out; }

.uk-offcanvas-reveal .uk-offcanvas-bar {
  /* 4 */
  left: 0; }

.uk-offcanvas-flip .uk-offcanvas-reveal .uk-offcanvas-bar {
  /* 4 */
  left: auto;
  right: 0; }

.uk-open > .uk-offcanvas-reveal {
  width: 270px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-open > .uk-offcanvas-reveal {
    width: 350px; } }

/*
 * Flip modifier
 */
.uk-offcanvas-flip .uk-offcanvas-reveal {
  right: 0;
  left: auto; }

/* Close
 * Adopts `uk-close`
 ========================================================================== */
.uk-offcanvas-close {
  position: absolute;
  z-index: 1000;
  top: 20px;
  right: 20px;
  padding: 5px; }

/* Overlay
 ========================================================================== */
/*
 * Overlay the whole page. Needed for the `::before`
 * 1. Using `100vw` so no modification is needed when off-canvas is flipped
 * 2. Allow for closing with swipe gesture on devices with pointer events.
 */
.uk-offcanvas-overlay {
  /* 1 */
  width: 100vw;
  /* 2 */
  -ms-touch-action: none;
      touch-action: none; }

/*
 * 1. Mask the whole page
 * 2. Fade-in transition
 */
.uk-offcanvas-overlay::before {
  /* 1 */
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.1);
  /* 2 */
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear; }

.uk-offcanvas-overlay.uk-open::before {
  opacity: 1; }

/* Prevent scrolling
 ========================================================================== */
/*
 * Prevent horizontal scrollbar when the content is slide-out
 * Has to be on the `html` element too to make it work on the `body`
 */
.uk-offcanvas-page,
.uk-offcanvas-container {
  overflow-x: hidden; }

/* Container
 ========================================================================== */
/*
 * Prepare slide-out animation (Used in reveal and push mode)
 * Using `position: left` instead of `transform` because position `fixed` elements like sticky navbars
 * lose their fixed state and behaves like `absolute` within a transformed container
 * 1. Provide a fixed width and prevent shrinking
 */
.uk-offcanvas-container {
  position: relative;
  left: 0;
  -webkit-transition: left 0.3s ease-out;
  transition: left 0.3s ease-out;
  /* 1 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%; }

/*
 * Activate slide-out animation
 */
:not(.uk-offcanvas-flip).uk-offcanvas-container-animation {
  left: 270px; }

.uk-offcanvas-flip.uk-offcanvas-container-animation {
  left: -270px; }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  :not(.uk-offcanvas-flip).uk-offcanvas-container-animation {
    left: 350px; }
  .uk-offcanvas-flip.uk-offcanvas-container-animation {
    left: -350px; } }

/* ========================================================================
   Component: Switcher
 ========================================================================== */
/*
 * Reset list
 */
.uk-switcher {
  margin: 0;
  padding: 0;
  list-style: none; }

/* Items
 ========================================================================== */
/*
 * Hide not active items
 */
.uk-switcher > :not(.uk-active) {
  display: none; }

/*
 * Remove margin from the last-child
 */
.uk-switcher > * > :last-child {
  margin-bottom: 0; }

/* ========================================================================
   Component: Leader
 ========================================================================== */
.uk-leader {
  overflow: hidden; }

/*
 * 1. Place element in text flow
 * 2. Never break into a new line
 * 3. Get a string back with as many repeating characters to fill the container
 * 4. Prevent wrapping. Overflowing characters will be clipped by the container
 */
.uk-leader-fill::after {
  /* 1 */
  display: inline-block;
  margin-left: 15px;
  /* 2 */
  width: 0;
  /* 3 */
  content: attr(data-fill);
  /* 4 */
  white-space: nowrap; }

/*
 * Hide if media does not match
 */
.uk-leader-fill.uk-leader-hide::after {
  display: none; }

/*
 * Pass fill character to JS
 */
.uk-leader-fill-content::before {
  content: "."; }

:root {
  --uk-leader-fill-content: .; }

/* ========================================================================
   Component: Notification
 ========================================================================== */
/*
 * 1. Set position
 * 2. Dimensions
 */
.uk-notification {
  /* 1 */
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 1040;
  /* 2 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 350px; }

/* Position modifiers
========================================================================== */
.uk-notification-top-right,
.uk-notification-bottom-right {
  left: auto;
  right: 10px; }

.uk-notification-top-center,
.uk-notification-bottom-center {
  left: 50%;
  margin-left: -175px; }

.uk-notification-bottom-left,
.uk-notification-bottom-right,
.uk-notification-bottom-center {
  top: auto;
  bottom: 10px; }

/* Responsiveness
========================================================================== */
/* Phones portrait and smaller */
@media (max-width: 767px) {
  .uk-notification {
    left: 10px;
    right: 10px;
    width: auto;
    margin: 0; } }

/* Message
========================================================================== */
.uk-notification-message {
  position: relative;
  padding: 15px;
  background: #f8f8f8;
  color: #666;
  font-size: 1.25rem;
  line-height: 1.4;
  cursor: pointer; }

* + .uk-notification-message {
  margin-top: 10px; }

/* Close
 * Adopts `uk-close`
 ========================================================================== */
.uk-notification-close {
  display: none;
  position: absolute;
  top: 20px;
  right: 15px; }

.uk-notification-message:hover .uk-notification-close {
  display: block; }

/* Style modifiers
 ========================================================================== */
/*
 * Primary
 */
.uk-notification-message-primary {
  color: #1e87f0; }

/*
 * Success
 */
.uk-notification-message-success {
  color: #32d296; }

/*
 * Warning
 */
.uk-notification-message-warning {
  color: #faa05a; }

/*
 * Danger
 */
.uk-notification-message-danger {
  color: #f0506e; }

/* ========================================================================
   Component: Tooltip
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Position
 * 3. Remove tooltip from document flow to keep the UIkit container from changing its size when injected into the document initially
 * 4. Dimensions
 * 5. Style
 */
.uk-tooltip {
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1030;
  /* 3 */
  top: 0;
  /* 4 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  max-width: 200px;
  padding: 3px 6px;
  /* 5 */
  background: #666;
  border-radius: 2px;
  color: #fff;
  font-size: 12px; }

/* Show */
.uk-tooltip.uk-active {
  display: block; }

/* Direction / Alignment modifiers
 ========================================================================== */
/* Direction */
[class*='uk-tooltip-top'] {
  margin-top: -10px; }

[class*='uk-tooltip-bottom'] {
  margin-top: 10px; }

[class*='uk-tooltip-left'] {
  margin-left: -10px; }

[class*='uk-tooltip-right'] {
  margin-left: 10px; }

/* ========================================================================
   Component: Sortable
 ========================================================================== */
.uk-sortable {
  position: relative; }

/*
 * Remove margin from the last-child
 */
.uk-sortable > :last-child {
  margin-bottom: 0; }

/* Drag
 ========================================================================== */
.uk-sortable-drag {
  position: fixed !important;
  z-index: 1050 !important;
  pointer-events: none; }

/* Placeholder
 ========================================================================== */
.uk-sortable-placeholder {
  opacity: 0;
  pointer-events: none; }

/* Empty modifier
 ========================================================================== */
.uk-sortable-empty {
  min-height: 50px; }

/* Handle
 ========================================================================== */
/* Hover */
.uk-sortable-handle:hover {
  cursor: move; }

/* ========================================================================
   Component: Countdown
 ========================================================================== */
/* Item
 ========================================================================== */
/* Number
 ========================================================================== */
/*
 * 1. Make numbers all of the same size to prevent jumping. Must be supported by the font.
 * 2. Style
 */
.uk-countdown-number {
  /* 1 */
  font-variant-numeric: tabular-nums;
  /* 2 */
  font-size: 2rem;
  line-height: 0.8; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-countdown-number {
    font-size: 4rem; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-countdown-number {
    font-size: 6rem; } }

/* Separator
 ========================================================================== */
.uk-countdown-separator {
  font-size: 1rem;
  line-height: 1.6; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-countdown-separator {
    font-size: 2rem; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-countdown-separator {
    font-size: 3rem; } }

/* Label
 ========================================================================== */
/* ========================================================================
   Component: Grid
 ========================================================================== */
/*
 * 1. Allow cells to wrap into the next line
 * 2. Reset list
 */
.uk-grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none; }

/*
 * Grid cell
 * Note: Space is allocated solely based on content dimensions, but shrinks: 0 1 auto
 * Reset margin for e.g. paragraphs
 */
.uk-grid > * {
  margin: 0; }

/*
 * Remove margin from the last-child
 */
.uk-grid > * > :last-child {
  margin-bottom: 0; }

/* Gutter
 ========================================================================== */
/*
 * Default
 */
/* Horizontal */
.uk-grid {
  margin-left: -30px; }

.uk-grid > * {
  padding-left: 30px; }

/* Vertical */
.uk-grid + .uk-grid,
.uk-grid > .uk-grid-margin,
* + .uk-grid-margin {
  margin-top: 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid {
    margin-left: -40px; }
  .uk-grid > * {
    padding-left: 40px; }
  /* Vertical */
  .uk-grid + .uk-grid,
  .uk-grid > .uk-grid-margin,
  * + .uk-grid-margin {
    margin-top: 40px; } }

/*
 * Small
 */
/* Horizontal */
.uk-grid-small,
.uk-grid-column-small {
  margin-left: -15px; }

.uk-grid-small > *,
.uk-grid-column-small > * {
  padding-left: 15px; }

/* Vertical */
.uk-grid + .uk-grid-small,
.uk-grid + .uk-grid-row-small,
.uk-grid-small > .uk-grid-margin,
.uk-grid-row-small > .uk-grid-margin,
* + .uk-grid-margin-small {
  margin-top: 15px; }

/*
 * Medium
 */
/* Horizontal */
.uk-grid-medium,
.uk-grid-column-medium {
  margin-left: -30px; }

.uk-grid-medium > *,
.uk-grid-column-medium > * {
  padding-left: 30px; }

/* Vertical */
.uk-grid + .uk-grid-medium,
.uk-grid + .uk-grid-row-medium,
.uk-grid-medium > .uk-grid-margin,
.uk-grid-row-medium > .uk-grid-margin,
* + .uk-grid-margin-medium {
  margin-top: 30px; }

/*
 * Large
 */
/* Horizontal */
.uk-grid-large,
.uk-grid-column-large {
  margin-left: -40px; }

.uk-grid-large > *,
.uk-grid-column-large > * {
  padding-left: 40px; }

/* Vertical */
.uk-grid + .uk-grid-large,
.uk-grid + .uk-grid-row-large,
.uk-grid-large > .uk-grid-margin,
.uk-grid-row-large > .uk-grid-margin,
* + .uk-grid-margin-large {
  margin-top: 40px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid-large,
  .uk-grid-column-large {
    margin-left: -150px; }
  .uk-grid-large > *,
  .uk-grid-column-large > * {
    padding-left: 150px; }
  /* Vertical */
  .uk-grid + .uk-grid-large,
  .uk-grid + .uk-grid-row-large,
  .uk-grid-large > .uk-grid-margin,
  .uk-grid-row-large > .uk-grid-margin,
  * + .uk-grid-margin-large {
    margin-top: 150px; } }

/*
 * Collapse
 */
/* Horizontal */
.uk-grid-collapse,
.uk-grid-column-collapse {
  margin-left: 0; }

.uk-grid-collapse > *,
.uk-grid-column-collapse > * {
  padding-left: 0; }

/* Vertical */
.uk-grid + .uk-grid-collapse,
.uk-grid + .uk-grid-row-collapse,
.uk-grid-collapse > .uk-grid-margin,
.uk-grid-row-collapse > .uk-grid-margin {
  margin-top: 0; }

/* Divider
 ========================================================================== */
.uk-grid-divider > * {
  position: relative; }

.uk-grid-divider > :not(.uk-first-column)::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  border-left: 1px solid #e5e5e5; }

/* Vertical */
.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  border-top: 1px solid #e5e5e5; }

/*
 * Default
 */
/* Horizontal */
.uk-grid-divider {
  margin-left: -60px; }

.uk-grid-divider > * {
  padding-left: 60px; }

.uk-grid-divider > :not(.uk-first-column)::before {
  left: 30px; }

/* Vertical */
.uk-grid-divider.uk-grid-stack > .uk-grid-margin {
  margin-top: 60px; }

.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
  top: -30px;
  left: 60px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid-divider {
    margin-left: -80px; }
  .uk-grid-divider > * {
    padding-left: 80px; }
  .uk-grid-divider > :not(.uk-first-column)::before {
    left: 40px; }
  /* Vertical */
  .uk-grid-divider.uk-grid-stack > .uk-grid-margin {
    margin-top: 80px; }
  .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
    top: -40px;
    left: 80px; } }

/*
 * Small
 */
/* Horizontal */
.uk-grid-divider.uk-grid-small,
.uk-grid-divider.uk-grid-column-small {
  margin-left: -30px; }

.uk-grid-divider.uk-grid-small > *,
.uk-grid-divider.uk-grid-column-small > * {
  padding-left: 30px; }

.uk-grid-divider.uk-grid-small > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-small > :not(.uk-first-column)::before {
  left: 15px; }

/* Vertical */
.uk-grid-divider.uk-grid-small.uk-grid-stack > .uk-grid-margin,
.uk-grid-divider.uk-grid-row-small.uk-grid-stack > .uk-grid-margin {
  margin-top: 30px; }

.uk-grid-divider.uk-grid-small.uk-grid-stack > .uk-grid-margin::before {
  top: -15px;
  left: 30px; }

.uk-grid-divider.uk-grid-row-small.uk-grid-stack > .uk-grid-margin::before {
  top: -15px; }

.uk-grid-divider.uk-grid-column-small.uk-grid-stack > .uk-grid-margin::before {
  left: 30px; }

/*
 * Medium
 */
/* Horizontal */
.uk-grid-divider.uk-grid-medium,
.uk-grid-divider.uk-grid-column-medium {
  margin-left: -60px; }

.uk-grid-divider.uk-grid-medium > *,
.uk-grid-divider.uk-grid-column-medium > * {
  padding-left: 60px; }

.uk-grid-divider.uk-grid-medium > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-medium > :not(.uk-first-column)::before {
  left: 30px; }

/* Vertical */
.uk-grid-divider.uk-grid-medium.uk-grid-stack > .uk-grid-margin,
.uk-grid-divider.uk-grid-row-medium.uk-grid-stack > .uk-grid-margin {
  margin-top: 60px; }

.uk-grid-divider.uk-grid-medium.uk-grid-stack > .uk-grid-margin::before {
  top: -30px;
  left: 60px; }

.uk-grid-divider.uk-grid-row-medium.uk-grid-stack > .uk-grid-margin::before {
  top: -30px; }

.uk-grid-divider.uk-grid-column-medium.uk-grid-stack > .uk-grid-margin::before {
  left: 60px; }

/*
 * Large
 */
/* Horizontal */
.uk-grid-divider.uk-grid-large,
.uk-grid-divider.uk-grid-column-large {
  margin-left: -80px; }

.uk-grid-divider.uk-grid-large > *,
.uk-grid-divider.uk-grid-column-large > * {
  padding-left: 80px; }

.uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-large > :not(.uk-first-column)::before {
  left: 40px; }

/* Vertical */
.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin,
.uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin {
  margin-top: 80px; }

.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before {
  top: -40px;
  left: 80px; }

.uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin::before {
  top: -40px; }

.uk-grid-divider.uk-grid-column-large.uk-grid-stack > .uk-grid-margin::before {
  left: 80px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid-divider.uk-grid-large,
  .uk-grid-divider.uk-grid-column-large {
    margin-left: -300px; }
  .uk-grid-divider.uk-grid-large > *,
  .uk-grid-divider.uk-grid-column-large > * {
    padding-left: 300px; }
  .uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before,
  .uk-grid-divider.uk-grid-column-large > :not(.uk-first-column)::before {
    left: 150px; }
  /* Vertical */
  .uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin,
  .uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin {
    margin-top: 300px; }
  .uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before {
    top: -150px;
    left: 300px; }
  .uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin::before {
    top: -150px; }
  .uk-grid-divider.uk-grid-column-large.uk-grid-stack > .uk-grid-margin::before {
    left: 300px; } }

/* Match child of a grid cell
 ========================================================================== */
/*
 * Behave like a block element
 * 1. Wrap into the next line
 * 2. Take the full width, at least 100%. Only if no class from the Width component is set.
 * 3. Expand width even if larger than 100%, e.g. because of negative margin (Needed for nested grids)
 */
.uk-grid-match > *,
.uk-grid-item-match {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.uk-grid-match > * > :not([class*='uk-width']),
.uk-grid-item-match > :not([class*='uk-width']) {
  /* 2 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  /* 3 */
  -webkit-box-flex: 1;
      -ms-flex: auto;
          flex: auto; }

/* ========================================================================
   Component: Nav
 ========================================================================== */
/*
 * Reset
 * 1. Prepare lists
 * 2. Prepare links
 * 3. Remove default focus style
 */
/* 1 */
.uk-nav,
.uk-nav ul {
  margin: 0;
  padding: 0;
  list-style: none; }

/* 2 */
.uk-nav li > a {
  display: block;
  text-decoration: none; }

/* 3 */
.uk-nav li > a:focus {
  outline: none; }

/*
 * Items
 * Must target `a` elements to exclude other elements (e.g. lists)
 */
.uk-nav > li > a {
  padding: 5px 0; }

/* Sublists
 ========================================================================== */
/*
 * Level 2
 * `ul` needed for higher specificity to override padding
 */
ul.uk-nav-sub {
  padding: 5px 0 5px 15px; }

/*
 * Level 3 and deeper
 */
.uk-nav-sub ul {
  padding-left: 15px; }

/*
 * Items
 */
.uk-nav-sub a {
  padding: 2px 0; }

/* Parent icon modifier
 ========================================================================== */
.uk-nav-parent-icon > .uk-parent > a::after {
  content: "";
  width: 1.5em;
  height: 1.5em;
  float: right;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23666%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: 50% 50%; }

.uk-nav-parent-icon > .uk-parent.uk-open > a::after {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23666%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

/* Header
 ========================================================================== */
.uk-nav-header {
  padding: 5px 0;
  text-transform: uppercase;
  font-size: 0.875rem; }

.uk-nav-header:not(:first-child) {
  margin-top: 20px; }

/* Divider
 ========================================================================== */
.uk-nav-divider {
  margin: 5px 0; }

/* Default modifier
 ========================================================================== */
.uk-nav-default {
  font-size: 0.875rem; }

/*
 * Items
 */
.uk-nav-default > li > a {
  color: #999; }

/* Hover + Focus */
.uk-nav-default > li > a:hover,
.uk-nav-default > li > a:focus {
  color: #666; }

/* Active */
.uk-nav-default > li.uk-active > a {
  color: #333; }

/*
 * Header
 */
.uk-nav-default .uk-nav-header {
  color: #333; }

/*
 * Divider
 */
.uk-nav-default .uk-nav-divider {
  border-top: 1px solid #e5e5e5; }

/*
 * Sublists
 */
.uk-nav-default .uk-nav-sub a {
  color: #999; }

.uk-nav-default .uk-nav-sub a:hover,
.uk-nav-default .uk-nav-sub a:focus {
  color: #666; }

.uk-nav-default .uk-nav-sub li.uk-active > a {
  color: #333; }

/* Primary modifier
 ========================================================================== */
/*
 * Items
 */
.uk-nav-primary > li > a {
  font-size: 1.5rem;
  line-height: 1.5;
  color: #999; }

/* Hover + Focus */
.uk-nav-primary > li > a:hover,
.uk-nav-primary > li > a:focus {
  color: #666; }

/* Active */
.uk-nav-primary > li.uk-active > a {
  color: #333; }

/*
 * Header
 */
.uk-nav-primary .uk-nav-header {
  color: #333; }

/*
 * Divider
 */
.uk-nav-primary .uk-nav-divider {
  border-top: 1px solid #e5e5e5; }

/*
 * Sublists
 */
.uk-nav-primary .uk-nav-sub a {
  color: #999; }

.uk-nav-primary .uk-nav-sub a:hover,
.uk-nav-primary .uk-nav-sub a:focus {
  color: #666; }

.uk-nav-primary .uk-nav-sub li.uk-active > a {
  color: #333; }

/* Alignment modifier
 ========================================================================== */
.uk-nav-center {
  text-align: center; }

/* Sublists */
.uk-nav-center .uk-nav-sub,
.uk-nav-center .uk-nav-sub ul {
  padding-left: 0; }

/* Parent icon modifier  */
.uk-nav-center.uk-nav-parent-icon > .uk-parent > a::after {
  position: absolute; }

/* ========================================================================
   Component: Navbar
 ========================================================================== */
/*
 * 1. Create position context to center navbar group
 */
.uk-navbar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  position: relative; }

/* Container
 ========================================================================== */
.uk-navbar-container:not(.uk-navbar-transparent) {
  background: #f8f8f8; }

/*
 * Remove pseudo elements created by micro clearfix as precaution (if Container component is used)
 */
.uk-navbar-container > ::before,
.uk-navbar-container > ::after {
  display: none !important; }

/* Groups
 ========================================================================== */
/*
 * 1. Align navs and items vertically if they have a different height
 * 2. Note: IE 11 requires an extra `div` which affects the center selector
 */
.uk-navbar-left,
.uk-navbar-right,
.uk-navbar-center,
.uk-navbar-center-left > *,
.uk-navbar-center-right > * {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

/*
 * Horizontal alignment
 * 1. Create position context for centered navbar with sub groups (left/right)
 * 2. Fix text wrapping if content is larger than 50% of the container.
 * 3. Needed for dropdowns because a new position context is created
 *    `z-index` must be smaller than off-canvas
 * 4. Align sub groups for centered navbar
 */
.uk-navbar-right {
  margin-left: auto; }

.uk-navbar-center:only-child {
  margin-left: auto;
  margin-right: auto;
  /* 1 */
  position: relative; }

.uk-navbar-center:not(:only-child) {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  /* 2 */
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 3 */
  z-index: 990; }

/* 4 */
.uk-navbar-center-left,
.uk-navbar-center-right {
  position: absolute;
  top: 0; }

.uk-navbar-center-left {
  right: 100%; }

.uk-navbar-center-right {
  left: 100%; }

[class*='uk-navbar-center-'] {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

/* Nav
 ========================================================================== */
/*
 * 1. Reset list
 */
.uk-navbar-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  margin: 0;
  padding: 0;
  list-style: none; }

/*
 * Allow items to wrap into the next line
 * Only not `absolute` positioned groups
 */
.uk-navbar-left,
.uk-navbar-right,
.uk-navbar-center:only-child {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

/*
 * Items
 * 1. Center content vertically and horizontally
 * 2. Dimensions
 * 3. Style
 * 4. Required for `a`
 */
.uk-navbar-nav > li > a,
.uk-navbar-item,
.uk-navbar-toggle {
  /* 1 */
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  /* 2 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 80px;
  padding: 0 15px;
  /* 3 */
  font-size: 0.875rem;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  /* 4 */
  text-decoration: none; }

/*
 * Nav items
 */
.uk-navbar-nav > li > a {
  color: #999;
  text-transform: uppercase;
  -webkit-transition: 0.1s ease-in-out;
  transition: 0.1s ease-in-out;
  -webkit-transition-property: color, background-color;
  transition-property: color, background-color; }

/*
 * Hover
 * Apply hover style also to focus state and if dropdown is opened
 */
.uk-navbar-nav > li:hover > a,
.uk-navbar-nav > li > a:focus,
.uk-navbar-nav > li > a.uk-open {
  color: #666;
  outline: none; }

/* OnClick */
.uk-navbar-nav > li > a:active {
  color: #333; }

/* Active */
.uk-navbar-nav > li.uk-active > a {
  color: #333; }

/* Item
 ========================================================================== */
.uk-navbar-item {
  color: #666; }

/* Toggle
 ========================================================================== */
.uk-navbar-toggle {
  color: #999; }

.uk-navbar-toggle:hover,
.uk-navbar-toggle:focus,
.uk-navbar-toggle.uk-open {
  color: #666;
  outline: none;
  text-decoration: none; }

/*
 * Icon
 * Adopts `uk-icon`
 */
/* Hover + Focus */
/* Subtitle
 ========================================================================== */
.uk-navbar-subtitle {
  font-size: 0.875rem; }

/* Style modifiers
 ========================================================================== */
/* Dropdown
 ========================================================================== */
/*
 * Adopts `uk-dropdown`
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 * 4. Style
 */
.uk-navbar-dropdown {
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1020;
  /* 3 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 200px;
  /* 4 */
  padding: 25px;
  background: #fff;
  color: #666;
  -webkit-box-shadow: 0 5px 12px rgba(0, 0, 0, 0.15);
          box-shadow: 0 5px 12px rgba(0, 0, 0, 0.15); }

/* Show */
.uk-navbar-dropdown.uk-open {
  display: block; }

/*
 * Direction / Alignment modifiers
 */
/* Direction */
[class*='uk-navbar-dropdown-top'] {
  margin-top: -15px; }

[class*='uk-navbar-dropdown-bottom'] {
  margin-top: 15px; }

[class*='uk-navbar-dropdown-left'] {
  margin-left: -15px; }

[class*='uk-navbar-dropdown-right'] {
  margin-left: 15px; }

/*
 * Grid
 * Adopts `uk-grid`
 */
/* Gutter Horizontal */
.uk-navbar-dropdown-grid {
  margin-left: -50px; }

.uk-navbar-dropdown-grid > * {
  padding-left: 50px; }

/* Gutter Vertical */
.uk-navbar-dropdown-grid > .uk-grid-margin {
  margin-top: 50px; }

/* Stack */
.uk-navbar-dropdown-stack .uk-navbar-dropdown-grid > * {
  width: 100% !important; }

/*
 * Width modifier
 */
.uk-navbar-dropdown-width-2:not(.uk-navbar-dropdown-stack) {
  width: 400px; }

.uk-navbar-dropdown-width-3:not(.uk-navbar-dropdown-stack) {
  width: 600px; }

.uk-navbar-dropdown-width-4:not(.uk-navbar-dropdown-stack) {
  width: 800px; }

.uk-navbar-dropdown-width-5:not(.uk-navbar-dropdown-stack) {
  width: 1000px; }

/*
 * Dropbar modifier
 */
.uk-navbar-dropdown-dropbar {
  margin-top: 0;
  margin-bottom: 0;
  -webkit-box-shadow: none;
          box-shadow: none; }

/* Dropdown Nav
 * Adopts `uk-nav`
 ========================================================================== */
.uk-navbar-dropdown-nav {
  font-size: 0.875rem; }

/*
 * Items
 */
.uk-navbar-dropdown-nav > li > a {
  color: #999; }

/* Hover + Focus */
.uk-navbar-dropdown-nav > li > a:hover,
.uk-navbar-dropdown-nav > li > a:focus {
  color: #666; }

/* Active */
.uk-navbar-dropdown-nav > li.uk-active > a {
  color: #333; }

/*
 * Header
 */
.uk-navbar-dropdown-nav .uk-nav-header {
  color: #333; }

/*
 * Divider
 */
.uk-navbar-dropdown-nav .uk-nav-divider {
  border-top: 1px solid #e5e5e5; }

/*
 * Sublists
 */
.uk-navbar-dropdown-nav .uk-nav-sub a {
  color: #999; }

.uk-navbar-dropdown-nav .uk-nav-sub a:hover,
.uk-navbar-dropdown-nav .uk-nav-sub a:focus {
  color: #666; }

.uk-navbar-dropdown-nav .uk-nav-sub li.uk-active > a {
  color: #333; }

/* Dropbar
 ========================================================================== */
.uk-navbar-dropbar {
  background: #fff; }

/*
 * Slide modifier
 */
.uk-navbar-dropbar-slide {
  position: absolute;
  z-index: 980;
  left: 0;
  right: 0;
  -webkit-box-shadow: 0 5px 7px rgba(0, 0, 0, 0.05);
          box-shadow: 0 5px 7px rgba(0, 0, 0, 0.05); }

/*
     * Navbar
     */
.uk-navbar-container > .uk-container .uk-navbar-left {
  margin-left: -15px;
  margin-right: -15px; }

.uk-navbar-container > .uk-container .uk-navbar-right {
  margin-right: -15px; }

/*
     * Grid Divider
     */
.uk-navbar-dropdown-grid > * {
  position: relative; }

.uk-navbar-dropdown-grid > :not(.uk-first-column)::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 25px;
  border-left: 1px solid #e5e5e5; }

/* Vertical */
.uk-navbar-dropdown-grid.uk-grid-stack > .uk-grid-margin::before {
  content: "";
  position: absolute;
  top: -25px;
  left: 50px;
  right: 0;
  border-top: 1px solid #e5e5e5; }

/* ========================================================================
   Component: Subnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Gutter
 * 3. Reset list
 */
.uk-subnav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin-left: -20px;
  /* 3 */
  padding: 0;
  list-style: none; }

/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 * 3. Create position context for dropdowns
 */
.uk-subnav > * {
  /* 1 */
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  /* 2 */
  padding-left: 20px;
  /* 3 */
  position: relative; }

/* Items
 ========================================================================== */
/*
 * Items must target `a` elements to exclude other elements (e.g. dropdowns)
 * Using `:first-child` instead of `a` to support `span` elements for text
 * 1. Prevent gap if child element is `inline-block`, e.g. an icon
 * 2. Style
 */
.uk-subnav > * > :first-child {
  /* 1 */
  display: block;
  /* 2 */
  color: #999;
  font-size: 0.875rem;
  text-transform: uppercase;
  -webkit-transition: 0.1s ease-in-out;
  transition: 0.1s ease-in-out;
  -webkit-transition-property: color, background-color;
  transition-property: color, background-color; }

/* Hover + Focus */
.uk-subnav > * > a:hover,
.uk-subnav > * > a:focus {
  color: #666;
  text-decoration: none;
  outline: none; }

/* Active */
.uk-subnav > .uk-active > a {
  color: #333; }

/* Divider modifier
 ========================================================================== */
/*
 * Set gutter 
 */
.uk-subnav-divider {
  margin-left: -41px; }

/*
 * Align items and divider vertically
 */
.uk-subnav-divider > * {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

/*
 * Divider
 * 1. `nth-child` makes it also work without JS if it's only one row
 */
.uk-subnav-divider > ::before {
  content: "";
  height: 1.5em;
  margin-left: 0px;
  margin-right: 20px;
  border-left: 1px solid transparent; }

/* 1 */
.uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before {
  border-left-color: #e5e5e5; }

/* Pill modifier
 ========================================================================== */
.uk-subnav-pill > * > :first-child {
  padding: 5px 10px;
  background: transparent;
  color: #999; }

/* Hover + Focus */
.uk-subnav-pill > * > a:hover,
.uk-subnav-pill > * > a:focus {
  background-color: #f8f8f8;
  color: #666; }

/* OnClick */
.uk-subnav-pill > * > a:active {
  background-color: #f8f8f8;
  color: #666; }

/* Active */
.uk-subnav-pill > .uk-active > a {
  background-color: #1e87f0;
  color: #fff; }

/* Disabled
 * The same for all style modifiers
 ========================================================================== */
.uk-subnav > .uk-disabled > a {
  color: #999; }

/* ========================================================================
   Component: Breadcrumb
 ========================================================================== */
/*
 * Reset list
 */
.uk-breadcrumb {
  padding: 0;
  list-style: none; }

/*
 * 1. Doesn't generate any box and replaced by child boxes
 */
.uk-breadcrumb > * {
  display: contents; }

/* Items
 ========================================================================== */
.uk-breadcrumb > * > * {
  font-size: 0.875rem;
  color: #999; }

/* Hover + Focus */
.uk-breadcrumb > * > :hover,
.uk-breadcrumb > * > :focus {
  color: #666;
  text-decoration: none; }

/* Disabled */
/* Active */
.uk-breadcrumb > :last-child > span,
.uk-breadcrumb > :last-child > a:not([href]) {
  color: #666; }

/*
 * Divider
 * `nth-child` makes it also work without JS if it's only one row
 * 1. Remove space between inline block elements.
 * 2. Style
 */
.uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before {
  content: "/";
  display: inline-block;
  /* 1 */
  margin: 0 20px 0 calc(20px - 4px);
  /* 2 */
  font-size: 0.875rem;
  color: #999; }

/* ========================================================================
   Component: Pagination
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Gutter
 * 3. Reset list
 */
.uk-pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin-left: 0;
  /* 3 */
  padding: 0;
  list-style: none; }

/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 * 3. Create position context for dropdowns
 */
.uk-pagination > * {
  /* 1 */
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  /* 2 */
  padding-left: 0;
  /* 3 */
  position: relative; }

/* Items
 ========================================================================== */
/*
 * 1. Prevent gap if child element is `inline-block`, e.g. an icon
 * 2. Style
 */
.uk-pagination > * > * {
  /* 1 */
  display: block;
  /* 2 */
  padding: 5px 10px;
  color: #999;
  -webkit-transition: color 0.1s ease-in-out;
  transition: color 0.1s ease-in-out; }

/* Hover + Focus */
.uk-pagination > * > :hover,
.uk-pagination > * > :focus {
  color: #666;
  text-decoration: none; }

/* Active */
.uk-pagination > .uk-active > * {
  color: #666; }

/* Disabled */
.uk-pagination > .uk-disabled > * {
  color: #999; }

/* ========================================================================
   Component: Tab
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Gutter
 * 3. Reset list
 */
.uk-tab {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin-left: -20px;
  /* 3 */
  padding: 0;
  list-style: none;
  position: relative; }
  .uk-tab::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 20px;
    right: 0;
    border-bottom: 1px solid #e5e5e5; }

/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 * 3. Create position context for dropdowns
 */
.uk-tab > * {
  /* 1 */
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  /* 2 */
  padding-left: 20px;
  /* 3 */
  position: relative; }

/* Items
 ========================================================================== */
/*
 * Items must target `a` elements to exclude other elements (e.g. dropdowns)
 * 1. Center text if a width is set
 * 2. Style
 */
.uk-tab > * > a {
  /* 1 */
  display: block;
  text-align: center;
  /* 2 */
  padding: 5px 10px;
  color: #999;
  border-bottom: 1px solid transparent;
  font-size: 0.875rem;
  text-transform: uppercase;
  -webkit-transition: color 0.1s ease-in-out;
  transition: color 0.1s ease-in-out; }

/* Hover + Focus */
.uk-tab > * > a:hover,
.uk-tab > * > a:focus {
  color: #666;
  text-decoration: none; }

/* Active */
.uk-tab > .uk-active > a {
  color: #333;
  border-color: #1e87f0; }

/* Disabled */
.uk-tab > .uk-disabled > a {
  color: #999; }

/* Position modifier
 ========================================================================== */
/*
 * Bottom
 */
.uk-tab-bottom::before {
  top: 0;
  bottom: auto; }

.uk-tab-bottom > * > a {
  border-top: 1px solid transparent;
  border-bottom: none; }

/*
 * Left + Right
 * 1. Reset Gutter
 */
.uk-tab-left,
.uk-tab-right {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  /* 1 */
  margin-left: 0; }

/* 1 */
.uk-tab-left > *,
.uk-tab-right > * {
  padding-left: 0; }

.uk-tab-left::before {
  top: 0;
  bottom: 0;
  left: auto;
  right: 0;
  border-left: 1px solid #e5e5e5;
  border-bottom: none; }

.uk-tab-right::before {
  top: 0;
  bottom: 0;
  left: 0;
  right: auto;
  border-left: 1px solid #e5e5e5;
  border-bottom: none; }

.uk-tab-left > * > a {
  text-align: left;
  border-right: 1px solid transparent;
  border-bottom: none; }

.uk-tab-right > * > a {
  text-align: left;
  border-left: 1px solid transparent;
  border-bottom: none; }

.uk-tab .uk-dropdown {
  margin-left: 30px; }

/* ========================================================================
   Component: Slidenav
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
.uk-slidenav {
  padding: 5px 10px;
  color: rgba(102, 102, 102, 0.5);
  -webkit-transition: color 0.1s ease-in-out;
  transition: color 0.1s ease-in-out; }

/* Hover + Focus */
.uk-slidenav:hover,
.uk-slidenav:focus {
  color: rgba(102, 102, 102, 0.9);
  outline: none; }

/* OnClick */
.uk-slidenav:active {
  color: rgba(102, 102, 102, 0.5); }

/* Icon modifier
 ========================================================================== */
/*
 * Previous
 */
/*
 * Next
 */
/* Size modifier
 ========================================================================== */
.uk-slidenav-large {
  padding: 10px 10px; }

/* Container
 ========================================================================== */
.uk-slidenav-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

/* ========================================================================
   Component: Dotnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Reset list
 * 3. Gutter
 */
.uk-dotnav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 3 */
  margin-left: -12px; }

/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 */
.uk-dotnav > * {
  /* 1 */
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  /* 2 */
  padding-left: 12px; }

/* Items
 ========================================================================== */
/*
 * Items
 * 1. Hide text if present
 */
.uk-dotnav > * > * {
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: transparent;
  /* 1 */
  text-indent: 100%;
  overflow: hidden;
  white-space: nowrap;
  border: 2px solid #fc3b3d;
  width: 18px;
  height: 18px; }
  @media (min-width: 1024px) {
    .uk-dotnav > * > * {
      width: 22px;
      height: 22px; } }

/* Hover + Focus */
.uk-dotnav > * > :hover,
.uk-dotnav > * > :focus {
  background-color: #fc3b3d;
  outline: none;
  border-color: transparent; }

/* OnClick */
.uk-dotnav > * > :active {
  background-color: #fc3b3d;
  border-color: transparent; }

/* Active */
.uk-dotnav > .uk-active > * {
  background-color: #fc3b3d;
  border-color: transparent; }

/* Modifier: 'uk-dotnav-vertical'
 ========================================================================== */
/*
 * 1. Change direction
 * 2. Gutter
 */
.uk-dotnav-vertical {
  /* 1 */
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  /* 2 */
  margin-left: 0;
  margin-top: -12px; }

/* 2 */
.uk-dotnav-vertical > * {
  padding-left: 0;
  padding-top: 12px; }

/* ========================================================================
   Component: Thumbnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Reset list
 * 3. Gutter
 */
.uk-thumbnav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 3 */
  margin-left: -15px; }

/*
 * Space is allocated based on content dimensions, but shrinks: 0 1 auto
 * 1. Gutter
 */
.uk-thumbnav > * {
  /* 1 */
  padding-left: 15px; }

/* Items
 ========================================================================== */
/*
 * Items
 */
.uk-thumbnav > * > * {
  display: inline-block;
  position: relative; }
  .uk-thumbnav > * > *::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.4);
    -webkit-transition: background-color 0.1s ease-in-out;
    transition: background-color 0.1s ease-in-out; }

/* Hover + Focus */
.uk-thumbnav > * > :hover,
.uk-thumbnav > * > :focus {
  outline: none; }
  .uk-thumbnav > * > :hover::after,
  .uk-thumbnav > * > :focus::after {
    background-color: transparent; }

/* Active */
.uk-thumbnav > .uk-active > *::after {
  background-color: transparent; }

/* Modifier: 'uk-thumbnav-vertical'
 ========================================================================== */
/*
 * 1. Change direction
 * 2. Gutter
 */
.uk-thumbnav-vertical {
  /* 1 */
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  /* 2 */
  margin-left: 0;
  margin-top: -15px; }

/* 2 */
.uk-thumbnav-vertical > * {
  padding-left: 0;
  padding-top: 15px; }

/* ========================================================================
   Component: Iconnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Reset list
 * 3. Gutter
 */
.uk-iconnav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* 1 */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 3 */
  margin-left: -10px; }

/*
 * Space is allocated based on content dimensions, but shrinks: 0 1 auto
 * 1. Gutter
 */
.uk-iconnav > * {
  /* 1 */
  padding-left: 10px; }

/* Items
 ========================================================================== */
/*
 * Items must target `a` elements to exclude other elements (e.g. dropdowns)
 * 1. Prevent gap if child element is `inline-block`, e.g. an icon
 * 2. Style
 */
.uk-iconnav > * > a {
  /* 1 */
  display: block;
  /* 2 */
  color: #999; }

/* Hover + Focus */
.uk-iconnav > * > a:hover,
.uk-iconnav > * > a:focus {
  color: #666;
  outline: none; }

/* Active */
.uk-iconnav > .uk-active > a {
  color: #666; }

/* Modifier: 'uk-iconnav-vertical'
 ========================================================================== */
/*
 * 1. Change direction
 * 2. Gutter
 */
.uk-iconnav-vertical {
  /* 1 */
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  /* 2 */
  margin-left: 0;
  margin-top: -10px; }

/* 2 */
.uk-iconnav-vertical > * {
  padding-left: 0;
  padding-top: 10px; }

/* ========================================================================
   Component: Lightbox
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Allow scrolling for the modal dialog
 * 4. Horizontal padding
 * 5. Mask the background page
 * 6. Fade-in transition
 * 7. Prevent cancellation of pointer events while dragging
 */
.uk-lightbox {
  /* 1 */
  display: none;
  /* 2 */
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1010;
  /* 5 */
  background: #000;
  /* 6 */
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear;
  /* 7 */
  -ms-touch-action: pinch-zoom;
      touch-action: pinch-zoom; }

/*
 * Open
 * 1. Center child
 * 2. Fade-in
 */
.uk-lightbox.uk-open {
  display: block;
  /* 2 */
  opacity: 1; }

/* Page
 ========================================================================== */
/*
 * Prevent scrollbars
 */
.uk-lightbox-page {
  overflow: hidden; }

/* Item
 ========================================================================== */
/*
 * 1. Center child within the viewport
 * 2. Not visible by default
 * 3. Color needed for spinner icon
 * 4. Optimize animation
 * 5. Responsiveness
 *    Using `vh` for `max-height` to fix image proportions after resize in Safari and Opera
 *    Using `vh` and `vw` to make responsive image work in IE11
 * 6. Suppress outline on focus
 */
.uk-lightbox-items > * {
  /* 1 */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  /* 2 */
  display: none;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  /* 3 */
  color: rgba(255, 255, 255, 0.7);
  /* 4 */
  will-change: transform, opacity; }

/* 5 */
.uk-lightbox-items > * > * {
  max-width: 100vw;
  max-height: 100vh; }

/* 6 */
.uk-lightbox-items > :focus {
  outline: none; }

.uk-lightbox-items > * > :not(iframe) {
  width: auto;
  height: auto; }

.uk-lightbox-items > .uk-active {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

/* Toolbar
 ========================================================================== */
.uk-lightbox-toolbar {
  padding: 10px 10px;
  background: rgba(0, 0, 0, 0.3);
  color: rgba(255, 255, 255, 0.7); }

.uk-lightbox-toolbar > * {
  color: rgba(255, 255, 255, 0.7); }

/* Toolbar Icon (Close)
 ========================================================================== */
.uk-lightbox-toolbar-icon {
  padding: 5px;
  color: rgba(255, 255, 255, 0.7); }

/*
 * Hover
 */
.uk-lightbox-toolbar-icon:hover {
  color: #fff; }

/* Button (Slidenav)
 ========================================================================== */
/*
 * 1. Center icon vertically and horizontally
 */
.uk-lightbox-button {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 50px;
  height: 50px;
  background: rgba(0, 0, 0, 0.3);
  color: rgba(255, 255, 255, 0.7);
  /* 1 */
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

/* Hover + Focus */
.uk-lightbox-button:hover,
.uk-lightbox-button:focus {
  color: #fff; }

/* OnClick */
/* Caption
 ========================================================================== */
.uk-lightbox-caption:empty {
  display: none; }

/* Iframe
 ========================================================================== */
.uk-lightbox-iframe {
  width: 80%;
  height: 80%; }

/* ========================================================================
   Component: Animation
 ========================================================================== */
[class*='uk-animation-'] {
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
  -webkit-animation-timing-function: ease-out;
          animation-timing-function: ease-out;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both; }

/* Animations
 ========================================================================== */
/*
 * Fade
 */
.uk-animation-fade {
  -webkit-animation-name: uk-fade;
          animation-name: uk-fade;
  -webkit-animation-duration: 0.8s;
          animation-duration: 0.8s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear; }

/*
 * Scale
 */
.uk-animation-scale-up {
  -webkit-animation-name: uk-fade-scale-02;
          animation-name: uk-fade-scale-02; }

.uk-animation-scale-down {
  -webkit-animation-name: uk-fade-scale-18;
          animation-name: uk-fade-scale-18; }

/*
 * Slide
 */
.uk-animation-slide-top {
  -webkit-animation-name: uk-fade-top;
          animation-name: uk-fade-top; }

.uk-animation-slide-bottom {
  -webkit-animation-name: uk-fade-bottom;
          animation-name: uk-fade-bottom; }

.uk-animation-slide-left {
  -webkit-animation-name: uk-fade-left;
          animation-name: uk-fade-left; }

.uk-animation-slide-right {
  -webkit-animation-name: uk-fade-right;
          animation-name: uk-fade-right; }

/*
 * Slide Small
 */
.uk-animation-slide-top-small {
  -webkit-animation-name: uk-fade-top-small;
          animation-name: uk-fade-top-small; }

.uk-animation-slide-bottom-small {
  -webkit-animation-name: uk-fade-bottom-small;
          animation-name: uk-fade-bottom-small; }

.uk-animation-slide-left-small {
  -webkit-animation-name: uk-fade-left-small;
          animation-name: uk-fade-left-small; }

.uk-animation-slide-right-small {
  -webkit-animation-name: uk-fade-right-small;
          animation-name: uk-fade-right-small; }

/*
 * Slide Medium
 */
.uk-animation-slide-top-medium {
  -webkit-animation-name: uk-fade-top-medium;
          animation-name: uk-fade-top-medium; }

.uk-animation-slide-bottom-medium {
  -webkit-animation-name: uk-fade-bottom-medium;
          animation-name: uk-fade-bottom-medium; }

.uk-animation-slide-left-medium {
  -webkit-animation-name: uk-fade-left-medium;
          animation-name: uk-fade-left-medium; }

.uk-animation-slide-right-medium {
  -webkit-animation-name: uk-fade-right-medium;
          animation-name: uk-fade-right-medium; }

/*
 * Kenburns
 */
.uk-animation-kenburns {
  -webkit-animation-name: uk-scale-kenburns;
          animation-name: uk-scale-kenburns;
  -webkit-animation-duration: 15s;
          animation-duration: 15s; }

/*
 * Shake
 */
.uk-animation-shake {
  -webkit-animation-name: uk-shake;
          animation-name: uk-shake; }

/*
 * SVG Stroke
 * The `--uk-animation-stroke` custom property contains the longest path length.
 * Set it manually or use `uk-svg="stroke-animation: true"` to set it automatically.
 * All strokes are animated by the same pace and doesn't end simultaneously.
 * To end simultaneously, `pathLength="1"` could be used, but it's not working in Safari yet.
 */
.uk-animation-stroke {
  -webkit-animation-name: uk-stroke;
          animation-name: uk-stroke;
  stroke-dasharray: var(--uk-animation-stroke);
  -webkit-animation-duration: 2s;
          animation-duration: 2s; }

/* Direction modifier
 ========================================================================== */
.uk-animation-reverse {
  animation-direction: reverse;
  -webkit-animation-timing-function: ease-in;
          animation-timing-function: ease-in; }

/* Duration modifier
 ========================================================================== */
.uk-animation-fast {
  -webkit-animation-duration: 0.1s;
          animation-duration: 0.1s; }

/* Toggle (Hover + Focus)
========================================================================== */
/*
 * The toggle is triggered on touch devices using `:focus` and tabindex
 */
.uk-animation-toggle:not(:hover):not(:focus) [class*='uk-animation-'] {
  -webkit-animation-name: none;
          animation-name: none; }

/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-animation-toggle {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/*
 * Remove outline for `tabindex`
 */
.uk-animation-toggle:focus {
  outline: none; }

/* Keyframes used by animation classes
 ========================================================================== */
/*
 * Fade
 */
@-webkit-keyframes uk-fade {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@keyframes uk-fade {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

/*
 * Slide Top
 */
@-webkit-keyframes uk-fade-top {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }
@keyframes uk-fade-top {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

/*
 * Slide Bottom
 */
@-webkit-keyframes uk-fade-bottom {
  0% {
    opacity: 0;
    -webkit-transform: translateY(100%);
            transform: translateY(100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }
@keyframes uk-fade-bottom {
  0% {
    opacity: 0;
    -webkit-transform: translateY(100%);
            transform: translateY(100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

/*
 * Slide Left
 */
@-webkit-keyframes uk-fade-left {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }
@keyframes uk-fade-left {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

/*
 * Slide Right
 */
@-webkit-keyframes uk-fade-right {
  0% {
    opacity: 0;
    -webkit-transform: translateX(100%);
            transform: translateX(100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }
@keyframes uk-fade-right {
  0% {
    opacity: 0;
    -webkit-transform: translateX(100%);
            transform: translateX(100%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

/*
 * Slide Top Small
 */
@-webkit-keyframes uk-fade-top-small {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-10px);
            transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }
@keyframes uk-fade-top-small {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-10px);
            transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

/*
 * Slide Bottom Small
 */
@-webkit-keyframes uk-fade-bottom-small {
  0% {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }
@keyframes uk-fade-bottom-small {
  0% {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

/*
 * Slide Left Small
 */
@-webkit-keyframes uk-fade-left-small {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-10px);
            transform: translateX(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }
@keyframes uk-fade-left-small {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-10px);
            transform: translateX(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

/*
 * Slide Right Small
 */
@-webkit-keyframes uk-fade-right-small {
  0% {
    opacity: 0;
    -webkit-transform: translateX(10px);
            transform: translateX(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }
@keyframes uk-fade-right-small {
  0% {
    opacity: 0;
    -webkit-transform: translateX(10px);
            transform: translateX(10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

/*
 * Slide Top Medium
 */
@-webkit-keyframes uk-fade-top-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-50px);
            transform: translateY(-50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }
@keyframes uk-fade-top-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-50px);
            transform: translateY(-50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

/*
 * Slide Bottom Medium
 */
@-webkit-keyframes uk-fade-bottom-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateY(50px);
            transform: translateY(50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }
@keyframes uk-fade-bottom-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateY(50px);
            transform: translateY(50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

/*
 * Slide Left Medium
 */
@-webkit-keyframes uk-fade-left-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-50px);
            transform: translateX(-50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }
@keyframes uk-fade-left-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-50px);
            transform: translateX(-50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

/*
 * Slide Right Medium
 */
@-webkit-keyframes uk-fade-right-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateX(50px);
            transform: translateX(50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }
@keyframes uk-fade-right-medium {
  0% {
    opacity: 0;
    -webkit-transform: translateX(50px);
            transform: translateX(50px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

/*
 * Scale Up
 */
@-webkit-keyframes uk-fade-scale-02 {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.2);
            transform: scale(0.2); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }
@keyframes uk-fade-scale-02 {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.2);
            transform: scale(0.2); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }

/*
 * Scale Down
 */
@-webkit-keyframes uk-fade-scale-18 {
  0% {
    opacity: 0;
    -webkit-transform: scale(1.8);
            transform: scale(1.8); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }
@keyframes uk-fade-scale-18 {
  0% {
    opacity: 0;
    -webkit-transform: scale(1.8);
            transform: scale(1.8); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1); } }

/*
 * Kenburns
 */
@-webkit-keyframes uk-scale-kenburns {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  100% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2); } }
@keyframes uk-scale-kenburns {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  100% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2); } }

/*
 * Shake
 */
@-webkit-keyframes uk-shake {
  0%, 100% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  10% {
    -webkit-transform: translateX(-9px);
            transform: translateX(-9px); }
  20% {
    -webkit-transform: translateX(8px);
            transform: translateX(8px); }
  30% {
    -webkit-transform: translateX(-7px);
            transform: translateX(-7px); }
  40% {
    -webkit-transform: translateX(6px);
            transform: translateX(6px); }
  50% {
    -webkit-transform: translateX(-5px);
            transform: translateX(-5px); }
  60% {
    -webkit-transform: translateX(4px);
            transform: translateX(4px); }
  70% {
    -webkit-transform: translateX(-3px);
            transform: translateX(-3px); }
  80% {
    -webkit-transform: translateX(2px);
            transform: translateX(2px); }
  90% {
    -webkit-transform: translateX(-1px);
            transform: translateX(-1px); } }
@keyframes uk-shake {
  0%, 100% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  10% {
    -webkit-transform: translateX(-9px);
            transform: translateX(-9px); }
  20% {
    -webkit-transform: translateX(8px);
            transform: translateX(8px); }
  30% {
    -webkit-transform: translateX(-7px);
            transform: translateX(-7px); }
  40% {
    -webkit-transform: translateX(6px);
            transform: translateX(6px); }
  50% {
    -webkit-transform: translateX(-5px);
            transform: translateX(-5px); }
  60% {
    -webkit-transform: translateX(4px);
            transform: translateX(4px); }
  70% {
    -webkit-transform: translateX(-3px);
            transform: translateX(-3px); }
  80% {
    -webkit-transform: translateX(2px);
            transform: translateX(2px); }
  90% {
    -webkit-transform: translateX(-1px);
            transform: translateX(-1px); } }

/*
 * Stroke
 */
@-webkit-keyframes uk-stroke {
  0% {
    stroke-dashoffset: var(--uk-animation-stroke); }
  100% {
    stroke-dashoffset: 0; } }
@keyframes uk-stroke {
  0% {
    stroke-dashoffset: var(--uk-animation-stroke); }
  100% {
    stroke-dashoffset: 0; } }

/* ========================================================================
   Component: Width
 ========================================================================== */
/* Equal child widths
 ========================================================================== */
[class*='uk-child-width'] > * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%; }

.uk-child-width-1-2 > * {
  width: 50%; }

.uk-child-width-1-3 > * {
  width: calc(100% * 1 / 3.001); }

.uk-child-width-1-4 > * {
  width: 25%; }

.uk-child-width-1-5 > * {
  width: 20%; }

.uk-child-width-1-6 > * {
  width: calc(100% * 1 / 6.001); }

.uk-child-width-auto > * {
  width: auto; }

/*
 * 1. Reset the `min-width`, which is set to auto by default, because
 *    flex items won't shrink below their minimum intrinsic content size.
 *    Using `1px` instead of `0`, so items still wrap into the next line,
 *    if they have zero width and padding and the predecessor is 100% wide.
 */
.uk-child-width-expand > :not([class*='uk-width']) {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  /* 1 */
  min-width: 1px; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-child-width-1-1\@s > * {
    width: 100%; }
  .uk-child-width-1-2\@s > * {
    width: 50%; }
  .uk-child-width-1-3\@s > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@s > * {
    width: 25%; }
  .uk-child-width-1-5\@s > * {
    width: 20%; }
  .uk-child-width-1-6\@s > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@s > * {
    width: auto; }
  .uk-child-width-expand\@s > :not([class*='uk-width']) {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-child-width-1-1\@m > * {
    width: 100%; }
  .uk-child-width-1-2\@m > * {
    width: 50%; }
  .uk-child-width-1-3\@m > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@m > * {
    width: 25%; }
  .uk-child-width-1-5\@m > * {
    width: 20%; }
  .uk-child-width-1-6\@m > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@m > * {
    width: auto; }
  .uk-child-width-expand\@m > :not([class*='uk-width']) {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-child-width-1-1\@l > * {
    width: 100%; }
  .uk-child-width-1-2\@l > * {
    width: 50%; }
  .uk-child-width-1-3\@l > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@l > * {
    width: 25%; }
  .uk-child-width-1-5\@l > * {
    width: 20%; }
  .uk-child-width-1-6\@l > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@l > * {
    width: auto; }
  .uk-child-width-expand\@l > :not([class*='uk-width']) {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-child-width-1-1\@xl > * {
    width: 100%; }
  .uk-child-width-1-2\@xl > * {
    width: 50%; }
  .uk-child-width-1-3\@xl > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@xl > * {
    width: 25%; }
  .uk-child-width-1-5\@xl > * {
    width: 20%; }
  .uk-child-width-1-6\@xl > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@xl > * {
    width: auto; }
  .uk-child-width-expand\@xl > :not([class*='uk-width']) {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Single Widths
 ========================================================================== */
/*
 * 1. `max-width` is needed for the pixel-based classes
 */
[class*='uk-width'] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  /* 1 */
  max-width: 100%; }

/* Halves */
.uk-width-1-2 {
  width: 50%; }

/* Thirds */
.uk-width-1-3 {
  width: calc(100% * 1 / 3.001); }

.uk-width-2-3 {
  width: calc(100% * 2 / 3.001); }

/* Quarters */
.uk-width-1-4 {
  width: 25%; }

.uk-width-3-4 {
  width: 75%; }

/* Fifths */
.uk-width-1-5 {
  width: 20%; }

.uk-width-2-5 {
  width: 40%; }

.uk-width-3-5 {
  width: 60%; }

.uk-width-4-5 {
  width: 80%; }

/* Sixths */
.uk-width-1-6 {
  width: calc(100% * 1 / 6.001); }

.uk-width-5-6 {
  width: calc(100% * 5 / 6.001); }

/* Pixel */
.uk-width-small {
  width: 150px; }

.uk-width-medium {
  width: 300px; }

.uk-width-large {
  width: 450px; }

.uk-width-xlarge {
  width: 600px; }

.uk-width-2xlarge {
  width: 750px; }

/* Auto */
.uk-width-auto {
  width: auto; }

/* Expand */
.uk-width-expand {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 1px; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  /* Whole */
  .uk-width-1-1\@s {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@s {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@s {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@s {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@s {
    width: 25%; }
  .uk-width-3-4\@s {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@s {
    width: 20%; }
  .uk-width-2-5\@s {
    width: 40%; }
  .uk-width-3-5\@s {
    width: 60%; }
  .uk-width-4-5\@s {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@s {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@s {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@s {
    width: 150px; }
  .uk-width-medium\@s {
    width: 300px; }
  .uk-width-large\@s {
    width: 450px; }
  .uk-width-xlarge\@s {
    width: 600px; }
  .uk-width-2xlarge\@s {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@s {
    width: auto; }
  /* Expand */
  .uk-width-expand\@s {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  /* Whole */
  .uk-width-1-1\@m {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@m {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@m {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@m {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@m {
    width: 25%; }
  .uk-width-3-4\@m {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@m {
    width: 20%; }
  .uk-width-2-5\@m {
    width: 40%; }
  .uk-width-3-5\@m {
    width: 60%; }
  .uk-width-4-5\@m {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@m {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@m {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@m {
    width: 150px; }
  .uk-width-medium\@m {
    width: 300px; }
  .uk-width-large\@m {
    width: 450px; }
  .uk-width-xlarge\@m {
    width: 600px; }
  .uk-width-2xlarge\@m {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@m {
    width: auto; }
  /* Expand */
  .uk-width-expand\@m {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Whole */
  .uk-width-1-1\@l {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@l {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@l {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@l {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@l {
    width: 25%; }
  .uk-width-3-4\@l {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@l {
    width: 20%; }
  .uk-width-2-5\@l {
    width: 40%; }
  .uk-width-3-5\@l {
    width: 60%; }
  .uk-width-4-5\@l {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@l {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@l {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@l {
    width: 150px; }
  .uk-width-medium\@l {
    width: 300px; }
  .uk-width-large\@l {
    width: 450px; }
  .uk-width-xlarge\@l {
    width: 600px; }
  .uk-width-2xlarge\@l {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@l {
    width: auto; }
  /* Expand */
  .uk-width-expand\@l {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  /* Whole */
  .uk-width-1-1\@xl {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@xl {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@xl {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@xl {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@xl {
    width: 25%; }
  .uk-width-3-4\@xl {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@xl {
    width: 20%; }
  .uk-width-2-5\@xl {
    width: 40%; }
  .uk-width-3-5\@xl {
    width: 60%; }
  .uk-width-4-5\@xl {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@xl {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@xl {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@xl {
    width: 150px; }
  .uk-width-medium\@xl {
    width: 300px; }
  .uk-width-large\@xl {
    width: 450px; }
  .uk-width-xlarge\@xl {
    width: 600px; }
  .uk-width-2xlarge\@xl {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@xl {
    width: auto; }
  /* Expand */
  .uk-width-expand\@xl {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

@media (min-width: 480px) {
  .uk-child-width-1-1\@xs > * {
    width: 100%; }
  .uk-child-width-1-2\@xs > * {
    width: 50%; }
  .uk-child-width-1-3\@xs > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@xs > * {
    width: 25%; }
  .uk-child-width-1-5\@xs > * {
    width: 20%; }
  .uk-child-width-1-6\@xs > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@xs > * {
    width: auto; }
  .uk-child-width-expand\@xs > :not([class*='uk-width']) {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Phone landscape and bigger */
@media (min-width: 480px) {
  /* Whole */
  .uk-width-1-1\@xs {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@xs {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@xs {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@xs {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@xs {
    width: 25%; }
  .uk-width-3-4\@xs {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@xs {
    width: 20%; }
  .uk-width-2-5\@xs {
    width: 40%; }
  .uk-width-3-5\@xs {
    width: 60%; }
  .uk-width-4-5\@xs {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@xs {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@xs {
    width: calc(100% * 5 / 6.001); }
  /* Auto */
  .uk-width-auto\@xs {
    width: auto; }
  /* Expand */
  .uk-width-expand\@xs {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-child-width-1-1\@s > * {
    width: 100%; }
  .uk-child-width-1-2\@s > * {
    width: 50%; }
  .uk-child-width-1-3\@s > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@s > * {
    width: 25%; }
  .uk-child-width-1-5\@s > * {
    width: 20%; }
  .uk-child-width-1-6\@s > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@s > * {
    width: auto; }
  .uk-child-width-expand\@s > :not([class*='uk-width']) {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-child-width-1-1\@m > * {
    width: 100%; }
  .uk-child-width-1-2\@m > * {
    width: 50%; }
  .uk-child-width-1-3\@m > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@m > * {
    width: 25%; }
  .uk-child-width-1-5\@m > * {
    width: 20%; }
  .uk-child-width-1-6\@m > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@m > * {
    width: auto; }
  .uk-child-width-expand\@m > :not([class*='uk-width']) {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-child-width-1-1\@l > * {
    width: 100%; }
  .uk-child-width-1-2\@l > * {
    width: 50%; }
  .uk-child-width-1-3\@l > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@l > * {
    width: 25%; }
  .uk-child-width-1-5\@l > * {
    width: 20%; }
  .uk-child-width-1-6\@l > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@l > * {
    width: auto; }
  .uk-child-width-expand\@l > :not([class*='uk-width']) {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-child-width-1-1\@xl > * {
    width: 100%; }
  .uk-child-width-1-2\@xl > * {
    width: 50%; }
  .uk-child-width-1-3\@xl > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@xl > * {
    width: 25%; }
  .uk-child-width-1-5\@xl > * {
    width: 20%; }
  .uk-child-width-1-6\@xl > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@xl > * {
    width: auto; }
  .uk-child-width-expand\@xl > :not([class*='uk-width']) {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  /* Whole */
  .uk-width-1-1\@s {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@s {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@s {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@s {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@s {
    width: 25%; }
  .uk-width-3-4\@s {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@s {
    width: 20%; }
  .uk-width-2-5\@s {
    width: 40%; }
  .uk-width-3-5\@s {
    width: 60%; }
  .uk-width-4-5\@s {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@s {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@s {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@s {
    width: 150px; }
  .uk-width-medium\@s {
    width: 300px; }
  .uk-width-large\@s {
    width: 450px; }
  .uk-width-xlarge\@s {
    width: 600px; }
  .uk-width-2xlarge\@s {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@s {
    width: auto; }
  /* Expand */
  .uk-width-expand\@s {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  /* Whole */
  .uk-width-1-1\@m {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@m {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@m {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@m {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@m {
    width: 25%; }
  .uk-width-3-4\@m {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@m {
    width: 20%; }
  .uk-width-2-5\@m {
    width: 40%; }
  .uk-width-3-5\@m {
    width: 60%; }
  .uk-width-4-5\@m {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@m {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@m {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@m {
    width: 150px; }
  .uk-width-medium\@m {
    width: 300px; }
  .uk-width-large\@m {
    width: 450px; }
  .uk-width-xlarge\@m {
    width: 600px; }
  .uk-width-2xlarge\@m {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@m {
    width: auto; }
  /* Expand */
  .uk-width-expand\@m {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Whole */
  .uk-width-1-1\@l {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@l {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@l {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@l {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@l {
    width: 25%; }
  .uk-width-3-4\@l {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@l {
    width: 20%; }
  .uk-width-2-5\@l {
    width: 40%; }
  .uk-width-3-5\@l {
    width: 60%; }
  .uk-width-4-5\@l {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@l {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@l {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@l {
    width: 150px; }
  .uk-width-medium\@l {
    width: 300px; }
  .uk-width-large\@l {
    width: 450px; }
  .uk-width-xlarge\@l {
    width: 600px; }
  .uk-width-2xlarge\@l {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@l {
    width: auto; }
  /* Expand */
  .uk-width-expand\@l {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  /* Whole */
  .uk-width-1-1\@xl {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@xl {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@xl {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@xl {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@xl {
    width: 25%; }
  .uk-width-3-4\@xl {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@xl {
    width: 20%; }
  .uk-width-2-5\@xl {
    width: 40%; }
  .uk-width-3-5\@xl {
    width: 60%; }
  .uk-width-4-5\@xl {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@xl {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@xl {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@xl {
    width: 150px; }
  .uk-width-medium\@xl {
    width: 300px; }
  .uk-width-large\@xl {
    width: 450px; }
  .uk-width-xlarge\@xl {
    width: 600px; }
  .uk-width-2xlarge\@xl {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@xl {
    width: auto; }
  /* Expand */
  .uk-width-expand\@xl {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px; } }

/* ========================================================================
   Component: Height
 ========================================================================== */
[class*='uk-height'] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

/*
 * Only works if parent element has a height set
 */
.uk-height-1-1 {
  height: 100%; }

/*
 * Useful to create image teasers
 */
.uk-height-viewport {
  min-height: 100vh; }

/*
 * Pixel
 * Useful for `overflow: auto`
 */
.uk-height-small {
  height: 150px; }

.uk-height-medium {
  height: 300px; }

.uk-height-large {
  height: 450px; }

.uk-height-max-small {
  max-height: 150px; }

.uk-height-max-medium {
  max-height: 300px; }

.uk-height-max-large {
  max-height: 450px; }

/* ========================================================================
   Component: Text
 ========================================================================== */
/* Style modifiers
 ========================================================================== */
.uk-text-lead {
  font-size: 1.5rem;
  line-height: 1.5;
  color: #333; }

.uk-text-meta {
  font-size: 0.875rem;
  line-height: 1.4;
  color: #999; }
  .uk-text-meta a {
    color: #999; }
  .uk-text-meta a:hover {
    color: #666;
    text-decoration: none; }

/* Size modifiers
 ========================================================================== */
.uk-text-small {
  font-size: 0.875rem;
  line-height: 1.5; }

.uk-text-large {
  font-size: 1.5rem;
  line-height: 1.5; }

.uk-text-default {
  font-size: 16px;
  line-height: 1.5; }

/* Weight modifier
 ========================================================================== */
.uk-text-light {
  font-weight: 300; }

.uk-text-normal {
  font-weight: 400; }

.uk-text-bold {
  font-weight: 700; }

.uk-text-lighter {
  font-weight: lighter; }

.uk-text-bolder {
  font-weight: bolder; }

/* Style modifier
 ========================================================================== */
.uk-text-italic {
  font-style: italic; }

/* Transform modifier
 ========================================================================== */
.uk-text-capitalize {
  text-transform: capitalize !important; }

.uk-text-uppercase {
  text-transform: uppercase !important; }

.uk-text-lowercase {
  text-transform: lowercase !important; }

/* Color modifiers
 ========================================================================== */
.uk-text-muted {
  color: #999 !important; }

.uk-text-emphasis {
  color: #333 !important; }

.uk-text-primary {
  color: #1e87f0 !important; }

.uk-text-secondary {
  color: #222 !important; }

.uk-text-success {
  color: #32d296 !important; }

.uk-text-warning {
  color: #faa05a !important; }

.uk-text-danger {
  color: #f0506e !important; }

/* Background modifier
 ========================================================================== */
/*
 * 1. The background clips to the foreground text. Works in Chrome, Firefox, Safari, Edge and Opera
 *    Default color is set to transparent
 * 2. Container fits the text
 * 3. Fallback color for IE11
 */
.uk-text-background {
  /* 1 */
  -webkit-background-clip: text;
  /* 2 */
  display: inline-block;
  /* 3 */
  color: #1e87f0 !important; }

@supports (-webkit-background-clip: text) {
  .uk-text-background {
    background-color: #1e87f0;
    color: transparent !important; } }

/* Alignment modifiers
 ========================================================================== */
.uk-text-left {
  text-align: left !important; }

.uk-text-right {
  text-align: right !important; }

.uk-text-center {
  text-align: center !important; }

.uk-text-justify {
  text-align: justify !important; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-text-left\@s {
    text-align: left !important; }
  .uk-text-right\@s {
    text-align: right !important; }
  .uk-text-center\@s {
    text-align: center !important; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-text-left\@m {
    text-align: left !important; }
  .uk-text-right\@m {
    text-align: right !important; }
  .uk-text-center\@m {
    text-align: center !important; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-text-left\@l {
    text-align: left !important; }
  .uk-text-right\@l {
    text-align: right !important; }
  .uk-text-center\@l {
    text-align: center !important; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-text-left\@xl {
    text-align: left !important; }
  .uk-text-right\@xl {
    text-align: right !important; }
  .uk-text-center\@xl {
    text-align: center !important; } }

/*
 * Vertical
 */
.uk-text-top {
  vertical-align: top !important; }

.uk-text-middle {
  vertical-align: middle !important; }

.uk-text-bottom {
  vertical-align: bottom !important; }

.uk-text-baseline {
  vertical-align: baseline !important; }

/* Wrap modifiers
 ========================================================================== */
/*
 * Prevent text from wrapping onto multiple lines
 */
.uk-text-nowrap {
  white-space: nowrap; }

/*
 * 1. Make sure a max-width is set after which truncation can occur
 * 2. Prevent text from wrapping onto multiple lines, and truncate with an ellipsis
 * 3. Fix for table cells
 */
.uk-text-truncate {
  /* 1 */
  max-width: 100%;
  /* 2 */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

/* 2 */
th.uk-text-truncate,
td.uk-text-truncate {
  max-width: 0; }

/*
 * 1. Wrap long words onto the next line and break them if they are too long to fit
 * 2. Legacy `word-wrap` as fallback for `overflow-wrap`
 * 3. Fix `overflow-wrap` which doesn't work with table cells in Chrome, Opera, IE11 and Edge
 *    Must use `break-all` to support IE11 and Edge
 * Note: Not using `hyphens: auto;` because it hyphenates text even if not needed
 */
.uk-text-break {
  /* 1 */
  overflow-wrap: break-word;
  /* 2 */
  word-wrap: break-word; }

/* 3 */
th.uk-text-break,
td.uk-text-break {
  word-break: break-all; }

/* ========================================================================
   Component: Column
 ========================================================================== */
[class*='uk-column-'] {
  -webkit-column-gap: 30px;
     -moz-column-gap: 30px;
          column-gap: 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  [class*='uk-column-'] {
    -webkit-column-gap: 40px;
       -moz-column-gap: 40px;
            column-gap: 40px; } }

/*
 * Fix image 1px line wrapping into the next column in Chrome
 */
[class*='uk-column-'] img {
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0); }

/* Divider
 ========================================================================== */
/*
 * 1. Double the column gap
 */
.uk-column-divider {
  -webkit-column-rule: 1px solid #e5e5e5;
     -moz-column-rule: 1px solid #e5e5e5;
          column-rule: 1px solid #e5e5e5;
  /* 1 */
  -webkit-column-gap: 60px;
     -moz-column-gap: 60px;
          column-gap: 60px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-column-divider {
    -webkit-column-gap: 80px;
       -moz-column-gap: 80px;
            column-gap: 80px; } }

/* Width modifiers
 ========================================================================== */
.uk-column-1-2 {
  -webkit-column-count: 2;
     -moz-column-count: 2;
          column-count: 2; }

.uk-column-1-3 {
  -webkit-column-count: 3;
     -moz-column-count: 3;
          column-count: 3; }

.uk-column-1-4 {
  -webkit-column-count: 4;
     -moz-column-count: 4;
          column-count: 4; }

.uk-column-1-5 {
  -webkit-column-count: 5;
     -moz-column-count: 5;
          column-count: 5; }

.uk-column-1-6 {
  -webkit-column-count: 6;
     -moz-column-count: 6;
          column-count: 6; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-column-1-2\@s {
    -webkit-column-count: 2;
       -moz-column-count: 2;
            column-count: 2; }
  .uk-column-1-3\@s {
    -webkit-column-count: 3;
       -moz-column-count: 3;
            column-count: 3; }
  .uk-column-1-4\@s {
    -webkit-column-count: 4;
       -moz-column-count: 4;
            column-count: 4; }
  .uk-column-1-5\@s {
    -webkit-column-count: 5;
       -moz-column-count: 5;
            column-count: 5; }
  .uk-column-1-6\@s {
    -webkit-column-count: 6;
       -moz-column-count: 6;
            column-count: 6; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-column-1-2\@m {
    -webkit-column-count: 2;
       -moz-column-count: 2;
            column-count: 2; }
  .uk-column-1-3\@m {
    -webkit-column-count: 3;
       -moz-column-count: 3;
            column-count: 3; }
  .uk-column-1-4\@m {
    -webkit-column-count: 4;
       -moz-column-count: 4;
            column-count: 4; }
  .uk-column-1-5\@m {
    -webkit-column-count: 5;
       -moz-column-count: 5;
            column-count: 5; }
  .uk-column-1-6\@m {
    -webkit-column-count: 6;
       -moz-column-count: 6;
            column-count: 6; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-column-1-2\@l {
    -webkit-column-count: 2;
       -moz-column-count: 2;
            column-count: 2; }
  .uk-column-1-3\@l {
    -webkit-column-count: 3;
       -moz-column-count: 3;
            column-count: 3; }
  .uk-column-1-4\@l {
    -webkit-column-count: 4;
       -moz-column-count: 4;
            column-count: 4; }
  .uk-column-1-5\@l {
    -webkit-column-count: 5;
       -moz-column-count: 5;
            column-count: 5; }
  .uk-column-1-6\@l {
    -webkit-column-count: 6;
       -moz-column-count: 6;
            column-count: 6; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-column-1-2\@xl {
    -webkit-column-count: 2;
       -moz-column-count: 2;
            column-count: 2; }
  .uk-column-1-3\@xl {
    -webkit-column-count: 3;
       -moz-column-count: 3;
            column-count: 3; }
  .uk-column-1-4\@xl {
    -webkit-column-count: 4;
       -moz-column-count: 4;
            column-count: 4; }
  .uk-column-1-5\@xl {
    -webkit-column-count: 5;
       -moz-column-count: 5;
            column-count: 5; }
  .uk-column-1-6\@xl {
    -webkit-column-count: 6;
       -moz-column-count: 6;
            column-count: 6; } }

/* Make element span across all columns
 * Does not work in Firefox yet
 ========================================================================== */
.uk-column-span {
  -webkit-column-span: all;
     -moz-column-span: all;
          column-span: all; }

/* ========================================================================
   Component: Cover
 ========================================================================== */
/*
 * Works with iframes and embedded content
 * 1. Reset responsiveness for embedded content
 * 2. Center object
 * Note: Percent values on the `top` property only works if this element
 *       is absolute positioned or if the container has a height
 */
.uk-cover {
  /* 1 */
  max-width: none;
  /* 2 */
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%); }

iframe.uk-cover {
  pointer-events: none; }

/* Container
 ========================================================================== */
/*
 * 1. Parent container which clips resized object
 * 2. Needed if the child is positioned absolute. See note above
 */
.uk-cover-container {
  /* 1 */
  overflow: hidden;
  /* 2 */
  position: relative; }

/* ========================================================================
   Component: Background
 ========================================================================== */
/* Color
 ========================================================================== */
.uk-background-default {
  background-color: #fff; }

.uk-background-muted {
  background-color: #f8f8f8; }

.uk-background-primary {
  background-color: #1e87f0; }

.uk-background-secondary {
  background-color: #222; }

/* Size
 ========================================================================== */
.uk-background-cover,
.uk-background-contain {
  background-position: 50% 50%;
  background-repeat: no-repeat; }

.uk-background-cover {
  background-size: cover; }

.uk-background-contain {
  background-size: contain; }

/* Position
 ========================================================================== */
.uk-background-top-left {
  background-position: 0 0; }

.uk-background-top-center {
  background-position: 50% 0; }

.uk-background-top-right {
  background-position: 100% 0; }

.uk-background-center-left {
  background-position: 0 50%; }

.uk-background-center-center {
  background-position: 50% 50%; }

.uk-background-center-right {
  background-position: 100% 50%; }

.uk-background-bottom-left {
  background-position: 0 100%; }

.uk-background-bottom-center {
  background-position: 50% 100%; }

.uk-background-bottom-right {
  background-position: 100% 100%; }

/* Repeat
 ========================================================================== */
.uk-background-norepeat {
  background-repeat: no-repeat; }

/* Attachment
 ========================================================================== */
/*
 * 1. Fix bug introduced in Chrome 67: the background image is not visible if any element on the page uses `translate3d`
 */
.uk-background-fixed {
  background-attachment: fixed;
  /* 1 */
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

/*
 * Exclude touch devices because `fixed` doesn't work on iOS and Android
 */
@media (pointer: coarse) {
  .uk-background-fixed {
    background-attachment: scroll; } }

/* Image
 ========================================================================== */
/* Phone portrait and smaller */
@media (max-width: 767px) {
  .uk-background-image\@s {
    background-image: none !important; } }

/* Phone landscape and smaller */
@media (max-width: 1023px) {
  .uk-background-image\@m {
    background-image: none !important; } }

/* Tablet landscape and smaller */
@media (max-width: 1199px) {
  .uk-background-image\@l {
    background-image: none !important; } }

/* Desktop and smaller */
@media (max-width: 1599px) {
  .uk-background-image\@xl {
    background-image: none !important; } }

/* Blend modes
 ========================================================================== */
.uk-background-blend-multiply {
  background-blend-mode: multiply; }

.uk-background-blend-screen {
  background-blend-mode: screen; }

.uk-background-blend-overlay {
  background-blend-mode: overlay; }

.uk-background-blend-darken {
  background-blend-mode: darken; }

.uk-background-blend-lighten {
  background-blend-mode: lighten; }

.uk-background-blend-color-dodge {
  background-blend-mode: color-dodge; }

.uk-background-blend-color-burn {
  background-blend-mode: color-burn; }

.uk-background-blend-hard-light {
  background-blend-mode: hard-light; }

.uk-background-blend-soft-light {
  background-blend-mode: soft-light; }

.uk-background-blend-difference {
  background-blend-mode: difference; }

.uk-background-blend-exclusion {
  background-blend-mode: exclusion; }

.uk-background-blend-hue {
  background-blend-mode: hue; }

.uk-background-blend-saturation {
  background-blend-mode: saturation; }

.uk-background-blend-color {
  background-blend-mode: color; }

.uk-background-blend-luminosity {
  background-blend-mode: luminosity; }

/* ========================================================================
   Component: Align
 ========================================================================== */
/*
 * Default
 */
[class*='uk-align'] {
  display: block;
  margin-bottom: 30px; }

* + [class*='uk-align'] {
  margin-top: 30px; }

/*
 * Center
 */
.uk-align-center {
  margin-left: auto;
  margin-right: auto; }

/*
 * Left/Right
 */
.uk-align-left {
  margin-top: 0;
  margin-right: 30px;
  float: left; }

.uk-align-right {
  margin-top: 0;
  margin-left: 30px;
  float: right; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-align-left\@s {
    margin-top: 0;
    margin-right: 30px;
    float: left; }
  .uk-align-right\@s {
    margin-top: 0;
    margin-left: 30px;
    float: right; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-align-left\@m {
    margin-top: 0;
    margin-right: 30px;
    float: left; }
  .uk-align-right\@m {
    margin-top: 0;
    margin-left: 30px;
    float: right; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-align-left\@l {
    margin-top: 0;
    float: left; }
  .uk-align-right\@l {
    margin-top: 0;
    float: right; }
  .uk-align-left,
  .uk-align-left\@s,
  .uk-align-left\@m,
  .uk-align-left\@l {
    margin-right: 40px; }
  .uk-align-right,
  .uk-align-right\@s,
  .uk-align-right\@m,
  .uk-align-right\@l {
    margin-left: 40px; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-align-left\@xl {
    margin-top: 0;
    margin-right: 40px;
    float: left; }
  .uk-align-right\@xl {
    margin-top: 0;
    margin-left: 40px;
    float: right; } }

/* ========================================================================
   Component: SVG
 ========================================================================== */
/*
 * 1. Fill all SVG elements with the current text color if no `fill` attribute is set
 * 2. Set the fill and stroke color of all SVG elements to the current text color
 */
/* 1 */
.uk-svg,
.uk-svg:not(.uk-preserve) [fill*='#']:not(.uk-preserve) {
  fill: currentcolor; }

.uk-svg:not(.uk-preserve) [stroke*='#']:not(.uk-preserve) {
  stroke: currentcolor; }

/*
 * Fix Firefox blurry SVG rendering: https://bugzilla.mozilla.org/show_bug.cgi?id=1046835
 */
.uk-svg {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0); }

/* ========================================================================
   Component: Utility
 ========================================================================== */
/* Panel
 ========================================================================== */
.uk-panel {
  display: flow-root;
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

/*
 * Remove margin from the last-child
 */
.uk-panel > :last-child {
  margin-bottom: 0; }

/*
 * Scrollable
 */
.uk-panel-scrollable {
  height: 170px;
  padding: 10px;
  border: 1px solid #e5e5e5;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  resize: both; }

/* Clearfix
 ========================================================================== */
/*
 * 1. `table-cell` is used with `::before` because `table` creates a 1px gap when it becomes a flex item, only in Webkit
 * 2. `table` is used again with `::after` because `clear` only works with block elements.
 * Note: `display: block` with `overflow: hidden` is currently not working in the latest Safari
 */
/* 1 */
.uk-clearfix::before {
  content: "";
  display: table-cell; }

/* 2 */
.uk-clearfix::after {
  content: "";
  display: table;
  clear: both; }

/* Float
 ========================================================================== */
/*
 * 1. Prevent content overflow
 */
.uk-float-left {
  float: left; }

.uk-float-right {
  float: right; }

/* 1 */
[class*='uk-float-'] {
  max-width: 100%; }

/* Overfow
 ========================================================================== */
.uk-overflow-hidden {
  overflow: hidden; }

/*
 * Enable scrollbars if content is clipped
 * Note: Firefox ignores `padding-bottom` for the scrollable overflow https://bugzilla.mozilla.org/show_bug.cgi?id=748518
 */
.uk-overflow-auto {
  overflow: auto;
  -webkit-overflow-scrolling: touch; }

.uk-overflow-auto > :last-child {
  margin-bottom: 0; }

/* Resize
 ========================================================================== */
.uk-resize {
  resize: both; }

.uk-resize-vertical {
  resize: vertical; }

/* Display
 ========================================================================== */
.uk-display-block {
  display: block !important; }

.uk-display-inline {
  display: inline !important; }

.uk-display-inline-block {
  display: inline-block !important; }

/* Inline
 ========================================================================== */
/*
 * 1. Container fits its content
 * 2. Create position context
 * 3. Prevent content overflow
 * 4. Behave like most inline-block elements
 * 5. Force hardware acceleration without creating a new stacking context
 *    to fix 1px glitch when combined with overlays and transitions in Webkit
 * 6. Clip child elements
 */
[class*='uk-inline'] {
  /* 1 */
  display: inline-block;
  /* 2 */
  position: relative;
  /* 3 */
  max-width: 100%;
  /* 4 */
  vertical-align: middle;
  /* 5 */
  -webkit-backface-visibility: hidden; }

.uk-inline-clip {
  /* 6 */
  overflow: hidden; }

/* Responsive objects
 ========================================================================== */
/*
 * Preserve original dimensions
 * Because `img, `video`, `canvas` and  `audio` are already responsive by default, see Base component
 */
.uk-preserve-width,
.uk-preserve-width canvas,
.uk-preserve-width img,
.uk-preserve-width svg,
.uk-preserve-width video {
  max-width: none; }

/*
 * Responsiveness
 * Corrects `max-width` and `max-height` behavior if padding and border are used
 */
.uk-responsive-width,
.uk-responsive-height {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

/*
 * 1. Set a maximum width. `important` needed to override `uk-preserve-width img`
 * 2. Auto scale the height. Only needed if `height` attribute is present
 */
.uk-responsive-width {
  /* 1 */
  max-width: 100% !important;
  /* 2 */
  height: auto; }

/*
 * 1. Set a maximum height. Only works if the parent element has a fixed height
 * 2. Auto scale the width. Only needed if `width` attribute is present
 * 3. Reset max-width, which `img, `video`, `canvas` and  `audio` already have by default
 */
.uk-responsive-height {
  /* 1 */
  max-height: 100%;
  /* 2 */
  width: auto;
  /* 3 */
  max-width: none; }

/* Border
 ========================================================================== */
.uk-border-circle {
  border-radius: 50%; }

.uk-border-pill {
  border-radius: 500px; }

.uk-border-rounded {
  border-radius: 5px; }

/*
 * Fix `overflow: hidden` to be ignored with border-radius and CSS transforms in Webkit
 */
.uk-inline-clip[class*='uk-border-'] {
  -webkit-transform: translateZ(0); }

/* Box-shadow
 ========================================================================== */
.uk-box-shadow-small {
  -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }

.uk-box-shadow-medium {
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
          box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }

.uk-box-shadow-large {
  -webkit-box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
          box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

.uk-box-shadow-xlarge {
  -webkit-box-shadow: 0 28px 50px rgba(0, 0, 0, 0.16);
          box-shadow: 0 28px 50px rgba(0, 0, 0, 0.16); }

/*
 * Hover
 */
[class*='uk-box-shadow-hover'] {
  -webkit-transition: -webkit-box-shadow 0.1s ease-in-out;
  transition: -webkit-box-shadow 0.1s ease-in-out;
  transition: box-shadow 0.1s ease-in-out;
  transition: box-shadow 0.1s ease-in-out, -webkit-box-shadow 0.1s ease-in-out; }

.uk-box-shadow-hover-small:hover {
  -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }

.uk-box-shadow-hover-medium:hover {
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
          box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }

.uk-box-shadow-hover-large:hover {
  -webkit-box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16);
          box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

.uk-box-shadow-hover-xlarge:hover {
  -webkit-box-shadow: 0 28px 50px rgba(0, 0, 0, 0.16);
          box-shadow: 0 28px 50px rgba(0, 0, 0, 0.16); }

/* Box-shadow bottom
 ========================================================================== */
/*
 * 1. Set position.
 * 2. Set style
 * 3. Blur doesn't work on pseudo elements with negative `z-index` in Edge.
 *    Solved by using `before` and add position context to child elements.
 */
@supports ((-webkit-filter: blur(0)) or (filter: blur(0))) {
  .uk-box-shadow-bottom {
    display: inline-block;
    position: relative;
    max-width: 100%;
    vertical-align: middle; }
  .uk-box-shadow-bottom::before {
    content: '';
    /* 1 */
    position: absolute;
    bottom: -30px;
    left: 0;
    right: 0;
    /* 2 */
    height: 30px;
    border-radius: 100%;
    background: #444;
    -webkit-filter: blur(20px);
            filter: blur(20px); }
  /* 3 */
  .uk-box-shadow-bottom > * {
    position: relative; } }

/* Drop cap
 ========================================================================== */
/*
 * 1. Firefox doesn't apply `::first-letter` if the first letter is inside child elements
 *    https://bugzilla.mozilla.org/show_bug.cgi?id=214004
 * 2. In Firefox, a floating `::first-letter` doesn't have a line box and there for no `line-height`
 *    https://bugzilla.mozilla.org/show_bug.cgi?id=317933
 * 3. Caused by 1.: Edge creates two nested `::first-letter` containers, one for each selector
 *    This doubles the `font-size` exponential when using the `em` unit.
 */
.uk-dropcap::first-letter,
.uk-dropcap > p:first-of-type::first-letter {
  display: block;
  margin-right: 10px;
  float: left;
  font-size: 4.5em;
  line-height: 1;
  margin-bottom: -2px; }

/* 2 */
@-moz-document url-prefix() {
  .uk-dropcap::first-letter,
  .uk-dropcap > p:first-of-type::first-letter {
    margin-top: 1.1%; } }

/* 3 */
@supports (-ms-ime-align: auto) {
  .uk-dropcap > p:first-of-type::first-letter {
    font-size: 1em; } }

/* Logo
 ========================================================================== */
/*
 * 1. Required for `a`
 */
.uk-logo {
  font-size: 1.5rem;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  color: #666;
  /* 1 */
  text-decoration: none; }

/* Hover + Focus */
.uk-logo:hover,
.uk-logo:focus {
  color: #666;
  outline: none;
  /* 1 */
  text-decoration: none; }

.uk-logo-inverse {
  display: none; }

/* Disabled State
 ========================================================================== */
.uk-disabled {
  pointer-events: none; }

/* Drag State
 ========================================================================== */
/*
 * 1. Needed if moving over elements with have their own cursor on hover, e.g. links or buttons
 * 2. Fix dragging over iframes
 */
.uk-drag,
.uk-drag * {
  cursor: move; }

/* 2 */
.uk-drag iframe {
  pointer-events: none; }

/* Dragover State
 ========================================================================== */
/*
 * Create a box-shadow when dragging a file over the upload area
 */
.uk-dragover {
  -webkit-box-shadow: 0 0 20px rgba(100, 100, 100, 0.3);
          box-shadow: 0 0 20px rgba(100, 100, 100, 0.3); }

/* Blend modes
 ========================================================================== */
.uk-blend-multiply {
  mix-blend-mode: multiply; }

.uk-blend-screen {
  mix-blend-mode: screen; }

.uk-blend-overlay {
  mix-blend-mode: overlay; }

.uk-blend-darken {
  mix-blend-mode: darken; }

.uk-blend-lighten {
  mix-blend-mode: lighten; }

.uk-blend-color-dodge {
  mix-blend-mode: color-dodge; }

.uk-blend-color-burn {
  mix-blend-mode: color-burn; }

.uk-blend-hard-light {
  mix-blend-mode: hard-light; }

.uk-blend-soft-light {
  mix-blend-mode: soft-light; }

.uk-blend-difference {
  mix-blend-mode: difference; }

.uk-blend-exclusion {
  mix-blend-mode: exclusion; }

.uk-blend-hue {
  mix-blend-mode: hue; }

.uk-blend-saturation {
  mix-blend-mode: saturation; }

.uk-blend-color {
  mix-blend-mode: color; }

.uk-blend-luminosity {
  mix-blend-mode: luminosity; }

/* Transform
========================================================================== */
.uk-transform-center {
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%); }

/* Transform Origin
========================================================================== */
.uk-transform-origin-top-left {
  -webkit-transform-origin: 0 0;
          transform-origin: 0 0; }

.uk-transform-origin-top-center {
  -webkit-transform-origin: 50% 0;
          transform-origin: 50% 0; }

.uk-transform-origin-top-right {
  -webkit-transform-origin: 100% 0;
          transform-origin: 100% 0; }

.uk-transform-origin-center-left {
  -webkit-transform-origin: 0 50%;
          transform-origin: 0 50%; }

.uk-transform-origin-center-right {
  -webkit-transform-origin: 100% 50%;
          transform-origin: 100% 50%; }

.uk-transform-origin-bottom-left {
  -webkit-transform-origin: 0 100%;
          transform-origin: 0 100%; }

.uk-transform-origin-bottom-center {
  -webkit-transform-origin: 50% 100%;
          transform-origin: 50% 100%; }

.uk-transform-origin-bottom-right {
  -webkit-transform-origin: 100% 100%;
          transform-origin: 100% 100%; }

/* ========================================================================
   Component: Flex
 ========================================================================== */
.uk-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.uk-flex-inline {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex; }

/*
 * Remove pseudo elements created by micro clearfix as precaution
 */
.uk-flex::before,
.uk-flex::after,
.uk-flex-inline::before,
.uk-flex-inline::after {
  display: none; }

/* Alignment
 ========================================================================== */
/*
 * Align items along the main axis of the current line of the flex container
 * Row: Horizontal
 */
.uk-flex-left {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.uk-flex-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.uk-flex-right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.uk-flex-between {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.uk-flex-around {
  -ms-flex-pack: distribute;
      justify-content: space-around; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-flex-left\@s {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .uk-flex-center\@s {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .uk-flex-right\@s {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .uk-flex-between\@s {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .uk-flex-around\@s {
    -ms-flex-pack: distribute;
        justify-content: space-around; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-flex-left\@m {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .uk-flex-center\@m {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .uk-flex-right\@m {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .uk-flex-between\@m {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .uk-flex-around\@m {
    -ms-flex-pack: distribute;
        justify-content: space-around; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-flex-left\@l {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .uk-flex-center\@l {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .uk-flex-right\@l {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .uk-flex-between\@l {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .uk-flex-around\@l {
    -ms-flex-pack: distribute;
        justify-content: space-around; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-flex-left\@xl {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .uk-flex-center\@xl {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .uk-flex-right\@xl {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .uk-flex-between\@xl {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .uk-flex-around\@xl {
    -ms-flex-pack: distribute;
        justify-content: space-around; } }

/*
 * Align items in the cross axis of the current line of the flex container
 * Row: Vertical
 */
.uk-flex-stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }

.uk-flex-top {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }

.uk-flex-middle {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.uk-flex-bottom {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end; }

/* Direction
 ========================================================================== */
.uk-flex-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }

.uk-flex-row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }

.uk-flex-column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

.uk-flex-column-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse; }

/* Wrap
 ========================================================================== */
.uk-flex-nowrap {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }

.uk-flex-wrap {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.uk-flex-wrap-reverse {
  -ms-flex-wrap: wrap-reverse;
      flex-wrap: wrap-reverse; }

/*
 * Aligns items within the flex container when there is extra space in the cross-axis
 * Only works if there is more than one line of flex items
 */
.uk-flex-wrap-stretch {
  -ms-flex-line-pack: stretch;
      align-content: stretch; }

.uk-flex-wrap-top {
  -ms-flex-line-pack: start;
      align-content: flex-start; }

.uk-flex-wrap-middle {
  -ms-flex-line-pack: center;
      align-content: center; }

.uk-flex-wrap-bottom {
  -ms-flex-line-pack: end;
      align-content: flex-end; }

.uk-flex-wrap-between {
  -ms-flex-line-pack: justify;
      align-content: space-between; }

.uk-flex-wrap-around {
  -ms-flex-line-pack: distribute;
      align-content: space-around; }

/* Item ordering
 ========================================================================== */
/*
 * Default is 0
 */
.uk-flex-first {
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1; }

.uk-flex-last {
  -webkit-box-ordinal-group: 100;
      -ms-flex-order: 99;
          order: 99; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-flex-first\@s {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1; }
  .uk-flex-last\@s {
    -webkit-box-ordinal-group: 100;
        -ms-flex-order: 99;
            order: 99; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-flex-first\@m {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1; }
  .uk-flex-last\@m {
    -webkit-box-ordinal-group: 100;
        -ms-flex-order: 99;
            order: 99; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-flex-first\@l {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1; }
  .uk-flex-last\@l {
    -webkit-box-ordinal-group: 100;
        -ms-flex-order: 99;
            order: 99; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-flex-first\@xl {
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1; }
  .uk-flex-last\@xl {
    -webkit-box-ordinal-group: 100;
        -ms-flex-order: 99;
            order: 99; } }

/* Item dimensions
 ========================================================================== */
/*
 * Initial: 0 1 auto
 * Content dimensions, but shrinks
 */
/*
 * No Flex: 0 0 auto
 * Content dimensions
 */
.uk-flex-none {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none; }

/*
 * Relative Flex: 1 1 auto
 * Space is allocated considering content
 */
.uk-flex-auto {
  -webkit-box-flex: 1;
      -ms-flex: auto;
          flex: auto; }

/*
 * Absolute Flex: 1 1 0%
 * Space is allocated solely based on flex
 */
.uk-flex-1 {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; }

/* ========================================================================
   Component: Margin
 ========================================================================== */
/*
 * Default
 */
.uk-margin {
  margin-bottom: 20px; }

* + .uk-margin {
  margin-top: 20px !important; }

.uk-margin-top {
  margin-top: 20px !important; }

.uk-margin-bottom {
  margin-bottom: 20px !important; }

.uk-margin-left {
  margin-left: 20px !important; }

.uk-margin-right {
  margin-right: 20px !important; }

/* Small
 ========================================================================== */
.uk-margin-small {
  margin-bottom: 10px; }

* + .uk-margin-small {
  margin-top: 10px !important; }

.uk-margin-small-top {
  margin-top: 10px !important; }

.uk-margin-small-bottom {
  margin-bottom: 10px !important; }

.uk-margin-small-left {
  margin-left: 10px !important; }

.uk-margin-small-right {
  margin-right: 10px !important; }

/* Medium
 ========================================================================== */
.uk-margin-medium {
  margin-bottom: 40px; }

* + .uk-margin-medium {
  margin-top: 40px !important; }

.uk-margin-medium-top {
  margin-top: 40px !important; }

.uk-margin-medium-bottom {
  margin-bottom: 40px !important; }

.uk-margin-medium-left {
  margin-left: 40px !important; }

.uk-margin-medium-right {
  margin-right: 40px !important; }

/* Large
 ========================================================================== */
.uk-margin-large {
  margin-bottom: 40px; }

* + .uk-margin-large {
  margin-top: 40px !important; }

.uk-margin-large-top {
  margin-top: 40px !important; }

.uk-margin-large-bottom {
  margin-bottom: 40px !important; }

.uk-margin-large-left {
  margin-left: 40px !important; }

.uk-margin-large-right {
  margin-right: 40px !important; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-margin-large {
    margin-bottom: 70px; }
  * + .uk-margin-large {
    margin-top: 70px !important; }
  .uk-margin-large-top {
    margin-top: 70px !important; }
  .uk-margin-large-bottom {
    margin-bottom: 70px !important; }
  .uk-margin-large-left {
    margin-left: 70px !important; }
  .uk-margin-large-right {
    margin-right: 70px !important; } }

/* XLarge
 ========================================================================== */
.uk-margin-xlarge {
  margin-bottom: 70px; }

* + .uk-margin-xlarge {
  margin-top: 70px !important; }

.uk-margin-xlarge-top {
  margin-top: 70px !important; }

.uk-margin-xlarge-bottom {
  margin-bottom: 70px !important; }

.uk-margin-xlarge-left {
  margin-left: 70px !important; }

.uk-margin-xlarge-right {
  margin-right: 70px !important; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-margin-xlarge {
    margin-bottom: 140px; }
  * + .uk-margin-xlarge {
    margin-top: 140px !important; }
  .uk-margin-xlarge-top {
    margin-top: 140px !important; }
  .uk-margin-xlarge-bottom {
    margin-bottom: 140px !important; }
  .uk-margin-xlarge-left {
    margin-left: 140px !important; }
  .uk-margin-xlarge-right {
    margin-right: 140px !important; } }

/* Auto
 ========================================================================== */
.uk-margin-auto {
  margin-left: auto !important;
  margin-right: auto !important; }

.uk-margin-auto-top {
  margin-top: auto !important; }

.uk-margin-auto-bottom {
  margin-bottom: auto !important; }

.uk-margin-auto-left {
  margin-left: auto !important; }

.uk-margin-auto-right {
  margin-right: auto !important; }

.uk-margin-auto-vertical {
  margin-top: auto !important;
  margin-bottom: auto !important; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-margin-auto\@s {
    margin-left: auto !important;
    margin-right: auto !important; }
  .uk-margin-auto-left\@s {
    margin-left: auto !important; }
  .uk-margin-auto-right\@s {
    margin-right: auto !important; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-margin-auto\@m {
    margin-left: auto !important;
    margin-right: auto !important; }
  .uk-margin-auto-left\@m {
    margin-left: auto !important; }
  .uk-margin-auto-right\@m {
    margin-right: auto !important; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-margin-auto\@l {
    margin-left: auto !important;
    margin-right: auto !important; }
  .uk-margin-auto-left\@l {
    margin-left: auto !important; }
  .uk-margin-auto-right\@l {
    margin-right: auto !important; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-margin-auto\@xl {
    margin-left: auto !important;
    margin-right: auto !important; }
  .uk-margin-auto-left\@xl {
    margin-left: auto !important; }
  .uk-margin-auto-right\@xl {
    margin-right: auto !important; } }

/* Remove
 ========================================================================== */
.uk-margin-remove {
  margin: 0 !important; }

.uk-margin-remove-top {
  margin-top: 0 !important; }

.uk-margin-remove-bottom {
  margin-bottom: 0 !important; }

.uk-margin-remove-left {
  margin-left: 0 !important; }

.uk-margin-remove-right {
  margin-right: 0 !important; }

.uk-margin-remove-vertical {
  margin-top: 0 !important;
  margin-bottom: 0 !important; }

.uk-margin-remove-adjacent + *,
.uk-margin-remove-first-child > :first-child {
  margin-top: 0 !important; }

.uk-margin-remove-last-child > :last-child {
  margin-bottom: 0 !important; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-margin-remove-left\@s {
    margin-left: 0 !important; }
  .uk-margin-remove-right\@s {
    margin-right: 0 !important; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-margin-remove-left\@m {
    margin-left: 0 !important; }
  .uk-margin-remove-right\@m {
    margin-right: 0 !important; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-margin-remove-left\@l {
    margin-left: 0 !important; }
  .uk-margin-remove-right\@l {
    margin-right: 0 !important; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-margin-remove-left\@xl {
    margin-left: 0 !important; }
  .uk-margin-remove-right\@xl {
    margin-right: 0 !important; } }

/* ========================================================================
   Component: Padding
 ========================================================================== */
.uk-padding {
  padding: 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-padding {
    padding: 40px; } }

/* Small
 ========================================================================== */
.uk-padding-small {
  padding: 15px; }

/* Large
 ========================================================================== */
.uk-padding-large {
  padding: 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-padding-large {
    padding: 70px; } }

/* Remove
 ========================================================================== */
.uk-padding-remove {
  padding: 0 !important; }

.uk-padding-remove-top {
  padding-top: 0 !important; }

.uk-padding-remove-bottom {
  padding-bottom: 0 !important; }

.uk-padding-remove-left {
  padding-left: 0 !important; }

.uk-padding-remove-right {
  padding-right: 0 !important; }

.uk-padding-remove-vertical {
  padding-top: 0 !important;
  padding-bottom: 0 !important; }

.uk-padding-remove-horizontal {
  padding-left: 0 !important;
  padding-right: 0 !important; }

/* ========================================================================
   Component: Position
 ========================================================================== */
/* Directions
 ========================================================================== */
/*
 * 1. Prevent content overflow if `max-width: 100%` is used inside position container.
 */
[class*='uk-position-top'],
[class*='uk-position-bottom'],
[class*='uk-position-left'],
[class*='uk-position-right'],
[class*='uk-position-center'] {
  position: absolute !important;
  /* 1 */
  max-width: 100%; }

/* Edges
 ========================================================================== */
/* Don't use `width: 100%` because it is wrong if the parent has padding. */
.uk-position-top {
  top: 0;
  left: 0;
  right: 0; }

.uk-position-bottom {
  bottom: 0;
  left: 0;
  right: 0; }

.uk-position-left {
  top: 0;
  bottom: 0;
  left: 0; }

.uk-position-right {
  top: 0;
  bottom: 0;
  right: 0; }

/* Corners
 ========================================================================== */
.uk-position-top-left {
  top: 0;
  left: 0; }

.uk-position-top-right {
  top: 0;
  right: 0; }

.uk-position-bottom-left {
  bottom: 0;
  left: 0; }

.uk-position-bottom-right {
  bottom: 0;
  right: 0; }

/*
 * Center
 * 1. Fix text wrapping if content is larger than 50% of the container.
 */
.uk-position-center {
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  /* 1 */
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  max-width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

/* Vertical */
[class*='uk-position-center-left'],
[class*='uk-position-center-right'] {
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%); }

.uk-position-center-left {
  left: 0; }

.uk-position-center-right {
  right: 0; }

.uk-position-center-left-out {
  right: 100%;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content; }

.uk-position-center-right-out {
  left: 100%;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content; }

/* Horizontal */
.uk-position-top-center,
.uk-position-bottom-center {
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  /* 1 */
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  max-width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

.uk-position-top-center {
  top: 0; }

.uk-position-bottom-center {
  bottom: 0; }

/* Cover
 ========================================================================== */
.uk-position-cover {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0; }

/* Utility
 ========================================================================== */
.uk-position-relative {
  position: relative !important; }

.uk-position-absolute {
  position: absolute !important; }

.uk-position-fixed {
  position: fixed !important; }

.uk-position-z-index {
  z-index: 1; }

/* Margin modifier
 ========================================================================== */
/*
 * Small
 */
.uk-position-small {
  max-width: calc(100% - (15px * 2));
  margin: 15px; }

.uk-position-small.uk-position-center {
  -webkit-transform: translate(-50%, -50%) translate(-15px, -15px);
          transform: translate(-50%, -50%) translate(-15px, -15px); }

.uk-position-small[class*='uk-position-center-left'],
.uk-position-small[class*='uk-position-center-right'] {
  -webkit-transform: translateY(-50%) translateY(-15px);
          transform: translateY(-50%) translateY(-15px); }

.uk-position-small.uk-position-top-center,
.uk-position-small.uk-position-bottom-center {
  -webkit-transform: translateX(-50%) translateX(-15px);
          transform: translateX(-50%) translateX(-15px); }

/*
 * Medium
 */
.uk-position-medium {
  max-width: calc(100% - (30px * 2));
  margin: 30px; }

.uk-position-medium.uk-position-center {
  -webkit-transform: translate(-50%, -50%) translate(-30px, -30px);
          transform: translate(-50%, -50%) translate(-30px, -30px); }

.uk-position-medium[class*='uk-position-center-left'],
.uk-position-medium[class*='uk-position-center-right'] {
  -webkit-transform: translateY(-50%) translateY(-30px);
          transform: translateY(-50%) translateY(-30px); }

.uk-position-medium.uk-position-top-center,
.uk-position-medium.uk-position-bottom-center {
  -webkit-transform: translateX(-50%) translateX(-30px);
          transform: translateX(-50%) translateX(-30px); }

/*
 * Large
 */
.uk-position-large {
  max-width: calc(100% - (30px * 2));
  margin: 30px; }

.uk-position-large.uk-position-center {
  -webkit-transform: translate(-50%, -50%) translate(-30px, -30px);
          transform: translate(-50%, -50%) translate(-30px, -30px); }

.uk-position-large[class*='uk-position-center-left'],
.uk-position-large[class*='uk-position-center-right'] {
  -webkit-transform: translateY(-50%) translateY(-30px);
          transform: translateY(-50%) translateY(-30px); }

.uk-position-large.uk-position-top-center,
.uk-position-large.uk-position-bottom-center {
  -webkit-transform: translateX(-50%) translateX(-30px);
          transform: translateX(-50%) translateX(-30px); }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-position-large {
    max-width: calc(100% - (50px * 2));
    margin: 50px; }
  .uk-position-large.uk-position-center {
    -webkit-transform: translate(-50%, -50%) translate(-50px, -50px);
            transform: translate(-50%, -50%) translate(-50px, -50px); }
  .uk-position-large[class*='uk-position-center-left'],
  .uk-position-large[class*='uk-position-center-right'] {
    -webkit-transform: translateY(-50%) translateY(-50px);
            transform: translateY(-50%) translateY(-50px); }
  .uk-position-large.uk-position-top-center,
  .uk-position-large.uk-position-bottom-center {
    -webkit-transform: translateX(-50%) translateX(-50px);
            transform: translateX(-50%) translateX(-50px); } }

/* ========================================================================
   Component: Transition
 ========================================================================== */
/* Toggle (Hover + Focus)
 ========================================================================== */
/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-transition-toggle {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/*
 * Remove outline for `tabindex`
 */
.uk-transition-toggle:focus {
  outline: none; }

/* Transitions
 ========================================================================== */
/*
 * The toggle is triggered on touch devices by two methods:
 * 1. Using `:focus` and tabindex
 * 2. Using `:hover` and a `touchstart` event listener registered on the document
 *    (Doesn't work on Surface touch devices)
 *
 * Note: Transitions don't work with `uk-postion-center-*` classes because they also use `transform`,
 *       therefore it's recommended to use an extra `div` for the transition.
 */
.uk-transition-fade,
[class*='uk-transition-scale'],
[class*='uk-transition-slide'] {
  -webkit-transition: 0.3s ease-out;
  transition: 0.3s ease-out;
  -webkit-transition-property: opacity, -webkit-transform, -webkit-filter;
  transition-property: opacity, -webkit-transform, -webkit-filter;
  transition-property: opacity, transform, filter;
  transition-property: opacity, transform, filter, -webkit-transform, -webkit-filter;
  opacity: 0; }

/*
 * Fade
 */
.uk-transition-toggle:hover .uk-transition-fade,
.uk-transition-toggle:focus .uk-transition-fade,
.uk-transition-active.uk-active .uk-transition-fade {
  opacity: 1; }

/*
 * Scale
 */
.uk-transition-scale-up {
  -webkit-transform: scale(1, 1);
          transform: scale(1, 1); }

.uk-transition-scale-down {
  -webkit-transform: scale(1.1, 1.1);
          transform: scale(1.1, 1.1); }

/* Show */
.uk-transition-toggle:hover .uk-transition-scale-up,
.uk-transition-toggle:focus .uk-transition-scale-up,
.uk-transition-active.uk-active .uk-transition-scale-up {
  opacity: 1;
  -webkit-transform: scale(1.1, 1.1);
          transform: scale(1.1, 1.1); }

.uk-transition-toggle:hover .uk-transition-scale-down,
.uk-transition-toggle:focus .uk-transition-scale-down,
.uk-transition-active.uk-active .uk-transition-scale-down {
  opacity: 1;
  -webkit-transform: scale(1, 1);
          transform: scale(1, 1); }

/*
 * Slide
 */
.uk-transition-slide-top {
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%); }

.uk-transition-slide-bottom {
  -webkit-transform: translateY(100%);
          transform: translateY(100%); }

.uk-transition-slide-left {
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%); }

.uk-transition-slide-right {
  -webkit-transform: translateX(100%);
          transform: translateX(100%); }

.uk-transition-slide-top-small {
  -webkit-transform: translateY(-10px);
          transform: translateY(-10px); }

.uk-transition-slide-bottom-small {
  -webkit-transform: translateY(10px);
          transform: translateY(10px); }

.uk-transition-slide-left-small {
  -webkit-transform: translateX(-10px);
          transform: translateX(-10px); }

.uk-transition-slide-right-small {
  -webkit-transform: translateX(10px);
          transform: translateX(10px); }

.uk-transition-slide-top-medium {
  -webkit-transform: translateY(-50px);
          transform: translateY(-50px); }

.uk-transition-slide-bottom-medium {
  -webkit-transform: translateY(50px);
          transform: translateY(50px); }

.uk-transition-slide-left-medium {
  -webkit-transform: translateX(-50px);
          transform: translateX(-50px); }

.uk-transition-slide-right-medium {
  -webkit-transform: translateX(50px);
          transform: translateX(50px); }

/* Show */
.uk-transition-toggle:hover [class*='uk-transition-slide'],
.uk-transition-toggle:focus [class*='uk-transition-slide'],
.uk-transition-active.uk-active [class*='uk-transition-slide'] {
  opacity: 1;
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0); }

/* Opacity modifier
 ========================================================================== */
.uk-transition-opaque {
  opacity: 1; }

/* Duration modifiers
 ========================================================================== */
.uk-transition-slow {
  -webkit-transition-duration: 0.7s;
          transition-duration: 0.7s; }

/* ========================================================================
   Component: Visibility
 ========================================================================== */
/*
 * Hidden
 * `hidden` attribute also set here to make it stronger
 */
[hidden],
.uk-hidden {
  display: none !important; }

/* Phone landscape and bigger */
@media (min-width: 768px) {
  .uk-hidden\@s {
    display: none !important; } }

/* Tablet landscape and bigger */
@media (min-width: 1024px) {
  .uk-hidden\@m {
    display: none !important; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-hidden\@l {
    display: none !important; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-hidden\@xl {
    display: none !important; } }

/*
 * Visible
 */
/* Phone portrait and smaller */
@media (max-width: 767px) {
  .uk-visible\@s {
    display: none !important; } }

/* Phone landscape and smaller */
@media (max-width: 1023px) {
  .uk-visible\@m {
    display: none !important; } }

/* Tablet landscape and smaller */
@media (max-width: 1199px) {
  .uk-visible\@l {
    display: none !important; } }

/* Desktop and smaller */
@media (max-width: 1599px) {
  .uk-visible\@xl {
    display: none !important; } }

/* Visibility
 ========================================================================== */
.uk-invisible {
  visibility: hidden !important; }

/* Toggle (Hover + Focus)
 ========================================================================== */
/*
 * Hidden
 * 1. The toggle is triggered on touch devices using `:focus` and tabindex
 * 2. The target stays visible if any element within receives focus through keyboard
 *    Doesn't work in Edge, yet.
 * 3. Can't use `display: none` nor `visibility: hidden` because both are not focusable.
 *
 */
/* 1 + 2 */
.uk-visible-toggle:not(:hover):not(:focus) .uk-hidden-hover:not(:focus-within) {
  /* 3 */
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important; }

/*
 * Invisible
 */
/* 1 + 2 */
.uk-visible-toggle:not(:hover):not(:focus) .uk-invisible-hover:not(:focus-within) {
  /* 3 */
  opacity: 0 !important; }

/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-visible-toggle {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/*
 * Remove outline for `tabindex`
 */
.uk-visible-toggle:focus {
  outline: none; }

/* Touch
 ========================================================================== */
/*
 * Hide if primary pointing device has limited accuracy, e.g. a touch screen.
 * Works on mobile browsers: Safari, Chrome and Android browser
 */
@media (pointer: coarse) {
  .uk-hidden-touch {
    display: none !important; } }

/*
 * Hide if primary pointing device is accurate, e.g. mouse.
 * 1. Fallback for IE11 and Firefox, because `pointer` is not supported
 * 2. Reset if supported
 */
/* 1 */
.uk-hidden-notouch {
  display: none !important; }

@media (pointer: coarse) {
  .uk-hidden-notouch {
    display: block !important; } }

/* ========================================================================
   Component: Inverse
 ========================================================================== */
/*
 * Implemented class depends on the general theme color
 * `uk-light` is for light colors on dark backgrounds
 * `uk-dark` is or dark colors on light backgrounds
 */
/* ========================================================================
   Component: Print
 ========================================================================== */
@media print {
  *,
  *::before,
  *::after {
    background: transparent !important;
    color: black !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    text-shadow: none !important; }
  a,
  a:visited {
    text-decoration: underline; }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; } }

/******************************************************************
Site Name:
Author:

Stylesheet: Sass Functions

You can do a lot of really cool things in Sass. Functions help you
make repeated actions a lot easier. They are really similar to mixins,
but can be used for so much more.

Anyway, keep them all in here so it's easier to find when you're
looking for one.

For more info on functions, go here:
http://sass-lang.com/documentation/Sass/Script/Functions.html

******************************************************************/
/*********************
COLOR FUNCTIONS
These are helpful when you're working
with shadows and such things. It's essentially
a quicker way to write RGBA.

Example:
box-shadow: 0 0 4px black(0.3);
compiles to:
box-shadow: 0 0 4px rgba(0,0,0,0.3);
*********************/
/*********************
RESPONSIVE HELPER FUNCTION
If you're creating a responsive site, then
you've probably already read
Responsive Web Design: http://www.abookapart.com/products/responsive-web-design

Here's a nice little helper function for calculating
target / context
as mentioned in that book.

Example:
width: cp(650px, 1000px);
or
width: calc-percent(650px, 1000px);
both compile to:
width: 65%;
*********************/
/*********************
IMPORTING MODULES
Modules are reusable blocks or elements we use throughout the project.
We can break them up as much as we want or just keep them all in one.
I mean, you can do whatever you want. The world is your oyster. Unless
you hate oysters, then the world is your peanut butter & jelly sandwich.
*********************/
/******************************************************************
Site Name:
Author:

Stylesheet: Button Styles

Buttons are a pretty important part of your site's style, so it's
important to have a consistent baseline for them. Use this stylesheet
to create all kinds of buttons.

Helpful Links:
http://galp.in/blog/2011/08/02/the-ui-guide-part-1-buttons/

******************************************************************/
/*********************
BUTTON DEFAULTS
We're gonna use a placeholder selector here
so we can use common styles. We then use this
to load up the defaults in all our buttons.

Here's a quick video to show how it works:
http://www.youtube.com/watch?v=hwdVpKiJzac

*********************/
.blue-btn {
  display: inline-block;
  position: relative;
  font-family: montserrat, "Helvetica Neue", Helvetica, Arial, sans-serif;
  text-decoration: none;
  color: #fff;
  font-size: 0.9em;
  font-size: 34px;
  line-height: 34px;
  font-weight: normal;
  padding: 0 24px;
  border-radius: 4px;
  border: 0;
  cursor: pointer;
  -webkit-transition: background-color 0.14s ease-in-out;
  transition: background-color 0.14s ease-in-out; }
  .blue-btn:hover, .blue-btn:focus {
    color: #fff;
    text-decoration: none;
    outline: none; }
  .blue-btn:active {
    top: 1px; }

/*
An example button.
You can use this example if you want. Just replace all the variables
and it will create a button dependant on those variables.
*/
.blue-btn {
  background-color: #0f5de5; }
  .blue-btn:hover, .blue-btn:focus {
    background-color: #0e55d2; }
  .blue-btn:active {
    background-color: #0d53cd; }

input[type="submit"] {
  color: white;
  text-transform: uppercase;
  text-align: center;
  padding: 6px 18px;
  font-size: 16px;
  float: right;
  height: 40px;
  border: none;
  background-color: transparent;
  display: inline-block;
  border-right: 3px solid white;
  border-bottom: 3px solid white;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }
  @media (min-width: 768px) {
    input[type="submit"] {
      font-size: 20px; } }
  input[type="submit"]:hover {
    color: white;
    text-decoration: none;
    background-color: #1ab347; }
  input[type="submit"].red-btn {
    background-color: #fc3b3d; }
    input[type="submit"].red-btn:hover {
      background-color: #1ab347; }
  input[type="submit"].violet-btn {
    background-color: #b480e5; }
    input[type="submit"].violet-btn:hover {
      background-color: #1ab347; }
  input[type="submit"].green-btn {
    background-color: #1ab347; }
    input[type="submit"].green-btn:hover {
      background-color: #1ab347; }

.read-more {
  color: white;
  text-transform: uppercase;
  text-align: center;
  padding: 6px 18px;
  font-size: 1.4em;
  border: none;
  background-color: transparent;
  display: inline-block;
  border-right: 3px solid white;
  border-bottom: 3px solid white;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }
  .read-more:hover {
    color: white;
    text-decoration: none; }
  .read-more.larger {
    padding: 12px 27px;
    font-size: 1.8em; }
  .read-more.red-btn {
    background-color: #fc3b3d; }
  .read-more.violet-btn {
    background-color: #b480e5; }
  .read-more.green-btn {
    background-color: #1ab347; }

a.read-more,
a.read-more:active,
a.read-more:hover,
a.read-more:visited {
  color: white; }
  a.read-more:hover,
  a.read-more:active:hover,
  a.read-more:hover:hover,
  a.read-more:visited:hover {
    color: white;
    text-decoration: none; }

.bg-white .read-more {
  color: #fc3b3d;
  border-right: 3px solid #fc3b3d;
  border-bottom: 3px solid #fc3b3d; }
  .bg-white .read-more:hover {
    background-color: #fc3b3d;
    color: white; }

.bg-violet a.read-more,
.bg-violet a.read-more:active,
.bg-violet a.read-more:visited,
.bg-violet .read-more {
  border-left: 3px solid #b480e5;
  border-top: 3px solid #b480e5; }
  .bg-violet a.read-more:hover,
  .bg-violet a.read-more:active:hover,
  .bg-violet a.read-more:visited:hover,
  .bg-violet .read-more:hover {
    border-left: 3px solid white;
    border-top: 3px solid white;
    background-color: white;
    color: #b480e5; }

.bg-violet .bg-white .read-more {
  border-left: 3px solid #fff;
  border-top: 3px solid #fff; }

.bg-red a.read-more,
.bg-red a.read-more:active,
.bg-red a.read-more:visited,
.bg-red .read-more {
  border-left: 3px solid #fc3b3d;
  border-top: 3px solid #fc3b3d; }
  .bg-red a.read-more:hover,
  .bg-red a.read-more:active:hover,
  .bg-red a.read-more:visited:hover,
  .bg-red .read-more:hover {
    border-left: 3px solid white;
    border-top: 3px solid white;
    background-color: white;
    color: #b480e5; }

.bg-red .bg-white .read-more {
  border-left: 3px solid #fff;
  border-top: 3px solid #fff; }

.bg-white a.read-more,
.bg-white a.read-more:active,
.bg-white a.read-more:visited,
.bg-white .read-more {
  border-left: 3px solid #fff;
  border-top: 3px solid #fff; }
  .bg-white a.read-more:hover,
  .bg-white a.read-more:active:hover,
  .bg-white a.read-more:visited:hover,
  .bg-white .read-more:hover {
    border-left: 3px solid white;
    border-top: 3px solid white;
    background-color: white;
    color: #fc3b3d; }

.bg-white .bg-white .read-more {
  border-left: 3px solid #fff;
  border-top: 3px solid #fff; }

.bg-pink a.read-more,
.bg-pink a.read-more:active,
.bg-pink a.read-more:visited,
.bg-pink .read-more {
  border-left: 3px solid #e881aa;
  border-top: 3px solid #e881aa; }
  .bg-pink a.read-more:hover,
  .bg-pink a.read-more:active:hover,
  .bg-pink a.read-more:visited:hover,
  .bg-pink .read-more:hover {
    border-left: 3px solid white;
    border-top: 3px solid white;
    background-color: white;
    color: #b480e5; }

.bg-pink .bg-white .read-more {
  border-left: 3px solid #fff;
  border-top: 3px solid #fff; }

.big-red-button,
a.big-red-button,
a.big-red-button:visited {
  text-align: center;
  background-color: #fc3b3d;
  margin: 0 auto;
  color: white;
  display: inline-block;
  padding: 12px 48px;
  margin-top: 45px;
  font-size: 2em; }
  @media (min-width: 768px) {
    .big-red-button,
    a.big-red-button,
    a.big-red-button:visited {
      margin-top: 90px;
      font-size: 3.2em; } }
  .big-red-button:hover,
  a.big-red-button:hover,
  a.big-red-button:visited:hover {
    color: #fc3b3d;
    background-color: white; }
  .big-red-button .bg-white .read-more,
  a.big-red-button .bg-white .read-more,
  a.big-red-button:visited .bg-white .read-more {
    border-left: 3px solid #fff;
    border-top: 3px solid #fff; }

/******************************************************************
Site Name:
Author:

Stylesheet: Form Styles

We put all the form and button styles in here to setup a consistent
look. If we need to customize them, we can do this in the main
stylesheets and just override them. Easy Peasy.

You're gonna see a few data-uri thingies down there. If you're not
sure what they are, check this link out:
http://css-tricks.com/data-uris/
If you want to create your own, use this helpful link:
http://websemantics.co.uk/online_tools/image_to_data_uri_convertor/

******************************************************************/
/*********************
INPUTS
*********************/
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
select,
textarea,
.field {
  display: block;
  height: 40px;
  line-height: 20px;
  padding: 14px 9px 10px 9px;
  font-size: 16px;
  color: white;
  vertical-align: middle;
  -webkit-box-shadow: none;
          box-shadow: none;
  border: 0;
  width: 100%;
  font-family: montserrat, "Helvetica Neue", Helvetica, Arial, sans-serif;
  border-bottom: 3px solid white;
  background-color: transparent;
  color: #000000;
  background-color: white; }
  input[type="text"]:focus, input[type="text"]:active,
  input[type="password"]:focus,
  input[type="password"]:active,
  input[type="datetime"]:focus,
  input[type="datetime"]:active,
  input[type="datetime-local"]:focus,
  input[type="datetime-local"]:active,
  input[type="date"]:focus,
  input[type="date"]:active,
  input[type="month"]:focus,
  input[type="month"]:active,
  input[type="time"]:focus,
  input[type="time"]:active,
  input[type="week"]:focus,
  input[type="week"]:active,
  input[type="number"]:focus,
  input[type="number"]:active,
  input[type="email"]:focus,
  input[type="email"]:active,
  input[type="url"]:focus,
  input[type="url"]:active,
  input[type="search"]:focus,
  input[type="search"]:active,
  input[type="tel"]:focus,
  input[type="tel"]:active,
  input[type="color"]:focus,
  input[type="color"]:active,
  select:focus,
  select:active,
  textarea:focus,
  textarea:active,
  .field:focus,
  .field:active {
    background-color: rgba(255, 255, 255, 0.9);
    outline: none; }
  input[type="text"]::-webkit-input-placeholder,
  input[type="password"]::-webkit-input-placeholder,
  input[type="datetime"]::-webkit-input-placeholder,
  input[type="datetime-local"]::-webkit-input-placeholder,
  input[type="date"]::-webkit-input-placeholder,
  input[type="month"]::-webkit-input-placeholder,
  input[type="time"]::-webkit-input-placeholder,
  input[type="week"]::-webkit-input-placeholder,
  input[type="number"]::-webkit-input-placeholder,
  input[type="email"]::-webkit-input-placeholder,
  input[type="url"]::-webkit-input-placeholder,
  input[type="search"]::-webkit-input-placeholder,
  input[type="tel"]::-webkit-input-placeholder,
  input[type="color"]::-webkit-input-placeholder,
  select::-webkit-input-placeholder,
  textarea::-webkit-input-placeholder,
  .field::-webkit-input-placeholder {
    color: white; }
  input[type="text"]::-moz-placeholder,
  input[type="password"]::-moz-placeholder,
  input[type="datetime"]::-moz-placeholder,
  input[type="datetime-local"]::-moz-placeholder,
  input[type="date"]::-moz-placeholder,
  input[type="month"]::-moz-placeholder,
  input[type="time"]::-moz-placeholder,
  input[type="week"]::-moz-placeholder,
  input[type="number"]::-moz-placeholder,
  input[type="email"]::-moz-placeholder,
  input[type="url"]::-moz-placeholder,
  input[type="search"]::-moz-placeholder,
  input[type="tel"]::-moz-placeholder,
  input[type="color"]::-moz-placeholder,
  select::-moz-placeholder,
  textarea::-moz-placeholder,
  .field::-moz-placeholder {
    color: white; }
  input[type="text"]::-ms-input-placeholder,
  input[type="password"]::-ms-input-placeholder,
  input[type="datetime"]::-ms-input-placeholder,
  input[type="datetime-local"]::-ms-input-placeholder,
  input[type="date"]::-ms-input-placeholder,
  input[type="month"]::-ms-input-placeholder,
  input[type="time"]::-ms-input-placeholder,
  input[type="week"]::-ms-input-placeholder,
  input[type="number"]::-ms-input-placeholder,
  input[type="email"]::-ms-input-placeholder,
  input[type="url"]::-ms-input-placeholder,
  input[type="search"]::-ms-input-placeholder,
  input[type="tel"]::-ms-input-placeholder,
  input[type="color"]::-ms-input-placeholder,
  select::-ms-input-placeholder,
  textarea::-ms-input-placeholder,
  .field::-ms-input-placeholder {
    color: white; }
  input[type="text"]::placeholder,
  input[type="password"]::placeholder,
  input[type="datetime"]::placeholder,
  input[type="datetime-local"]::placeholder,
  input[type="date"]::placeholder,
  input[type="month"]::placeholder,
  input[type="time"]::placeholder,
  input[type="week"]::placeholder,
  input[type="number"]::placeholder,
  input[type="email"]::placeholder,
  input[type="url"]::placeholder,
  input[type="search"]::placeholder,
  input[type="tel"]::placeholder,
  input[type="color"]::placeholder,
  select::placeholder,
  textarea::placeholder,
  .field::placeholder {
    color: white; }
  input[type="text"].error, input[type="text"].is-invalid,
  input[type="password"].error,
  input[type="password"].is-invalid,
  input[type="datetime"].error,
  input[type="datetime"].is-invalid,
  input[type="datetime-local"].error,
  input[type="datetime-local"].is-invalid,
  input[type="date"].error,
  input[type="date"].is-invalid,
  input[type="month"].error,
  input[type="month"].is-invalid,
  input[type="time"].error,
  input[type="time"].is-invalid,
  input[type="week"].error,
  input[type="week"].is-invalid,
  input[type="number"].error,
  input[type="number"].is-invalid,
  input[type="email"].error,
  input[type="email"].is-invalid,
  input[type="url"].error,
  input[type="url"].is-invalid,
  input[type="search"].error,
  input[type="search"].is-invalid,
  input[type="tel"].error,
  input[type="tel"].is-invalid,
  input[type="color"].error,
  input[type="color"].is-invalid,
  select.error,
  select.is-invalid,
  textarea.error,
  textarea.is-invalid,
  .field.error,
  .field.is-invalid {
    color: #fbe3e4;
    border-color: #fbe3e4;
    background-color: #fff;
    background-position: 99% center;
    background-repeat: no-repeat;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NDM0NDREQkYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NDM0NDREQ0YwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ3ODRGRkE2RjA0QTExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY0MzQ0NERBRjA0QjExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+U8iT5wAAAedJREFUeNqk1U9I02Ecx/HtV3aIFAc1hcRDUoGXRAq0oNLA2CrsEFmHbikZu0iQYIFGYAiegkCpLipBxPpDEBMUzB0EhSG2LhG7hMR2GviPgUTvB57Bw8P3+U23B16HPX8+e/b8nt93wezZSMCnhXETF3AcB5BDCnH8Dq98ExcGHcFn8Ah3cdDni+fxnPDv9oAnTB7CKu6VCFXtChZy56LxUjt+jfuB8toSOth9wd7xWAWhqrUjYR/FRTwWJm+iIPT/w7bQf5ljiZnBg45dtKFX6H+LU8gIY8OEV6vgTkStwXWE8BPTGDHGPqNPz2mCfSOOYkA99TvCt1bhGPL68zMcwmncMuape10jrI+q4BbHi/FLn31S9z2x5tRhTc+1W506ipM+T3oRD4X+8+qtc4SqFvL0z/Fr14S+Szjis8bz9Lvvaq8cwS/wwGfdlqfPSWqTiFlX77o13u9Ym1PBs8JAytpRoy44X9Ft9E/gvbA+rYKn8NcaaMVc8UHgBw4b9/iqUQZ6hOAJFbyDcUflmsEX4a6+wTtHGfhAIUqa1U29Zc2BytouThD8x6xuN5CtMPi2CrXLZkZf/HyZoRFCP7n+QVR4PV7uI/AjGghN7OU/r1ilnqILtfpNC+o6vIFljBKYlhb/F2AAgaBsWR5wRiIAAAAASUVORK5CYII=);
    outline-color: #fbe3e4; }
  input[type="text"].success, input[type="text"].is-valid,
  input[type="password"].success,
  input[type="password"].is-valid,
  input[type="datetime"].success,
  input[type="datetime"].is-valid,
  input[type="datetime-local"].success,
  input[type="datetime-local"].is-valid,
  input[type="date"].success,
  input[type="date"].is-valid,
  input[type="month"].success,
  input[type="month"].is-valid,
  input[type="time"].success,
  input[type="time"].is-valid,
  input[type="week"].success,
  input[type="week"].is-valid,
  input[type="number"].success,
  input[type="number"].is-valid,
  input[type="email"].success,
  input[type="email"].is-valid,
  input[type="url"].success,
  input[type="url"].is-valid,
  input[type="search"].success,
  input[type="search"].is-valid,
  input[type="tel"].success,
  input[type="tel"].is-valid,
  input[type="color"].success,
  input[type="color"].is-valid,
  select.success,
  select.is-valid,
  textarea.success,
  textarea.is-valid,
  .field.success,
  .field.is-valid {
    color: #e6efc2;
    border-color: #e6efc2;
    background-color: #fff;
    background-position: 99% center;
    background-repeat: no-repeat;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NDM0NDRERkYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NDM0NDRFMEYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY0MzQ0NERERjA0QjExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY0MzQ0NERFRjA0QjExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+7olkTQAAAfhJREFUeNqklU9oE0EUhzdroWjw0tBeWlDxkEaIp55TsCU9VKIgCrHBelA8CQ1Kr1WPbZrQ3gqtQqvGqxpQc2jBk6BIIaAGD4qNCKURpDSKiPi98gLDsJt//uBjsztvfnk7895sIPAw6/joGMThFJyAXn2+A+9gA57/TaY/eU0OeBgfhGm4DiGnsb7DAszxBz/NAdcKjMJLuNWCqagHbsscN5+L+hmH4QkMOe1L5jzFfNA2PgT34ajTuY7AGuZB0/hmh5m+gS0r8xv1zRvg+gGCHZiOwnF4DP3iB3sQkYxPd2C6CWfhB9Xwlus5+K1j4jXuaq3a+gM1H9OPcAa+7q9lPidZJqHbiIm7Wg22rsEI7FrPSzAMX/T+ADyAKSsu7Fr1KplehLvwCs5DvfBf65p+MypqRbO1FXK9utH4/QKuaqYTsG3E3INJv00Q46px3+XxanJ/Ute2/vqP4FKDza2KcdljIKdnhS0xXYULTaqmLMZFn8FFSFtvt6x70ExFCS5oUXspq2ssa7oEl1swFa+CGFdgtkHgPDyDKy02zyxNU6lXRUZb1EuHYayNNs+Yh5B0WQo+/8fpJnNTZFuzz2OpjoQ2QruSOQlMy35fEGmEGMxY9e1brxobw7TkWA1h6xfckUPb+JhGoE/Hpfvew7qUld/H9J8AAwDpw3WYrxcZ3QAAAABJRU5ErkJggg==);
    outline-color: #e6efc2; }
  input[type="text"][disabled], input[type="text"].is-disabled,
  input[type="password"][disabled],
  input[type="password"].is-disabled,
  input[type="datetime"][disabled],
  input[type="datetime"].is-disabled,
  input[type="datetime-local"][disabled],
  input[type="datetime-local"].is-disabled,
  input[type="date"][disabled],
  input[type="date"].is-disabled,
  input[type="month"][disabled],
  input[type="month"].is-disabled,
  input[type="time"][disabled],
  input[type="time"].is-disabled,
  input[type="week"][disabled],
  input[type="week"].is-disabled,
  input[type="number"][disabled],
  input[type="number"].is-disabled,
  input[type="email"][disabled],
  input[type="email"].is-disabled,
  input[type="url"][disabled],
  input[type="url"].is-disabled,
  input[type="search"][disabled],
  input[type="search"].is-disabled,
  input[type="tel"][disabled],
  input[type="tel"].is-disabled,
  input[type="color"][disabled],
  input[type="color"].is-disabled,
  select[disabled],
  select.is-disabled,
  textarea[disabled],
  textarea.is-disabled,
  .field[disabled],
  .field.is-disabled {
    cursor: not-allowed;
    border-color: #cfcfcf;
    opacity: 0.6; }
    input[type="text"][disabled]:focus, input[type="text"][disabled]:active, input[type="text"].is-disabled:focus, input[type="text"].is-disabled:active,
    input[type="password"][disabled]:focus,
    input[type="password"][disabled]:active,
    input[type="password"].is-disabled:focus,
    input[type="password"].is-disabled:active,
    input[type="datetime"][disabled]:focus,
    input[type="datetime"][disabled]:active,
    input[type="datetime"].is-disabled:focus,
    input[type="datetime"].is-disabled:active,
    input[type="datetime-local"][disabled]:focus,
    input[type="datetime-local"][disabled]:active,
    input[type="datetime-local"].is-disabled:focus,
    input[type="datetime-local"].is-disabled:active,
    input[type="date"][disabled]:focus,
    input[type="date"][disabled]:active,
    input[type="date"].is-disabled:focus,
    input[type="date"].is-disabled:active,
    input[type="month"][disabled]:focus,
    input[type="month"][disabled]:active,
    input[type="month"].is-disabled:focus,
    input[type="month"].is-disabled:active,
    input[type="time"][disabled]:focus,
    input[type="time"][disabled]:active,
    input[type="time"].is-disabled:focus,
    input[type="time"].is-disabled:active,
    input[type="week"][disabled]:focus,
    input[type="week"][disabled]:active,
    input[type="week"].is-disabled:focus,
    input[type="week"].is-disabled:active,
    input[type="number"][disabled]:focus,
    input[type="number"][disabled]:active,
    input[type="number"].is-disabled:focus,
    input[type="number"].is-disabled:active,
    input[type="email"][disabled]:focus,
    input[type="email"][disabled]:active,
    input[type="email"].is-disabled:focus,
    input[type="email"].is-disabled:active,
    input[type="url"][disabled]:focus,
    input[type="url"][disabled]:active,
    input[type="url"].is-disabled:focus,
    input[type="url"].is-disabled:active,
    input[type="search"][disabled]:focus,
    input[type="search"][disabled]:active,
    input[type="search"].is-disabled:focus,
    input[type="search"].is-disabled:active,
    input[type="tel"][disabled]:focus,
    input[type="tel"][disabled]:active,
    input[type="tel"].is-disabled:focus,
    input[type="tel"].is-disabled:active,
    input[type="color"][disabled]:focus,
    input[type="color"][disabled]:active,
    input[type="color"].is-disabled:focus,
    input[type="color"].is-disabled:active,
    select[disabled]:focus,
    select[disabled]:active,
    select.is-disabled:focus,
    select.is-disabled:active,
    textarea[disabled]:focus,
    textarea[disabled]:active,
    textarea.is-disabled:focus,
    textarea.is-disabled:active,
    .field[disabled]:focus,
    .field[disabled]:active,
    .field.is-disabled:focus,
    .field.is-disabled:active {
      background-color: #d5edf8; }

input[type="password"] {
  letter-spacing: 0.3em; }

textarea {
  max-width: 100%;
  min-height: 240px;
  line-height: 1.5em; }

select {
  -webkit-appearance: none;
  /* 1 */
  -moz-appearance: none;
  appearance: none;
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAHCAYAAADXhRcnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEOEZCMjYxMEYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEOEZCMjYxMUYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ4RkIyNjBFRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ4RkIyNjBGRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Vxkp9gAAAI9JREFUeNpidHFxucHAwKAOxE+AmJmBMPgLxDJAfJMFSKwD4kqoAClgA+P///8ZXF1dPaCGcBKh6QcQB+3evXs7WDMIAA2QB1I7gFgDj0aQFz2BGh+AOEwwUaDAQyBlCMR7cGjcC5KHaQQBuM3IAOiKTiBVhiTUDdRUhq4Oq2aoAelAahIQ5wM1zsCmBiDAADhYMJXVZ9u9AAAAAElFTkSuQmCC);
  background-repeat: no-repeat;
  background-position: 97.5% center; }

.wpcf7-not-valid-tip {
  margin-top: 6px;
  color: #fc3b3d;
  font-size: 1.2em; }

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  border-color: #e881aa; }

.wpcf7 form span.wpcf7-not-valid-tip,
.wpcf7 form label {
  display: block;
  margin-bottom: 10px;
  font-size: 16px; }
  @media (min-width: 768px) {
    .wpcf7 form span.wpcf7-not-valid-tip,
    .wpcf7 form label {
      font-size: 20px; } }

.wpcf7 form span.wpcf7-not-valid-tip {
  color: #fc3b3d; }

.wpcf7 form .wpcf7-response-output {
  border-color: #e881aa;
  background-color: #e881aa;
  color: #fff;
  font-size: 1.6em;
  margin: 45px 0 0 0;
  padding: 10px; }

.wpcf7 form input[type="text"]::-webkit-input-placeholder,
.wpcf7 form input[type="password"]::-webkit-input-placeholder,
.wpcf7 form input[type="datetime"]::-webkit-input-placeholder,
.wpcf7 form input[type="datetime-local"]::-webkit-input-placeholder,
.wpcf7 form input[type="date"]::-webkit-input-placeholder,
.wpcf7 form input[type="month"]::-webkit-input-placeholder,
.wpcf7 form input[type="time"]::-webkit-input-placeholder,
.wpcf7 form input[type="week"]::-webkit-input-placeholder,
.wpcf7 form input[type="number"]::-webkit-input-placeholder,
.wpcf7 form input[type="email"]::-webkit-input-placeholder,
.wpcf7 form input[type="url"]::-webkit-input-placeholder,
.wpcf7 form input[type="search"]::-webkit-input-placeholder,
.wpcf7 form input[type="tel"]::-webkit-input-placeholder,
.wpcf7 form input[type="color"]::-webkit-input-placeholder,
.wpcf7 form select::-webkit-input-placeholder,
.wpcf7 form textarea::-webkit-input-placeholder,
.wpcf7 form .field::-webkit-input-placeholder {
  color: #000000; }

.wpcf7 form input[type="text"]::-moz-placeholder,
.wpcf7 form input[type="password"]::-moz-placeholder,
.wpcf7 form input[type="datetime"]::-moz-placeholder,
.wpcf7 form input[type="datetime-local"]::-moz-placeholder,
.wpcf7 form input[type="date"]::-moz-placeholder,
.wpcf7 form input[type="month"]::-moz-placeholder,
.wpcf7 form input[type="time"]::-moz-placeholder,
.wpcf7 form input[type="week"]::-moz-placeholder,
.wpcf7 form input[type="number"]::-moz-placeholder,
.wpcf7 form input[type="email"]::-moz-placeholder,
.wpcf7 form input[type="url"]::-moz-placeholder,
.wpcf7 form input[type="search"]::-moz-placeholder,
.wpcf7 form input[type="tel"]::-moz-placeholder,
.wpcf7 form input[type="color"]::-moz-placeholder,
.wpcf7 form select::-moz-placeholder,
.wpcf7 form textarea::-moz-placeholder,
.wpcf7 form .field::-moz-placeholder {
  color: #000000; }

.wpcf7 form input[type="text"]::-ms-input-placeholder,
.wpcf7 form input[type="password"]::-ms-input-placeholder,
.wpcf7 form input[type="datetime"]::-ms-input-placeholder,
.wpcf7 form input[type="datetime-local"]::-ms-input-placeholder,
.wpcf7 form input[type="date"]::-ms-input-placeholder,
.wpcf7 form input[type="month"]::-ms-input-placeholder,
.wpcf7 form input[type="time"]::-ms-input-placeholder,
.wpcf7 form input[type="week"]::-ms-input-placeholder,
.wpcf7 form input[type="number"]::-ms-input-placeholder,
.wpcf7 form input[type="email"]::-ms-input-placeholder,
.wpcf7 form input[type="url"]::-ms-input-placeholder,
.wpcf7 form input[type="search"]::-ms-input-placeholder,
.wpcf7 form input[type="tel"]::-ms-input-placeholder,
.wpcf7 form input[type="color"]::-ms-input-placeholder,
.wpcf7 form select::-ms-input-placeholder,
.wpcf7 form textarea::-ms-input-placeholder,
.wpcf7 form .field::-ms-input-placeholder {
  color: #000000; }

.wpcf7 form input[type="text"]::placeholder,
.wpcf7 form input[type="password"]::placeholder,
.wpcf7 form input[type="datetime"]::placeholder,
.wpcf7 form input[type="datetime-local"]::placeholder,
.wpcf7 form input[type="date"]::placeholder,
.wpcf7 form input[type="month"]::placeholder,
.wpcf7 form input[type="time"]::placeholder,
.wpcf7 form input[type="week"]::placeholder,
.wpcf7 form input[type="number"]::placeholder,
.wpcf7 form input[type="email"]::placeholder,
.wpcf7 form input[type="url"]::placeholder,
.wpcf7 form input[type="search"]::placeholder,
.wpcf7 form input[type="tel"]::placeholder,
.wpcf7 form input[type="color"]::placeholder,
.wpcf7 form select::placeholder,
.wpcf7 form textarea::placeholder,
.wpcf7 form .field::placeholder {
  color: #000000; }

.wpcf7 form.sent .wpcf7-response-output {
  border-color: #1ab347;
  background-color: #1ab347; }

/*!
 * Hamburgers
 * @description Tasty CSS-animated hamburgers
 * @author Jonathan Suh @jonsuh
 * @site https://jonsuh.com/hamburgers
 * @link https://github.com/jonsuh/hamburgers
 */
.hamburger {
  padding: 12px 12px;
  display: inline-block;
  cursor: pointer;
  -webkit-transition-property: opacity, -webkit-filter;
  transition-property: opacity, -webkit-filter;
  transition-property: opacity, filter;
  transition-property: opacity, filter, -webkit-filter;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  font: inherit;
  color: inherit;
  text-transform: none;
  background-color: transparent;
  border: 0;
  margin: 0;
  overflow: visible; }
  .hamburger:hover {
    opacity: 0.7; }
  .hamburger.is-active:hover {
    opacity: 0.7; }
  .hamburger.is-active .hamburger-inner,
  .hamburger.is-active .hamburger-inner::before,
  .hamburger.is-active .hamburger-inner::after {
    background-color: #fff; }

.hamburger-box {
  width: 20px;
  height: 12px;
  display: inline-block;
  position: relative; }

.hamburger-inner {
  display: block;
  top: 50%;
  margin-top: -1px; }
  .hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
    width: 20px;
    height: 2px;
    background-color: #fff;
    border-radius: 0;
    position: absolute;
    -webkit-transition-property: -webkit-transform;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    -webkit-transition-duration: 0.15s;
            transition-duration: 0.15s;
    -webkit-transition-timing-function: ease;
            transition-timing-function: ease; }
  .hamburger-inner::before, .hamburger-inner::after {
    content: "";
    display: block; }
  .hamburger-inner::before {
    top: -5px; }
  .hamburger-inner::after {
    bottom: -5px; }

/*
   * 3DX
   */
.hamburger--3dx .hamburger-box {
  -webkit-perspective: 40px;
          perspective: 40px; }

.hamburger--3dx .hamburger-inner {
  -webkit-transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1); }
  .hamburger--3dx .hamburger-inner::before, .hamburger--3dx .hamburger-inner::after {
    -webkit-transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }

.hamburger--3dx.is-active .hamburger-inner {
  background-color: transparent !important;
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg); }
  .hamburger--3dx.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--3dx.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
            transform: translate3d(0, -5px, 0) rotate(-45deg); }

/*
   * 3DX Reverse
   */
.hamburger--3dx-r .hamburger-box {
  -webkit-perspective: 40px;
          perspective: 40px; }

.hamburger--3dx-r .hamburger-inner {
  -webkit-transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1); }
  .hamburger--3dx-r .hamburger-inner::before, .hamburger--3dx-r .hamburger-inner::after {
    -webkit-transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }

.hamburger--3dx-r.is-active .hamburger-inner {
  background-color: transparent !important;
  -webkit-transform: rotateY(-180deg);
          transform: rotateY(-180deg); }
  .hamburger--3dx-r.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--3dx-r.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
            transform: translate3d(0, -5px, 0) rotate(-45deg); }

/*
   * 3DY
   */
.hamburger--3dy .hamburger-box {
  -webkit-perspective: 40px;
          perspective: 40px; }

.hamburger--3dy .hamburger-inner {
  -webkit-transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1); }
  .hamburger--3dy .hamburger-inner::before, .hamburger--3dy .hamburger-inner::after {
    -webkit-transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }

.hamburger--3dy.is-active .hamburger-inner {
  background-color: transparent !important;
  -webkit-transform: rotateX(-180deg);
          transform: rotateX(-180deg); }
  .hamburger--3dy.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--3dy.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
            transform: translate3d(0, -5px, 0) rotate(-45deg); }

/*
   * 3DY Reverse
   */
.hamburger--3dy-r .hamburger-box {
  -webkit-perspective: 40px;
          perspective: 40px; }

.hamburger--3dy-r .hamburger-inner {
  -webkit-transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1); }
  .hamburger--3dy-r .hamburger-inner::before, .hamburger--3dy-r .hamburger-inner::after {
    -webkit-transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }

.hamburger--3dy-r.is-active .hamburger-inner {
  background-color: transparent !important;
  -webkit-transform: rotateX(180deg);
          transform: rotateX(180deg); }
  .hamburger--3dy-r.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--3dy-r.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
            transform: translate3d(0, -5px, 0) rotate(-45deg); }

/*
   * 3DXY
   */
.hamburger--3dxy .hamburger-box {
  -webkit-perspective: 40px;
          perspective: 40px; }

.hamburger--3dxy .hamburger-inner {
  -webkit-transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1); }
  .hamburger--3dxy .hamburger-inner::before, .hamburger--3dxy .hamburger-inner::after {
    -webkit-transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }

.hamburger--3dxy.is-active .hamburger-inner {
  background-color: transparent !important;
  -webkit-transform: rotateX(180deg) rotateY(180deg);
          transform: rotateX(180deg) rotateY(180deg); }
  .hamburger--3dxy.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--3dxy.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
            transform: translate3d(0, -5px, 0) rotate(-45deg); }

/*
   * 3DXY Reverse
   */
.hamburger--3dxy-r .hamburger-box {
  -webkit-perspective: 40px;
          perspective: 40px; }

.hamburger--3dxy-r .hamburger-inner {
  -webkit-transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
  transition: transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), background-color 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.15s cubic-bezier(0.645, 0.045, 0.355, 1); }
  .hamburger--3dxy-r .hamburger-inner::before, .hamburger--3dxy-r .hamburger-inner::after {
    -webkit-transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);
    transition: transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0s 0.1s cubic-bezier(0.645, 0.045, 0.355, 1); }

.hamburger--3dxy-r.is-active .hamburger-inner {
  background-color: transparent !important;
  -webkit-transform: rotateX(180deg) rotateY(180deg) rotateZ(-180deg);
          transform: rotateX(180deg) rotateY(180deg) rotateZ(-180deg); }
  .hamburger--3dxy-r.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--3dxy-r.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
            transform: translate3d(0, -5px, 0) rotate(-45deg); }

/*
   * Arrow
   */
.hamburger--arrow.is-active .hamburger-inner::before {
  -webkit-transform: translate3d(-4px, 0, 0) rotate(-45deg) scale(0.7, 1);
          transform: translate3d(-4px, 0, 0) rotate(-45deg) scale(0.7, 1); }

.hamburger--arrow.is-active .hamburger-inner::after {
  -webkit-transform: translate3d(-4px, 0, 0) rotate(45deg) scale(0.7, 1);
          transform: translate3d(-4px, 0, 0) rotate(45deg) scale(0.7, 1); }

/*
   * Arrow Right
   */
.hamburger--arrow-r.is-active .hamburger-inner::before {
  -webkit-transform: translate3d(4px, 0, 0) rotate(45deg) scale(0.7, 1);
          transform: translate3d(4px, 0, 0) rotate(45deg) scale(0.7, 1); }

.hamburger--arrow-r.is-active .hamburger-inner::after {
  -webkit-transform: translate3d(4px, 0, 0) rotate(-45deg) scale(0.7, 1);
          transform: translate3d(4px, 0, 0) rotate(-45deg) scale(0.7, 1); }

/*
   * Arrow Alt
   */
.hamburger--arrowalt .hamburger-inner::before {
  -webkit-transition: top 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: top 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); }

.hamburger--arrowalt .hamburger-inner::after {
  -webkit-transition: bottom 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: bottom 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); }

.hamburger--arrowalt.is-active .hamburger-inner::before {
  top: 0;
  -webkit-transform: translate3d(-4px, -5px, 0) rotate(-45deg) scale(0.7, 1);
          transform: translate3d(-4px, -5px, 0) rotate(-45deg) scale(0.7, 1);
  -webkit-transition: top 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: top 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22), -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }

.hamburger--arrowalt.is-active .hamburger-inner::after {
  bottom: 0;
  -webkit-transform: translate3d(-4px, 5px, 0) rotate(45deg) scale(0.7, 1);
          transform: translate3d(-4px, 5px, 0) rotate(45deg) scale(0.7, 1);
  -webkit-transition: bottom 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: bottom 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22), -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }

/*
   * Arrow Alt Right
   */
.hamburger--arrowalt-r .hamburger-inner::before {
  -webkit-transition: top 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: top 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: top 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); }

.hamburger--arrowalt-r .hamburger-inner::after {
  -webkit-transition: bottom 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: bottom 0.1s 0.1s ease, -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: bottom 0.1s 0.1s ease, transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1); }

.hamburger--arrowalt-r.is-active .hamburger-inner::before {
  top: 0;
  -webkit-transform: translate3d(4px, -5px, 0) rotate(45deg) scale(0.7, 1);
          transform: translate3d(4px, -5px, 0) rotate(45deg) scale(0.7, 1);
  -webkit-transition: top 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: top 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: top 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22), -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }

.hamburger--arrowalt-r.is-active .hamburger-inner::after {
  bottom: 0;
  -webkit-transform: translate3d(4px, 5px, 0) rotate(-45deg) scale(0.7, 1);
          transform: translate3d(4px, 5px, 0) rotate(-45deg) scale(0.7, 1);
  -webkit-transition: bottom 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: bottom 0.1s ease, -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22);
  transition: bottom 0.1s ease, transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22), -webkit-transform 0.1s 0.1s cubic-bezier(0.895, 0.03, 0.685, 0.22); }

/*
   * Arrow Turn
   */
.hamburger--arrowturn.is-active .hamburger-inner {
  -webkit-transform: rotate(-180deg);
          transform: rotate(-180deg); }
  .hamburger--arrowturn.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(8px, 0, 0) rotate(45deg) scale(0.7, 1);
            transform: translate3d(8px, 0, 0) rotate(45deg) scale(0.7, 1); }
  .hamburger--arrowturn.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(8px, 0, 0) rotate(-45deg) scale(0.7, 1);
            transform: translate3d(8px, 0, 0) rotate(-45deg) scale(0.7, 1); }

/*
   * Arrow Turn Right
   */
.hamburger--arrowturn-r.is-active .hamburger-inner {
  -webkit-transform: rotate(-180deg);
          transform: rotate(-180deg); }
  .hamburger--arrowturn-r.is-active .hamburger-inner::before {
    -webkit-transform: translate3d(-8px, 0, 0) rotate(-45deg) scale(0.7, 1);
            transform: translate3d(-8px, 0, 0) rotate(-45deg) scale(0.7, 1); }
  .hamburger--arrowturn-r.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(-8px, 0, 0) rotate(45deg) scale(0.7, 1);
            transform: translate3d(-8px, 0, 0) rotate(45deg) scale(0.7, 1); }

/*
   * Boring
   */
.hamburger--boring .hamburger-inner, .hamburger--boring .hamburger-inner::before, .hamburger--boring .hamburger-inner::after {
  -webkit-transition-property: none;
  transition-property: none; }

.hamburger--boring.is-active .hamburger-inner {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg); }
  .hamburger--boring.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0; }
  .hamburger--boring.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg); }

/*
   * Collapse
   */
.hamburger--collapse .hamburger-inner {
  top: auto;
  bottom: 0;
  -webkit-transition-duration: 0.13s;
          transition-duration: 0.13s;
  -webkit-transition-delay: 0.13s;
          transition-delay: 0.13s;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
          transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--collapse .hamburger-inner::after {
    top: -10px;
    -webkit-transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear;
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear; }
  .hamburger--collapse .hamburger-inner::before {
    -webkit-transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--collapse.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
          transform: translate3d(0, -5px, 0) rotate(-45deg);
  -webkit-transition-delay: 0.22s;
          transition-delay: 0.22s;
  -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--collapse.is-active .hamburger-inner::after {
    top: 0;
    opacity: 0;
    -webkit-transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear;
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear; }
  .hamburger--collapse.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
    -webkit-transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Collapse Reverse
   */
.hamburger--collapse-r .hamburger-inner {
  top: auto;
  bottom: 0;
  -webkit-transition-duration: 0.13s;
          transition-duration: 0.13s;
  -webkit-transition-delay: 0.13s;
          transition-delay: 0.13s;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
          transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--collapse-r .hamburger-inner::after {
    top: -10px;
    -webkit-transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear;
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear; }
  .hamburger--collapse-r .hamburger-inner::before {
    -webkit-transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--collapse-r.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, -5px, 0) rotate(45deg);
          transform: translate3d(0, -5px, 0) rotate(45deg);
  -webkit-transition-delay: 0.22s;
          transition-delay: 0.22s;
  -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--collapse-r.is-active .hamburger-inner::after {
    top: 0;
    opacity: 0;
    -webkit-transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear;
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear; }
  .hamburger--collapse-r.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
    -webkit-transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Elastic
   */
.hamburger--elastic .hamburger-inner {
  top: 1px;
  -webkit-transition-duration: 0.275s;
          transition-duration: 0.275s;
  -webkit-transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);
          transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); }
  .hamburger--elastic .hamburger-inner::before {
    top: 5px;
    -webkit-transition: opacity 0.125s 0.275s ease;
    transition: opacity 0.125s 0.275s ease; }
  .hamburger--elastic .hamburger-inner::after {
    top: 10px;
    -webkit-transition: -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transition: -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55), -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55); }

.hamburger--elastic.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, 5px, 0) rotate(135deg);
          transform: translate3d(0, 5px, 0) rotate(135deg);
  -webkit-transition-delay: 0.075s;
          transition-delay: 0.075s; }
  .hamburger--elastic.is-active .hamburger-inner::before {
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
    opacity: 0; }
  .hamburger--elastic.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -10px, 0) rotate(-270deg);
            transform: translate3d(0, -10px, 0) rotate(-270deg);
    -webkit-transition-delay: 0.075s;
            transition-delay: 0.075s; }

/*
   * Elastic Reverse
   */
.hamburger--elastic-r .hamburger-inner {
  top: 1px;
  -webkit-transition-duration: 0.275s;
          transition-duration: 0.275s;
  -webkit-transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);
          transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); }
  .hamburger--elastic-r .hamburger-inner::before {
    top: 5px;
    -webkit-transition: opacity 0.125s 0.275s ease;
    transition: opacity 0.125s 0.275s ease; }
  .hamburger--elastic-r .hamburger-inner::after {
    top: 10px;
    -webkit-transition: -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transition: -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transition: transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55), -webkit-transform 0.275s cubic-bezier(0.68, -0.55, 0.265, 1.55); }

.hamburger--elastic-r.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, 5px, 0) rotate(-135deg);
          transform: translate3d(0, 5px, 0) rotate(-135deg);
  -webkit-transition-delay: 0.075s;
          transition-delay: 0.075s; }
  .hamburger--elastic-r.is-active .hamburger-inner::before {
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
    opacity: 0; }
  .hamburger--elastic-r.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -10px, 0) rotate(270deg);
            transform: translate3d(0, -10px, 0) rotate(270deg);
    -webkit-transition-delay: 0.075s;
            transition-delay: 0.075s; }

/*
   * Emphatic
   */
.hamburger--emphatic {
  overflow: hidden; }
  .hamburger--emphatic .hamburger-inner {
    -webkit-transition: background-color 0.125s 0.175s ease-in;
    transition: background-color 0.125s 0.175s ease-in; }
    .hamburger--emphatic .hamburger-inner::before {
      left: 0;
      -webkit-transition: top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      transition: top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in;
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335); }
    .hamburger--emphatic .hamburger-inner::after {
      top: 5px;
      right: 0;
      -webkit-transition: top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      transition: top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in;
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335); }
  .hamburger--emphatic.is-active .hamburger-inner {
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
    -webkit-transition-timing-function: ease-out;
            transition-timing-function: ease-out;
    background-color: transparent !important; }
    .hamburger--emphatic.is-active .hamburger-inner::before {
      left: -40px;
      top: -40px;
      -webkit-transform: translate3d(40px, 40px, 0) rotate(45deg);
              transform: translate3d(40px, 40px, 0) rotate(45deg);
      -webkit-transition: left 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: left 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1), -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); }
    .hamburger--emphatic.is-active .hamburger-inner::after {
      right: -40px;
      top: -40px;
      -webkit-transform: translate3d(-40px, 40px, 0) rotate(-45deg);
              transform: translate3d(-40px, 40px, 0) rotate(-45deg);
      -webkit-transition: right 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: right 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1), -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); }

/*
   * Emphatic Reverse
   */
.hamburger--emphatic-r {
  overflow: hidden; }
  .hamburger--emphatic-r .hamburger-inner {
    -webkit-transition: background-color 0.125s 0.175s ease-in;
    transition: background-color 0.125s 0.175s ease-in; }
    .hamburger--emphatic-r .hamburger-inner::before {
      left: 0;
      -webkit-transition: top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      transition: top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in;
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, left 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335); }
    .hamburger--emphatic-r .hamburger-inner::after {
      top: 5px;
      right: 0;
      -webkit-transition: top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      transition: top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335);
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in;
      transition: transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335), top 0.05s 0.125s linear, right 0.125s 0.175s ease-in, -webkit-transform 0.125s cubic-bezier(0.6, 0.04, 0.98, 0.335); }
  .hamburger--emphatic-r.is-active .hamburger-inner {
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
    -webkit-transition-timing-function: ease-out;
            transition-timing-function: ease-out;
    background-color: transparent !important; }
    .hamburger--emphatic-r.is-active .hamburger-inner::before {
      left: -40px;
      top: 40px;
      -webkit-transform: translate3d(40px, -40px, 0) rotate(-45deg);
              transform: translate3d(40px, -40px, 0) rotate(-45deg);
      -webkit-transition: left 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: left 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: left 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1), -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); }
    .hamburger--emphatic-r.is-active .hamburger-inner::after {
      right: -40px;
      top: 40px;
      -webkit-transform: translate3d(-40px, -40px, 0) rotate(45deg);
              transform: translate3d(-40px, -40px, 0) rotate(45deg);
      -webkit-transition: right 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: right 0.125s ease-out, top 0.05s 0.125s linear, -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1);
      transition: right 0.125s ease-out, top 0.05s 0.125s linear, transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1), -webkit-transform 0.125s 0.175s cubic-bezier(0.075, 0.82, 0.165, 1); }

/*
   * Minus
   */
.hamburger--minus .hamburger-inner::before, .hamburger--minus .hamburger-inner::after {
  -webkit-transition: bottom 0.08s 0s ease-out, top 0.08s 0s ease-out, opacity 0s linear;
  transition: bottom 0.08s 0s ease-out, top 0.08s 0s ease-out, opacity 0s linear; }

.hamburger--minus.is-active .hamburger-inner::before, .hamburger--minus.is-active .hamburger-inner::after {
  opacity: 0;
  -webkit-transition: bottom 0.08s ease-out, top 0.08s ease-out, opacity 0s 0.08s linear;
  transition: bottom 0.08s ease-out, top 0.08s ease-out, opacity 0s 0.08s linear; }

.hamburger--minus.is-active .hamburger-inner::before {
  top: 0; }

.hamburger--minus.is-active .hamburger-inner::after {
  bottom: 0; }

/*
   * Slider
   */
.hamburger--slider .hamburger-inner {
  top: 1px; }
  .hamburger--slider .hamburger-inner::before {
    top: 5px;
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-transition-timing-function: ease;
            transition-timing-function: ease;
    -webkit-transition-duration: 0.15s;
            transition-duration: 0.15s; }
  .hamburger--slider .hamburger-inner::after {
    top: 10px; }

.hamburger--slider.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
          transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--slider.is-active .hamburger-inner::before {
    -webkit-transform: rotate(-45deg) translate3d(-2.8571428571px, -3px, 0);
            transform: rotate(-45deg) translate3d(-2.8571428571px, -3px, 0);
    opacity: 0; }
  .hamburger--slider.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -10px, 0) rotate(-90deg);
            transform: translate3d(0, -10px, 0) rotate(-90deg); }

/*
   * Slider Reverse
   */
.hamburger--slider-r .hamburger-inner {
  top: 1px; }
  .hamburger--slider-r .hamburger-inner::before {
    top: 5px;
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-transition-timing-function: ease;
            transition-timing-function: ease;
    -webkit-transition-duration: 0.15s;
            transition-duration: 0.15s; }
  .hamburger--slider-r .hamburger-inner::after {
    top: 10px; }

.hamburger--slider-r.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, 5px, 0) rotate(-45deg);
          transform: translate3d(0, 5px, 0) rotate(-45deg); }
  .hamburger--slider-r.is-active .hamburger-inner::before {
    -webkit-transform: rotate(45deg) translate3d(2.8571428571px, -3px, 0);
            transform: rotate(45deg) translate3d(2.8571428571px, -3px, 0);
    opacity: 0; }
  .hamburger--slider-r.is-active .hamburger-inner::after {
    -webkit-transform: translate3d(0, -10px, 0) rotate(90deg);
            transform: translate3d(0, -10px, 0) rotate(90deg); }

/*
   * Spin
   */
.hamburger--spin .hamburger-inner {
  -webkit-transition-duration: 0.22s;
          transition-duration: 0.22s;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
          transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--spin .hamburger-inner::before {
    -webkit-transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in;
    transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in; }
  .hamburger--spin .hamburger-inner::after {
    -webkit-transition: bottom 0.1s 0.25s ease-in, -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.25s ease-in, -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--spin.is-active .hamburger-inner {
  -webkit-transform: rotate(225deg);
          transform: rotate(225deg);
  -webkit-transition-delay: 0.12s;
          transition-delay: 0.12s;
  -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--spin.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0;
    -webkit-transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out;
    transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out; }
  .hamburger--spin.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
    -webkit-transition: bottom 0.1s ease-out, -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease-out, -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Spin Reverse
   */
.hamburger--spin-r .hamburger-inner {
  -webkit-transition-duration: 0.22s;
          transition-duration: 0.22s;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
          transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--spin-r .hamburger-inner::before {
    -webkit-transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in;
    transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in; }
  .hamburger--spin-r .hamburger-inner::after {
    -webkit-transition: bottom 0.1s 0.25s ease-in, -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.25s ease-in, -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--spin-r.is-active .hamburger-inner {
  -webkit-transform: rotate(-225deg);
          transform: rotate(-225deg);
  -webkit-transition-delay: 0.12s;
          transition-delay: 0.12s;
  -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--spin-r.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0;
    -webkit-transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out;
    transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out; }
  .hamburger--spin-r.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
    -webkit-transition: bottom 0.1s ease-out, -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease-out, -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Spring
   */
.hamburger--spring .hamburger-inner {
  top: 1px;
  -webkit-transition: background-color 0s 0.13s linear;
  transition: background-color 0s 0.13s linear; }
  .hamburger--spring .hamburger-inner::before {
    top: 5px;
    -webkit-transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--spring .hamburger-inner::after {
    top: 10px;
    -webkit-transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--spring.is-active .hamburger-inner {
  -webkit-transition-delay: 0.22s;
          transition-delay: 0.22s;
  background-color: transparent !important; }
  .hamburger--spring.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 5px, 0) rotate(45deg);
            transform: translate3d(0, 5px, 0) rotate(45deg); }
  .hamburger--spring.is-active .hamburger-inner::after {
    top: 0;
    -webkit-transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 5px, 0) rotate(-45deg);
            transform: translate3d(0, 5px, 0) rotate(-45deg); }

/*
   * Spring Reverse
   */
.hamburger--spring-r .hamburger-inner {
  top: auto;
  bottom: 0;
  -webkit-transition-duration: 0.13s;
          transition-duration: 0.13s;
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
          transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--spring-r .hamburger-inner::after {
    top: -10px;
    -webkit-transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0s linear;
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0s linear; }
  .hamburger--spring-r .hamburger-inner::before {
    -webkit-transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--spring-r.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, -5px, 0) rotate(-45deg);
          transform: translate3d(0, -5px, 0) rotate(-45deg);
  -webkit-transition-delay: 0.22s;
          transition-delay: 0.22s;
  -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--spring-r.is-active .hamburger-inner::after {
    top: 0;
    opacity: 0;
    -webkit-transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0s 0.22s linear;
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0s 0.22s linear; }
  .hamburger--spring-r.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
    -webkit-transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Stand
   */
.hamburger--stand .hamburger-inner {
  -webkit-transition: background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear;
  transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--stand .hamburger-inner::before {
    -webkit-transition: top 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--stand .hamburger-inner::after {
    -webkit-transition: bottom 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--stand.is-active .hamburger-inner {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  background-color: transparent !important;
  -webkit-transition: background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear;
  transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--stand.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
    -webkit-transition: top 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--stand.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-transition: bottom 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Stand Reverse
   */
.hamburger--stand-r .hamburger-inner {
  -webkit-transition: background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear;
  transition: transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0s 0.075s linear, -webkit-transform 0.075s 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--stand-r .hamburger-inner::before {
    -webkit-transition: top 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: top 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--stand-r .hamburger-inner::after {
    -webkit-transition: bottom 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.075s ease-in, -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.075s ease-in, transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s 0s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--stand-r.is-active .hamburger-inner {
  -webkit-transform: rotate(-90deg);
          transform: rotate(-90deg);
  background-color: transparent !important;
  -webkit-transition: background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear;
  transition: transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0s 0.15s linear, -webkit-transform 0.075s 0s cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--stand-r.is-active .hamburger-inner::before {
    top: 0;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
    -webkit-transition: top 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: top 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--stand-r.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-transition: bottom 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s 0.1s ease-out, -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s 0.1s ease-out, transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.15s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Squeeze
   */
.hamburger--squeeze .hamburger-inner {
  -webkit-transition-duration: 0.075s;
          transition-duration: 0.075s;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
          transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--squeeze .hamburger-inner::before {
    -webkit-transition: top 0.075s 0.12s ease, opacity 0.075s ease;
    transition: top 0.075s 0.12s ease, opacity 0.075s ease; }
  .hamburger--squeeze .hamburger-inner::after {
    -webkit-transition: bottom 0.075s 0.12s ease, -webkit-transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.12s ease, -webkit-transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.12s ease, transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.075s 0.12s ease, transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.075s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--squeeze.is-active .hamburger-inner {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transition-delay: 0.12s;
          transition-delay: 0.12s;
  -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--squeeze.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0;
    -webkit-transition: top 0.075s ease, opacity 0.075s 0.12s ease;
    transition: top 0.075s ease, opacity 0.075s 0.12s ease; }
  .hamburger--squeeze.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
    -webkit-transition: bottom 0.075s ease, -webkit-transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s ease, -webkit-transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s ease, transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.075s ease, transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.075s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); }

/*
   * Vortex
   */
.hamburger--vortex .hamburger-inner {
  -webkit-transition-duration: 0.2s;
          transition-duration: 0.2s;
  -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
          transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }
  .hamburger--vortex .hamburger-inner::before, .hamburger--vortex .hamburger-inner::after {
    -webkit-transition-duration: 0s;
            transition-duration: 0s;
    -webkit-transition-delay: 0.1s;
            transition-delay: 0.1s;
    -webkit-transition-timing-function: linear;
            transition-timing-function: linear; }
  .hamburger--vortex .hamburger-inner::before {
    -webkit-transition-property: top, opacity;
    transition-property: top, opacity; }
  .hamburger--vortex .hamburger-inner::after {
    -webkit-transition-property: bottom, -webkit-transform;
    transition-property: bottom, -webkit-transform;
    transition-property: bottom, transform;
    transition-property: bottom, transform, -webkit-transform; }

.hamburger--vortex.is-active .hamburger-inner {
  -webkit-transform: rotate(765deg);
          transform: rotate(765deg);
  -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
          transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }
  .hamburger--vortex.is-active .hamburger-inner::before, .hamburger--vortex.is-active .hamburger-inner::after {
    -webkit-transition-delay: 0s;
            transition-delay: 0s; }
  .hamburger--vortex.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0; }
  .hamburger--vortex.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg); }

/*
   * Vortex Reverse
   */
.hamburger--vortex-r .hamburger-inner {
  -webkit-transition-duration: 0.2s;
          transition-duration: 0.2s;
  -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
          transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }
  .hamburger--vortex-r .hamburger-inner::before, .hamburger--vortex-r .hamburger-inner::after {
    -webkit-transition-duration: 0s;
            transition-duration: 0s;
    -webkit-transition-delay: 0.1s;
            transition-delay: 0.1s;
    -webkit-transition-timing-function: linear;
            transition-timing-function: linear; }
  .hamburger--vortex-r .hamburger-inner::before {
    -webkit-transition-property: top, opacity;
    transition-property: top, opacity; }
  .hamburger--vortex-r .hamburger-inner::after {
    -webkit-transition-property: bottom, -webkit-transform;
    transition-property: bottom, -webkit-transform;
    transition-property: bottom, transform;
    transition-property: bottom, transform, -webkit-transform; }

.hamburger--vortex-r.is-active .hamburger-inner {
  -webkit-transform: rotate(-765deg);
          transform: rotate(-765deg);
  -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
          transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }
  .hamburger--vortex-r.is-active .hamburger-inner::before, .hamburger--vortex-r.is-active .hamburger-inner::after {
    -webkit-transition-delay: 0s;
            transition-delay: 0s; }
  .hamburger--vortex-r.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0; }
  .hamburger--vortex-r.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg); }

/*********************
BASE (MOBILE) SIZE
This are the mobile styles. It's what people see on their phones. If
you set a great foundation, you won't need to add too many styles in
the other stylesheets. Remember, keep it light: Speed is Important.
*********************/
/******************************************************************
Site Name:
Author:

Stylesheet: Base Mobile Stylesheet

Be light and don't over style since everything here will be
loaded by mobile devices. You want to keep it as minimal as
possible. This is called at the top of the main stylsheet
and will be used across all viewports.

******************************************************************/
/*********************
GENERAL STYLES
*********************/
body {
  font-family: montserrat, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 62.5%;
  line-height: 1.5;
  color: #5c6b80;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: #0f5de5; }

.uk-sticky-placeholder {
  background-color: #0f5de5; }

.wrap {
  width: 100%;
  margin: 0 auto;
  padding: 0 36px;
  max-width: 1440px; }
  @media (min-width: 768px) {
    .wrap {
      padding: 0 45px; } }
  @media (min-width: 1024px) {
    .wrap {
      padding: 0 90px; }
      .wrap.no-padding {
        padding: 0; } }
  .wrap.wrap-small {
    max-width: 1040px; }
  .wrap.wrap-medium {
    max-width: 1240px; }

/*********************
LINK STYLES
*********************/
button:hover,
button:focus {
  outline: none; }

a,
a:visited {
  color: #f01d4f;
  /* on hover */
  /* on click */
  /* mobile tap color */ }
  a:hover, a:focus, a:visited:hover, a:visited:focus {
    color: #d10e3c;
    outline: none;
    text-decoration: none; }
  a:link, a:visited:link {
    /*
		this highlights links on iPhones/iPads.
		so it basically works like the :hover selector
		for mobile devices.
		*/
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0.3); }

/******************************************************************
H1, H2, H3, H4, H5 STYLES
******************************************************************/
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5 {
  text-rendering: optimizelegibility;
  font-weight: 500;
  /*
	if you're going to use webfonts, be sure to check your weights
	http://css-tricks.com/watch-your-font-weight/
	*/
  /* removing text decoration from all headline links */ }
  h1 a, .h1 a, h2 a, .h2 a, h3 a, .h3 a, h4 a, .h4 a, h5 a, .h5 a {
    text-decoration: none; }

h1, .h1 {
  font-size: 2.5em;
  line-height: 1.2em; }

h2, .h2 {
  font-size: 1.75em;
  line-height: 1.2em;
  margin-bottom: 0.375em; }

h3, .h3 {
  font-size: 1.125em; }

h4, .h4 {
  font-size: 1.1em;
  font-weight: 700; }

h5, .h5 {
  font-size: 0.846em;
  line-height: 2.09em;
  text-transform: uppercase;
  letter-spacing: 2px; }

/*********************
HEADER STYLES
*********************/
.uk-modal-close-default {
  display: block;
  width: 70px;
  height: 70px;
  background-image: url(../images/sprite.svg);
  background-repeat: no-repeat;
  background-position: -13px -185px;
  top: 10px;
  right: 10px;
  -webkit-transform: scale(0.5, 0.5);
          transform: scale(0.5, 0.5); }
  .uk-modal-close-default svg {
    display: none; }
  @media (min-width: 768px) {
    .uk-modal-close-default {
      -webkit-transform: scale(1, 1);
              transform: scale(1, 1);
      top: 30px;
      right: 30px; } }
  .uk-modal-close-default.uk-modal-close-white {
    background-position: -112px -185px; }

#logo {
  margin: 0.75em 0; }

.single-title,
.page-title,
.entry-title {
  margin: 0; }

/* post meta */
.byline {
  color: #9fa6b4;
  font-style: italic;
  margin: 0; }

.page-section.projects-overview-holder {
  padding: 60px 0; }
  @media (min-width: 768px) {
    .page-section.projects-overview-holder {
      padding: 90px 0; } }
  .page-section.projects-overview-holder .projects-overview {
    margin-top: 60px; }
    @media (min-width: 768px) {
      .page-section.projects-overview-holder .projects-overview {
        margin-top: 90px; } }
    .page-section.projects-overview-holder .projects-overview img {
      margin: 0 0 15px 0;
      height: 60px;
      width: auto; }
      @media (min-width: 480px) {
        .page-section.projects-overview-holder .projects-overview img {
          height: 90px; } }
      @media (min-width: 768px) {
        .page-section.projects-overview-holder .projects-overview img {
          height: 150px;
          width: auto;
          margin: 0 15px; } }

.wp-caption {
  max-width: 100%;
  margin: 45px 0;
  /* images inside wp-caption */ }
  .wp-caption img {
    max-width: 100%;
    margin-bottom: 0;
    width: 100%; }
  .wp-caption p.wp-caption-text {
    font-size: 1.2em;
    margin: 0 0 30px 0;
    text-align: center; }

/* end .wp-caption */
/* image gallery styles */
/* end .gallery */
/* gallery caption styles */
.tags {
  margin: 0; }

/******************************************************************
PAGE NAVI STYLES
******************************************************************/
.pagination,
.wp-prev-next {
  margin: 120px 0 30px 0; }

.pagination {
  text-align: center; }
  .pagination ul {
    display: inline-block;
    white-space: nowrap;
    padding: 0;
    clear: both; }
  .pagination li {
    padding: 0;
    margin: 0 10px;
    float: left;
    display: inline;
    overflow: hidden; }
  .pagination a, .pagination span {
    margin: 0;
    text-decoration: none;
    padding: 0;
    line-height: 1em;
    font-size: 1.4em;
    font-weight: normal;
    display: block;
    width: 40px;
    height: 40px;
    line-height: 40px;
    text-align: center;
    color: white;
    border: 1px solid white;
    font-weight: 500; }
    .pagination a:hover, .pagination a:focus, .pagination span:hover, .pagination span:focus {
      background-color: #fff;
      color: #fc3b3d; }
  .pagination .current {
    cursor: default;
    color: #fc3b3d;
    background-color: #fff; }
    .pagination .current:hover, .pagination .current:focus {
      color: #fc3b3d;
      background-color: #fff; }

.newsletter-form-holder form {
  margin-top: 30px; }

.page-section .contact-form-holder form {
  margin-top: 60px; }

.newsletter-form-holder,
.page-section .contact-form-holder {
  padding: 36px 30px; }
  @media (min-width: 768px) {
    .newsletter-form-holder,
    .page-section .contact-form-holder {
      padding: 60px; } }
  @media (min-width: 1024px) {
    .newsletter-form-holder,
    .page-section .contact-form-holder {
      padding: 90px; } }
  .newsletter-form-holder .entry-content,
  .page-section .contact-form-holder .entry-content {
    color: white; }
  .newsletter-form-holder .page-section-header,
  .page-section .contact-form-holder .page-section-header {
    margin-bottom: 30px; }
    @media (min-width: 768px) {
      .newsletter-form-holder .page-section-header,
      .page-section .contact-form-holder .page-section-header {
        margin-bottom: 45px; } }
  .newsletter-form-holder .page-section-header h1,
  .page-section .contact-form-holder .page-section-header h1 {
    text-align: left; }
    @media (min-width: 768px) {
      .newsletter-form-holder .page-section-header h1,
      .page-section .contact-form-holder .page-section-header h1 {
        text-align: center; } }

.newsletter-form-holder {
  margin-top: 90px; }

.posts-overview .category-title {
  text-align: center; }

@media (min-width: 480px) {
  .entry-content {
    /* at this larger size, we can start to align images */ }
    .entry-content .alignleft, .entry-content img.alignleft {
      margin-right: 1.5em;
      display: inline;
      float: left; }
    .entry-content .alignright, .entry-content img.alignright {
      margin-left: 1.5em;
      display: inline;
      float: right; }
    .entry-content .aligncenter, .entry-content img.aligncenter {
      margin-right: auto;
      margin-left: auto;
      display: block;
      clear: both; }
  /* end .entry-content */ }

#mc_embed_signup input::-webkit-input-placeholder {
  /* Chrome, Firefox, Opera, Safari 10.1+ */
  color: #5c6b80;
  opacity: 1;
  /* Firefox */ }

#mc_embed_signup input::-moz-placeholder {
  /* Chrome, Firefox, Opera, Safari 10.1+ */
  color: #5c6b80;
  opacity: 1;
  /* Firefox */ }

#mc_embed_signup input::-ms-input-placeholder {
  /* Chrome, Firefox, Opera, Safari 10.1+ */
  color: #5c6b80;
  opacity: 1;
  /* Firefox */ }

#mc_embed_signup input::placeholder {
  /* Chrome, Firefox, Opera, Safari 10.1+ */
  color: #5c6b80;
  opacity: 1;
  /* Firefox */ }

#mc_embed_signup input:-ms-input-placeholder {
  /* Internet Explorer 10-11 */
  color: #5c6b80; }

#mc_embed_signup input::-ms-input-placeholder {
  /* Microsoft Edge */
  color: #5c6b80; }

.footer-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .footer-nav a,
  .footer-nav a:active {
    color: white;
    font-size: 1.6em;
    color: #fff;
    margin: 0 15px;
    display: inline-block; }
    .footer-nav a:hover,
    .footer-nav a:active:hover {
      text-decoration: underline;
      color: white; }

.footer-top {
  padding: 60px 0; }
  @media (min-width: 1024px) {
    .footer-top {
      padding: 90px 0; }
      .footer-top .wrap {
        padding: 0 36px; } }
  @media (min-width: 1200px) {
    .footer-top {
      padding: 90px 30px; } }
  .footer-top h3 {
    text-transform: uppercase;
    color: white;
    font-size: 1.8em;
    margin: 0 0 10px 0;
    padding: 0;
    font-family: montserrat, sans-serif;
    font-weight: 300;
    font-style: normal; }
  .footer-top ul.footer-links {
    padding-top: 5px; }
    .footer-top ul.footer-links a {
      font-family: montserrat, sans-serif;
      font-weight: 600;
      font-style: normal;
      font-size: 1.6em;
      color: white;
      font-size: 1.5em; }
      @media (min-width: 768px) {
        .footer-top ul.footer-links a {
          font-size: 2em; } }
      .footer-top ul.footer-links a:hover {
        text-decoration: underline; }
    .footer-top ul.footer-links li {
      margin-bottom: 10px; }
  .footer-top #mc_embed_signup {
    margin-top: 15px; }
    .footer-top #mc_embed_signup input {
      margin-bottom: 10px; }
  .footer-top .our-projects {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .footer-top .our-projects li a {
      display: block;
      width: 105px;
      height: 66px;
      margin: 0 18px 10px 0;
      text-indent: -9999px;
      background-image: url(../images/sprite.svg);
      background-repeat: no-repeat; }
      .footer-top .our-projects li a.open-hearts-space {
        background-position: -18px -292px; }
      .footer-top .our-projects li a.open-music-school {
        background-position: -142px -292px; }
      .footer-top .our-projects li a.open-language {
        background-position: -248px -292px; }
      .footer-top .our-projects li a.community {
        background-position: -18px -376px; }
      .footer-top .our-projects li a.open-kitchen {
        background-position: -136px -373px; }
      .footer-top .our-projects li a.open-music-lab {
        background-position: -248px -373px; }

.footer-bottom {
  padding: 30px 0; }
  @media (min-width: 768px) {
    .footer-bottom {
      padding: 15px 0; } }
  .footer-bottom p.address {
    text-align: center;
    font-size: 1.6em;
    color: #fff;
    padding: 10px 0 0 0; }
    .footer-bottom p.address a,
    .footer-bottom p.address a:visited {
      color: white; }
      .footer-bottom p.address a:hover,
      .footer-bottom p.address a:visited:hover {
        color: white;
        text-decoration: underline; }

#inner-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  #inner-header .hamburger {
    position: relative;
    z-index: 2002; }

.page-template-page-home .hero-item h1 {
  display: none; }

.page-template-page-home .iframe-holder {
  padding: 30px; }
  @media (min-width: 768px) {
    .page-template-page-home .iframe-holder {
      padding: 45px; } }
  .page-template-page-home .iframe-holder .video-holder {
    margin-top: 45px; }
    .page-template-page-home .iframe-holder .video-holder:first-child {
      margin-top: 0; }

.page-section.page-section-intro {
  padding: 60px 0; }
  @media (min-width: 768px) {
    .page-section.page-section-intro {
      padding: 90px 0; } }
  @media (min-width: 1024px) {
    .page-section.page-section-intro {
      padding: 120px 0; } }
  .page-section.page-section-intro .entry-content p,
  .page-section.page-section-intro .entry-content li {
    font-weight: 400; }
  .page-section.page-section-intro .logo {
    padding-right: 30px;
    padding-left: 30px; }
    .page-section.page-section-intro .logo img {
      width: 100%;
      max-width: 240px; }
      @media (min-width: 1024px) {
        .page-section.page-section-intro .logo img {
          max-width: 360px; } }

.page-section.page-section-donation {
  padding: 60px 0; }
  @media (min-width: 768px) {
    .page-section.page-section-donation {
      padding: 90px 0; } }
  @media (min-width: 1024px) {
    .page-section.page-section-donation {
      padding: 120px 0; } }
  @media (min-width: 1200px) {
    .page-section.page-section-donation {
      padding: 150px 0; } }
  .page-section.page-section-donation .page-section-header {
    padding: 0; }
    @media (min-width: 768px) {
      .page-section.page-section-donation .page-section-header {
        padding: 0 90px; } }
    .page-section.page-section-donation .page-section-header h1 {
      text-align: left; }
    .page-section.page-section-donation .page-section-header .subber p {
      text-align: left; }
  .page-section.page-section-donation .button-holder {
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
    @media (min-width: 768px) {
      .page-section.page-section-donation .button-holder {
        padding: 0 60px; } }
    @media (min-width: 1024px) {
      .page-section.page-section-donation .button-holder {
        padding: 0 180px; } }

.highlight-holder .picture_holder {
  width: 100%;
  height: 0;
  padding-bottom: 75%;
  margin-bottom: 15px;
  background-color: #0f5de5;
  overflow: hidden;
  position: relative; }
  .highlight-holder .picture_holder .picture {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center center; }
  .highlight-holder .picture_holder .meta {
    background-color: white;
    color: #fc3b3d;
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 30px 30px 90px 30px;
    opacity: 0;
    -webkit-transition: all .14s ease;
    transition: all .14s ease;
    display: none; }
    @media (min-width: 768px) {
      .highlight-holder .picture_holder .meta {
        display: block; } }
    .highlight-holder .picture_holder .meta h3 {
      color: #fc3b3d;
      font-family: montserrat, sans-serif;
      font-weight: 400;
      font-style: normal;
      font-size: 2em;
      margin-bottom: 10px;
      text-align: left;
      margin-top: 0; }
    .highlight-holder .picture_holder .meta p {
      font-size: 1.4em; }
    .highlight-holder .picture_holder .meta .read-more {
      position: absolute;
      bottom: 20px;
      right: 20px; }
  .highlight-holder .picture_holder:hover .meta {
    opacity: 1; }

.highlight-holder h3 {
  color: white;
  font-family: montserrat, sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 2em;
  margin: 0;
  text-align: left; }

.opportunities .opportunity {
  padding: 36px;
  color: white;
  -webkit-transition: all .14s ease;
  transition: all .14s ease;
  position: relative; }
  @media (min-width: 1024px) {
    .opportunities .opportunity {
      padding: 36px 48px; } }
  .opportunities .opportunity h1 {
    font-family: montserrat, sans-serif;
    font-weight: 400;
    font-style: normal;
    color: white;
    margin-bottom: 10px; }
  .opportunities .opportunity p {
    font-size: 1.6em; }
  .opportunities .opportunity a:hover {
    cursor: pointer;
    text-decoration: none; }
    .opportunities .opportunity a:hover .opportunity {
      background-color: #0f5de5; }
    .opportunities .opportunity a:hover .read-more {
      background-color: #fff;
      border-left: 3px solid #fff;
      border-top: 3px solid #fff;
      color: #0f5de5; }
      .opportunities .opportunity a:hover .read-more:hover {
        border-left: 3px solid #fff;
        border-top: 3px solid #fff; }
  .opportunities .opportunity .read-more {
    margin-top: 30px; }

.opportunities .button-holder {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 90px; }

.newsletter-holder {
  padding: 30px;
  margin-bottom: 45px;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  @media (min-width: 768px) {
    .newsletter-holder {
      padding: 30px 45px; } }
  .newsletter-holder input[type="submit"] {
    margin-top: 30px;
    float: right; }
    .newsletter-holder input[type="submit"]:hover {
      background-color: white;
      color: #fc3b3d; }
  .newsletter-holder .response {
    color: #fff;
    margin: 12px 0;
    font-weight: 500;
    font-size: 14px; }
    .newsletter-holder .response a,
    .newsletter-holder .response a:hover,
    .newsletter-holder .response a:visited {
      color: #fff;
      text-decoration: underline; }
  .newsletter-holder .entry-content {
    width: 100%; }
    .newsletter-holder .entry-content .mc-field-group {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; }

.modal-type-give .uk-modal-dialog.opportunity-modal {
  background-color: #0f5de5; }

.modal-type-receive .uk-modal-dialog.opportunity-modal {
  background-color: #1ab347; }

.page-section-awards {
  margin-bottom: 60px; }
  .page-section-awards li {
    padding: 0 15px;
    text-align: center; }
  .page-section-awards .award {
    margin: 0 auto;
    max-width: 360px;
    width: 100%;
    padding: 0 75px;
    position: relative; }
    .page-section-awards .award:before, .page-section-awards .award:after {
      content: "";
      width: 45px;
      height: 90px;
      position: absolute;
      top: 2px;
      background-image: url(../images/sprite.svg);
      background-repeat: no-repeat; }
    .page-section-awards .award:before {
      left: 15px;
      background-position: -23px -560px; }
    .page-section-awards .award:after {
      right: 15px;
      background-position: -226px -560px; }
    .page-section-awards .award h1 {
      text-align: center;
      color: white;
      margin: 0;
      padding: 0;
      font-family: montserrat, sans-serif;
      font-weight: 500;
      font-style: normal;
      font-size: 1.6em; }
    .page-section-awards .award h2 {
      text-align: center;
      color: white;
      margin: 3px 0;
      padding: 0;
      font-family: montserrat, sans-serif;
      font-weight: 700;
      font-style: normal;
      font-size: 2.4em; }
    .page-section-awards .award p.year {
      text-align: center;
      color: white;
      margin: 0;
      padding: 0;
      font-family: montserrat, sans-serif;
      font-weight: 500;
      font-style: normal;
      font-size: 1.6em; }

.uk-modal-dialog.opportunity-modal {
  background-color: #e881aa;
  padding: 45px;
  width: 900px; }
  @media (min-width: 768px) {
    .uk-modal-dialog.opportunity-modal {
      padding: 90px; } }
  @media (min-width: 1024px) {
    .uk-modal-dialog.opportunity-modal {
      padding: 120px; } }
  .uk-modal-dialog.opportunity-modal .page-section-header p.subber {
    font-family: montserrat, sans-serif;
    font-weight: 500;
    font-style: normal;
    color: white;
    font-size: 2em;
    margin: 0 0 24px 0; }
  .uk-modal-dialog.opportunity-modal h1 {
    color: white;
    font-size: 2.7em;
    margin: 0 0 24px 0;
    font-family: playfair-display, serif;
    font-weight: 900;
    font-style: italic; }
    @media (min-width: 768px) {
      .uk-modal-dialog.opportunity-modal h1 {
        font-size: 3.6em; } }
    @media (min-width: 1024px) {
      .uk-modal-dialog.opportunity-modal h1 {
        font-size: 4.8em; } }
  .uk-modal-dialog.opportunity-modal p {
    font-family: montserrat, sans-serif;
    font-weight: 400;
    font-style: normal;
    color: white;
    font-size: 1.6em;
    margin-bottom: 1em; }
    .uk-modal-dialog.opportunity-modal p:last-child {
      margin-bottom: 0; }
  .uk-modal-dialog.opportunity-modal p,
  .uk-modal-dialog.opportunity-modal h1 {
    color: white; }

.single-post #main article.category-our-community .hero-panel .hero-item {
  background-color: #e881aa; }

.single-post #main article.category-our-community a, .single-post #main article.category-our-community a:visited {
  color: #e881aa; }

.single-post .posts-overview .page-section.cat-our-community {
  background-color: #e881aa; }

.archive.category-our-community #main,
.archive.category-our-community .hero-panel .hero-item {
  background-color: #e881aa; }

.page-template-page-magazine .page-section.our-community {
  background-color: #e881aa; }

.single-post #main article.category-what-we-do .hero-panel .hero-item {
  background-color: #0f5de5; }

.single-post #main article.category-what-we-do a, .single-post #main article.category-what-we-do a:visited {
  color: #0f5de5; }

.single-post .posts-overview .page-section.cat-what-we-do {
  background-color: #0f5de5; }

.archive.category-what-we-do #main,
.archive.category-what-we-do .hero-panel .hero-item {
  background-color: #0f5de5; }

.page-template-page-magazine .page-section.what-we-do {
  background-color: #0f5de5; }

.single-post #main article.category-society .hero-panel .hero-item {
  background-color: #1ab347; }

.single-post #main article.category-society a, .single-post #main article.category-society a:visited {
  color: #1ab347; }

.single-post .posts-overview .page-section.cat-society {
  background-color: #1ab347; }

.archive.category-society #main,
.archive.category-society .hero-panel .hero-item {
  background-color: #1ab347; }

.page-template-page-magazine .page-section.society {
  background-color: #1ab347; }

.single-post #main article.category-mental-health-with-eed-be-eed .hero-panel .hero-item {
  background-color: #fda629; }

.single-post #main article.category-mental-health-with-eed-be-eed a, .single-post #main article.category-mental-health-with-eed-be-eed a:visited {
  color: #fda629; }

.single-post .posts-overview .page-section.cat-mental-health-with-eed-be-eed {
  background-color: #fda629; }

.archive.category-mental-health-with-eed-be-eed #main,
.archive.category-mental-health-with-eed-be-eed .hero-panel .hero-item {
  background-color: #fda629; }

.page-template-page-magazine .page-section.mental-health-with-eed-be-eed {
  background-color: #fda629; }

.single-post #main article.category-migration-matters .hero-panel .hero-item {
  background-color: #b480e5; }

.single-post #main article.category-migration-matters a, .single-post #main article.category-migration-matters a:visited {
  color: #b480e5; }

.single-post .posts-overview .page-section.cat-migration-matters {
  background-color: #b480e5; }

.archive.category-migration-matters #main,
.archive.category-migration-matters .hero-panel .hero-item {
  background-color: #b480e5; }

.page-template-page-magazine .page-section.migration-matters {
  background-color: #b480e5; }

.single-post #main article.category-opinion .hero-panel .hero-item {
  background-color: #fc3b3d; }

.single-post #main article.category-opinion a, .single-post #main article.category-opinion a:visited {
  color: #fc3b3d; }

.single-post .posts-overview .page-section.cat-opinion {
  background-color: #fc3b3d; }

.archive.category-opinion #main,
.archive.category-opinion .hero-panel .hero-item {
  background-color: #fc3b3d; }

.page-template-page-magazine .page-section.opinion {
  background-color: #fc3b3d; }

.single-post #main article.category-global-kitchen .hero-panel .hero-item {
  background-color: #0f5de5; }

.single-post #main article.category-global-kitchen a, .single-post #main article.category-global-kitchen a:visited {
  color: #0f5de5; }

.single-post .posts-overview .page-section.cat-global-kitchen {
  background-color: #0f5de5; }

.archive.category-global-kitchen #main,
.archive.category-global-kitchen .hero-panel .hero-item {
  background-color: #0f5de5; }

.page-template-page-magazine .page-section.global-kitchen {
  background-color: #0f5de5; }

.single-post #main article.category-community-news .hero-panel .hero-item {
  background-color: #e881aa; }

.single-post #main article.category-community-news a, .single-post #main article.category-community-news a:visited {
  color: #e881aa; }

.single-post .posts-overview .page-section.cat-community-news {
  background-color: #e881aa; }

.archive.category-community-news #main,
.archive.category-community-news .hero-panel .hero-item {
  background-color: #e881aa; }

.page-template-page-magazine .page-section.community-news {
  background-color: #e881aa; }

.single-post #main article.category-our-community .hero-panel .hero-item {
  background-color: #e881aa; }

.single-post #main article.category-our-community a, .single-post #main article.category-our-community a:visited {
  color: #e881aa; }

.single-post .posts-overview .page-section.cat-our-community {
  background-color: #e881aa; }

.archive.category-our-community #main,
.archive.category-our-community .hero-panel .hero-item {
  background-color: #e881aa; }

.page-template-page-magazine .page-section.our-community {
  background-color: #e881aa; }

.single-post #main article.category-our-projects .hero-panel .hero-item {
  background-color: #0f5de5; }

.single-post #main article.category-our-projects a, .single-post #main article.category-our-projects a:visited {
  color: #0f5de5; }

.single-post .posts-overview .page-section.cat-our-projects {
  background-color: #0f5de5; }

.archive.category-our-projects #main,
.archive.category-our-projects .hero-panel .hero-item {
  background-color: #0f5de5; }

.page-template-page-magazine .page-section.our-projects {
  background-color: #0f5de5; }

.single-post #main article.category-opinion .hero-panel .hero-item {
  background-color: #1ab347; }

.single-post #main article.category-opinion a, .single-post #main article.category-opinion a:visited {
  color: #1ab347; }

.single-post .posts-overview .page-section.cat-opinion {
  background-color: #1ab347; }

.archive.category-opinion #main,
.archive.category-opinion .hero-panel .hero-item {
  background-color: #1ab347; }

.page-template-page-magazine .page-section.opinion {
  background-color: #1ab347; }

.single-post #main article.category-from-the-team .hero-panel .hero-item {
  background-color: #fda629; }

.single-post #main article.category-from-the-team a, .single-post #main article.category-from-the-team a:visited {
  color: #fda629; }

.single-post .posts-overview .page-section.cat-from-the-team {
  background-color: #fda629; }

.archive.category-from-the-team #main,
.archive.category-from-the-team .hero-panel .hero-item {
  background-color: #fda629; }

.page-template-page-magazine .page-section.from-the-team {
  background-color: #fda629; }

.bg-white .entry-content p {
  color: white; }
  .bg-white .entry-content p em, .bg-white .entry-content p strong, .bg-white .entry-content p i {
    color: white; }

.single-projects #main.color-white {
  background-color: #fff; }
  .single-projects #main.color-white .hero-panel .hero-item {
    background-color: #fff; }

.bg-white {
  background-color: #fff;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

a.bg-white:hover {
  background-color: #f2f2f2; }

.uk-modal.bg-white {
  background-color: #fff; }

.page-section.bg-white {
  position: relative; }

.bg-black .entry-content p {
  color: white; }
  .bg-black .entry-content p em, .bg-black .entry-content p strong, .bg-black .entry-content p i {
    color: white; }

.single-projects #main.color-black {
  background-color: #000000; }
  .single-projects #main.color-black .hero-panel .hero-item {
    background-color: #000000; }

.bg-black {
  background-color: #000000;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

a.bg-black:hover {
  background-color: black; }

.uk-modal.bg-black {
  background-color: #000000; }

.page-section.bg-black {
  position: relative; }

.bg-pink .entry-content p {
  color: white; }
  .bg-pink .entry-content p em, .bg-pink .entry-content p strong, .bg-pink .entry-content p i {
    color: white; }

.single-projects #main.color-pink {
  background-color: #e881aa; }
  .single-projects #main.color-pink .hero-panel .hero-item {
    background-color: #e881aa; }

.bg-pink {
  background-color: #e881aa;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

a.bg-pink:hover {
  background-color: #e46b9b; }

.uk-modal.bg-pink {
  background-color: #e881aa; }

.page-section.bg-pink {
  position: relative; }

.bg-blue .entry-content p {
  color: white; }
  .bg-blue .entry-content p em, .bg-blue .entry-content p strong, .bg-blue .entry-content p i {
    color: white; }

.single-projects #main.color-blue {
  background-color: #0f5de5; }
  .single-projects #main.color-blue .hero-panel .hero-item {
    background-color: #0f5de5; }

.bg-blue {
  background-color: #0f5de5;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

a.bg-blue:hover {
  background-color: #0d53cd; }

.uk-modal.bg-blue {
  background-color: #0f5de5; }

.page-section.bg-blue {
  position: relative; }

.bg-green .entry-content p {
  color: white; }
  .bg-green .entry-content p em, .bg-green .entry-content p strong, .bg-green .entry-content p i {
    color: white; }

.single-projects #main.color-green {
  background-color: #1ab347; }
  .single-projects #main.color-green .hero-panel .hero-item {
    background-color: #1ab347; }

.bg-green {
  background-color: #1ab347;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

a.bg-green:hover {
  background-color: #179d3e; }

.uk-modal.bg-green {
  background-color: #1ab347; }

.page-section.bg-green {
  position: relative; }

.bg-orange .entry-content p {
  color: white; }
  .bg-orange .entry-content p em, .bg-orange .entry-content p strong, .bg-orange .entry-content p i {
    color: white; }

.single-projects #main.color-orange {
  background-color: #fda629; }
  .single-projects #main.color-orange .hero-panel .hero-item {
    background-color: #fda629; }

.bg-orange {
  background-color: #fda629;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

a.bg-orange:hover {
  background-color: #fd9b10; }

.uk-modal.bg-orange {
  background-color: #fda629; }

.page-section.bg-orange {
  position: relative; }

.bg-violet .entry-content p {
  color: white; }
  .bg-violet .entry-content p em, .bg-violet .entry-content p strong, .bg-violet .entry-content p i {
    color: white; }

.single-projects #main.color-violet {
  background-color: #b480e5; }
  .single-projects #main.color-violet .hero-panel .hero-item {
    background-color: #b480e5; }

.bg-violet {
  background-color: #b480e5;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

a.bg-violet:hover {
  background-color: #a86be1; }

.uk-modal.bg-violet {
  background-color: #b480e5; }

.page-section.bg-violet {
  position: relative; }

.bg-red .entry-content p {
  color: white; }
  .bg-red .entry-content p em, .bg-red .entry-content p strong, .bg-red .entry-content p i {
    color: white; }

.single-projects #main.color-red {
  background-color: #fc3b3d; }
  .single-projects #main.color-red .hero-panel .hero-item {
    background-color: #fc3b3d; }

.bg-red {
  background-color: #fc3b3d;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }

a.bg-red:hover {
  background-color: #fc2224; }

.uk-modal.bg-red {
  background-color: #fc3b3d; }

.page-section.bg-red {
  position: relative; }

.single-projects #main.color-black .hero-panel .hero-item {
  background-color: #0f5de5; }

.footer-bottom.bg-violet {
  position: relative; }

.page-template #mc_embed_signup .row-holder {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end; }
  .page-template #mc_embed_signup .row-holder input[type="submit"] {
    float: none;
    margin-top: 15px; }
  @media (min-width: 768px) {
    .page-template #mc_embed_signup .row-holder {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; } }

.spinner {
  -webkit-animation: rotate 2s linear infinite;
          animation: rotate 2s linear infinite;
  z-index: 2;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -25px 0 0 -25px;
  width: 50px;
  height: 50px; }
  .spinner .path {
    stroke: rgba(255, 255, 255, 0.66);
    stroke-linecap: round;
    -webkit-animation: dash 1.5s ease-in-out infinite;
            animation: dash 1.5s ease-in-out infinite; }

@-webkit-keyframes rotate {
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

@keyframes rotate {
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

@-webkit-keyframes dash {
  0% {
    stroke-dasharray: 1, 150;
    stroke-dashoffset: 0; }
  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -35; }
  100% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -124; } }

@keyframes dash {
  0% {
    stroke-dasharray: 1, 150;
    stroke-dashoffset: 0; }
  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -35; }
  100% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -124; } }

.page-template-page-donate-2022 header.header {
  display: none; }

.page-template-page-donate-2022 .wrap {
  max-width: 1360px; }

.page-template-page-donate-2022 .page-section.page-section-intro .logo {
  padding: 0 0 0 0; }

.page-template-page-donate-2022 .page-section-intro.bg-white .entry-content ul {
  position: relative; }
  .page-template-page-donate-2022 .page-section-intro.bg-white .entry-content ul li {
    margin-bottom: 6px; }
    .page-template-page-donate-2022 .page-section-intro.bg-white .entry-content ul li:before {
      content: "";
      width: 10px;
      height: 10px;
      background-color: #000000;
      border-radius: 100%;
      display: block;
      position: absolute;
      top: 11px;
      left: 0; }

.page-template-page-donate-2022 .hero-panel .logo,
.page-template-page-donate .hero-panel .logo {
  display: none; }

.page-template-page-donate-2022 .page-section-intro.bg-white .uk-grid,
.page-template-page-donate .page-section-intro.bg-white .uk-grid {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse; }
  @media (min-width: 768px) {
    .page-template-page-donate-2022 .page-section-intro.bg-white .uk-grid,
    .page-template-page-donate .page-section-intro.bg-white .uk-grid {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; } }

.page-template-page-donate-2022 .page-section-intro.bg-white .entry-content h2,
.page-template-page-donate .page-section-intro.bg-white .entry-content h2 {
  color: #fc3b3d; }

.page-template-page-donate-2022 .page-section.bg-violet h2,
.page-template-page-donate .page-section.bg-violet h2 {
  margin-bottom: 30px; }
  @media (min-width: 768px) {
    .page-template-page-donate-2022 .page-section.bg-violet h2,
    .page-template-page-donate .page-section.bg-violet h2 {
      margin-bottom: 45px; } }

.page-template-page-donate-2022 .page-section .page-section-header h1,
.page-template-page-donate .page-section .page-section-header h1 {
  padding: 0;
  text-align: left; }

.page-template-page-donate-2022 .video-holder,
.page-template-page-donate .video-holder {
  margin-top: 0; }
  .page-template-page-donate-2022 .video-holder p:last-child,
  .page-template-page-donate .video-holder p:last-child {
    margin-top: 10px;
    margin-bottom: 20px; }
    @media (min-width: 768px) {
      .page-template-page-donate-2022 .video-holder p:last-child,
      .page-template-page-donate .video-holder p:last-child {
        margin-top: 15px;
        margin-bottom: 30px; } }
    @media (min-width: 1024px) {
      .page-template-page-donate-2022 .video-holder p:last-child,
      .page-template-page-donate .video-holder p:last-child {
        margin-bottom: 0; } }

.page-template-page-donate-2022 .iframe-holder,
.page-template-page-donate .iframe-holder {
  width: 100%;
  max-width: 1000px;
  margin: 60px 0 0 0; }
  .page-template-page-donate-2022 .iframe-holder iframe,
  .page-template-page-donate .iframe-holder iframe {
    max-width: 100% !important; }

.page-template-page-donate-2022 .account-info,
.page-template-page-donate .account-info {
  padding: 0 0 90px 0; }

.hero-panel {
  overflow: hidden; }
  @media (min-width: 768px) {
    .hero-panel {
      height: 480px; } }
  .hero-panel .uk-slideshow-items {
    height: 100%; }
  .hero-panel .hero-item {
    background-color: #0f5de5; }
    .hero-panel .hero-item .img-holder {
      -webkit-filter: grayscale(1);
              filter: grayscale(1);
      background-size: cover;
      background-repeat: no-repeat;
      background-position: center center;
      mix-blend-mode: multiply;
      display: block;
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0; }
    .hero-panel .hero-item .wrap {
      position: relative;
      z-index: 3; }
    .hero-panel .hero-item h1 {
      text-align: left;
      color: white;
      margin: 0;
      font-family: playfair-display, serif;
      font-weight: 900;
      font-style: italic;
      z-index: 2;
      font-size: 3em;
      padding: 60px 0 0 30px; }
      @media (min-width: 768px) {
        .hero-panel .hero-item h1 {
          font-size: 6em;
          padding: 120px 0 0 45px; } }
  .hero-panel .uk-slideshow-nav {
    position: absolute;
    bottom: 30px;
    right: 30px; }
  .hero-panel .logo {
    position: absolute;
    top: 30px;
    left: 36px; }
    .hero-panel .logo img {
      width: auto;
      height: 90px; }
    @media (min-width: 480px) {
      .hero-panel .logo {
        left: 45px; }
        .hero-panel .logo img {
          width: auto;
          height: 120px; } }
    @media (min-width: 768px) {
      .hero-panel .logo {
        top: 75px; }
        .hero-panel .logo img {
          width: auto;
          height: 150px; } }
    @media (min-width: 1024px) {
      .hero-panel .logo {
        top: 50%;
        left: 90px;
        margin-top: -95px; }
        .hero-panel .logo img {
          width: auto;
          height: 190px; } }

/*********************
NAVIGATION STYLES
*********************/
/*
all navs have a .nav class applied via
the wp_menu function; this is so we can
easily write one group of styles for
the navs on the site so our css is cleaner
and more scalable.
*/
.hamburger-box {
  margin-top: 1px; }

.main-nav-top {
  background-color: #000000;
  overflow: hidden;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }
  .main-nav-top .nav li a {
    font-size: 1.2em; }
  .main-nav-top .hamburger {
    padding: 10px; }
  @media (min-width: 768px) {
    .main-nav-top {
      display: block; } }
  .main-nav-top nav.social-media {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
    @media (min-width: 768px) {
      .main-nav-top nav.social-media {
        right: 9px; } }
    .main-nav-top nav.social-media .nav-social {
      height: 100%; }

nav.social-media .nav-social li a {
  display: inline-block;
  width: 36px;
  height: 100%;
  text-indent: -9999px;
  background-image: url(../images/sprite.svg);
  background-repeat: no-repeat;
  margin: 0;
  padding: 0; }

nav.social-media .nav-social li.social-youtube a {
  background-position: -12px -103px; }

nav.social-media .nav-social li.social-twitter a {
  background-position: -76px -103px; }

nav.social-media .nav-social li.social-instagram a {
  background-position: -109px -103px; }

nav.social-media .nav-social li.social-facebook a {
  background-position: -46px -103px; }

nav.social-media .nav-social li.social-linkedin a {
  background-position: -142px -103px; }

.main-nav-bottom {
  background-color: #0f5de5; }
  .main-nav-bottom .nav li a {
    font-size: 1.5em;
    margin: 0 12px; }

header.header .wrap {
  position: relative; }

#home-link {
  position: relative;
  top: 0;
  left: 0;
  font-size: 1.2em;
  display: block;
  text-decoration: none;
  padding: 0.75em;
  margin: 0;
  color: white;
  -webkit-transition: all .14s ease;
  transition: all .14s ease;
  text-transform: uppercase;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #b480e5; }
  @media (min-width: 768px) {
    #home-link {
      position: absolute;
      top: 0;
      left: 0; } }

body.home #home-link {
  background-color: #e881aa; }

.main-nav-top .nav,
.main-nav-bottom .nav {
  border-bottom: 0;
  margin: 0;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  /* end .menu li */ }
  .main-nav-top .nav li,
  .main-nav-bottom .nav li {
    display: inline-block;
    /*
        so you really have to rethink your dropdowns for mobile.
        you don't want to have it expand too much because the
        screen is so small. How you manage your menu should
        depend on the project. Here's some great info on it:
        http://www.alistapart.com/articles/organizing-mobile/
        */ }
    .main-nav-top .nav li a,
    .main-nav-top .nav li a:visited,
    .main-nav-bottom .nav li a,
    .main-nav-bottom .nav li a:visited {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      text-decoration: none;
      padding: 0.75em;
      margin: 0 6px;
      color: white;
      -webkit-transition: all .14s ease;
      transition: all .14s ease;
      font-size: 1.4em;
      text-transform: uppercase;
      height: 100%; }
    .main-nav-top .nav li:hover a,
    .main-nav-top .nav li:focus a,
    .main-nav-bottom .nav li:hover a,
    .main-nav-bottom .nav li:focus a {
      background-color: #e881aa;
      color: white; }
    .main-nav-top .nav li.highlight a,
    .main-nav-top .nav li.highlight a:visited,
    .main-nav-bottom .nav li.highlight a,
    .main-nav-bottom .nav li.highlight a:visited {
      background-color: #fc3b3d;
      color: white;
      font-weight: 700;
      font-size: 1.6em; }
    .main-nav-top .nav li ul.sub-menu li a,
    .main-nav-top .nav li ul.children li a,
    .main-nav-bottom .nav li ul.sub-menu li a,
    .main-nav-bottom .nav li ul.children li a {
      padding-left: 30px; }
  @media (min-width: 1024px) {
    .main-nav-top .nav,
    .main-nav-bottom .nav {
      text-align: left;
      border: 0;
      /* end .menu ul li */ }
      .main-nav-top .nav ul,
      .main-nav-bottom .nav ul {
        background: #000000;
        margin-top: 0; }
      .main-nav-top .nav li,
      .main-nav-bottom .nav li {
        position: relative;
        /*
          plan your menus and drop-downs wisely.
          */
        /* showing sub-menus */ }
        .main-nav-top .nav li a,
        .main-nav-bottom .nav li a {
          border-bottom: 0;
          /*
                you can use hover styles here even though this size
                has the possibility of being a mobile device.
                */ }
          .main-nav-top .nav li a:hover, .main-nav-top .nav li a:focus,
          .main-nav-bottom .nav li a:hover,
          .main-nav-bottom .nav li a:focus {
            text-decoration: none; }
        .main-nav-top .nav li ul.sub-menu,
        .main-nav-top .nav li ul.children,
        .main-nav-bottom .nav li ul.sub-menu,
        .main-nav-bottom .nav li ul.children {
          margin-top: 0;
          border-top: 0;
          position: absolute;
          visibility: hidden;
          z-index: 8999;
          padding: 0;
          background-color: transparent;
          padding-left: 12px; }
          .main-nav-top .nav li ul.sub-menu li,
          .main-nav-top .nav li ul.children li,
          .main-nav-bottom .nav li ul.sub-menu li,
          .main-nav-bottom .nav li ul.children li {
            padding: 0;
            /*
              if you need to go deeper, go nuts
              just remember deeper menus suck
              for usability. k, bai.
              */ }
            .main-nav-top .nav li ul.sub-menu li a,
            .main-nav-top .nav li ul.sub-menu li a:active,
            .main-nav-top .nav li ul.children li a,
            .main-nav-top .nav li ul.children li a:active,
            .main-nav-bottom .nav li ul.sub-menu li a,
            .main-nav-bottom .nav li ul.sub-menu li a:active,
            .main-nav-bottom .nav li ul.children li a,
            .main-nav-bottom .nav li ul.children li a:active {
              background-color: #e881aa;
              padding-left: 10px;
              border-right: 0;
              display: block;
              width: 220px;
              margin: 0; }
            .main-nav-top .nav li ul.sub-menu li.current-menu-item a,
            .main-nav-top .nav li ul.sub-menu li.current-menu-item a:active, .main-nav-top .nav li ul.sub-menu li.current_page_item a,
            .main-nav-top .nav li ul.sub-menu li.current_page_item a:active,
            .main-nav-top .nav li ul.children li.current-menu-item a,
            .main-nav-top .nav li ul.children li.current-menu-item a:active,
            .main-nav-top .nav li ul.children li.current_page_item a,
            .main-nav-top .nav li ul.children li.current_page_item a:active,
            .main-nav-bottom .nav li ul.sub-menu li.current-menu-item a,
            .main-nav-bottom .nav li ul.sub-menu li.current-menu-item a:active,
            .main-nav-bottom .nav li ul.sub-menu li.current_page_item a,
            .main-nav-bottom .nav li ul.sub-menu li.current_page_item a:active,
            .main-nav-bottom .nav li ul.children li.current-menu-item a,
            .main-nav-bottom .nav li ul.children li.current-menu-item a:active,
            .main-nav-bottom .nav li ul.children li.current_page_item a,
            .main-nav-bottom .nav li ul.children li.current_page_item a:active {
              background-color: #fc3b3d; }
            .main-nav-top .nav li ul.sub-menu li:hover a,
            .main-nav-top .nav li ul.sub-menu li:focus a,
            .main-nav-top .nav li ul.children li:hover a,
            .main-nav-top .nav li ul.children li:focus a,
            .main-nav-bottom .nav li ul.sub-menu li:hover a,
            .main-nav-bottom .nav li ul.sub-menu li:focus a,
            .main-nav-bottom .nav li ul.children li:hover a,
            .main-nav-bottom .nav li ul.children li:focus a {
              background-color: #fc3b3d;
              color: white; }
            .main-nav-top .nav li ul.sub-menu li:last-child a,
            .main-nav-top .nav li ul.children li:last-child a,
            .main-nav-bottom .nav li ul.sub-menu li:last-child a,
            .main-nav-bottom .nav li ul.children li:last-child a {
              border-bottom: 0; }
            .main-nav-top .nav li ul.sub-menu li ul,
            .main-nav-top .nav li ul.children li ul,
            .main-nav-bottom .nav li ul.sub-menu li ul,
            .main-nav-bottom .nav li ul.children li ul {
              top: 0;
              left: 100%; }
        .main-nav-top .nav li:hover > ul,
        .main-nav-bottom .nav li:hover > ul {
          top: auto;
          visibility: visible; } }

/* end .nav */
@media (min-width: 768px) {
  .main-nav-bottom .nav li ul.sub-menu,
  .main-nav-bottom .nav li ul.children {
    padding-left: 6px; } }

body.single-post .main-nav-top .nav li#menu-item-13945 a,
.main-nav-top .nav li.current-menu-ancestor a,
.main-nav-top .nav li.current-menu-parent a,
.main-nav-top .nav li.current-menu-item a,
.main-nav-top .nav li.current_page_item a,
.main-nav-top .nav li.current_page_ancestor a,
body.single-post .main-nav-bottom .nav li#menu-item-13945 a,
.main-nav-bottom .nav li.current-menu-ancestor a,
.main-nav-bottom .nav li.current-menu-parent a,
.main-nav-bottom .nav li.current-menu-item a,
.main-nav-bottom .nav li.current_page_item a,
.main-nav-bottom .nav li.current_page_ancestor a {
  background-color: #e881aa; }

.nav li.current-menu-ancestor .current-menu-item a {
  background-color: #fc3b3d; }

#mobile-menu-modal {
  background-color: #0f5de5; }
  @media (min-width: 768px) {
    #mobile-menu-modal .menu-holder {
      width: 80%; } }
  #mobile-menu-modal .uk-modal-dialog {
    background-color: #0f5de5;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    padding: 0 30px;
    min-height: 100%; }
    @media (min-width: 768px) {
      #mobile-menu-modal .uk-modal-dialog {
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center; } }
    #mobile-menu-modal .uk-modal-dialog .logo img {
      max-width: 300px; }
    #mobile-menu-modal .uk-modal-dialog .menu-holder {
      margin-top: 90px;
      margin-bottom: 90px; }
      @media (min-width: 768px) {
        #mobile-menu-modal .uk-modal-dialog .menu-holder {
          margin-top: 120px;
          margin-bottom: 150px; } }
    #mobile-menu-modal .uk-modal-dialog .sub-menu {
      max-height: 0;
      overflow: hidden;
      -webkit-transition: all .2s ease;
      transition: all .2s ease; }
    #mobile-menu-modal .uk-modal-dialog .sub-menu-open .sub-menu {
      max-height: 2000px;
      padding: 15px 0 30px 0; }
    #mobile-menu-modal .uk-modal-dialog .nav {
      text-align: left; }
      #mobile-menu-modal .uk-modal-dialog .nav li a {
        text-align: left;
        font-family: montserrat, sans-serif;
        font-weight: 700;
        font-style: normal;
        font-size: 2.4em;
        margin: 60px 0 30px 0;
        padding: 0;
        color: white; }
        @media (min-width: 768px) {
          #mobile-menu-modal .uk-modal-dialog .nav li a {
            font-size: 3.6em; } }
      #mobile-menu-modal .uk-modal-dialog .nav li li a {
        font-family: montserrat, sans-serif;
        font-weight: 600;
        font-style: normal;
        font-size: 1.6em;
        color: white; }
        @media (min-width: 768px) {
          #mobile-menu-modal .uk-modal-dialog .nav li li a {
            font-size: 2em; } }
    #mobile-menu-modal .uk-modal-dialog nav.social-media .nav {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      position: absolute;
      bottom: 10px;
      left: 0;
      width: 100%;
      padding-left: 24px;
      padding-right: 24px; }
      #mobile-menu-modal .uk-modal-dialog nav.social-media .nav a {
        margin: 0;
        width: 36px;
        height: 36px; }
      @media (min-width: 768px) {
        #mobile-menu-modal .uk-modal-dialog nav.social-media .nav {
          -webkit-box-pack: center;
              -ms-flex-pack: center;
                  justify-content: center; } }

/*********************
LANGUAGE SWITCHER
*********************/
#inner-header nav.languages ul li {
  display: inline-block; }
  #inner-header nav.languages ul li span,
  #inner-header nav.languages ul li a {
    font-weight: 300;
    font-size: 1.2em;
    color: #393939;
    padding: 0;
    margin: 0px 8px;
    border: none;
    display: inline-block;
    width: 30px;
    height: 30px;
    line-height: 28px;
    text-align: center;
    background-color: #fff;
    border: 1px solid #393939;
    border-radius: 100%;
    -webkit-transition: all .14s ease;
    transition: all .14s ease; }
  #inner-header nav.languages ul li.active span {
    background-color: #f01d4f;
    color: #fff;
    border-color: #f01d4f; }
  #inner-header nav.languages ul li a:hover {
    color: #f01d4f;
    border-color: #f01d4f; }
  #inner-header nav.languages ul li:last-child span,
  #inner-header nav.languages ul li:last-child a {
    margin-right: 0; }

.category-description p {
  color: white;
  font-family: montserrat, sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 2em;
  margin-bottom: 10px;
  text-align: left;
  margin-top: 0; }

.page-template-page-partners .hero-item h1,
.page-template-page-downloads .hero-item h1,
.page-template-page-media .hero-item h1,
.page-template-page-team .hero-item h1,
.page-template-default .hero-item h1,
.error404 .hero-item h1,
.archive .hero-item h1,
.single-projects .hero-item h1,
.single-post .hero-item h1,
.page-template-page-donate .hero-item h1,
.page-template-page-magazine .hero-item h1,
.page-template-page-contact .hero-item h1 {
  display: none; }

.page-template-page-partners .hero-panel,
.page-template-page-downloads .hero-panel,
.page-template-page-media .hero-panel,
.page-template-page-team .hero-panel,
.page-template-default .hero-panel,
.error404 .hero-panel,
.archive .hero-panel,
.single-projects .hero-panel,
.single-post .hero-panel,
.page-template-page-donate .hero-panel,
.page-template-page-magazine .hero-panel,
.page-template-page-contact .hero-panel {
  background-color: #b480e5; }
  .page-template-page-partners .hero-panel .logo img,
  .page-template-page-downloads .hero-panel .logo img,
  .page-template-page-media .hero-panel .logo img,
  .page-template-page-team .hero-panel .logo img,
  .page-template-default .hero-panel .logo img,
  .error404 .hero-panel .logo img,
  .archive .hero-panel .logo img,
  .single-projects .hero-panel .logo img,
  .single-post .hero-panel .logo img,
  .page-template-page-donate .hero-panel .logo img,
  .page-template-page-magazine .hero-panel .logo img,
  .page-template-page-contact .hero-panel .logo img {
    display: none; }
  .page-template-page-partners .hero-panel .hero-item,
  .page-template-page-downloads .hero-panel .hero-item,
  .page-template-page-media .hero-panel .hero-item,
  .page-template-page-team .hero-panel .hero-item,
  .page-template-default .hero-panel .hero-item,
  .error404 .hero-panel .hero-item,
  .archive .hero-panel .hero-item,
  .single-projects .hero-panel .hero-item,
  .single-post .hero-panel .hero-item,
  .page-template-page-donate .hero-panel .hero-item,
  .page-template-page-magazine .hero-panel .hero-item,
  .page-template-page-contact .hero-panel .hero-item {
    background-color: #b480e5; }

.page-template-page-partners .hero-wrapper,
.page-template-page-downloads .hero-wrapper,
.page-template-page-media .hero-wrapper,
.page-template-page-team .hero-wrapper,
.page-template-default .hero-wrapper,
.error404 .hero-wrapper,
.archive .hero-wrapper,
.single-projects .hero-wrapper,
.single-post .hero-wrapper,
.page-template-page-donate .hero-wrapper,
.page-template-page-magazine .hero-wrapper,
.page-template-page-contact .hero-wrapper {
  position: relative; }
  .page-template-page-partners .hero-wrapper .titles,
  .page-template-page-downloads .hero-wrapper .titles,
  .page-template-page-media .hero-wrapper .titles,
  .page-template-page-team .hero-wrapper .titles,
  .page-template-default .hero-wrapper .titles,
  .error404 .hero-wrapper .titles,
  .archive .hero-wrapper .titles,
  .single-projects .hero-wrapper .titles,
  .single-post .hero-wrapper .titles,
  .page-template-page-donate .hero-wrapper .titles,
  .page-template-page-magazine .hero-wrapper .titles,
  .page-template-page-contact .hero-wrapper .titles {
    position: absolute;
    top: 36px;
    left: 0;
    width: 100%;
    padding: 0 36px; }
    @media (min-width: 768px) {
      .page-template-page-partners .hero-wrapper .titles,
      .page-template-page-downloads .hero-wrapper .titles,
      .page-template-page-media .hero-wrapper .titles,
      .page-template-page-team .hero-wrapper .titles,
      .page-template-default .hero-wrapper .titles,
      .error404 .hero-wrapper .titles,
      .archive .hero-wrapper .titles,
      .single-projects .hero-wrapper .titles,
      .single-post .hero-wrapper .titles,
      .page-template-page-donate .hero-wrapper .titles,
      .page-template-page-magazine .hero-wrapper .titles,
      .page-template-page-contact .hero-wrapper .titles {
        top: 60px;
        left: 0; } }
    @media (min-width: 1024px) {
      .page-template-page-partners .hero-wrapper .titles,
      .page-template-page-downloads .hero-wrapper .titles,
      .page-template-page-media .hero-wrapper .titles,
      .page-template-page-team .hero-wrapper .titles,
      .page-template-default .hero-wrapper .titles,
      .error404 .hero-wrapper .titles,
      .archive .hero-wrapper .titles,
      .single-projects .hero-wrapper .titles,
      .single-post .hero-wrapper .titles,
      .page-template-page-donate .hero-wrapper .titles,
      .page-template-page-magazine .hero-wrapper .titles,
      .page-template-page-contact .hero-wrapper .titles {
        padding: 0 90px; } }
    @media (min-width: 1200px) {
      .page-template-page-partners .hero-wrapper .titles,
      .page-template-page-downloads .hero-wrapper .titles,
      .page-template-page-media .hero-wrapper .titles,
      .page-template-page-team .hero-wrapper .titles,
      .page-template-default .hero-wrapper .titles,
      .error404 .hero-wrapper .titles,
      .archive .hero-wrapper .titles,
      .single-projects .hero-wrapper .titles,
      .single-post .hero-wrapper .titles,
      .page-template-page-donate .hero-wrapper .titles,
      .page-template-page-magazine .hero-wrapper .titles,
      .page-template-page-contact .hero-wrapper .titles {
        width: 60%; } }
    .page-template-page-partners .hero-wrapper .titles h1,
    .page-template-page-downloads .hero-wrapper .titles h1,
    .page-template-page-media .hero-wrapper .titles h1,
    .page-template-page-team .hero-wrapper .titles h1,
    .page-template-default .hero-wrapper .titles h1,
    .error404 .hero-wrapper .titles h1,
    .archive .hero-wrapper .titles h1,
    .single-projects .hero-wrapper .titles h1,
    .single-post .hero-wrapper .titles h1,
    .page-template-page-donate .hero-wrapper .titles h1,
    .page-template-page-magazine .hero-wrapper .titles h1,
    .page-template-page-contact .hero-wrapper .titles h1 {
      font-family: playfair-display, serif;
      font-weight: 700;
      font-style: italic;
      color: white; }
    .page-template-page-partners .hero-wrapper .titles h2,
    .page-template-page-downloads .hero-wrapper .titles h2,
    .page-template-page-media .hero-wrapper .titles h2,
    .page-template-page-team .hero-wrapper .titles h2,
    .page-template-default .hero-wrapper .titles h2,
    .error404 .hero-wrapper .titles h2,
    .archive .hero-wrapper .titles h2,
    .single-projects .hero-wrapper .titles h2,
    .single-post .hero-wrapper .titles h2,
    .page-template-page-donate .hero-wrapper .titles h2,
    .page-template-page-magazine .hero-wrapper .titles h2,
    .page-template-page-contact .hero-wrapper .titles h2 {
      font-family: montserrat, sans-serif;
      font-weight: 400;
      font-style: normal;
      color: white; }
  .page-template-page-partners .hero-wrapper .logo-white,
  .page-template-page-downloads .hero-wrapper .logo-white,
  .page-template-page-media .hero-wrapper .logo-white,
  .page-template-page-team .hero-wrapper .logo-white,
  .page-template-default .hero-wrapper .logo-white,
  .error404 .hero-wrapper .logo-white,
  .archive .hero-wrapper .logo-white,
  .single-projects .hero-wrapper .logo-white,
  .single-post .hero-wrapper .logo-white,
  .page-template-page-donate .hero-wrapper .logo-white,
  .page-template-page-magazine .hero-wrapper .logo-white,
  .page-template-page-contact .hero-wrapper .logo-white {
    width: 300px;
    height: auto;
    position: absolute;
    bottom: 60px;
    right: 60px; }

.page-template-page-partners .hero-wrapper .titles h1,
.page-template-page-downloads .hero-wrapper .titles h1,
.page-template-page-media .hero-wrapper .titles h1,
.page-template-page-team .hero-wrapper .titles h1,
.page-template-default .hero-wrapper .titles h1,
.error404 .hero-wrapper .titles h1,
.archive .hero-wrapper .titles h1,
.single-projects .hero-wrapper .titles h1,
.single-post .hero-wrapper .titles h1,
.page-template-page-donate .hero-wrapper .titles h1,
.page-template-page-magazine .hero-wrapper .titles h1,
.page-template-page-contact .hero-wrapper .titles h1 {
  font-size: 3em; }
  @media (min-width: 768px) {
    .page-template-page-partners .hero-wrapper .titles h1,
    .page-template-page-downloads .hero-wrapper .titles h1,
    .page-template-page-media .hero-wrapper .titles h1,
    .page-template-page-team .hero-wrapper .titles h1,
    .page-template-default .hero-wrapper .titles h1,
    .error404 .hero-wrapper .titles h1,
    .archive .hero-wrapper .titles h1,
    .single-projects .hero-wrapper .titles h1,
    .single-post .hero-wrapper .titles h1,
    .page-template-page-donate .hero-wrapper .titles h1,
    .page-template-page-magazine .hero-wrapper .titles h1,
    .page-template-page-contact .hero-wrapper .titles h1 {
      font-size: 6em; } }
  @media (min-width: 1024px) {
    .page-template-page-partners .hero-wrapper .titles h1,
    .page-template-page-downloads .hero-wrapper .titles h1,
    .page-template-page-media .hero-wrapper .titles h1,
    .page-template-page-team .hero-wrapper .titles h1,
    .page-template-default .hero-wrapper .titles h1,
    .error404 .hero-wrapper .titles h1,
    .archive .hero-wrapper .titles h1,
    .single-projects .hero-wrapper .titles h1,
    .single-post .hero-wrapper .titles h1,
    .page-template-page-donate .hero-wrapper .titles h1,
    .page-template-page-magazine .hero-wrapper .titles h1,
    .page-template-page-contact .hero-wrapper .titles h1 {
      font-size: 9em; } }

.page-template-page-partners .hero-wrapper .titles h2,
.page-template-page-downloads .hero-wrapper .titles h2,
.page-template-page-media .hero-wrapper .titles h2,
.page-template-page-team .hero-wrapper .titles h2,
.page-template-default .hero-wrapper .titles h2,
.error404 .hero-wrapper .titles h2,
.archive .hero-wrapper .titles h2,
.single-projects .hero-wrapper .titles h2,
.single-post .hero-wrapper .titles h2,
.page-template-page-donate .hero-wrapper .titles h2,
.page-template-page-magazine .hero-wrapper .titles h2,
.page-template-page-contact .hero-wrapper .titles h2 {
  font-size: 2.4em;
  margin: 15px 0 0 0; }
  @media (min-width: 768px) {
    .page-template-page-partners .hero-wrapper .titles h2,
    .page-template-page-downloads .hero-wrapper .titles h2,
    .page-template-page-media .hero-wrapper .titles h2,
    .page-template-page-team .hero-wrapper .titles h2,
    .page-template-default .hero-wrapper .titles h2,
    .error404 .hero-wrapper .titles h2,
    .archive .hero-wrapper .titles h2,
    .single-projects .hero-wrapper .titles h2,
    .single-post .hero-wrapper .titles h2,
    .page-template-page-donate .hero-wrapper .titles h2,
    .page-template-page-magazine .hero-wrapper .titles h2,
    .page-template-page-contact .hero-wrapper .titles h2 {
      font-size: 4.2em;
      margin: 21px 0 0 0; } }
  @media (min-width: 1024px) {
    .page-template-page-partners .hero-wrapper .titles h2,
    .page-template-page-downloads .hero-wrapper .titles h2,
    .page-template-page-media .hero-wrapper .titles h2,
    .page-template-page-team .hero-wrapper .titles h2,
    .page-template-default .hero-wrapper .titles h2,
    .error404 .hero-wrapper .titles h2,
    .archive .hero-wrapper .titles h2,
    .single-projects .hero-wrapper .titles h2,
    .single-post .hero-wrapper .titles h2,
    .page-template-page-donate .hero-wrapper .titles h2,
    .page-template-page-magazine .hero-wrapper .titles h2,
    .page-template-page-contact .hero-wrapper .titles h2 {
      font-size: 4.8em; } }

.page-template-page-partners .hero-panel,
.page-template-page-team .hero-panel,
.page-template-default .hero-panel,
.page-template-page-downloads .hero-panel {
  background-color: #0f5de5; }
  .page-template-page-partners .hero-panel .hero-item,
  .page-template-page-team .hero-panel .hero-item,
  .page-template-default .hero-panel .hero-item,
  .page-template-page-downloads .hero-panel .hero-item {
    background-color: #0f5de5; }

.single-projects .hero-wrapper .titles h1,
.single-post .hero-wrapper .titles h1 {
  font-size: 3.6em; }
  @media (min-width: 768px) {
    .single-projects .hero-wrapper .titles h1,
    .single-post .hero-wrapper .titles h1 {
      font-size: 6em; } }

.single-projects .hero-wrapper .titles h2,
.single-post .hero-wrapper .titles h2 {
  font-size: 1.8em; }
  @media (min-width: 768px) {
    .single-projects .hero-wrapper .titles h2,
    .single-post .hero-wrapper .titles h2 {
      font-size: 3.6em; } }

.page-template-page-magazine .page-section {
  padding-top: 60px; }
  @media (min-width: 768px) {
    .page-template-page-magazine .page-section {
      padding-top: 90px; } }

.single-post #main {
  background-color: white; }

.single-post .posts-overview {
  background-color: #b480e5; }
  .single-post .posts-overview h1 {
    text-align: center;
    font-family: playfair-display, serif;
    font-weight: 900;
    font-style: italic;
    font-size: 3em;
    padding: 0 45px; }
    .single-post .posts-overview h1 a {
      color: white; }
    @media (min-width: 768px) {
      .single-post .posts-overview h1 {
        font-size: 6em;
        padding: 0 90px; } }

.single-post .main-content {
  padding: 30px 0 90px 0; }
  @media (min-width: 768px) {
    .single-post .main-content {
      padding: 60px 0 150px 0; } }

.single-post .entry-content h1 {
  margin-bottom: 30px; }

.entry-content .article-intro p {
  font-size: 1.8em; }
  @media (min-width: 768px) {
    .entry-content .article-intro p {
      font-size: 2.4em; } }

.single-post .article-intro {
  margin-bottom: 45px; }

.intro-image {
  width: 100%;
  height: 0;
  padding-bottom: 100%;
  background-color: #0f5de5;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  display: block; }

.single-projects .slideshow-holder,
.single-projects .full_article {
  margin: 60px 0 0 0; }
  @media (min-width: 1024px) {
    .single-projects .slideshow-holder,
    .single-projects .full_article {
      margin: 120px 0 0 0; } }

.single-projects .article-intro .entry-content {
  padding: 45px 30px; }
  @media (min-width: 1024px) {
    .single-projects .article-intro .entry-content {
      padding: 45px 15px 0 60px; } }

.single-projects .entry-content {
  color: white; }
  .single-projects .entry-content h1 {
    padding: 0 25% 0 0; }

.single-projects .slideshow-holder {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.single-projects .main-content {
  padding-bottom: 90px; }

.single-projects .partners {
  margin-top: 90px; }

.single-projects .partner .picture {
  width: 100%;
  height: 0;
  padding-bottom: 100%;
  background-color: #fff;
  background-repeat: no-repeat;
  background-size: 80% auto;
  background-position: center center;
  display: block;
  margin-bottom: 15px; }

.member-switcher-nav a {
  display: block;
  text-align: center;
  font-size: 1.8em;
  color: white;
  padding: 15px 30px;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .member-switcher-nav a:hover, .member-switcher-nav a:visited {
    color: white; }

.page-template-page-team .member-switcher-content h1 {
  text-align: center;
  font-family: playfair-display, serif;
  font-weight: 900;
  font-style: italic;
  font-size: 3.6em;
  margin: 0 0 15px 0;
  color: white;
  margin-bottom: 45px;
  text-align: left; }
  @media (min-width: 768px) {
    .page-template-page-team .member-switcher-content h1 {
      font-size: 4.8em; } }
  @media (min-width: 768px) {
    .page-template-page-team .member-switcher-content h1 {
      text-align: center; } }

.page-template-page-team .member-switcher-content .entry-content p {
  text-align: center; }

.page-template-page-team .members-overview {
  margin: 45px 0; }

.page-template-page-team .board-member {
  padding: 0;
  margin: 30px 0 60px 0; }
  @media (min-width: 768px) {
    .page-template-page-team .board-member {
      padding: 0 15px; } }
  .page-template-page-team .board-member .featured-image {
    display: block;
    width: 100%;
    height: 0;
    padding-bottom: 75%;
    background-color: #0d53cd;
    overflow: hidden;
    position: relative;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover; }
  .page-template-page-team .board-member h1 {
    text-align: center;
    font-family: playfair-display, serif;
    font-weight: 900;
    font-style: italic;
    font-size: 3.6em;
    margin: 0 0 15px 0;
    text-align: left;
    margin: 18px 0;
    font-size: 2.7em; }
    @media (min-width: 768px) {
      .page-template-page-team .board-member h1 {
        font-size: 4.8em; } }
  .page-template-page-team .board-member .country,
  .page-template-page-team .board-member .function {
    font-size: 1.8em;
    color: white;
    font-weight: 600; }

.page-template-page-partners .uk-modal-dialog {
  padding-top: 46px; }

.testimonial-popup .uk-modal-dialog,
.page-template-page-partners .uk-modal-dialog,
.page-template-page-team .uk-modal-dialog {
  width: 810px;
  background-color: transparent;
  color: white; }

.testimonial-popup h2.function {
  font-size: 2.4em; }
  .testimonial-popup h2.function span {
    display: block;
    margin-top: 15px; }
  .testimonial-popup h2.function i {
    font-style: normal; }

#testimonials .board-member-detail .featured-image,
.testimonial-popup .board-member-detail .featured-image,
.page-template-page-partners .board-member-detail .featured-image,
.page-template-page-team .board-member-detail .featured-image {
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 66.66%;
  background-color: #0d53cd;
  overflow: hidden;
  position: relative;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  margin-bottom: 45px; }

#testimonials .board-member-detail h1,
.testimonial-popup .board-member-detail h1,
.page-template-page-partners .board-member-detail h1,
.page-template-page-team .board-member-detail h1 {
  text-align: center;
  font-family: playfair-display, serif;
  font-weight: 900;
  font-style: italic;
  font-size: 3.6em;
  margin: 0 0 15px 0;
  color: white;
  text-align: left;
  margin-bottom: 30px; }
  @media (min-width: 768px) {
    #testimonials .board-member-detail h1,
    .testimonial-popup .board-member-detail h1,
    .page-template-page-partners .board-member-detail h1,
    .page-template-page-team .board-member-detail h1 {
      font-size: 4.8em; } }
  @media (min-width: 768px) {
    #testimonials .board-member-detail h1,
    .testimonial-popup .board-member-detail h1,
    .page-template-page-partners .board-member-detail h1,
    .page-template-page-team .board-member-detail h1 {
      text-align: center;
      margin-bottom: 45px; } }

#testimonials .board-member-detail.partnership-detail .intro p,
.testimonial-popup .board-member-detail.partnership-detail .intro p,
.page-template-page-partners .board-member-detail.partnership-detail .intro p,
.page-template-page-team .board-member-detail.partnership-detail .intro p {
  margin-bottom: 15px; }
  #testimonials .board-member-detail.partnership-detail .intro p:last-child,
  .testimonial-popup .board-member-detail.partnership-detail .intro p:last-child,
  .page-template-page-partners .board-member-detail.partnership-detail .intro p:last-child,
  .page-template-page-team .board-member-detail.partnership-detail .intro p:last-child {
    margin-bottom: 0; }

#testimonials .board-member-detail .intro,
.testimonial-popup .board-member-detail .intro,
.page-template-page-partners .board-member-detail .intro,
.page-template-page-team .board-member-detail .intro {
  color: white;
  text-align: left;
  font-size: 2.4em;
  margin-bottom: 30px; }
  @media (min-width: 768px) {
    #testimonials .board-member-detail .intro,
    .testimonial-popup .board-member-detail .intro,
    .page-template-page-partners .board-member-detail .intro,
    .page-template-page-team .board-member-detail .intro {
      text-align: center;
      margin-bottom: 45px; } }
  #testimonials .board-member-detail .intro p a,
  #testimonials .board-member-detail .intro p a:visited,
  .testimonial-popup .board-member-detail .intro p a,
  .testimonial-popup .board-member-detail .intro p a:visited,
  .page-template-page-partners .board-member-detail .intro p a,
  .page-template-page-partners .board-member-detail .intro p a:visited,
  .page-template-page-team .board-member-detail .intro p a,
  .page-template-page-team .board-member-detail .intro p a:visited {
    color: white;
    text-decoration: underline; }

#testimonials .board-member-detail .email,
.testimonial-popup .board-member-detail .email,
.page-template-page-partners .board-member-detail .email,
.page-template-page-team .board-member-detail .email {
  margin-top: 9px; }

#testimonials .board-member-detail .email a,
#testimonials .board-member-detail .email a:visited,
.testimonial-popup .board-member-detail .email a,
.testimonial-popup .board-member-detail .email a:visited,
.page-template-page-partners .board-member-detail .email a,
.page-template-page-partners .board-member-detail .email a:visited,
.page-template-page-team .board-member-detail .email a,
.page-template-page-team .board-member-detail .email a:visited {
  color: white;
  font-family: montserrat, sans-serif;
  font-weight: 500;
  font-style: italic;
  text-decoration: underline; }

#testimonials .board-member-detail {
  margin-bottom: 30px;
  padding-left: 20px;
  padding-right: 20px; }
  #testimonials .board-member-detail h1 {
    text-align: left;
    color: #000000; }
  #testimonials .board-member-detail h1,
  #testimonials .board-member-detail .featured-image {
    margin-bottom: 21px; }
  #testimonials .board-member-detail .excerpt p {
    font-family: montserrat, sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 1.6em;
    color: #000000; }
    @media (min-width: 768px) {
      #testimonials .board-member-detail .excerpt p {
        font-size: 2em; } }

.page-template-page-partners .board-member-detail .featured-image {
  background-size: auto;
  background-color: white; }

.slider-naver {
  background-color: white;
  width: 30px;
  height: 30px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0; }
  @media (min-width: 768px) {
    .slider-naver {
      width: 44px;
      height: 44px; } }

.slideshow-holder .uk-slider {
  width: 100%;
  position: relative; }
  .slideshow-holder .uk-slider .gsbtb-image-holder {
    width: 100%;
    height: 0;
    padding-bottom: 75%;
    background-color: #0f5de5;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    display: block; }
  .slideshow-holder .uk-slider .uk-slider-nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    margin-top: 30px; }
  .slideshow-holder .uk-slider .uk-dotnav > * > * {
    border-color: white;
    width: 18px;
    height: 18px; }
  .slideshow-holder .uk-slider .uk-dotnav > .uk-active > * {
    background-color: white; }

main.color-white .slideshow-holder .uk-slider .uk-dotnav > * > * {
  border-color: #fc3b3d;
  width: 18px;
  height: 18px; }

main.color-white .slideshow-holder .uk-slider .uk-dotnav > .uk-active > * {
  background-color: #fc3b3d; }

.archive #main {
  background-color: white; }

.archive .grid-holder {
  padding: 60px 0; }
  @media (min-width: 1024px) {
    .archive .grid-holder {
      padding: 150px 0; } }

@media (min-width: 1024px) {
  .page-template-page-downloads .downloads-holder li {
    padding: 0 30px 30px 30px; } }

.page-template-page-downloads .downloads-holder a.file {
  background-color: #fc3b3d;
  color: white;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
  padding: 30px;
  text-align: center;
  -webkit-transition: all .14s ease;
  transition: all .14s ease; }
  @media (min-width: 1024px) {
    .page-template-page-downloads .downloads-holder a.file {
      padding: 60px 30px; } }
  .page-template-page-downloads .downloads-holder a.file:hover {
    background-color: #b480e5; }
    .page-template-page-downloads .downloads-holder a.file:hover .btn {
      background-color: #fc3b3d; }
  .page-template-page-downloads .downloads-holder a.file .filename {
    font-family: montserrat, sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 1.6em; }
    @media (min-width: 768px) {
      .page-template-page-downloads .downloads-holder a.file .filename {
        font-size: 2em; } }
  .page-template-page-downloads .downloads-holder a.file .btn {
    background-color: #b480e5;
    font-family: montserrat, sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 1.6em;
    color: white;
    margin-top: 30px;
    padding: 15px 30px;
    -webkit-transition: all .14s ease;
    transition: all .14s ease; }
    @media (min-width: 768px) {
      .page-template-page-downloads .downloads-holder a.file .btn {
        font-size: 2em; } }

.page-template-page-media .media-image-holder {
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 100%;
  position: relative;
  background-color: #fff; }
  .page-template-page-media .media-image-holder a,
  .page-template-page-media .media-image-holder span {
    width: 90%;
    height: 90%;
    left: 5%;
    top: 5%;
    position: absolute;
    background-color: #fff;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center center; }

.page-template-page-media .media-images {
  margin-top: 60px; }
  @media (min-width: 1024px) {
    .page-template-page-media .media-images {
      margin-top: 150px; } }

.page-template-page-media .bg-image-holder {
  background: #fc3b3d;
  width: 100%;
  height: 480px;
  position: relative; }
  .page-template-page-media .bg-image-holder .bg-image {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    width: 100%;
    -webkit-filter: grayscale(1);
            filter: grayscale(1);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    mix-blend-mode: multiply; }

.partners-holder.uk-grid-large {
  margin-top: 120px; }

.partners-holder h2.cat-title {
  color: #000000;
  margin: 75px 0 45px 0;
  text-align: left; }

.partners-holder .info-holder {
  width: 100%;
  padding-bottom: 100%;
  height: 0;
  position: relative;
  overflow: hidden;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 80% auto;
  background-color: white; }

.partners-holder .partner-info {
  position: relative; }

.partners-holder .content-holder {
  text-align: left;
  position: absolute;
  top: 0;
  left: 0;
  background-color: #fc3b3d;
  padding: 15px;
  width: 100%;
  height: 100%; }
  .partners-holder .content-holder p strong,
  .partners-holder .content-holder h2,
  .partners-holder .content-holder h3 {
    color: #fff; }
  .partners-holder .content-holder p {
    font-size: 1.6em; }
  .partners-holder .content-holder h3 {
    margin-top: 15px; }
  .partners-holder .content-holder .sub_title {
    margin-bottom: 10px; }

.page-template-page-partners .ways-holder h1 {
  text-align: center;
  margin-bottom: 90px; }

.page-template-page-partners .ways-holder h3 {
  text-align: center;
  margin-top: 10px; }

.page-template-page-partners .ways-holder .image-holder {
  width: 100%;
  padding-bottom: 100%;
  height: 0;
  position: relative;
  overflow: hidden;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  background-color: white;
  display: block; }

.page-template-page-events-php {
  background-color: #b480e5; }
  .page-template-page-events-php .member-switcher-nav {
    margin-top: 30px;
    margin-bottom: 60px; }
  .page-template-page-events-php .type-events-holder {
    margin-bottom: 15px;
    display: block;
    height: 100%; }
  .page-template-page-events-php .type-events {
    padding: 30px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: center; }
    @media (min-width: 1024px) {
      .page-template-page-events-php .type-events {
        text-align: left;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row; } }
  .page-template-page-events-php .single-event-holder {
    padding: 0;
    width: 100%;
    margin: 0 auto;
    max-width: 1440px; }
    @media (min-width: 768px) {
      .page-template-page-events-php .single-event-holder {
        padding: 0 45px; } }
    @media (min-width: 1024px) {
      .page-template-page-events-php .single-event-holder {
        padding: 0 90px; }
        .page-template-page-events-php .single-event-holder.no-padding {
          padding: 0; } }
    .page-template-page-events-php .single-event-holder .wrap {
      padding: 0 36px; }
      @media (min-width: 768px) {
        .page-template-page-events-php .single-event-holder .wrap {
          padding: 0; } }
  .page-template-page-events-php .event-description-holder {
    padding: 45px 0; }
  .page-template-page-events-php #events_oms .type-events {
    background-color: #1ab347; }
  .page-template-page-events-php #events_sprachcafe .type-events {
    background-color: #0f5de5; }
  .page-template-page-events-php #events_open_kitchen .type-events {
    background-color: #fda629; }
  .page-template-page-events-php #events_oas .type-events {
    background-color: #fc3b3d; }
  .page-template-page-events-php #events_general .type-events {
    background-color: #e881aa; }
  .page-template-page-events-php .type-events {
    padding: 45px; }
  .page-template-page-events-php #single_article .spinner {
    display: none; }
  .page-template-page-events-php .single-event .uk-grid {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; }
    @media (min-width: 768px) {
      .page-template-page-events-php .single-event .uk-grid {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row; } }
  .page-template-page-events-php #single_article.loading {
    min-height: 540px; }
    .page-template-page-events-php #single_article.loading .spinner {
      display: block; }
  .page-template-page-events-php .date-holder {
    text-align: center; }
    @media (min-width: 1024px) {
      .page-template-page-events-php .date-holder {
        text-align: right;
        width: 100px;
        -ms-flex-preferred-size: 100px;
            flex-basis: 100px;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
        -ms-flex-negative: 0;
            flex-shrink: 0; } }
    .page-template-page-events-php .date-holder .year,
    .page-template-page-events-php .date-holder .dayname {
      font-family: montserrat, sans-serif;
      font-weight: 400;
      font-style: normal;
      font-size: 1.6em;
      margin: 0;
      color: white; }
    .page-template-page-events-php .date-holder .date {
      font-family: montserrat, sans-serif;
      font-weight: 600;
      font-style: normal;
      font-size: 2.4em;
      margin: 0;
      color: white; }
  .page-template-page-events-php .avatar {
    width: 150px;
    height: 150px;
    border-radius: 100%;
    background-color: #0f5de5; }
  .page-template-page-events-php .avatar-holder {
    margin: 15px 0; }
    @media (min-width: 1024px) {
      .page-template-page-events-php .avatar-holder {
        margin: 0 30px; } }
  .page-template-page-events-php .read-more {
    margin-top: 45px; }
  .page-template-page-events-php p.date {
    font-size: 1.6em; }
  .page-template-page-events-php .slider-naver {
    position: absolute;
    top: 50%;
    margin-top: -22px; }
    .page-template-page-events-php .slider-naver.uk-slidenav-previous {
      left: 0; }
    .page-template-page-events-php .slider-naver.uk-slidenav-next {
      right: 0; }

.event-description-holder .events_button {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  margin-bottom: 45px; }

body.menu-open {
  overflow: hidden;
  height: 100%;
  -ms-touch-action: none;
  touch-action: none; }
  body.menu-open #mobile-menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    max-height: 100vh; }
    @media (min-width: 1024px) {
      body.menu-open #mobile-menu {
        display: none !important; } }

#mobile-menu {
  width: 100%;
  position: relative;
  overflow: hidden;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2000;
  height: 100vh;
  max-height: 0;
  -webkit-transition: all .2s ease;
  transition: all .2s ease;
  background-color: #fc3b3d; }
  #mobile-menu .nav-holder {
    padding: 240px 15px; }
  #mobile-menu .padder {
    width: 66%;
    background: #0f5de5;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }

#mobile-menu nav.languages {
  position: absolute;
  bottom: 24px;
  left: 0;
  width: 100%;
  text-align: center; }

.page-template-page-infographic .page-section {
  padding: 0; }
  .page-template-page-infographic .page-section .wrap {
    padding: 0; }
  .page-template-page-infographic .page-section img {
    margin: 0 auto; }

.page-section {
  padding: 60px 0; }
  @media (min-width: 768px) {
    .page-section {
      padding: 90px 0; } }
  @media (min-width: 1024px) {
    .page-section {
      padding: 120px 0 90px 0; } }
  .page-section .page-section-header {
    margin-bottom: 45px; }
    @media (min-width: 768px) {
      .page-section .page-section-header {
        margin-bottom: 105px; } }
    .page-section .page-section-header .subber {
      margin-top: 30px; }
      @media (min-width: 768px) {
        .page-section .page-section-header .subber {
          padding: 0 45px; } }
      @media (min-width: 1024px) {
        .page-section .page-section-header .subber {
          padding: 0 90px; } }
      .page-section .page-section-header .subber p {
        color: white;
        text-align: center;
        font-size: 2em; }
        .page-section .page-section-header .subber p a,
        .page-section .page-section-header .subber p a:visited {
          color: white;
          text-decoration: underline; }
          .page-section .page-section-header .subber p a:hover,
          .page-section .page-section-header .subber p a:visited:hover {
            text-decoration: none; }
    .page-section .page-section-header h1 {
      padding: 0;
      color: white;
      text-align: center;
      font-family: playfair-display, serif;
      font-weight: 900;
      font-style: italic;
      font-size: 2.7em; }
      .page-section .page-section-header h1 a {
        color: white; }
      @media (min-width: 480px) {
        .page-section .page-section-header h1 {
          font-size: 3.6em; } }
      @media (min-width: 768px) {
        .page-section .page-section-header h1 {
          font-size: 4.5em;
          padding: 0 45px; } }
      @media (min-width: 1024px) {
        .page-section .page-section-header h1 {
          font-size: 6em;
          padding: 0 90px; } }
    .page-section .page-section-header.simple-version h1 {
      padding: 0;
      text-align: left; }
  .page-section h2 {
    color: white;
    text-align: center;
    font-family: playfair-display, serif;
    font-weight: 900;
    font-style: italic;
    font-size: 3.6em;
    margin: 0 0 15px 0; }
    @media (min-width: 768px) {
      .page-section h2 {
        font-size: 4.8em; } }
  .page-section h3 {
    color: white;
    font-family: playfair-display, serif;
    font-weight: 900;
    font-style: italic;
    font-size: 2.7em;
    margin: 0 0 15px 0; }
  .page-section.bg-white h1 {
    color: #000000; }

.bg-grey .entry-content,
.bg-white .entry-content,
.single-projects #main.color-white .entry-content,
.single-post .entry-content {
  color: #000000; }
  .bg-grey .entry-content p a,
  .bg-grey .entry-content p a:visited,
  .bg-grey .entry-content p a:active,
  .bg-grey .entry-content p a:hover,
  .bg-grey .entry-content p,
  .bg-grey .entry-content li,
  .bg-grey .entry-content h1,
  .bg-grey .entry-content h2,
  .bg-grey .entry-content h3,
  .bg-grey .entry-content h4,
  .bg-grey .entry-content h5,
  .bg-grey .entry-content h6,
  .bg-white .entry-content p a,
  .bg-white .entry-content p a:visited,
  .bg-white .entry-content p a:active,
  .bg-white .entry-content p a:hover,
  .bg-white .entry-content p,
  .bg-white .entry-content li,
  .bg-white .entry-content h1,
  .bg-white .entry-content h2,
  .bg-white .entry-content h3,
  .bg-white .entry-content h4,
  .bg-white .entry-content h5,
  .bg-white .entry-content h6,
  .single-projects #main.color-white .entry-content p a,
  .single-projects #main.color-white .entry-content p a:visited,
  .single-projects #main.color-white .entry-content p a:active,
  .single-projects #main.color-white .entry-content p a:hover,
  .single-projects #main.color-white .entry-content p,
  .single-projects #main.color-white .entry-content li,
  .single-projects #main.color-white .entry-content h1,
  .single-projects #main.color-white .entry-content h2,
  .single-projects #main.color-white .entry-content h3,
  .single-projects #main.color-white .entry-content h4,
  .single-projects #main.color-white .entry-content h5,
  .single-projects #main.color-white .entry-content h6,
  .single-post .entry-content p a,
  .single-post .entry-content p a:visited,
  .single-post .entry-content p a:active,
  .single-post .entry-content p a:hover,
  .single-post .entry-content p,
  .single-post .entry-content li,
  .single-post .entry-content h1,
  .single-post .entry-content h2,
  .single-post .entry-content h3,
  .single-post .entry-content h4,
  .single-post .entry-content h5,
  .single-post .entry-content h6 {
    color: #000000; }

.entry-content {
  padding: 0;
  color: #fff;
  /*
  image alignment on a screen this size may be
  a bit difficult. It's set to start aligning
  and floating images at the next breakpoint,
  but it's up to you. Feel free to change it up.
  */ }
  .entry-content p,
  .entry-content li,
  .entry-content h1,
  .entry-content h2,
  .entry-content h3,
  .entry-content h4,
  .entry-content h5,
  .entry-content h6 {
    color: #fff; }
  .entry-content a,
  .entry-content a:visited {
    color: white;
    text-decoration: underline; }
    .entry-content a.read-more,
    .entry-content a:visited.read-more {
      text-decoration: none; }
    .entry-content a:hover,
    .entry-content a:visited:hover {
      text-decoration: none; }
  .entry-content p {
    font-family: montserrat, sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 1.6em;
    margin: 0 0 1.5em; }
    @media (min-width: 768px) {
      .entry-content p {
        font-size: 2em; } }
    .entry-content p:last-child {
      margin-bottom: 0; }
  .entry-content li {
    font-family: montserrat, sans-serif;
    font-weight: 600;
    font-style: normal;
    font-size: 1.6em;
    padding-left: 30px;
    position: relative; }
    @media (min-width: 768px) {
      .entry-content li {
        font-size: 2em; } }
    .entry-content li:before {
      content: "";
      position: absolute;
      width: 10px;
      height: 10px;
      background-color: white;
      border-radius: 10px;
      top: 10px;
      left: 0px; }
  .entry-content h1 {
    text-align: left;
    font-family: playfair-display, serif;
    font-weight: 900;
    font-style: italic;
    font-size: 3.6em;
    margin: 120px 0 15px 0;
    padding: 0; }
    .entry-content h1:first-child {
      margin-top: 0; }
    .entry-content h1 a {
      color: white; }
    @media (min-width: 480px) {
      .entry-content h1 {
        font-size: 4.2em; } }
    @media (min-width: 768px) {
      .entry-content h1 {
        font-size: 6em;
        margin: 120px 0 45px 0; } }
  .entry-content h2 {
    text-align: left;
    font-family: montserrat, sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 2.4em;
    margin: 60px 0 30px 0;
    padding: 0; }
    @media (min-width: 768px) {
      .entry-content h2 {
        font-size: 3.6em; } }
    .entry-content h2:first-child {
      margin-top: 0; }
  .entry-content ul, .entry-content ol {
    margin-bottom: 3em; }
  .entry-content iframe {
    width: 100%; }
  .entry-content table {
    width: 100%;
    border: 1px solid #eaedf2;
    margin-bottom: 1.5em; }
    .entry-content table caption {
      margin: 0 0 7px;
      font-size: 0.75em;
      color: #9fa6b4;
      text-transform: uppercase;
      letter-spacing: 1px; }
  .entry-content tr {
    border-bottom: 1px solid #eaedf2; }
    .entry-content tr:nth-child(even) {
      background-color: #f8f9fa; }
  .entry-content td {
    padding: 7px;
    border-right: 1px solid #eaedf2; }
    .entry-content td:last-child {
      border-right: 0; }
  .entry-content th {
    background-color: #f8f9fa;
    border-bottom: 1px solid #eaedf2;
    border-right: 1px solid #eaedf2; }
    .entry-content th:last-child {
      border-right: 0; }
  .entry-content blockquote {
    margin: 0 0 1.5em 0.75em;
    padding: 0 0 0 0.75em;
    border-left: 3px solid #0f5de5;
    font-style: italic;
    color: #9fa6b4; }
  .entry-content dd {
    margin-left: 0;
    font-size: 0.9em;
    color: #787878;
    margin-bottom: 1.5em; }
  .entry-content img {
    margin: 30px 0;
    max-width: 100%;
    height: auto; }
  .entry-content .wp-block-image:first-child img {
    margin-top: 0; }
  .entry-content .size-auto,
  .entry-content .size-full,
  .entry-content .size-large,
  .entry-content .size-medium,
  .entry-content .size-thumbnail {
    max-width: 100%;
    height: auto; }
  .entry-content pre {
    background: #000000;
    color: #f8f9fa;
    font-size: 0.9em;
    padding: 1.5em;
    margin: 0 0 1.5em;
    border-radius: 3px; }
  @media (min-width: 480px) {
    .entry-content {
      /* at this larger size, we can start to align images */ }
      .entry-content .alignleft, .entry-content img.alignleft {
        margin-right: 1.5em;
        display: inline;
        float: left; }
      .entry-content .alignright, .entry-content img.alignright {
        margin-left: 1.5em;
        display: inline;
        float: right; }
      .entry-content .aligncenter, .entry-content img.aligncenter {
        margin-right: auto;
        margin-left: auto;
        display: block;
        clear: both; } }

/* end .entry-content */
/*********************
RETINA (2x RESOLUTION DEVICES)
This applies to the retina iPhone (4s) and iPad (2,3) along with
other displays with a 2x resolution. You can also create a media
query for retina AND a certain size if you want. Go Nuts.
*********************/
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) {
  /******************************************************************
Site Name: 
Author: 

Stylesheet: Retina Screens & Devices Stylesheet

When handling retina screens you need to make adjustments, especially
if you're not using font icons. Here you can add them in one neat
place.

******************************************************************/
  /* 

EXAMPLE 
Let's say you have an image and you need to make sure it looks ok
on retina screens. Let's say we have an icon which dimension are
24px x 24px. In your regular stylesheets, it would look something
like this:

.icon {
	width: 24px;
	height: 24px;
	background: url(img/test.png) no-repeat;
}

For retina screens, we have to make some adjustments, so that image
doesn't look blurry. So, taking into account the image above and the
dimensions, this is what we would put in our retina stylesheet:

.icon {
	background: url(img/test@2x.png) no-repeat;
	background-size: 24px 24px;
}

So, you would create the same icon, but at double the resolution, meaning 
it would be 48px x 48px. You'd name it the same, but with a @2x at the end
(this is pretty standard practice). Set the background image so it matches
the original dimensions and you are good to go. 

*/ }

/*********************
PRINT STYLESHEET
Feel free to customize this. Remember to add things that won't make
sense to print at the bottom. Things like nav, ads, and forms should
be set to display none.
*********************/
@media print {
  /******************************************************************
Site Name:
Author:

Stylesheet: Print Stylesheet

This is the print stylesheet. There's probably not a lot
of reasons to edit this stylesheet. If you want to
though, go for it.

******************************************************************/
  * {
    background: transparent !important;
    color: black !important;
    text-shadow: none !important;
    -webkit-filter: none !important;
            filter: none !important;
    -ms-filter: none !important; }
  a,
  a:visited {
    color: #444 !important;
    text-decoration: underline; }
    a:after, a:visited:after {
      content: " (" attr(href) ")"; }
    a abbr[title]:after, a:visited abbr[title]:after {
      content: " (" attr(title) ")"; }
  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: ""; }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  .sidebar,
  .page-navigation,
  .wp-prev-next,
  .respond-form,
  nav {
    display: none; } }
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyIsIi4uL3Njc3Mvc3R5bGUuc2NzcyIsIi4uL3Njc3MvcGFydGlhbHMvX25vcm1hbGl6ZS5zY3NzIiwiLi4vc2Nzcy9wYXJ0aWFscy9fdmFyaWFibGVzLnNjc3MiLCIuLi9zY3NzL3BhcnRpYWxzL190eXBvZ3JhcGh5LnNjc3MiLCIuLi9zY3NzL3BhcnRpYWxzL19taXhpbnMuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvYmFzZS5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvdmFyaWFibGVzLXRoZW1lLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9taXhpbnMtdGhlbWUuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvbGluay5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9oZWFkaW5nLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2RpdmlkZXIuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvbWl4aW4uc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvbGlzdC5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9kZXNjcmlwdGlvbi1saXN0LnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL3RhYmxlLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2ljb24uc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvZm9ybS1yYW5nZS5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9mb3JtLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2J1dHRvbi5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9wcm9ncmVzcy5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9zZWN0aW9uLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2NvbnRhaW5lci5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy90aWxlLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2NhcmQuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvY2xvc2Uuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvc3Bpbm5lci5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy90b3RvcC5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9tYXJrZXIuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvYWxlcnQuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvcGxhY2Vob2xkZXIuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvYmFkZ2Uuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvbGFiZWwuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvb3ZlcmxheS5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9hcnRpY2xlLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2NvbW1lbnQuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvc2VhcmNoLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2FjY29yZGlvbi5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9kcm9wLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2Ryb3Bkb3duLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL21vZGFsLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL3NsaWRlc2hvdy5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9zbGlkZXIuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvc3RpY2t5LnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL29mZmNhbnZhcy5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9zd2l0Y2hlci5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9sZWFkZXIuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL3Rvb2x0aXAuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvc29ydGFibGUuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvY291bnRkb3duLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL2dyaWQuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvbmF2LnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL25hdmJhci5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9zdWJuYXYuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvYnJlYWRjcnVtYi5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9wYWdpbmF0aW9uLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL3RhYi5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9zbGlkZW5hdi5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9kb3RuYXYuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvdGh1bWJuYXYuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvaWNvbm5hdi5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9saWdodGJveC5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9hbmltYXRpb24uc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvd2lkdGguc2NzcyIsIi4uL3Njc3MvaW5jbHVkZXMvX3dpZHRoLWV4dGVuc2lvbi5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9oZWlnaHQuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvdGV4dC5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9jb2x1bW4uc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvY292ZXIuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvYmFja2dyb3VuZC5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9hbGlnbi5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9zdmcuc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvdXRpbGl0eS5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9mbGV4LnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL21hcmdpbi5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9wYWRkaW5nLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL3Bvc2l0aW9uLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL3RyYW5zaXRpb24uc2NzcyIsIi4uL3Vpa2l0L3NyYy9zY3NzL2NvbXBvbmVudHMvdmlzaWJpbGl0eS5zY3NzIiwiLi4vdWlraXQvc3JjL3Njc3MvY29tcG9uZW50cy9pbnZlcnNlLnNjc3MiLCIuLi91aWtpdC9zcmMvc2Nzcy9jb21wb25lbnRzL3ByaW50LnNjc3MiLCIuLi9zY3NzL3BhcnRpYWxzL19mdW5jdGlvbnMuc2NzcyIsIi4uL3Njc3MvcGFydGlhbHMvX2J1dHRvbnMuc2NzcyIsIi4uL3Njc3MvcGFydGlhbHMvX2Zvcm1zLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvX2hhbWJ1cmdlcnMuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy9fYmFzZS5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL18zZHguc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fM2R4LXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fM2R5LnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvXzNkeS1yLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvXzNkeHkuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fM2R4eS1yLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX2Fycm93LnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX2Fycm93LXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fYXJyb3dhbHQuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fYXJyb3dhbHQtci5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL19hcnJvd3R1cm4uc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fYXJyb3d0dXJuLXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fYm9yaW5nLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX2NvbGxhcHNlLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX2NvbGxhcHNlLXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fZWxhc3RpYy5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL19lbGFzdGljLXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fZW1waGF0aWMuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fZW1waGF0aWMtci5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL19taW51cy5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL19zbGlkZXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fc2xpZGVyLXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fc3Bpbi5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL19zcGluLXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fc3ByaW5nLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX3NwcmluZy1yLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX3N0YW5kLnNjc3MiLCIuLi9zY3NzL2hhbWJ1cmdlcnMvdHlwZXMvX3N0YW5kLXIuc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fc3F1ZWV6ZS5zY3NzIiwiLi4vc2Nzcy9oYW1idXJnZXJzL3R5cGVzL192b3J0ZXguc2NzcyIsIi4uL3Njc3MvaGFtYnVyZ2Vycy90eXBlcy9fdm9ydGV4LXIuc2NzcyIsIi4uL3Njc3MvcGFydGlhbHMvX2Jhc2Uuc2NzcyIsIi4uL3Njc3MvcGFydGlhbHMvX2Zvb3Rlci5zY3NzIiwiLi4vc2Nzcy9wYXJ0aWFscy9faGVhZGVyLnNjc3MiLCIuLi9zY3NzL3BhcnRpYWxzL19ob21lLnNjc3MiLCIuLi9zY3NzL3BhcnRpYWxzL19jb2xvcnMuc2NzcyIsIi4uL3Njc3MvcGFydGlhbHMvX2NvbnRhY3Quc2NzcyIsIi4uL3Njc3MvcGFydGlhbHMvX3NwaW5uZXIuc2NzcyIsIi4uL3Njc3MvcGFydGlhbHMvX2RvbmF0ZS5zY3NzIiwiLi4vc2Nzcy9wYXJ0aWFscy9faGVyby5zY3NzIiwiLi4vc2Nzcy9wYXJ0aWFscy9fbWVudS5zY3NzIiwiLi4vc2Nzcy9wYXJ0aWFscy9fbWFnYXppbmUuc2NzcyIsIi4uL3Njc3MvcGFydGlhbHMvX3NpbmdsZS5zY3NzIiwiLi4vc2Nzcy9wYXJ0aWFscy9fcHJvamVjdHMuc2NzcyIsIi4uL3Njc3MvcGFydGlhbHMvX3RlYW0uc2NzcyIsIi4uL3Njc3MvcGFydGlhbHMvX3NsaWRlci5zY3NzIiwiLi4vc2Nzcy9wYXJ0aWFscy9fYXJjaGl2ZS5zY3NzIiwiLi4vc2Nzcy9wYXJ0aWFscy9fZG93bmxvYWRzLnNjc3MiLCIuLi9zY3NzL3BhcnRpYWxzL19tZWRpYS5zY3NzIiwiLi4vc2Nzcy9wYXJ0aWFscy9fcGFydG5lcnMuc2NzcyIsIi4uL3Njc3MvcGFydGlhbHMvX2NhbGVuZGFyLnNjc3MiLCIuLi9zY3NzL3BhcnRpYWxzL19tZW51LW1vYmlsZS5zY3NzIiwiLi4vc2Nzcy9wYXJ0aWFscy9fZW50cnktY29udGVudC5zY3NzIiwiLi4vc2Nzcy9wYXJ0aWFscy9fMnguc2NzcyIsIi4uL3Njc3MvcGFydGlhbHMvX3ByaW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCLG1EQUFtRDtBQUVuRDs7Ozs7Ozs7Ozs7Ozs7bUVBY21FO0FBRW5FOzs7OztzQkFLc0I7QUN2QnRCLGtGQUFrRjtBQUdsRjs7Z0ZBRWdGO0FBRWhGOztHQUVHO0FBRUg7Ozs7Ozs7Ozs7OztFQVlJLGVBQWMsRUFDakI7O0FBRUQ7O0dBRUc7QUFFSDs7O0VBR0ksc0JBQXFCLEVBQ3hCOztBQUVEOzs7R0FHRztBQUVIO0VBQ0ksY0FBYTtFQUNiLFVBQVMsRUFDWjs7QUFFRDs7O0dBR0c7QUZlSDs7RUVYSSxjQUFhLEVBQ2hCOztBQUVEOztnRkFFZ0Y7QUFFaEY7Ozs7R0FJRztBQUVIO0VBQ0ksd0JBQXVCO0VBQUUsT0FBTztFQUNoQywyQkFBMEI7RUFBRSxPQUFPO0VBQ25DLCtCQUE4QjtFQUFFLE9BQU8sRUFDMUM7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLFVBQVMsRUFDWjs7QUFFRDs7Z0ZBRWdGO0FBRWhGOztHQUVHO0FBRUg7RUFDSSx3QkFBdUIsRUFDMUI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLHFCQUFvQixFQUN2Qjs7QUFFRDs7R0FFRztBQUVIOztFQUVJLFdBQVUsRUFDYjs7QUFFRDs7Z0ZBRWdGO0FBRWhGOzs7R0FHRztBQUVIO0VBQ0ksZUFBYztFQUNkLGlCQUFn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QjtBQUNuQjs7RUFFSSw4QlpXeUM7RVlWekMsWVoxS3dCO0VDa1VRLHNCRHd1QnFCLEVZOTNCeEQ7O0FBRUQsc0JBQXNCO0FBQ3RCOztFQUVJLDhCWkswQztFWUoxQyxZWmxMd0I7RUNtVVMsc0JEd3VCcUIsRVl2M0J6RDs7QUFFRDs7R0FFRztBQUVIO0VBQ0ksMEJaeEsrQjtFWXlLL0IsWVp2THVCO0VDK1RHLDhCQUE4QyxFV3RJM0U7O0FBRUQsbUJBQW1CO0FBQ25COztFQUVJLDBCWlRvRTtFWVVwRSxZWi9MdUIsRVlpTTFCOztBQUVELHNCQUFzQjtBQUN0Qjs7RUFFSSwwQlpmc0U7RVlnQnRFLFladk11QixFWXlNMUI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNJLHVCWnpKOEI7RVkwSjlCLFlaak51QjtFQ2tVSyw4QkFBOEMsRVcvRzdFOztBQUVELG1CQUFtQjtBQUNuQjs7RUFFSSwwQlo3QndFO0VZOEJ4RSxZWnpOdUIsRVkyTjFCOztBQUVELHNCQUFzQjtBQUN0Qjs7RUFFSSwwQlpuQzBFO0VZb0MxRSxZWmpPdUIsRVltTzFCOztBQUVEOztHQUVHO0FBRUg7RUFDSSwwQlpuTjhCO0VZb045QixZWjNPdUI7RUNxVUUsOEJBQThDLEVXeEYxRTs7QUFFRCxtQkFBbUI7QUFDbkI7O0VBRUksMEJaakRrRTtFWWtEbEUsWVpuUHVCLEVZcVAxQjs7QUFFRCxzQkFBc0I7QUFDdEI7O0VBRUksMEJadkRvRTtFWXdEcEUsWVozUHVCLEVZNlAxQjs7QUFFRDs7O0dBR0c7QUFFSDs7OztFQUlJLDhCWm5Fb0M7RVlvRXBDLFlaMU5xQjtFQ3lSTSxzQkQ3TVIsRVlnSnRCOztBQUdEOzhFQUM4RTtBQUU5RTtFQUNJLGdCWjVRc0I7RVk2UXRCLGtCWi9HZ0Y7RVlnSGhGLG9CWnhPNkIsRVkwT2hDOztBQUVEO0VBQ0ksZ0JaNVB1QjtFWTZQdkIsa0JacEhnRjtFWXFIaEYsb0JaL082QixFWWlQaEM7O0FBR0Q7OEVBQzhFO0FBRTlFOzs7O0dBSUc7QUFFSDtFQUNJLE9BQU87RUFDUCxXQUFVO0VBQ1YsaUJaaE9vQjtFWWlP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Ozs7R0FHRztBQXlCSDs4RUFDOEU7QUFFOUU7RUFDSSxrQmpCcEQyQjtFaUJxRDNCLGlCakJpRndCLEVpQi9FM0I7O0FBR0Q7OEVBQzhFO0FBRTlFO0VBQ0ksbUJBQWtCO0VBQ2xCLFVqQm5KZ0I7RWlCb0poQixZakJwSmdCO0VpQnFKaEIsV0FBVSxFQUViOztBQUVEOztHQUVHO0FBRUg7RUFBaUMsY0FBYSxFQUFJOztBQUdsRDs4RUFDOEU7QUFFOUU7RUFDSSxpQmpCM0lvQjtFQ29kRSxvRERpZ0I0QjtVQ2pnQjVCLDRDRGlnQjRCLEVpQngwQnJEOztBQUdEOzhFQUM4RTtBQUU5RTs7O0dBR0c7QUFaVztFQWVWLGlCakJ6Sm9CO0VpQjBKcEIsWWpCaE5lO0VDMmdCUyxtREQrZjBCO1VDL2YxQiwyQ0QrZjBCLEVpQnh6QnJEOztBQUVEO0VBQ0ksWWpCdk53QixFaUJ5TjNCOztBQUVEO0VBQ0ksdUJqQnBLb0I7RUN1ZFUsb0REOGZvQjtVQzlmcEIsNENEOGZvQixFaUIveUJyRDs7QUFFRDtFaEJnVG1DLGlDRGhaWixFaUJrR3RCOztBQUVEO0VoQjZTbUMsOEJEalpaLEVpQnNHdEI7O0FBRUQ7O0dBRUc7QUF4Q2lDO0VBMkNoQyxvQmpCMU4rQjtFaUIyTi9CLFlqQnpPdUI7RUM2Z0JDLG1ERDBmMEI7VUMxZjFCLDJDRDBmMEIsRWlCNXhCckQ7O0FBRUQ7RUFDSSxZakI5T3VCLEVpQmdQMUI7O0FBRUQ7RUFDSSwwQmpCck8rQjtFQ2lnQkQsb0REeWZvQjtVQ3pmcEIsNENEeWZvQixFaUJueEJyRDs7QUFRRDs7R0FFRztBQWxFdUQ7RUFxRXRELGlCakIzTThCO0VpQjRNOUIsWWpCblF1QjtFQ2doQkcsbUREdWZ3QjtVQ3ZmeEIsMkNEdWZ3QixFaUJsd0JyRDs7QUFFRDtFQUNJLFlqQnhRdUIsRWlCMFExQjs7QUFFRDtFQUNJLHVCakJ0TjhCO0VDMmRFLG9ERHNma0I7VUN0ZmxCLDRDRHNma0IsRWlCenZCckQ7O0FBU0Q7OEVBQzhFO0FBRTlFOztHQUVHO0FBRUg7O0VBQytCLG1CakIxU1gsRWlCMFM2Rjs7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O0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBd0Q7WUFBeEQsNkJBQXdELEVBQUE7RUFFNUQ7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBd0Q7WUFBeEQsNkJBQXdELEVBQUE7RUFFNUQ7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBdUQ7WUFBdkQsNEJBQXVELEVBQUE7RUFFM0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBdUQ7WUFBdkQsNEJBQXVELEVBQUE7RUFFM0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBd0Q7WUFBeEQsNkJBQXdELEVBQUE7RUFFNUQ7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBd0Q7WUFBeEQsNkJBQXdELEVBQUE7RUFFNUQ7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBdUQ7WUFBdkQsNEJBQXVELEVBQUE7RUFFM0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBdUQ7WUFBdkQsNEJBQXVELEVBQUE7RUFFM0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBeUQ7WUFBekQsNkJBQXlELEVBQUE7RUFFN0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBeUQ7WUFBekQsNkJBQXlELEVBQUE7RUFFN0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBd0Q7WUFBeEQsNEJBQXdELEVBQUE7RUFFNUQ7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBd0Q7WUFBeEQsNEJBQXdELEVBQUE7RUFFNUQ7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBeUQ7WUFBekQsNkJBQXlELEVBQUE7RUFFN0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixxQ0FBeUQ7WUFBekQsNkJBQXlELEVBQUE7RUFFN0Q7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBd0Q7WUFBeEQsNEJBQXdELEVBQUE7RUFFNUQ7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7QUFQaEM7RUFDSTtJQUNJLFdBQVU7SUFDVixvQ0FBd0Q7WUFBeEQsNEJBQXdELEVBQUE7RUFFNUQ7SUFDSSxXQUFVO0lBQ1YsaUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztHQUVHO0FBRUg7RUFDSTtJQUNJLFdBQVU7SUFD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QUFZO0VEZ0RoQjtJQy9DdUIsOEJBQXdDLEVBQUk7RURnRG5FO0lDL0N1Qiw4QkFBd0MsRUFBSTtFQUUvRCxXQUFXO0VEZ0RmO0lDL0N5QixhMURteEJKLEUwRG54QmlDO0VEZ0R0RDtJQy9DMEIsYTFEbXhCSixFMERueEJrQztFRGdEeEQ7SUMvQ3lCLGExRG14QkosRTBEbnhCaUM7RURnRHREO0lDL0MwQixhMURteEJKLEUwRG54QmtDO0VEZ0R4RDtJQy9DMkIsYTFEbXhCSixFMERueEJtQztFQUt0RCxVQUFVO0VEZ0RkO0lDL0N3QixZQUFXLEVBQUk7RUFFbkMsWUFBWTtFRGdEaEI7SUM5Q1Esb0JBQU87UUFBUCxZQUFPO1lBQVAsUUFBTztJQUNQLGVBQWMsRUFDakIsRUFBQTs7QUFJTCw2QkFBNkI7QUFDN0I7RUFFSSxXQUFXO0VEZ0RmO0lDL0N3QixZQUFXLEVBQUk7RUFFbkMsWUFBWTtFRGdEaEI7SUMvQ3dCLFdBQVUsRUFBSTtFQUVsQyxZQUFZO0VEZ0RoQjtJQy9Dd0IsOEJBQXdDLEVBQUk7RURnRHBFO0lDL0N3Qiw4QkFBd0MsRUFBSTtFQUVoRSxjQUFjO0VEZ0RsQjtJQy9Dd0IsV0FBVSxFQUFJO0VEZ0R0QztJQy9Dd0IsV0FBVSxFQUFJO0VBRWxDLFlBQVk7RURnRGhCO0lDL0N3QixXQUFVLEVBQUk7RURnRHRDO0lDL0N3QixXQUFVLEVBQUk7RURnRHRDO0lDL0N3QixXQUFVLEVBQUk7RURnRHRDO0lDL0N3QixXQUFVLEVBQUk7RUFFbEMsWUFBWTtFRGdEaEI7SUMvQ3dCLDhCQUF3QyxFQUFJO0VEZ0RwRTtJQy9Dd0IsOEJBQXdDLEVBQUk7RUFFaEUsV0FBVztFRGdEZjtJQy9DMEIsYTFEbXVCTCxFMERudUJrQztFRGdEdkQ7SUMvQzJCLGExRG11QkwsRTBEbnVCbUM7RURnRHpEO0lDL0MwQixhMURtdUJMLEUwRG51QmtDO0VEZ0R2RDtJQy9DMkIsYTFEbXVCTCxFMERudUJtQztFRGdEekQ7SUMvQzRCLGExRG11QkwsRTBEbnVCb0M7RUFLdkQsVUFBVTtFRGdEZDtJQy9DeUIsWUFBVyxF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dUhDdEI7O0FBM0JEO0VBR1EsMEJ2SHNCTSxFdUhyQlQ7O0FBSkw7RUFPUSxldkhrQk0sRXVIakJUOztBQUlMO0VBQ0ksMEJ2SFlVLEV1SFhiOztBQUVEOztFQUlRLDBCdkhLTSxFdUhKVDs7QUFJTDtFQUNJLDBCdkhEVSxFdUhFYjs7QUEzQkQ7RUFHUSwwQnZIbUJlLEV1SGxCbEI7O0FBSkw7RUFPUSxldkhlZSxFdUhkbEI7O0FBSUw7RUFDSSwwQnZIU21CLEV1SFJ0Qjs7QUFFRDs7RUFJUSwwQnZIRWUsRXVIRGxCOztBQUlMO0VBQ0ksMEJ2SEptQixFdUhLdEI7O0FBM0JEO0VBR1EsMEJ2SHFCSSxFdUhwQlA7O0FBSkw7RUFPUSxldkhpQkksRXVIaEJQOztBQUlMO0VBQ0ksMEJ2SFdRLEV1SFZYOztBQUVEOztFQUlRLDBCdkhJSSxFdUhIUDs7QUFJTDtFQUNJLDBCdkhGUSxFdUhHWDs7QUEzQkQ7RUFHUSwwQnZIa0JlLEV1SGpCbEI7O0FBSkw7RUFPUSxldkhjZSxFdUhibEI7O0FBSUw7RUFDSSwwQnZIUW1CLEV1SFB0Qjs7QUFFRDs7RUFJUSwwQnZIQ2UsRXVIQWxCOztBQUlMO0VBQ0ksMEJ2SExtQixFdUhNdEI7O0FBM0JEO0VBR1EsMEJ2SG9CTSxFdUhuQlQ7O0FBSkw7RUFPUSxldkhnQk0sRXVIZlQ7O0FBSUw7RUFDSSwwQnZIVVUsRXVIVGI7O0FBRUQ7O0VBSVEsMEJ2SEdNLEV1SEZUOztBQUlMO0VBQ0ksMEJ2SEhVLEV1SEliOztBQTNCRDtFQUdRLDBCdkhvQk0sRXVIbkJUOztBQUpMO0VBT1EsZXZIZ0JNLEV1SGZUOztBQUlMO0VBQ0ksMEJ2SFVVLEV1SFRiOztBQUVEOztFQUlRLDBCdkhHTSxFdUhGVDs7QUFJTDtFQUNJLDBCdkhIVSxFdUhJYjs7QUEzQkQ7RUFHUSwwQnZIa0JlLEV1SGpCbEI7O0FBSkw7RUFPUSxldkhjZSxFdUhibEI7O0FBSUw7RUFDSSwwQnZIUW1CLEV1SFB0Qjs7QUFFRDs7RUFJUSwwQnZIQ2UsRXVIQWxCOztBQUlMO0VBQ0ksMEJ2SExtQixFdUhNdEI7O0FBM0JEO0VBR1EsMEJ2SHVCZSxFdUh0QmxCOztBQUpMO0VBT1EsZXZIbUJlLEV1SGxCbEI7O0FBSUw7RUFDSSwwQnZIYW1CLEV1SFp0Qjs7QUFFRDs7RUFJUSwwQnZITWUsRXVITGxCOztBQUlMO0VBQ0ksMEJ2SEFtQixFdUhDdEI7O0FBM0JEO0VBR1EsMEJ2SHNCTSxFdUhyQlQ7O0FBSkw7RUFPUSxldkhrQk0sRXVIakJUOztBQUlMO0VBQ0ksMEJ2SFlVLEV1SFhiOztBQUVEOztFQUlRLDBCdkhLTSxFdUhKVDs7QUFJTDtFQUNJLDBCdkhEVSxFdUhFYjs7QUFzQ0Q7RUFDSSxhQUFZLEVBS2Y7RUFORDtJQUlRLGFBQVksRUFDZjs7QUFHTDtFQUVJLHVCdkh2RGdCLEV1SDZEbkI7RUFSRDtJQUtRLHVCdkgxRFksRXVIMkRmOztBdkhsQlQ7RXVIdUJRLHVCdkhoRWdCO0V1SGlFaEIsa0NBQXlCO0VBQXpCLDBCQUF5QixFQUM1Qjs7QUFFRDtFQUNJLDBCQUFvQyxFQUN2Qzs7QUFFRDtFQUNJLHVCdkh6RWdCLEV1SDBFbkI7O0FBRUQ7RUFFSSxtQkFBa0IsRUFrRHJCOztBQW5GRDtFQUNJLGFBQVksRUFLZjtFQU5EO0lBSVEsYUFBWSxFQUNmOztBQUdMO0VBRUksMEJ2SHhEbUIsRXVIOER0QjtFQVJEO0lBS1EsMEJ2SDNEZSxFdUg0RGxCOztBdkh2QlQ7RXVINEJRLDBCdkhqRW1CO0V1SGtFbkIsa0NBQXlCO0VBQXpCLDBCQUF5QixFQUM1Qjs7QUFFRDtFQUNJLHdCQUFvQyxFQUN2Qzs7QUFFRDtFQUNJLDBCdkgxRW1CLEV1SDJFdEI7O0FBRUQ7RUFFSSxtQkFBa0IsRUFrRHJCOztBQW5GRDtFQUNJLGFBQVksRUFLZjtFQU5EO0lBSVEsYUFBWSxFQUNmOztBQUdMO0VBRUksMEJ2SHBEVSxFdUgwRGI7RUFSRDtJQUtRLDBCdkh2RE0sRXVId0RUOztBdkhIVDtFdUhRUSwwQnZIN0RVO0V1SDhEVixrQ0FBeUI7RUFBekIsMEJBQXlCLEVBQzVCOztBQUVEO0VBQ0ksMEJBQW9DLEVBQ3ZDOztBQUVEO0VBQ0ksMEJ2SHRFVSxFdUh1RWI7O0FBRUQ7RUFFSSxtQkFBa0IsRUFrRHJCOztBQW5GRDtFQUNJLGFBQVksRUFLZjtFQU5EO0lBSVEsYUFBWSxFQUNmOztBQUdMO0VBRUksMEJ2SHREbUIsRXVINER0QjtFQVJEO0lBS1EsMEJ2SHpEZSxFdUgwRGxCOztBdkhSVDtFdUhhUSwwQnZIL0RtQjtFdUhnRW5CLGtDQUF5QjtFQUF6QiwwQkFBeUIsRUFDNUI7O0FBRUQ7RUFDSSwwQkFBb0MsRUFDdkM7O0FBRUQ7RUFDSSwwQnZIeEVtQixFdUh5RXRCOztBQUVEO0VBRUksbUJBQWtCLEVBa0RyQjs7QUFuRkQ7RUFDSSxhQUFZLEVBS2Y7RUFORDtJQUlRLGFBQVksRUFDZjs7QUFHTDtFQUVJLDBCdkhqRG1CLEV1SHVEdEI7RUFSRDtJQUtRLDBCdkhwRGUsRXVIcURsQjs7QXZIRVQ7RXVIR1EsMEJ2SDFEbUI7RXVIMkRuQixrQ0FBeUI7RUFBekIsMEJBQXlCLEVBQzVCOztBQUVEO0VBQ0ksMEJBQW9DLEVBQ3ZDOztBQUVEO0VBQ0ksMEJ2SG5FbUIsRXVIb0V0Qjs7QUFFRDtFQUVJLG1CQUFrQixFQWtEckI7O0FBbkZEO0VBQ0ksYUFBWSxFQUtmO0VBTkQ7SUFJUSxhQUFZLEVBQ2Y7O0FBR0w7RUFFSSwwQnZIbERVLEV1SHdEYjtFQVJEO0lBS1EsMEJ2SHJETSxFdUhzRFQ7O0F2SDVCVDtFdUhpQ1EsMEJ2SDNEVTtFdUg0RFYsa0NBQXlCO0VBQXpCLDBCQUF5QixFQUM1Qjs7QUFFRDtFQUNJLDBCQUFvQyxFQUN2Qzs7QUFFRDtFQUNJLDBCdkhwRVUsRXVIcUViOztBQUVEO0VBRUksbUJBQWtCLEVBa0RyQjs7QUFuRkQ7RUFDSSxhQUFZLEVBS2Y7RUFORDtJQUlRLGFBQVksRUFDZjs7QUFHTDtFQUVJLDBCdkhyRG1CLEV1SDJEdEI7RUFSRDtJQUtRLDBCdkh4RGUsRXVIeURsQjs7QXZIYlQ7RXVIa0JRLDBCdkg5RG1CO0V1SCtEbkIsa0NBQXlCO0VBQXpCLDBCQUF5QixFQUM1Qjs7QUFFRDtFQUNJLDBCQUFvQyxFQUN2Qzs7QUFFRDtFQUNJLDBCdkh2RW1CLEV1SHdFdEI7O0FBRUQ7RUFFSSxtQkFBa0IsRUFrRHJCOztBQW5GRDtFQUNJLGFBQVksRUFLZjtFQU5EO0lBSVEsYUFBWSxFQUNmOztBQUdMO0VBRUksMEJ2SG5EUSxFdUh5RFg7RUFSRDtJQUtRLDBCdkh0REksRXVIdURQOztBdkhqQ1Q7RXVIc0NRLDBCdkg1RFE7RXVINkRSLGtDQUF5QjtFQUF6QiwwQkFBeUIsRUFDNUI7O0FBRUQ7RUFDSSwwQkFBb0MsRUFDdkM7O0FBRUQ7RUFDSSwwQnZIckVRLEV1SHNFWDs7QUFFRDtFQUVJLG1CQUFrQixFQWtEckI7O0FBM0VEO0VBa0dJLDBCdkh0Sm1CLEV1SHVKdEI7O0FBSUw7RUFFSSxtQkFBa0IsRUFpQnJCOztBQ3hNRDtFQUVJLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsNkJBQXNCO0VBQXRCLDhCQUFzQjtNQUF0QiwyQkFBc0I7VUFBdEIsdUJBQXNCO0VBQ3RCLHVCQUFxQjtNQUFyQixvQkFBcUI7VUFBckIsc0JBQXFCLEVBWXhCO0VBaEJEO0lBT1EsWUFBVztJQUNYLGlCQUFnQixFQUNuQjtFdEhrQkQ7SXNIM0JKO01BWVEsK0JBQW1CO01BQW5CLDhCQUFtQjtVQUFuQix3QkFBbUI7Y0FBbkIsb0JBQW1CLEVBSTFCLEVBQUE7O0FDaEJEO0VBQ0UsNkNBQW9DO1VBQXBDLHFDQUFvQztFQUNwQyxXQUFVO0VBQ1YsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixVQUFTO0VBQ1Qsd0JBQXVCO0VBQ3ZCLFlBQVc7RUFDWCxhQUFZLEVBUWI7RUFoQkQ7SUFXSSxrQ0FBNkI7SUFDN0Isc0JBQXFCO0lBQ3JCLGtEQUF5QztZQUF6QywwQ0FBeUMsRUFDMUM7O0FBSUg7RUFDRTtJQUNFLGtDQUF5QjtZQUF6QiwwQkFBeUIsRUFBQSxFQUFBOztBQUY3QjtFQUNFO0lBQ0Usa0NBQXlCO1lBQXpCLDBCQUF5QixFQUFBLEVBQUE7O0FBSTdCO0VBQ0U7SUFDRSx5QkFBd0I7SUFDeEIscUJBQW9CLEVBQUE7RUFFdEI7SUFDRSwwQkFBeUI7SUFDekIsdUJBQXNCLEVBQUE7RUFFeEI7SUFDRSwwQkFBeUI7SUFDekIsd0JBQXVCLEVBQUEsRUFBQTs7QUFYM0I7RUFDRTtJQUNFLHlCQUF3QjtJQUN4QixxQkFBb0IsRUFBQTtFQUV0QjtJQUNFLDBCQUF5QjtJQUN6Qix1QkFBc0IsRUFBQTtFQUV4QjtJQUNFLDBCQUF5QjtJQUN6Qix3QkFBdUIsRUFBQSxFQUFBOztBQ25DM0I7RUFFUSxjQUFhLEVBQ2hCOztBQUhMO0VBTVEsa0JBQWlCLEVBQ3BCOztBQVBMO0VBVVEsaUJBQWdCLEVBQ25COztBQVhMO0VBaUJnQixtQkFBa0IsRUFnQnJCO0VBakNiO0lBK0JvQixtQkFBa0IsRUFDckI7SUFoQ2pCO01BcUJ3QixZQUFXO01BQ1gsWUFBVztNQUNYLGFBQVk7TUFDWiwwQjFIQUc7TTBIQ0gsb0JBQW1CO01BQ25CLGVBQWM7TUFDZCxtQkFBa0I7TUFDbEIsVUFBUztNQUNULFFBQU8sRUFDVjs7QUFVckI7O0VBSVEsY0FBYSxFQUNoQjs7QUFMTDs7RUFVWSw2QkFBOEI7RUFBOUIsK0JBQThCO01BQTlCLG1DQUE4QjtVQUE5QiwrQkFBOEIsRUFLakM7RXhINUJMO0l3SGFKOztNQWFnQiwrQkFBbUI7TUFBbkIsOEJBQW1CO1VBQW5CLHdCQUFtQjtjQUFuQixvQkFBbUIsRUFFMUIsRUFBQTs7QUFmVDs7RUFtQmdCLGUxSDlCQSxFMEgrQkg7O0FBcEJiOztFQTJCWSxvQkFBbUIsRUFLdEI7RXhIN0NMO0l3SGFKOztNQThCZ0Isb0JBQW1CLEVBRTFCLEVBQUE7O0FBaENUOztFQW9DUSxXQUFVO0VBQ1YsaUJBQWdCLEVBQ25COztBQXRDTDs7RUEwQ1EsY0FBYSxFQWdCaEI7RUExREw7O0lBNkNZLGlCQUFnQjtJQUNoQixvQkFBbUIsRUFXdEI7SXhIdEVMO013SGFKOztRQWlEZ0IsaUJBQWdCO1FBQ2hCLG9CQUFtQixFQU8xQixFQUFBO0l4SG5FTDtNd0hVSjs7UUFzRGdCLGlCQUFnQixFQUd2QixFQUFBOztBQXpEVDs7RUE2RFEsWUFBVztFQUNYLGtCQUFpQjtFQUNqQixtQkFBa0IsRUFLckI7RUFwRUw7O0lBa0VZLDJCQUEwQixFQUM3Qjs7QUFuRVQ7O0VBdUVRLG9CQUFtQixFQUN0Qjs7QUNoSEw7RUFFSSxpQkFBZ0IsRUFvR25CO0V6SDNFRztJeUgzQko7TUFLUSxjQUFhLEVBaUdwQixFQUFBO0VBdEdEO0lBU1EsYUFBWSxFQUNmO0VBVkw7SUFhUSwwQjNIYW1CLEUySHNCdEI7SUFoREw7TUFnQlksNkJBQW9CO2NBQXBCLHFCQUFvQjtNQUNwQix1QkFBc0I7TUFDdEIsNkJBQTRCO01BQzVCLG1DQUFrQztNQUNsQyx5QkFBd0I7TUFDeEIsZUFBYztNQUNkLFlBQVc7TUFDWCxhQUFZO01BQ1osbUJBQWtCO01BQ2xCLE9BQU07TUFDTixRQUFPLEVBQ1Y7SUEzQlQ7TUE4QlksbUJBQWtCO01BQ2xCLFdBQVUsRUFDYjtJQWhDVDtNQW1DWSxpQkFBZ0I7TUFDaEIsYUFBWTtNQUNaLFVBQVM7TTFIMkRqQixxQ0FBb0M7TUFDcEMsaUJBQWdCO01BQ2hCLG1CQUFrQjtNMEgzRFYsV0FBVTtNQUNWLGVBQWM7TUFDZCx1QkFBc0IsRUFNekI7TXpIcEJMO1F5SDNCSjtVQTRDZ0IsZUFBYztVQUNkLHdCQUF1QixFQUU5QixFQUFBO0VBL0NUO0lBbURRLG1CQUFrQjtJQUNsQixhQUFZO0lBQ1osWUFBVyxFQUNkO0VBdERMO0lBeURRLG1CQUFrQjtJQUNsQixVQUFTO0lBQ1QsV0FBVSxFQTBDYjtJQXJHTDtNQThEWSxZQUFXO01BQ1gsYUFBWSxFQUNmO0l6SHhDTDtNeUh4Qko7UUFvRVksV0FBVSxFQWlDakI7UUFyR0w7VUF1RWdCLFlBQVc7VUFDWCxjQUFhLEVBQ2hCLEVBQUE7SXpIOUNUO015SDNCSjtRQStFWSxVQUFTLEVBc0JoQjtRQXJHTDtVQWtGZ0IsWUFBVztVQUNYLGNBQWEsRUFDaEIsRUFBQTtJekh0RFQ7TXlIOUJKO1FBMkZZLFNBQVE7UUFDUixXQUFVO1FBQ1Ysa0JBQWlCLEVBUXhCO1FBckdMO1VBZ0dnQixZQUFXO1VBQ1gsY0FBYSxFQUNoQixFQUFBOztBQ2xHYjs7c0JBRXNCO0FBRXRCOzs7Ozs7RUFNRTtBekNxQ0Y7RXlDakNJLGdCQUFlLEVBQ2xCOztBQUVEO0VBQ0ksMEI1SE11QjtFNEhMdkIsaUJBQWdCO0VBQ2hCLG1CQUFrQjtFQU1sQixxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLCtCQUFtQjtFQUFuQiw4QkFBbUI7TUFBbkIsd0JBQW1CO1VBQW5CLG9CQUFtQjtFQUNuQix3QkFBMkI7TUFBM0IscUJBQTJCO1VBQTNCLDRCQUEyQixFQThCOUI7RUF6Q0Q7SUFNUSxpQkFBZ0IsRUFDbkI7RUFQTDtJQWNRLGNBQWEsRUFDaEI7RTFITEQ7STBIVko7TUFrQlEsZUFBYyxFQXVCckIsRUFBQTtFQXpDRDtJQXNCUSxtQkFBa0I7SUFDbEIsT0FBTTtJQUNOLFNBQVE7SUFDUixhQUFZO0lBQ1oscUJBQWE7SUFBYixxQkFBYTtJQUFiLGNBQWE7SUFDYixzQkFBeUI7UUFBekIsbUJBQXlCO1lBQXpCLDBCQUF5QjtJQUN6QiwrQkFBbUI7SUFBbkIsOEJBQW1CO1FBQW5CLHdCQUFtQjtZQUFuQixvQkFBbUIsRUFVdEI7STFINUJEO00wSFZKO1FBK0JZLFdBQVUsRUFPakIsRUFBQTtJQXRDTDtNQW1DWSxhQUFZLEVBQ2Y7O0FBT1Q7RUFJWSxzQkFBcUI7RUFDckIsWUFBVztFQUNYLGFBQVk7RUFDWixxQkFBb0I7RUFDcEIsNENBQTJDO0VBQzNDLDZCQUE0QjtFQUM1QixVQUFTO0VBQ1QsV0FBVSxFQUNiOztBQVpUO0VBZVksa0NBQWlDLEVBQ3BDOztBQWhCVDtFQW1CWSxrQ0FBaUMsRUFDcEM7O0FBcEJUO0VBdUJZLG1DQUFrQyxFQUNyQzs7QUF4QlQ7RUEyQlksa0NBQWlDLEVBQ3BDOztBQTVCVDtFQStCWSxtQ0FBa0MsRUFDckM7O0FBTVQ7RUFDSSwwQjVIekV1QixFNEgrRTFCO0VBUEQ7SUFJUSxpQkFBZ0I7SUFDaEIsZUFBYyxFQUNqQjs7QUFHTDtFQUNJLG1CQUFrQixFQUNyQjs7QUFFRDtFQUNJLG1CQUFrQjtFQUNsQixPQUFNO0VBQ04sUUFBTztFQUNQLGlCQUFnQjtFQUNoQixlQUFjO0VBQ2Qsc0JBQXFCO0VBQ3JCLGdCQUFlO0VBQ2YsVUFBUztFQUNULGFBQVk7RUFDWixrQ0FBeUI7RUFBekIsMEJBQXlCO0VBQ3pCLDBCQUF5QjtFQUN6QixhQUFZO0VBQ1oscUJBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RUFDYix5QkFBdUI7TUFBdkIsc0JBQXVCO1VBQXZCLHdCQUF1QjtFQUN2QiwwQkFBbUI7TUFBbkIsdUJBQW1CO1VBQW5CLG9CQUFtQjtFQUNuQiwwQjVIcEd1QixFNEg0RzFCO0UxSDVHRztJMEhvRko7TUFtQlEsbUJBQWtCO01BQ2xCLE9BQU07TUFDTixRQUFPLEVBR2QsRUFBQTs7QUFFRDtFQUNJLDBCNUg5R2MsRTRIK0dqQjs7QUFFRDs7RUFFSSxpQkFBZ0I7RUFDaEIsVUFBUztFQUNULG1CQUFrQjtFQUNsQixxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLCtCQUFtQjtFQUFuQiw4QkFBbUI7TUFBbkIsd0JBQW1CO1VBQW5CLG9CQUFtQjtFQUNuQix5QkFBdUI7TUFBdkIsc0JBQXVCO1VBQXZCLHdCQUF1QjtFQUN2QiwyQkFBb0I7TUFBcEIsd0JBQW9CO1VBQXBCLHFCQUFvQjtFQXVEbEIsa0JBQWtCLEVBMkd2QjtFQTFLRDs7SUFXUSxzQkFBcUI7SUFnQ3JCOzs7Ozs7VUFNRSxFQWNMO0lBL0RMOzs7O01BZVkscUJBQWE7TUFBYixxQkFBYTtNQUFiLGNBQWE7TUFDYix5QkFBdUI7VUFBdkIsc0JBQXVCO2NBQXZCLHdCQUF1QjtNQUN2QiwwQkFBbUI7VUFBbkIsdUJBQW1CO2NBQW5CLG9CQUFtQjtNQUNuQixzQkFBcUI7TUFDckIsZ0JBQWU7TUFDZixjQUFhO01BQ2IsYUFBWTtNQUNaLGtDQUF5QjtNQUF6QiwwQkFBeUI7TUFDekIsaUJBQWdCO01BQ2hCLDBCQUF5QjtNQUN6QixhQUFZLEVBRWY7SUEzQlQ7Ozs7TUErQlksMEI1SGhKTTtNNEhpSk4sYUFBWSxFQUNmO0lBakNUOzs7O01BcUNZLDBCNUhySkk7TTRIc0pKLGFBQVk7TUFDWixpQkFBZ0I7TUFDaEIsaUJBQWdCLEVBQ25CO0lBekNUOzs7O01Bd0RnQixtQkFBa0IsRUFDckI7RTFIeEtUO0kwSCtHSjs7TUFrRVEsaUJBQWdCO01BQ2hCLFVBQVM7TUFtR1AscUJBQXFCLEVBSTlCO01BMUtEOztRQXNFWSxvQjVIM0xlO1E0SDRMZixjQUFZLEVBQ2Y7TUF4RVQ7O1FBMkVZLG1CQUFrQjtRQWNwQjs7WUFFRTtRQXFFRix1QkFBdUIsRUFNeEI7UUF0S1Q7O1VBOEVnQixpQkFBZ0I7VUFFaEI7OztrQkFHRSxFQUlMO1VBdkZiOzs7WUFxRm9CLHNCQUFxQixFQUN4QjtRQXRGakI7Ozs7VUE4RlksY0FBYTtVQUNiLGNBQWE7VUFDYixtQkFBa0I7VUFDbEIsbUJBQWtCO1VBQ2xCLGNBQWE7VUFDYixXQUFVO1VBQ1YsOEJBQTZCO1VBQzdCLG1CQUFrQixFQXlEbkI7VUE5Slg7Ozs7WUF3R2dCLFdBQVU7WUEyQ1o7Ozs7Z0JBSUUsRUFLSDtZQTVKYjs7Ozs7Ozs7Y0E0R29CLDBCNUg3TkY7YzRIOE5FLG1CQUFrQjtjQUNsQixnQkFBZTtjQUNmLGVBQWM7Y0FDZCxhQUFZO2NBQ1osVUFBUyxFQU1aO1lBdkhqQjs7Ozs7Ozs7Ozs7Ozs7O2NBOEh3QiwwQjVIOU9SLEU0SCtPSztZQS9IckI7Ozs7Ozs7O2NBcUlvQiwwQjVIclBKO2M0SHNQSSxhQUFZLEVBQ2Y7WUF2SWpCOzs7O2NBK0lrQixpQkFBZ0IsRUFDakI7WUFoSmpCOzs7O2NBeUpnQixPQUFLO2NBQ0wsV0FBUyxFQUNWO1FBM0pmOztVQWtLWSxVQUFTO1VBQ1Qsb0JBQWtCLEVBQ25CLEVBQUE7O0FBTVQsY0FBYztBMUg1Ulo7RTBIZ1NBOztJQUVJLGtCQUFpQixFQUNwQixFQUFBOztBQUtMOzs7Ozs7Ozs7Ozs7RUFpQlEsMEI1SHhUVSxFNEh5VGI7O0FBSUw7RUFDSSwwQjVIN1RZLEU0SDhUZjs7QUFFRDtFQUNJLDBCNUhwVXVCLEU0SHdhMUI7RTFIdmFHO0kwSGtVSjtNQUtZLFdBQVUsRUFDYixFQUFBO0VBTlQ7SUFVUSwwQjVIN1VtQjtJNEgrVW5CLHFCQUFhO0lBQWIscUJBQWE7SUFBYixjQUFhO0lBQ2IsNkJBQXNCO0lBQXRCLDhCQUFzQjtRQUF0QiwyQkFBc0I7WUFBdEIsdUJBQXNCO0lBQ3RCLHdCQUEyQjtRQUEzQixxQkFBMkI7WUFBM0IsNEJBQTJCO0lBQzNCLHlCQUF1QjtRQUF2QixzQkFBdUI7WUFBdkIsd0JBQXVCO0lBQ3ZCLGdCQUFlO0lBQ2YsaUJBQWdCLEVBbUZuQjtJMUh0YUQ7TTBIa1VKO1FBb0JZLDBCQUFtQjtZQUFuQix1QkFBbUI7Z0JBQW5CLG9CQUFtQixFQWdGMUIsRUFBQTtJQXBHTDtNQXdCWSxpQkFBZ0IsRUFDbkI7SUF6QlQ7TUE0QlksaUJBQWdCO01BQ2hCLG9CQUFtQixFQU90QjtNMUh0V0w7UTBIa1VKO1VBZ0NnQixrQkFBaUI7VUFDakIscUJBQW9CLEVBRzNCLEVBQUE7SUFwQ1Q7TUF1Q1ksY0FBYTtNQUNiLGlCQUFnQjtNQUNoQixpQ0FBd0I7TUFBeEIseUJBQXdCLEVBQzNCO0lBMUNUO01BK0NnQixtQkFBa0I7TUFDbEIsdUJBQXNCLEVBQ3pCO0lBakRiO01BdURZLGlCQUFnQixFQW9CakI7TUEzRVg7UUEwRGdCLGlCQUFnQjtRM0g5VTVCLG9DQUFtQztRQUNuQyxpQkFBZ0I7UUFDaEIsbUJBQWtCO1EySDhVTixpQkFBZ0I7UUFDaEIsc0JBQXFCO1FBQ3JCLFdBQVU7UUFNVixhQUFZLEVBQ2Y7UTFIdllUO1UwSGtVSjtZQWlFb0IsaUJBQWdCLEVBSXZCLEVBQUE7TUFyRWI7UTNIbFNJLG9DQUFtQztRQUNuQyxpQkFBZ0I7UUFDaEIsbUJBQWtCO1FBOEdsQixpQkFBZ0I7UTJIMlBOLGFBQVksRUFDYjtRMUg1WVQ7VTBIa1VKO1kzSC9LUSxlQUFjLEUySHlQVCxFQUFBO0lBMUViO01BOEVZLHFCQUFhO01BQWIscUJBQWE7TUFBYixjQUFhO01BQ2Isd0JBQTJCO1VBQTNCLHFCQUEyQjtjQUEzQiw0QkFBMkI7TUFDM0IsMEJBQW1CO1VBQW5CLHVCQUFtQjtjQUFuQixvQkFBbUI7TUFDbkIsbUJBQWtCO01BQ2xCLGFBQVk7TUFDWixRQUFPO01BQ1AsWUFBVztNQUNYLG1CQUFrQjtNQUNsQixvQkFBbUIsRUFXcEI7TUFqR1g7UUF5RmMsVUFBUztRQUNULFlBQVc7UUFDWCxhQUFZLEVBQ2I7TTFIOVpUO1EwSGtVSjtVQStGZ0IseUJBQXVCO2NBQXZCLHNCQUF1QjtrQkFBdkIsd0JBQXVCLEVBRTVCLEVBQUE7O0FBTVg7O3NCQUVzQjtBQUV0QjtFQUVJLHNCQUFxQixFQXNDeEI7RUF4Q0Q7O0lBTVEsaUJBQWdCO0lBQ2hCLGlCQUFnQjtJQUNoQixlQUFjO0lBQ2QsV0FBVTtJQUNWLGdCQUFlO0lBQ2YsYUFBWTtJQUNaLHNCQUFxQjtJQUNyQixZQUFXO0lBQ1gsYUFBWTtJQUNaLGtCQUFpQjtJQUNqQixtQkFBa0I7SUFDbEIsdUI1SGhjZ0I7STRIaWNoQiwwQkFBeUI7SUFDekIsb0JBQW1CO0lBQ25CLGtDQUF5QjtJQUF6QiwwQkFBeUIsRUFDNUI7RUFyQkw7SUF3QlEsMEI1SHRibUI7STRIdWJuQixZNUh4Y2dCO0k0SHljaEIsc0I1SHhibUIsRTRIeWJ0QjtFQTNCTDtJQThCUSxlNUg1Ym1CO0k0SDZibkIsc0I1SDdibUIsRTRIOGJ0QjtFQWhDTDs7SUFxQ1ksZ0JBQWUsRUFDbEI7O0FDOWVUO0VBRUksYUFBWTtFNUg2Qlosb0NBQW1DO0VBQ25DLGlCQUFnQjtFQUNoQixtQkFBa0I7RTRIN0JsQixlQUFjO0VBQ2Qsb0JBQW1CO0VBQ25CLGlCQUFnQjtFQUNoQixjQUFhLEVBQ2Q7O0FBS0g7Ozs7Ozs7Ozs7OztFQWVZLGNBQWEsRUFDaEI7O0FBaEJUOzs7Ozs7Ozs7Ozs7RUFvQlEsMEI3SE5tQixFNkhnQnRCO0VBOUJMOzs7Ozs7Ozs7Ozs7SUF3QlksY0FBYSxFQUNoQjtFQXpCVDs7Ozs7Ozs7Ozs7O0lBNEJZLDBCN0hkZSxFNkhlbEI7O0FBN0JUOzs7Ozs7Ozs7Ozs7RUFpQ1EsbUJBQWtCLEVBd0NyQjtFQXpFTDs7Ozs7Ozs7Ozs7O0lBb0NZLG1CQUFrQjtJQUNsQixVQUFTO0lBQ1QsUUFBTztJQUNQLFlBQVc7SUFDWCxnQkFBZSxFQXdCbEI7STNIbERMO00ySGRKOzs7Ozs7Ozs7Ozs7UUEyQ2dCLFVBQVM7UUFDVCxRQUFPLEVBb0JkLEVBQUE7STNIL0NMO00ySGpCSjs7Ozs7Ozs7Ozs7O1FBZ0RnQixnQkFBZSxFQWdCdEIsRUFBQTtJM0g1Q0w7TTJIcEJKOzs7Ozs7Ozs7Ozs7UUFvRGdCLFdBQVUsRUFZakIsRUFBQTtJQWhFVDs7Ozs7Ozs7Ozs7O001SDRFSSxxQ0FBb0M7TUFDcEMsaUJBQWdCO01BQ2hCLG1CQUFrQjtNNEhyQk4sYUFBWSxFQUNmO0lBMURiOzs7Ozs7Ozs7Ozs7TTVIa0JJLG9DQUFtQztNQUNuQyxpQkFBZ0I7TUFDaEIsbUJBQWtCO000SDBDTixhQUFZLEVBQ2Y7RUEvRGI7Ozs7Ozs7Ozs7OztJQW1FWSxhQUFZO0lBQ1osYUFBWTtJQUNaLG1CQUFrQjtJQUNsQixhQUFZO0lBQ1osWUFBVyxFQUNkOztBQXhFVDs7Ozs7Ozs7Ozs7O0VBZ0ZnQixlQUFjLEVBU2pCO0UzSDNFVDtJMkhkSjs7Ozs7Ozs7Ozs7O01BbUZvQixlQUFjLEVBTXJCLEVBQUE7RTNIeEVUO0kySGpCSjs7Ozs7Ozs7Ozs7O01BdUZvQixlQUFjLEVBRXJCLEVBQUE7O0FBekZiOzs7Ozs7Ozs7Ozs7RUE0RmdCLGlCQUFnQjtFQUNoQixtQkFBa0IsRUFXckI7RTNIMUZUO0kySGRKOzs7Ozs7Ozs7Ozs7TUFnR29CLGlCQUFnQjtNQUNoQixtQkFBa0IsRUFPekIsRUFBQTtFM0h2RlQ7STJIakJKOzs7Ozs7Ozs7Ozs7TUFxR29CLGlCQUFnQixFQUd2QixFQUFBOztBQU9iOzs7O0VBS1EsMEI3SHZHbUIsRTZINEd0QjtFQVZMOzs7O0lBUVksMEI3SDFHZSxFNkgyR2xCOztBQUlUOztFQVFnQixpQkFBZ0IsRUFNbkI7RTNINUhUO0kySDhHSjs7TUFXb0IsZUFBYyxFQUdyQixFQUFBOztBQWRiOztFQWlCZ0IsaUJBQWdCLEVBS25CO0UzSHBJVDtJMkg4R0o7O01Bb0JvQixpQkFBZ0IsRUFFdkIsRUFBQTs7QUFNYjtFQUVRLGtCQUFpQixFQU1wQjtFM0hsSkQ7STJIMElKO01BS1ksa0JBQWlCLEVBR3hCLEVBQUE7O0FDN0tMO0VBR1Esd0JBQXVCLEVBQzFCOztBQUpMO0VBT1EsMEI5SG9CbUIsRThIZnRCO0VBWkw7STdIdUdJLG1CQUFrQjtJQVBsQixxQ0FBb0M7SUFDcEMsaUJBQWdCO0lBQ2hCLG1CQUFrQjtJQU9sQixlQUFjO0lBQ2QsZ0JBQWUsRTZIL0ZWO0k3SGlHTDtNQUNJLGFBQVksRUFDZjtJQ25GRDtNNEgzQko7UTdIaUhRLGVBQWM7UUFDZCxnQkFBZSxFNkh2R2QsRUFBQTs7QUFYVDtFQWVRLHVCQUFzQixFQUt6QjtFNUhPRDtJNEgzQko7TUFrQlksd0JBQXVCLEVBRTlCLEVBQUE7O0FBcEJMO0VBdUJRLG9CQUFtQixFQUN0Qjs7QUN4Qkw7RUFDSSxpQkFBZ0IsRUFLbkI7RTdIcUJHO0k2SDNCSjtNQUlRLGlCQUFnQixFQUV2QixFQUFBOztBQUVEO0VBQ0ksb0JBQW1CLEVBQ3RCOztBQUVEO0VBQ0ksWUFBVztFQUNYLFVBQVM7RUFDVCxxQkFBb0I7RUFDcEIsMEIvSFV1QjtFK0hUdkIsNkJBQTRCO0VBQzVCLHVCQUFzQjtFQUN0QixtQ0FBa0M7RUFDbEMsZUFBYyxFQUNqQjs7QUFFRDs7RUFJUSxtQkFBa0IsRUFLckI7RTdIRkQ7STZIUEo7O01BT1ksb0JBQW1CLEVBRTFCLEVBQUE7O0FBVEw7RUFZUSxtQkFBa0IsRUFLckI7RTdIVkQ7STZIUEo7TUFlWSwwQkFBeUIsRUFFaEMsRUFBQTs7QUFqQkw7RUFvQlEsYUFBWSxFQUtmO0VBekJMO0lBdUJZLG1CQUFrQixFQUNyQjs7QUF4QlQ7RUE0QlEscUJBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RUFDYiwrQkFBbUI7RUFBbkIsOEJBQW1CO01BQW5CLHdCQUFtQjtVQUFuQixvQkFBbUI7RUFDbkIseUJBQXVCO01BQXZCLHNCQUF1QjtVQUF2Qix3QkFBdUI7RUFDdkIsMEJBQW1CO01BQW5CLHVCQUFtQjtVQUFuQixvQkFBbUIsRUFDdEI7O0FBaENMO0VBbUNRLHFCQUFvQixFQUN2Qjs7QUFwQ0w7RUF1Q1EsaUJBQWdCLEVBQ25COztBQXhDTDtFQTRDWSxZQUFXO0VBQ1gsVUFBUztFQUNULHFCQUFvQjtFQUNwQix1Qi9IN0NZO0UrSDhDWiw2QkFBNEI7RUFDNUIsMEJBQXlCO0VBQ3pCLG1DQUFrQztFQUNsQyxlQUFjO0VBQ2Qsb0JBQW1CLEVBQ3RCOztBQzNFVDtFQUdFLGVBQWM7RUFDZCxtQkFBa0I7RUFDbEIsaUJBQWdCO0VBQ2hCLGFBQVk7RUFDWixtQkFBa0I7RUFDbEIsYUFBWTtFQUNaLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IseUJBQXVCO01BQXZCLHNCQUF1QjtVQUF2Qix3QkFBdUI7RUFDdkIsMEJBQW1CO01BQW5CLHVCQUFtQjtVQUFuQixvQkFBbUIsRUFNbkI7RUFqQkY7SUFlRyxhQUFZLEVBQ1o7O0FBS0g7RS9Ia0dJLG1CQUFrQjtFQXhCbEIscUNBQW9DO0VBQ3BDLGlCQUFnQjtFQUNoQixtQkFBa0I7RUF3QmxCLGlCQUFnQjtFQUNoQixtQkFBa0I7RStIaEduQixhQUFZO0VBQ1osb0JBQW1CO0VBQ2hCLGlCQUFnQixFQU1uQjtFOUhSQztJOEhMSjtNL0h3R1EsaUJBQWdCLEUrSDNGckIsRUFBQTtFOUhSQztJOEhMSjtNQVVVLG1CQUFrQixFQUd6QixFQUFBOztBQWJIO0VBZUcsbUJBQWtCLEVBQ2xCOztBQWhCSDtFQW9CRSxlQUFjLEVBQ2Q7O0FBckJGO0VBeUJFLFdBQVU7RUFDVixzQkFBcUIsRUFpQ3JCO0U5SHRERTtJOEhMSjtNQTZCRyxnQkFBZSxFQThCaEIsRUFBQTtFQTNERjtJQWlDRyxlQUFjO0lBQ1gsWUFBVztJQUNYLFVBQVM7SUFDVCxvQkFBbUI7SUFDbkIsMEJBQW1DO0lBQ25DLGlCQUFnQjtJQUNoQixtQkFBa0I7SUFDbEIsbUNBQWtDO0lBQ2xDLDZCQUE0QjtJQUM1Qix1QkFBc0IsRUFDekI7RUEzQ0g7SS9Ia0dJLG1CQUFrQjtJQXhCbEIscUNBQW9DO0lBQ3BDLGlCQUFnQjtJQUNoQixtQkFBa0I7SUF3QmxCLGlCQUFnQjtJQUNoQixtQkFBa0I7SStIdERuQixpQkFBZ0I7SUFDaEIsZUFBYztJQUNkLGlCQUFnQixFQUNoQjtJOUg3Q0M7TThITEo7US9Id0dRLGlCQUFnQixFK0h0RHJCLEVBQUE7RUFsREg7O0lBc0RHLGlCQUFnQjtJQUNoQixhQUFZO0lBQ1osaUJBQWdCLEVBQ2hCOztBQU9IO0VBR0Usa0JBQWlCLEVBQ2pCOztBQUlGOzs7RUFLRSxhQUFZO0VBQ1osOEJBQTZCO0VBQzdCLGFBQVksRUFDWjs7QUFJRjtFQUdFLGlCQUFnQixFQVdoQjtFQWRGO0lBTUcsZUFBYztJQUNkLGlCQUFnQixFQUNoQjtFQVJIO0lBV0csbUJBQWtCLEVBQ2xCOztBQU1IOzs7O0VBUUcsZUFBYztFQUNYLFlBQVc7RUFDWCxVQUFTO0VBQ1QsdUJBQXNCO0VBQ3RCLDBCQUFtQztFQUNuQyxpQkFBZ0I7RUFDaEIsbUJBQWtCO0VBQ2xCLG1DQUFrQztFQUNsQyw2QkFBNEI7RUFDNUIsdUJBQXNCO0VBQ3RCLG9CQUFtQixFQUN0Qjs7QUFuQkg7Ozs7RS9ISkksbUJBQWtCO0VBeEJsQixxQ0FBb0M7RUFDcEMsaUJBQWdCO0VBQ2hCLG1CQUFrQjtFQXdCbEIsaUJBQWdCO0VBQ2hCLG1CQUFrQjtFK0h3Qm5CLGFBQVk7RUFDWixpQkFBZ0I7RUFDaEIsb0JBQW1CLEVBTW5CO0U5SGhJQztJOEhpR0o7Ozs7TS9IRVEsaUJBQWdCLEUrSDZCckIsRUFBQTtFOUhoSUM7SThIaUdKOzs7O01BNEJJLG1CQUFrQjtNQUNsQixvQkFBbUIsRUFFcEIsRUFBQTs7QUEvQkg7Ozs7RUFxQ0ksb0JBQW1CLEVBTW5CO0VBM0NKOzs7O0lBd0NLLGlCQUFnQixFQUNoQjs7QUF6Q0w7Ozs7RUFnREcsYUFBWTtFQUNaLGlCQUFnQjtFQUNoQixpQkFBZ0I7RUFDaEIsb0JBQW1CLEVBaUJuQjtFOUhyS0M7SThIaUdKOzs7O01Bc0RJLG1CQUFrQjtNQUNsQixvQkFBbUIsRUFhcEIsRUFBQTtFQXBFSDs7Ozs7Ozs7SUErREssYUFBWTtJQUNaLDJCQUEwQixFQUMxQjs7QUFqRUw7Ozs7RUF1RUcsZ0JBQWUsRUFDZjs7QUF4RUg7Ozs7Ozs7O0VBNEVHLGFBQVk7RS9IcEpYLG9DQUFtQztFQUNuQyxpQkFBZ0I7RUFDaEIsbUJBQWtCO0UrSG9KbkIsMkJBQTBCLEVBQzFCOztBQUlIO0VBRUMsb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQixvQkFBbUIsRUFpQm5CO0VBckJEO0lBT0UsaUJBQWdCO0lBQ2hCLGVoSS9MeUIsRWdJZ016QjtFQVRGOztJQWFLLG9CQUFtQixFQUN0QjtFQWRGO0kvSHBKSSxvQ0FBbUM7SUFDbkMsaUJBQWdCO0lBQ2hCLG1CQUFrQjtJQThHbEIsaUJBQWdCO0krSHNEbEIsZWhJek15QixFZ0kwTXpCO0k5SHZNRTtNOEhvTEo7US9IakNRLGVBQWMsRStIb0RwQixFQUFBOztBQU1GO0VBS00sc0JBQXFCO0VBQ3JCLHdCQUF1QixFQUMxQjs7QUMvT0g7RUFDQyx3QkFBdUI7RUFDdkIsWUFBVztFQUNYLGFBQVk7RUFDWixxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLHlCQUF1QjtNQUF2QixzQkFBdUI7VUFBdkIsd0JBQXVCO0VBQ3ZCLDBCQUFtQjtNQUFuQix1QkFBbUI7VUFBbkIsb0JBQW1CO0VBQ25CLFVBQVMsRUFNVDtFL0hjRztJK0gzQko7TUFVRSxZQUFXO01BQ1gsYUFBWSxFQUViLEVBQUE7O0FBRUQ7RUFDQyxZQUFXO0VBQ1gsbUJBQWtCLEVBOEJsQjtFQWhDRDtJQUtFLFlBQVc7SUFDWCxVQUFTO0lBQ1Qsb0JBQW1CO0lBQ25CLDBCaklHeUI7SWlJRnpCLDZCQUE0QjtJQUM1Qix1QkFBc0I7SUFDdEIsbUNBQWtDO0lBQ2xDLGVBQWMsRUFDZDtFQWJGO0lBZ0JFLHFCQUFhO0lBQWIscUJBQWE7SUFBYixjQUFhO0lBQ2IseUJBQXVCO1FBQXZCLHNCQUF1QjtZQUF2Qix3QkFBdUI7SUFDdkIsMEJBQW1CO1FBQW5CLHVCQUFtQjtZQUFuQixvQkFBbUI7SUFDbkIsK0JBQW1CO0lBQW5CLDhCQUFtQjtRQUFuQix3QkFBbUI7WUFBbkIsb0JBQW1CO0lBQ25CLGlCQUFnQixFQUNoQjtFQXJCRjtJQXdCRSxvQkFBbUI7SUFDbkIsWUFBVztJQUNYLGFBQVksRUFDWjtFQTNCRjtJQThCRSx3QkFBdUIsRUFDdkI7O0FBR0Y7RUFLRyxzQmpJekJhO0VpSTBCYixZQUFXO0VBQ1gsYUFBWSxFQUNaOztBQVJIO0VBV0csMEJqSS9CYSxFaUlnQ2I7O0FDN0RIO0VBRUUsd0JBQXVCLEVBQ3ZCOztBQUhGO0VBTUUsZ0JBQWUsRUFLZjtFaEltQkU7SWdJOUJKO01BU0csaUJBQWdCLEVBRWpCLEVBQUE7O0FoSW1CRTtFaUk5Qko7SUFLSSwwQkFBeUIsRUFFMUIsRUFBQTs7QUFQSDtFQVVHLDBCbkltQmE7RW1JbEJiLGFBQVk7RUFDWixxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLDZCQUFzQjtFQUF0Qiw4QkFBc0I7TUFBdEIsMkJBQXNCO1VBQXRCLHVCQUFzQjtFQUN0Qix5QkFBdUI7TUFBdkIsc0JBQXVCO1VBQXZCLHdCQUF1QjtFQUN2QiwwQkFBbUI7TUFBbkIsdUJBQW1CO1VBQW5CLG9CQUFtQjtFQUNuQixhQUFZO0VBQ1osY0FBYTtFQU1iLG1CQUFrQjtFQUNsQixrQ0FBeUI7RUFBekIsMEJBQXlCLEVBc0J6QjtFakloQkM7SWlJOUJKO01Bb0JJLG1CQUFrQixFQTBCbkIsRUFBQTtFQTlDSDtJQTJCSSwwQm5JQXVCLEVtSUt2QjtJQWhDSjtNQThCSywwQm5JRFcsRW1JRVg7RUEvQkw7SWxJMkRJLG9DQUFtQztJQUNuQyxpQkFBZ0I7SUFDaEIsbUJBQWtCO0lBOEdsQixpQkFBZ0IsRWtJdkloQjtJaklUQTtNaUkzQko7UWxJOEtRLGVBQWMsRWtJMUlsQixFQUFBO0VBcENKO0lBdUNJLDBCbkladUI7SUNnQ3ZCLG9DQUFtQztJQUNuQyxpQkFBZ0I7SUFDaEIsbUJBQWtCO0lBOEdsQixpQkFBZ0I7SWtJbEloQixhQUFZO0lBQ1osaUJBQWdCO0lBQ2hCLG1CQUFrQjtJQUNsQixrQ0FBeUI7SUFBekIsMEJBQXlCLEVBQ3pCO0lqSWxCQTtNaUkzQko7UWxJOEtRLGVBQWMsRWtJaklsQixFQUFBOztBQzdDSjtFQUVRLGVBQWM7RUFDZCxZQUFXO0VBQ1gsVUFBUztFQUNULHFCQUFvQjtFQUNwQixtQkFBa0I7RUFDbEIsdUJwSWtCZ0IsRW9JSm5CO0VBckJMOztJQVdZLFdBQVU7SUFDVixZQUFXO0lBQ1gsU0FBUTtJQUNSLFFBQU87SUFDUCxtQkFBa0I7SUFDbEIsdUJwSVNZO0lvSVJaLHlCQUF3QjtJQUN4Qiw2QkFBNEI7SUFDNUIsbUNBQWtDLEVBQ3JDOztBQXBCVDtFQXdCUSxpQkFBZ0IsRUFLbkI7RWxJQ0Q7SWtJOUJKO01BMkJZLGtCQUFpQixFQUV4QixFQUFBOztBQTdCTDtFQWdDUSxvQnBJSFE7RW9JSVIsWUFBVztFQUNYLGNBQWE7RUFDYixtQkFBa0IsRUFnQnJCO0VBbkRMO0lBc0NZLG1CQUFrQjtJQUNsQixZQUFXO0lBQ1gsYUFBWTtJQUNaLE9BQU07SUFDTixRQUFPO0lBQ1AsWUFBVztJQUNYLDZCQUFvQjtZQUFwQixxQkFBb0I7SUFDcEIsbUNBQWtDO0lBQ2xDLDZCQUE0QjtJQUM1Qix1QkFBc0I7SUFDdEIseUJBQXdCLEVBQzNCOztBQ2pEVDtFQUNJLGtCQUFpQixFQUNwQjs7QUFFRDtFQUdRLGVySWlCbUI7RXFJaEJuQixzQkFBcUI7RUFDckIsaUJBQWdCLEVBQ25COztBQU5MO0VBU1EsWUFBVztFQUNYLHFCQUFvQjtFQUNwQixVQUFTO0VBQ1QsbUJBQWtCO0VBQ2xCLGlCQUFnQjtFQUNoQixtQ0FBa0M7RUFDbEMsNkJBQTRCO0VBQzVCLDBCQUF5QjtFQUN6Qix3QkFBdUIsRUFDMUI7O0FBbEJMO0VBcUJRLG1CQUFrQixFQUNyQjs7QUF0Qkw7RUF5QlEsaUJBQWdCO0VBQ2hCLG1CQUFrQjtFQUNsQixPQUFNO0VBQ04sUUFBTztFQUNQLDBCcklKUTtFcUlLUixjQUFhO0VBQ2IsWUFBVztFQUNYLGFBQVksRUFtQmY7RUFuREw7OztJQXFDWSxZckloQlksRXFJaUJmO0VBdENUO0lBeUNZLGlCQUFnQixFQUNuQjtFQTFDVDtJQTZDWSxpQkFBZ0IsRUFDbkI7RUE5Q1Q7SUFpRFksb0JBQW1CLEVBQ3RCOztBQUlUO0VBS1ksbUJBQWtCO0VBQ2xCLG9CQUFtQixFQUN0Qjs7QUFQVDtFQVVZLG1CQUFrQjtFQUNsQixpQkFBZ0IsRUFDbkI7O0FBWlQ7RUFlWSxZQUFXO0VBQ1gscUJBQW9CO0VBQ3BCLFVBQVM7RUFDVCxtQkFBa0I7RUFDbEIsaUJBQWdCO0VBQ2hCLG1DQUFrQztFQUNsQyw2QkFBNEI7RUFDNUIsdUJBQXNCO0VBQ3RCLHdCQUF1QjtFQUN2QixlQUFjLEVBQ2pCOztBQ25GVDtFQUNJLDBCdEkwQnVCLEVzSThKMUI7RUF6TEQ7SUFJUSxpQkFBZ0I7SUFDaEIsb0JBQW1CLEVBQ3RCO0VBTkw7SUFTUSxvQkFBbUI7SUFDbkIsZUFBYztJQUNkLGFBQVksRUFDZjtFQVpMO0lBZVEsY0FBYTtJQUNiLHFCQUFhO0lBQWIscUJBQWE7SUFBYixjQUFhO0lBQ2IsNkJBQXNCO0lBQXRCLDhCQUFzQjtRQUF0QiwyQkFBc0I7WUFBdEIsdUJBQXNCO0lBQ3RCLHdCQUEyQjtRQUEzQixxQkFBMkI7WUFBM0IsNEJBQTJCO0lBQzNCLDBCQUFtQjtRQUFuQix1QkFBbUI7WUFBbkIsb0JBQW1CO0lBQ25CLG1CQUFrQixFQU1yQjtJcElJRDtNb0k5Qko7UUF1QlksaUJBQWdCO1FBQ2hCLCtCQUFtQjtRQUFuQiw4QkFBbUI7WUFBbkIsd0JBQW1CO2dCQUFuQixvQkFBbUIsRUFFMUIsRUFBQTtFQTFCTDtJQTZCUSxXQUFVO0lBQ1YsWUFBVztJQUNYLGVBQWM7SUFDZCxrQkFBaUIsRUF3QnBCO0lwSTdCRDtNb0kzQko7UUFtQ1ksZ0JBQWUsRUFxQnRCLEVBQUE7SXBJMUJEO01vSTlCSjtRQXdDWSxnQkFBZSxFQWdCdEI7UUF4REw7VUEyQ2dCLFdBQVUsRUFDYixFQUFBO0lBNUNiO01BaURZLGdCQUFlLEVBS2xCO01wSTNCTDtRb0kzQko7VUFvRGdCLFdBQVUsRUFFakIsRUFBQTtFQXREVDtJQTJEUSxnQkFBZSxFQUNsQjtFQTVETDtJQStEUSwwQnRJaENtQixFc0lpQ3RCO0VBaEVMO0lBbUVRLDBCdEl6Q21CLEVzSTBDdEI7RUFwRUw7SUF1RVEsMEJ0SXpDVSxFc0kwQ2I7RUF4RUw7SUEyRVEsMEJ0STlDUSxFc0krQ1g7RUE1RUw7SUErRVEsMEJ0SW5EVSxFc0lvRGI7RUFoRkw7SUFtRlEsY0FBYSxFQUNoQjtFQXBGTDtJQTBGWSxjQUFhLEVBQ2hCO0VBM0ZUO0lBK0ZRLDZCQUE4QjtJQUE5QiwrQkFBOEI7UUFBOUIsbUNBQThCO1lBQTlCLCtCQUE4QixFQUtqQztJcEl6RUQ7TW9JM0JKO1FBa0dZLCtCQUFtQjtRQUFuQiw4QkFBbUI7WUFBbkIsd0JBQW1CO2dCQUFuQixvQkFBbUIsRUFFMUIsRUFBQTtFQXBHTDtJQXVHUSxrQkFBaUIsRUFLcEI7SUE1R0w7TUEwR1ksZUFBYyxFQUNqQjtFQTNHVDtJQWdIUSxtQkFBa0IsRUFpQ3JCO0lwSW5IRDtNb0k5Qko7UUFtSFksa0JBQWlCO1FBQ2pCLGFBQVk7UUFDWiwrQkFBaUI7WUFBakIsa0JBQWlCO1FBQ2pCLG9CQUFZO1lBQVoscUJBQVk7Z0JBQVosYUFBWTtRQUNaLHFCQUFjO1lBQWQsZUFBYyxFQTBCckIsRUFBQTtJQWpKTDs7TUE2SFksb0NBQW1DO01BQ25DLGlCQUFnQjtNQUNoQixtQkFBa0I7TUFDbEIsaUJBQWdCO01BQ2hCLFVBQVM7TUFDVCxhQUFZLEVBRWY7SUFwSVQ7TUF3SVksb0NBQW1DO01BQ25DLGlCQUFnQjtNQUNoQixtQkFBa0I7TUFDbEIsaUJBQWdCO01BQ2hCLFVBQVM7TUFDVCxhQUFZLEVBRWY7RUEvSVQ7SUFvSlEsYUFBWTtJQUNaLGNBQWE7SUFDYixvQkFBbUI7SUFDbkIsMEJ0STdIbUIsRXNJOEh0QjtFQXhKTDtJQTJKUSxlQUFjLEVBTWpCO0lwSW5JRDtNb0k5Qko7UUE4SlksZUFBYyxFQUdyQixFQUFBO0VBaktMO0lBb0tRLGlCQUFnQixFQUNuQjtFQXJLTDtJQXdLUSxpQkFBZ0IsRUFDbkI7RUF6S0w7SUE0S1EsbUJBQWtCO0lBQ2xCLFNBQVE7SUFDUixrQkFBaUIsRUFTcEI7SUF2TEw7TUFpTFksUUFBTyxFQUNWO0lBbExUO01BcUxZLFNBQVEsRUFDWDs7QUFLVDtFQUdRLFlBQVc7RUFDWCxxQkFBYTtFQUFiLHFCQUFhO0VBQWIsY0FBYTtFQUNiLCtCQUFtQjtFQUFuQiw4QkFBbUI7TUFBbkIsd0JBQW1CO1VBQW5CLG9CQUFtQjtFQUNuQixzQkFBeUI7TUFBekIsbUJBQXlCO1VBQXpCLDBCQUF5QjtFQUN6QixvQkFBbUIsRUFDdEI7O0FDbk1MO0VBQ0UsaUJBQWdCO0VBQ2hCLGFBQVk7RUFDWix1QkFBc0I7RUFDdEIsbUJBQWtCLEVBYW5CO0VBakJEO0lBUUkscUJBQWE7SUFBYixxQkFBYTtJQUFiLGNBQWE7SUFDYixpQkFBZ0I7SUFDaEIsa0NBQWlDO0lBQ2pDLGtCQUFpQixFQUtsQjtJckljQztNcUk5Qko7UUFjTSx5QkFBd0IsRUFFM0IsRUFBQTs7QUFHSDtFQUNFLFlBQVc7RUFDWCxtQkFBa0I7RUFDbEIsaUJBQWdCO0VBQ2hCLGdCQUFlO0VBQ2YsT0FBTTtFQUNOLFFBQU87RUFDUCxjQUFhO0VBQ2IsY0FBYTtFQUNiLGNBQWE7RUFDYixpQ0FBd0I7RUFBeEIseUJBQXdCO0VBQ3hCLDBCdklEYyxFdUlrQmY7RUE1QkQ7SUFjSSxvQkFBbUIsRUFDcEI7RUFmSDtJQWtCSSxXQUFVO0lBQ1Ysb0J2SVp1QjtJdUlhdkIscUJBQWE7SUFBYixxQkFBYTtJQUFiLGNBQWE7SUFDYiw2QkFBc0I7SUFBdEIsOEJBQXNCO1FBQXRCLDJCQUFzQjtZQUF0Qix1QkFBc0I7SUFDdEIseUJBQXVCO1FBQXZCLHNCQUF1QjtZQUF2Qix3QkFBdUI7SUFDdkIseUJBQXVCO1FBQXZCLHNCQUF1QjtZQUF2Qix3QkFBdUI7SUFDdkIsb0JBQWU7UUFBZixnQkFBZSxFQUNoQjs7QUFLSDtFQUNFLG1CQUFrQjtFQUNsQixhQUFZO0VBQ1osUUFBTztFQUNQLFlBQVc7RUFDWCxtQkFBa0IsRUFDbkI7O0FDdkREO0VBR0ksV0FBVSxFQVNYO0VBWkg7SUFNTSxXQUFVLEVBQ1g7RUFQTDtJQVVNLGVBQWMsRUFDZjs7QUFLTDtFQUVJLGdCQUFlLEVBOEdsQjtFdElyR0c7SXNJWEo7TUFLUSxnQkFBZSxFQTJHdEIsRUFBQTtFdElsR0c7SXNJZEo7TUFTUSx3QkFBdUIsRUF1RzlCLEVBQUE7RUFoSEQ7SUFjUSxvQkFBbUIsRUFzRXRCO0l0SXpFRDtNc0lYSjtRQWlCVSxxQkFBb0IsRUFtRXpCLEVBQUE7SUFwRkw7TUFzQlksaUJBQWdCLEVBeUJuQjtNdElwQ0w7UXNJWEo7VUF5QmdCLGdCQUFlLEVBc0J0QixFQUFBO010SWpDTDtRc0lkSjtVQTZCZ0IsZ0JBQWUsRUFrQnRCLEVBQUE7TUEvQ1Q7UUFpQ2dCLGFBQVk7UUFDWixtQkFBa0I7UUFDbEIsZUFBYyxFQVdqQjtRQTlDYjs7VUF1Q2tCLGFBQVk7VUFDWiwyQkFBMEIsRUFLM0I7VUE3Q2pCOztZQTJDb0Isc0JBQXFCLEVBQ3RCO0lBNUNuQjtNQWtEWSxXQUFVO01BQ1YsYUFBWTtNQUNaLG1CQUFrQjtNdkk0QjFCLHFDQUFvQztNQUNwQyxpQkFBZ0I7TUFDaEIsbUJBQWtCO011STVCVixpQkFBZ0IsRUFvQm5CO01BMUVUO1FBeURjLGFBQVksRUFDYjtNdElsRFQ7UXNJUko7VUE2RGdCLGlCQUFnQixFQWF2QixFQUFBO010SS9ETDtRc0lYSjtVQWlFZ0IsaUJBQWdCO1VBQ2hCLGdCQUFlLEVBUXRCLEVBQUE7TXRJNURMO1FzSWRKO1VBc0VnQixlQUFjO1VBQ2QsZ0JBQWUsRUFHdEIsRUFBQTtJQTFFVDtNQStFZ0IsV0FBVTtNQUNWLGlCQUFnQixFQUNuQjtFQWpGYjtJQXVGUSxhQUFZO0lBQ1osbUJBQWtCO0l2SVJ0QixxQ0FBb0M7SUFDcEMsaUJBQWdCO0lBQ2hCLG1CQUFrQjtJdUlRZCxpQkFBZ0I7SUFDaEIsbUJBQWtCLEVBTXJCO0l0SXRGRDtNc0lYSjtRQThGWSxpQkFBZ0IsRUFHdkIsRUFBQTtFQWpHTDtJQW9HUSxhQUFZO0l2SXBCaEIscUNBQW9DO0lBQ3BDLGlCQUFnQjtJQUNoQixtQkFBa0I7SXVJb0JkLGlCQUFnQjtJQUNoQixtQkFBa0IsRUFDckI7RUF4R0w7SUE2R1ksZXhJckdlLEV3SXNHbEI7O0FBSVQ7Ozs7RUFLSSxleEkvR3VCLEV3SWdJMUI7RUF0QkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQW1CUSxleEk3SG1CLEV3SThIdEI7O0FyQjRQSjtFcUJ0UEcsV0FBVTtFQUNWLFl4SXBJb0I7RXdJMlN0Qjs7Ozs7SUFLRSxFQTZDSDtFQTVORDs7Ozs7Ozs7SUFhUSxZeEk5SWdCLEV3SStJbkI7RUFkTDs7SUFtQk0sYUFBWTtJQUNaLDJCQUEwQixFQVMzQjtJQTdCTDs7TUF1QlEsc0JBQXFCLEVBQ3RCO0lBeEJQOztNQTJCUSxzQkFBcUIsRUFDdEI7RUE1QlA7SXZJL0ZJLG9DQUFtQztJQUNuQyxpQkFBZ0I7SUFDaEIsbUJBQWtCO0lBOEdsQixpQkFBZ0I7SXVJaUJoQixrQkFBaUIsRUFLbEI7SXRJdEtDO01zSStISjtRdklvQlEsZUFBYyxFdUltQm5CLEVBQUE7SUF2Q0g7TUFxQ1EsaUJBQWdCLEVBQ25CO0VBdENMO0l2SS9GSSxvQ0FBbUM7SUFDbkMsaUJBQWdCO0lBQ2hCLG1CQUFrQjtJQThHbEIsaUJBQWdCO0l1STJCaEIsbUJBQWtCO0lBQ2xCLG1CQUFrQixFQVluQjtJdEl4TEM7TXNJK0hKO1F2SW9CUSxlQUFjLEV1SXFDbkIsRUFBQTtJQXpESDtNQWdEUSxZQUFXO01BQ1gsbUJBQWtCO01BQ2xCLFlBQVc7TUFDWCxhQUFZO01BQ1osd0JBQXVCO01BQ3ZCLG9CQUFtQjtNQUNuQixVQUFTO01BQ1QsVUFBUyxFQUNaO0VBeERMO0l2SXRCSSxpQkFBZ0I7SUFwQ2hCLHFDQUFvQztJQUNwQyxpQkFBZ0I7SUFDaEIsbUJBQWtCO0lBb0NsQixpQkFBZ0I7SUFDaEIsdUJBQXNCO0lBQ3RCLFdBQVUsRXVJK0VYO0l2STdFQztNQUNJLGNBQWEsRUFDaEI7SUFFRDtNQUNJLGFBQVksRUFDZjtJQ3hIRDtNc0lrSUo7UXZJUFEsaUJBQWdCLEV1SW9FckIsRUFBQTtJdEk1TEM7TXNJK0hKO1F2SUhRLGVBQWM7UUFDZCx1QkFBc0IsRXVJK0QzQixFQUFBO0VBN0RIO0l2SUlJLGlCQUFnQjtJQXJGaEIsb0NBQW1DO0lBQ25DLGlCQUFnQjtJQUNoQixtQkFBa0I7SUFxRmxCLGlCQUFnQjtJQUNoQixzQkFBcUI7SUFDckIsV0FBVSxFdUk2RFg7SXRJcE1DO01zSStISjtRdklXUSxpQkFBZ0IsRXVJMERyQixFQUFBO0lBckVIO01BbUVNLGNBQWEsRUFDZDtFQXBFTDtJQTJFSSxtQkFBa0IsRUFJbkI7RUEvRUg7SUE4RkksWUFBVyxFQUNaO0VBL0ZIO0lBa0dJLFlBQVc7SUFDWCwwQnhJMU51QjtJd0kyTnZCLHFCQUFvQixFQVNyQjtJQTdHSDtNQXVHTSxnQkFBZTtNQUNmLGtCQUFpQjtNQUNqQixleEk5TnFCO013SStOckIsMEJBQXlCO01BQ3pCLG9CQUFtQixFQUNwQjtFQTVHTDtJQWdISSxpQ3hJdk91QixFd0k0T3hCO0lBckhIO01BbUhNLDBCeEkzT3FCLEV3STRPdEI7RUFwSEw7SUF3SEksYUFBWTtJQUNaLGdDeEloUHVCLEV3SXFQeEI7SUE5SEg7TUE0SE0sZ0JBQWUsRUFDaEI7RUE3SEw7SUFpSUksMEJ4SXpQdUI7SXdJMFB2QixpQ3hJelB1QjtJd0kwUHZCLGdDeEkxUHVCLEV3SStQeEI7SUF4SUg7TUFzSU0sZ0JBQWUsRUFDaEI7RUF2SUw7SUEySUkseUJBQXdCO0lBQ3hCLHNCQUFxQjtJQUNyQiwrQnhJN1F1QjtJd0k4UXZCLG1CQUFrQjtJQUNsQixleElwUXVCLEV3SXdReEI7RUFuSkg7SUEwSkksZUFBYztJQUNkLGlCQUFnQjtJQUNoQixlQUFjO0lBQ2QscUJBQW9CLEVBQ3JCO0VBOUpIO0lBaUtJLGVBQWM7SUFDZCxnQkFBZTtJQUNmLGFBQVksRUFDYjtFQXBLSDtJQXVLSSxjQUFhLEVBQ2Q7RUF4S0g7Ozs7O0lBeUxJLGdCQUFlO0lBQ2YsYUFBWSxFQUNiO0VBM0xIO0lBOExJLG9CeEloVXVCO0l3SWlVdkIsZXhJdlR1QjtJd0l3VHZCLGlCQUFnQjtJQUNoQixlQUFjO0lBQ2Qsa0JBQWlCO0lBQ2pCLG1CQUFrQixFQUNuQjtFdEl0VUM7SWlIMFhIO01xQmhERyx1REFBdUQsRUFvQjFEO01yQjRCQTtRcUI5Q0ssb0JBQW1CO1FBQ25CLGdCQUFlO1FBQ2YsWUFBVyxFQUNaO01yQjJDSjtRcUJ6Q0ssbUJBQWtCO1FBQ2xCLGdCQUFlO1FBQ2YsYUFBWSxFQUNiO01yQnNDSjtRcUJwQ0ssbUJBQWtCO1FBQ2xCLGtCQUFpQjtRQUNqQixlQUFjO1FBQ2QsWUFBVyxFQUNaLEVBQUE7O0FBSUgsd0JBQXdCO0ExSTdPMUI7Ozs7O3NCQUtzQjtBQUN0QjtFMkkvSUE7Ozs7Ozs7Ozs7bUVBVW1FO0VBRW5FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNEJFLEVBQUE7O0EzSWdIRjs7Ozs7c0JBS3NCO0FBQ3RCO0U0STlKQTs7Ozs7Ozs7OzttRUFVbUU7RTNJNmNuRTtJMkkxY0ksbUNBQWtDO0lBQ2xDLHdCQUF1QjtJQUN2Qiw2QkFBNEI7SUFDNUIsZ0NBQXNCO1lBQXRCLHdCQUFzQjtJQUN0Qiw0QkFBMkIsRUFDNUI7RTVET0M7O0k0REpBLHVCQUFzQjtJQUN0QiwyQkFBMEIsRUFXM0I7SUFiRDtNQU1JLDZCQUE0QixFQUM3QjtJQVBIO01BV0ksOEJBQTZCLEVBQzlCO0VBR0g7OztJQUdFLFlBQVcsRUFDWjtFNURYQzs7STREY0EsdUJBQXNCO0lBQ3RCLHlCQUF3QixFQUN6QjtFNURWQztJNERhQSw0QkFBMkIsRUFDNUI7RTVEWkM7O0k0RGVBLHlCQUF3QixFQUN6QjtFM0lnUEg7STJJN09JLDJCQUEwQixFQUMzQjtFQUVDO0lBQ0UsY0FBYSxFQUFBO0U1RGhCZjs7O0k0RG9CRSxXQUFVO0lBQ1YsVUFBUyxFQUNWO0U1RGZEOztJNERtQkUsd0JBQXVCLEVBQ3hCO0VBR0Q7Ozs7O0lBS0UsY0FBYSxFQUNkLEVBQUEiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyohIE1hZGUgd2l0aCBCb25lczogaHR0cDovL3RoZW1ibGUuY29tL2JvbmVzIDopICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TaXRlIE5hbWU6XG5BdXRob3I6XG5cblN0eWxlc2hlZXQ6IE1haW4gU3R5bGVzaGVldFxuXG5IZXJlJ3Mgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMuIEhlcmUsIHlvdSdsbCBzZWUgd2UgYXJlIGNhbGxpbmcgaW5cbnRoZSBzZXBhcmF0ZSBtZWRpYSBxdWVyaWVzLiBUaGUgYmFzZSBtb2JpbGUgZ29lcyBvdXRzaWRlIGFueSBxdWVyeVxuYW5kIGlzIGNhbGxlZCBhdCB0aGUgYmVnaW5uaW5nLCBhZnRlciB0aGF0IHdlIGNhbGwgdGhlIHJlc3Rcbm9mIHRoZSBzdHlsZXMgaW5zaWRlIG1lZGlhIHF1ZXJpZXMuXG5cbkhlbHBmdWwgYXJ0aWNsZXMgb24gU2FzcyBmaWxlIG9yZ2FuaXphdGlvbjpcbmh0dHA6Ly90aGVzYXNzd2F5LmNvbS9hZHZhbmNlZC9tb2R1bGFyLWNzcy1uYW1pbmctY29udmVudGlvbnNcblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKlxuSU1QT1JUSU5HIFBBUlRJQUxTXG5UaGVzZSBmaWxlcyBhcmUgbmVlZGVkIGF0IHRoZSBiZWdpbm5pbmcgc28gdGhhdCB3ZSBlc3RhYmxpc2ggYWxsXG5vdXIgbWl4aW5zLCBmdW5jdGlvbnMsIGFuZCB2YXJpYWJsZXMgdGhhdCB3ZSdsbCBiZSB1c2luZyBhY3Jvc3NcbnRoZSB3aG9sZSBwcm9qZWN0LlxuKioqKioqKioqKioqKioqKioqKioqL1xuLyogbm9ybWFsaXplLmNzcyAyMDEyLTA3LTA3VDA5OjUwIFVUQyAtIGh0dHA6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAqIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKi9cbmF1ZGlvLFxuY2FudmFzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCYXNlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4gKiAgICB1c2VyIHpvb20uXG4gKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdXRsaW5lYCBpbmNvbnNpc3RlbmN5IGJldHdlZW4gQ2hyb21lIGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuYTpmb2N1cyB7XG4gIG91dGxpbmU6IHRoaW4gZG90dGVkOyB9XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFR5cG9ncmFwaHlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOSwgU2FmYXJpIDUsIGFuZCBDaHJvbWUuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5iLFxuc3Ryb25nLFxuLnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKi9cbmRmbixcbmVtLFxuLmVtIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7IH1cblxuLypcbiAqIHByb3BlciBmb3JtYXR0aW5nIChodHRwOi8vYmxvZy5mb250ZGVjay5jb20vcG9zdC85MDM3MDI4NDk3L2h5cGhlbnMpXG4qL1xucCB7XG4gIC13ZWJraXQtaHlwaGVuczogYXV0bztcbiAgLWVwdWItaHlwaGVuczogYXV0bztcbiAgLW1vei1oeXBoZW5zOiBhdXRvO1xuICBoeXBoZW5zOiBhdXRvOyB9XG5cbi8qXG4gKiBBZGRyZXNzZXMgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gSUU2LzcuXG4gKi9cbnByZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKipcbiAqIENvcnJlY3QgZm9udCBmYW1pbHkgc2V0IG9kZGx5IGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgc2VyaWY7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBwcmUtZm9ybWF0dGVkIHRleHQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IH1cblxuLyoqXG4gKiBTZXQgY29uc2lzdGVudCBxdW90ZSB0eXBlcy5cbiAqL1xucSB7XG4gIHF1b3RlczogXCJcXDIwMUNcIiBcIlxcMjAxRFwiIFwiXFwyMDE4XCIgXCJcXDIwMTlcIjsgfVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5xOmJlZm9yZSxcbnE6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgY29udGVudDogbm9uZTsgfVxuXG5zbWFsbCwgLnNtYWxsIHtcbiAgZm9udC1zaXplOiA3NSU7IH1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIExpc3RzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZHJlc3NlcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBJRTYvNy5cbiAqL1xuZGwsXG5tZW51LFxub2wsXG51bCB7XG4gIG1hcmdpbjogMWVtIDA7IH1cblxuZGQge1xuICBtYXJnaW46IDA7IH1cblxuLypcbiAqIEFkZHJlc3NlcyBwYWRkaW5ncyBzZXQgZGlmZmVyZW50bHkgaW4gSUU2LzcuXG4gKi9cbm1lbnUge1xuICBwYWRkaW5nOiAwIDAgMCA0MHB4OyB9XG5cbm9sLFxudWwge1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cblxuLypcbiAqIENvcnJlY3RzIGxpc3QgaW1hZ2VzIGhhbmRsZWQgaW5jb3JyZWN0bHkgaW4gSUU3LlxuICovXG5uYXYgdWwsXG5uYXYgb2wge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBsaXN0LXN0eWxlLWltYWdlOiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIEVtYmVkZGVkIGNvbnRlbnRcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LlxuICovXG5pbWcge1xuICBib3JkZXI6IDA7IH1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IGRpc3BsYXllZCBvZGRseSBpbiBJRSA5LlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZpZ3VyZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpIDUuXG4gKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGZvbnQgZmFtaWx5IG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCBmb250IHNpemUgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LCBhbmQgQ2hyb21lLlxuICovXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIENocm9tZSwgU2FmYXJpIDUrLCBhbmQgSUUgOCsuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3ggNCsgYW5kIE9wZXJhLlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qIDMgKi8gfVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgfVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lXG4gKiBvbiBPUyBYLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiAxLiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LlxuICogMi4gSW1wcm92ZSByZWFkYWJpbGl0eSBhbmQgYWxpZ25tZW50IGluIGFsbCBicm93c2Vycy5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAvKiAyICovIH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbioge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4uaW1hZ2UtcmVwbGFjZW1lbnQsXG4uaXIge1xuICB0ZXh0LWluZGVudDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uY2xlYXJmaXgsIC5jZiB7XG4gIHpvb206IDE7IH1cbiAgLmNsZWFyZml4OmJlZm9yZSwgLmNsZWFyZml4OmFmdGVyLCAuY2Y6YmVmb3JlLCAuY2Y6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLmNsZWFyZml4OmFmdGVyLCAuY2Y6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi8qXG51c2UgdGhlIGJlc3QgYW1wZXJzYW5kXG5odHRwOi8vc2ltcGxlYml0cy5jb20vbm90ZWJvb2svMjAwOC8wOC8xNC9hbXBlcnNhbmRzLTIvXG4qL1xuc3Bhbi5hbXAge1xuICBmb250LWZhbWlseTogQmFza2VydmlsbGUsJ0dvdWR5IE9sZCBTdHlsZScsUGFsYXRpbm8sJ0Jvb2sgQW50aXF1YScsc2VyaWYgIWltcG9ydGFudDtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNpdGUgTmFtZTpcbkF1dGhvcjpcblxuU3R5bGVzaGVldDogVmFyaWFibGVzXG5cbkhlcmUgaXMgd2hlcmUgd2UgZGVjbGFyZSBhbGwgb3VyIHZhcmlhYmxlcyBsaWtlIGNvbG9ycywgZm9udHMsXG5iYXNlIHZhbHVlcywgYW5kIGRlZmF1bHRzLiBXZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGlzIGZpbGUgT05MWVxuY29udGFpbnMgdmFyaWFibGVzIHRoYXQgd2F5IG91ciBmaWxlcyBkb24ndCBnZXQgYWxsIG1lc3N5LlxuTm8gb25lIGxpa2VzIGEgbWVzcy5cblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKlxuQ09MT1JTXG5OZWVkIGhlbHAgdy8gY2hvb3NpbmcgeW91ciBjb2xvcnM/IFRyeSB0aGlzIHNpdGUgb3V0OlxuaHR0cDovLzB0bzI1NS5jb20vXG4qKioqKioqKioqKioqKioqKioqKiovXG4uYmctcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjM2IzZDtcbiAgdHJhbnNpdGlvbjogYWxsIC4xNHMgZWFzZTsgfVxuXG4uYmctb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkYTYyOTtcbiAgdHJhbnNpdGlvbjogYWxsIC4xNHMgZWFzZTsgfVxuXG4uYmctYmxhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICB0cmFuc2l0aW9uOiBhbGwgLjE0cyBlYXNlOyB9XG5cbi5iZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHRyYW5zaXRpb246IGFsbCAuMTRzIGVhc2U7IH1cblxuLmJnLXZpb2xldCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiNDgwZTU7XG4gIHRyYW5zaXRpb246IGFsbCAuMTRzIGVhc2U7IH1cblxuLmJnLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGY1ZGU1O1xuICB0cmFuc2l0aW9uOiBhbGwgLjE0cyBlYXNlOyB9XG5cbi5iZy1waW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ODFhYTtcbiAgdHJhbnNpdGlvbjogYWxsIC4xNHMgZWFzZTsgfVxuXG4uYmctZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWFiMzQ3O1xuICB0cmFuc2l0aW9uOiBhbGwgLjE0cyBlYXNlOyB9XG5cbi5iZy1ncmV5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZGZkZjtcbiAgdHJhbnNpdGlvbjogYWxsIC4xNHMgZWFzZTsgfVxuXG4vKlxuIGkgaW1wb3J0ZWQgdGhpcyBvbmUgaW4gdGhlIGZ1bmN0aW9ucyBmaWxlIHNvIGJvbmVzIHdvdWxkIGxvb2sgc3dlZXQuXG4gZG9uJ3QgZm9yZ2V0IHRvIHJlbW92ZSBpdCBmb3IgeW91ciBzaXRlLlxuKi9cbi8qXG5zb21lIG5pY2UgdHlwb2dyYXBoaWNhbCBkZWZhdWx0c1xubW9yZSBoZXJlOiBodHRwOi8vd3d3Lm5ld25ldC1zb2Z0LmNvbS9ibG9nL2Nzc3R5cG9ncmFwaHlcbiovXG5wIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBoeXBoZW5zOiBub25lO1xuICBoeXBoZW5hdGUtbGluZXM6IDM7XG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJsaWdhXCIsIFwiZGxpZ1wiOyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNpdGUgTmFtZTpcbkF1dGhvcjpcblxuU3R5bGVzaGVldDogTWl4aW5zIFN0eWxlc2hlZXRcblxuVGhpcyBpcyB3aGVyZSB5b3UgY2FuIHRha2UgYWR2YW50YWdlIG9mIFNhc3MnIGdyZWF0IGZlYXR1cmVzOiBNaXhpbnMuXG5JIHdvbid0IGdvIGluLWRlcHRoIG9uIGhvdyB0aGV5IHdvcmsgZXhhY3RseSxcbnRoZXJlIGFyZSBhIGZldyBhcnRpY2xlcyBiZWxvdyB0aGF0IHdpbGwgaGVscCBkbyB0aGF0LiBXaGF0IEkgd2lsbFxudGVsbCB5b3UgaXMgdGhhdCB0aGlzIHdpbGwgaGVscCBzcGVlZCB1cCBzaW1wbGUgY2hhbmdlcyBsaWtlXG5jaGFuZ2luZyBhIGNvbG9yIG9yIGFkZGluZyBDU1MzIHRlY2huaXF1ZXMgZ3JhZGllbnRzLlxuXG5BIFdPUkQgT0YgV0FSTklORzogSXQncyB2ZXJ5IGVhc3kgdG8gb3ZlcmRvIGl0IGhlcmUuIEJlIGNhcmVmdWwgYW5kXG5yZW1lbWJlciBsZXNzIGlzIG1vcmUuXG5cbkhlbHBmdWw6XG5odHRwOi8vc2FjaGFncmVpZi5jb20vdXNlZnVsLXNhc3MtbWl4aW5zL1xuaHR0cDovL3RoZXNhc3N3YXkuY29tL2ludGVybWVkaWF0ZS9sZXZlcmFnaW5nLXNhc3MtbWl4aW5zLWZvci1jbGVhbmVyLWNvZGVcbmh0dHA6Ly93ZWItZGVzaWduLXdlZWtseS5jb20vYmxvZy8yMDEzLzA1LzEyL2hhbmR5LXNhc3MtbWl4aW5zL1xuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQmFzZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gU2V0IGBmb250LXNpemVgIHRvIHN1cHBvcnQgYHJlbWAgdW5pdHNcbiAqICAgIE5vdCB1c2luZyBgZm9udGAgcHJvcGVydHkgYmVjYXVzZSBhIGxlYWRpbmcgaHlwaGVuIChlLmcuIC1hcHBsZS1zeXN0ZW0pIGNhdXNlcyB0aGUgZm9udCB0byBicmVhayBpbiBJRTExIGFuZCBFZGdlXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqIDMuIFN0eWxlXG4gKi9cbmh0bWwge1xuICAvKiAxICovXG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBcIk5vdG8gU2Fuc1wiLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDMgKi9cbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICM2NjY7IH1cblxuLypcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBMaW5rc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUmVtb3ZlIHRoZSBvdXRsaW5lIG9uIGZvY3VzZWQgbGlua3Mgd2hlbiB0aGV5IGFyZSBhbHNvIGFjdGl2ZSBvciBob3ZlcmVkXG4gKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLypcbiAqIFN0eWxlXG4gKi9cbmEsXG4udWstbGluayB7XG4gIGNvbG9yOiAjZjAxZDRmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5hOmhvdmVyLFxuLnVrLWxpbms6aG92ZXIsXG4udWstbGluay10b2dnbGU6aG92ZXIgLnVrLWxpbmssXG4udWstbGluay10b2dnbGU6Zm9jdXMgLnVrLWxpbmsge1xuICBjb2xvcjogIzBmNmVjZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gRWRnZS5cbiAqIDIuIFRoZSBzaG9ydGhhbmQgZGVjbGFyYXRpb24gYHVuZGVybGluZSBkb3R0ZWRgIGlzIG5vdCBzdXBwb3J0ZWQgaW4gU2FmYXJpLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBkb3R0ZWQ7IH1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbi8qXG4gKiAxLiBDb25zb2xhcyBoYXMgYSBiZXR0ZXIgYmFzZWxpbmUgaW4gcnVubmluZyB0ZXh0IGNvbXBhcmVkIHRvIGBDb3VyaWVyYFxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICogMy4gU3R5bGVcbiAqL1xuOm5vdChwcmUpID4gY29kZSxcbjpub3QocHJlKSA+IGtiZCxcbjpub3QocHJlKSA+IHNhbXAge1xuICAvKiAxICovXG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgbW9uYWNvLCBtb25vc3BhY2U7XG4gIC8qIDIgKi9cbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgLyogMyAqL1xuICBjb2xvcjogI2YwNTA2ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZzogMnB4IDZweDtcbiAgYmFja2dyb3VuZDogI2Y4ZjhmODsgfVxuXG4vKlxuICogRW1waGFzaXplXG4gKi9cbmVtIHtcbiAgY29sb3I6ICM1YzZiODA7IH1cblxuLypcbiAqIEluc2VydFxuICovXG5pbnMge1xuICBiYWNrZ3JvdW5kOiAjZmZkO1xuICBjb2xvcjogIzY2NjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qXG4gKiBNYXJrXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmZkO1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKlxuICogUXVvdGVcbiAqL1xucSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLypcbiAqIFByZXZlbnRzIGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFJlbW92ZSB0aGUgZ2FwIGJldHdlZW4gZW1iZWRkZWQgY29udGVudCBhbmQgdGhlIGJvdHRvbSBvZiB0aGVpciBjb250YWluZXJzLlxuICovXG5hdWRpbyxcbmNhbnZhcyxcbmlmcmFtZSxcbmltZyxcbnN2ZyxcbnZpZGVvIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4vKlxuICogMS4gQWRkIHJlc3BvbnNpdmVuZXNzLlxuICogMi4gQXV0by1zY2FsZSB0aGUgaGVpZ2h0LiBPbmx5IG5lZWRlZCBpZiBgaGVpZ2h0YCBhdHRyaWJ1dGUgaXMgcHJlc2VudC5cbiAqIDMuIENvcnJlY3RzIHJlc3BvbnNpdmUgYG1heC13aWR0aGAgYmVoYXZpb3IgaWYgcGFkZGluZyBhbmQgYm9yZGVyIGFyZSB1c2VkLlxuICogNC4gRXhjbHVkZSBTVkdzIGZvciBJRTExIGJlY2F1c2UgdGhleSBkb24ndCBwcmVzZXJ2ZSB0aGVpciBhc3BlY3QgcmF0aW8uXG4gKi9cbmNhbnZhcyxcbmltZyxcbnZpZGVvIHtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDIgKi9cbiAgaGVpZ2h0OiBhdXRvO1xuICAvKiAzICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLyogNCAqL1xuQHN1cHBvcnRzIChkaXNwbGF5OiBibG9jaykge1xuICBzdmcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfSB9XG5cbi8qXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qXG4gKiAxLiBGaXggbGF6eSBsb2FkaW5nIGltYWdlcyBpZiBwYXJlbnQgZWxlbWVudCBpcyBzZXQgdG8gYGRpc3BsYXk6IGlubGluZWAgYW5kIGhhcyBgb3ZlcmZsb3c6IGhpZGRlbmAuXG4gKiAyLiBIaWRlIGBhbHRgIHRleHQgZm9yIGxhenkgbG9hZGluZyBpbWFnZXMuXG4gKiBOb3RlOiBTZWxlY3RvciBmb3IgYmFja2dyb3VuZCB3aGlsZSBsb2FkaW5nIGltZ1tkYXRhLXNyYyo9Jy5qcGcnXVtzcmMqPSdkYXRhOmltYWdlJ10geyBiYWNrZ3JvdW5kOiBncmV5OyB9XG4gKi9cbmltZzpub3QoW3NyY10pIHtcbiAgLyogMSAqL1xuICBtaW4td2lkdGg6IDFweDtcbiAgLyogMiAqL1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLypcbiAqIElmcmFtZVxuICogUmVtb3ZlIGJvcmRlciBpbiBhbGwgYnJvd3NlcnNcbiAqL1xuaWZyYW1lIHtcbiAgYm9yZGVyOiAwOyB9XG5cbi8qIEJsb2NrIGVsZW1lbnRzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBNYXJnaW5zXG4gKi9cbnAsXG51bCxcbm9sLFxuZGwsXG5wcmUsXG5hZGRyZXNzLFxuZmllbGRzZXQsXG5maWd1cmUge1xuICBtYXJnaW46IDAgMCAwIDA7IH1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgcCxcbiogKyB1bCxcbiogKyBvbCxcbiogKyBkbCxcbiogKyBwcmUsXG4qICsgYWRkcmVzcyxcbiogKyBmaWVsZHNldCxcbiogKyBmaWd1cmUge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qIEhlYWRpbmdzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmgxLCAudWstaDEsXG5oMiwgLnVrLWgyLFxuaDMsIC51ay1oMyxcbmg0LCAudWstaDQsXG5oNSwgLnVrLWg1LFxuaDYsIC51ay1oNixcbi51ay1oZWFkaW5nLXNtYWxsLFxuLnVrLWhlYWRpbmctbWVkaXVtLFxuLnVrLWhlYWRpbmctbGFyZ2UsXG4udWstaGVhZGluZy14bGFyZ2UsXG4udWstaGVhZGluZy0yeGxhcmdlIHtcbiAgbWFyZ2luOiAwIDAgMCAwO1xuICBmb250LWZhbWlseTogXCJwbGF5ZmFpci1kaXNwbGF5XCI7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4vKiBBZGQgbWFyZ2luIGlmIGFkamFjZW50IGVsZW1lbnQgKi9cbiogKyBoMSwgKiArIC51ay1oMSxcbiogKyBoMiwgKiArIC51ay1oMixcbiogKyBoMywgKiArIC51ay1oMyxcbiogKyBoNCwgKiArIC51ay1oNCxcbiogKyBoNSwgKiArIC51ay1oNSxcbiogKyBoNiwgKiArIC51ay1oNixcbiogKyAudWstaGVhZGluZy1zbWFsbCxcbiogKyAudWstaGVhZGluZy1tZWRpdW0sXG4qICsgLnVrLWhlYWRpbmctbGFyZ2UsXG4qICsgLnVrLWhlYWRpbmcteGxhcmdlLFxuKiArIC51ay1oZWFkaW5nLTJ4bGFyZ2Uge1xuICBtYXJnaW4tdG9wOiA0MHB4OyB9XG5cbi8qXG4gKiBTaXplc1xuICovXG5oMSwgLnVrLWgxIHtcbiAgZm9udC1zaXplOiAyLjIzMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yOyB9XG5cbmgyLCAudWstaDIge1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzsgfVxuXG5oMywgLnVrLWgzIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuaDQsIC51ay1oNCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuXG5oNSwgLnVrLWg1IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbmg2LCAudWstaDYge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICBoMSwgLnVrLWgxIHtcbiAgICBmb250LXNpemU6IDIuNjI1cmVtOyB9XG4gIGgyLCAudWstaDIge1xuICAgIGZvbnQtc2l6ZTogMnJlbTsgfSB9XG5cbi8qIExpc3RzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbnVsLFxub2wge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLypcbiAqIFJlc2V0IG1hcmdpbiBmb3IgbmVzdGVkIGxpc3RzXG4gKi9cbnVsID4gbGkgPiB1bCxcbnVsID4gbGkgPiBvbCxcbm9sID4gbGkgPiBvbCxcbm9sID4gbGkgPiB1bCB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBEZXNjcmlwdGlvbiBsaXN0c1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmRkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLyogSG9yaXpvbnRhbCBydWxlc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gQ2hyb21lLCBFZGdlIGFuZCBJRS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0LWFsaWduIGluIEVkZ2UgYW5kIElFLlxuICogMy4gU3R5bGVcbiAqL1xuaHIsIC51ay1ociB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi9cbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgLyogMyAqL1xuICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgaHIsXG4qICsgLnVrLWhyIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4vKiBBZGRyZXNzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmFkZHJlc3Mge1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuLyogQmxvY2txdW90ZXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIGJsb2NrcXVvdGUge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi8qXG4gKiBDb250ZW50XG4gKi9cbmJsb2NrcXVvdGUgcDpsYXN0LW9mLXR5cGUge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmJsb2NrcXVvdGUgZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICM2NjY7IH1cbiAgYmxvY2txdW90ZSBmb290ZXI6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCLigJQgXCI7IH1cblxuLyogUHJlZm9ybWF0dGVkIHRleHRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250OiAwLjg3NXJlbSAvIDEuNSBDb25zb2xhcywgbW9uYWNvLCBtb25vc3BhY2U7XG4gIGNvbG9yOiAjNjY2O1xuICAtbW96LXRhYi1zaXplOiA0O1xuICB0YWItc2l6ZTogNDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogYXV0bztcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG5cbnByZSBjb2RlIHtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBtb25hY28sIG1vbm9zcGFjZTsgfVxuXG4vKiBTZWxlY3Rpb24gcHNldWRvLWVsZW1lbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAjMzlmO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7IH1cblxuLyogSFRNTDUgZWxlbWVudHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuZGV0YWlscyxcbm1haW4ge1xuICAvKiAyICovXG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07IH1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogUGFzcyBtZWRpYSBicmVha3BvaW50cyB0byBKU1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQnJlYWtwb2ludHNcbiAqL1xuLnVrLWJyZWFrcG9pbnQtczo6YmVmb3JlIHtcbiAgY29udGVudDogXCI3NjhweFwiOyB9XG5cbi51ay1icmVha3BvaW50LW06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiMTAyNHB4XCI7IH1cblxuLnVrLWJyZWFrcG9pbnQtbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCIxMjAwcHhcIjsgfVxuXG4udWstYnJlYWtwb2ludC14bDo6YmVmb3JlIHtcbiAgY29udGVudDogXCIxNjAwcHhcIjsgfVxuXG46cm9vdCB7XG4gIC0tdWstYnJlYWtwb2ludC1zOiA3NjhweDtcbiAgLS11ay1icmVha3BvaW50LW06IDEwMjRweDtcbiAgLS11ay1icmVha3BvaW50LWw6IDEyMDBweDtcbiAgLS11ay1icmVha3BvaW50LXhsOiAxNjAwcHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IExpbmtcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogTXV0ZWRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuYS51ay1saW5rLW11dGVkLFxuLnVrLWxpbmstbXV0ZWQgYSB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbmEudWstbGluay1tdXRlZDpob3Zlcixcbi51ay1saW5rLW11dGVkIGE6aG92ZXIsXG4udWstbGluay10b2dnbGU6aG92ZXIgLnVrLWxpbmstbXV0ZWQsXG4udWstbGluay10b2dnbGU6Zm9jdXMgLnVrLWxpbmstbXV0ZWQge1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKiBUZXh0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmEudWstbGluay10ZXh0LFxuLnVrLWxpbmstdGV4dCBhIHtcbiAgY29sb3I6IGluaGVyaXQ7IH1cblxuYS51ay1saW5rLXRleHQ6aG92ZXIsXG4udWstbGluay10ZXh0IGE6aG92ZXIsXG4udWstbGluay10b2dnbGU6aG92ZXIgLnVrLWxpbmstdGV4dCxcbi51ay1saW5rLXRvZ2dsZTpmb2N1cyAudWstbGluay10ZXh0IHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLyogSGVhZGluZ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5hLnVrLWxpbmstaGVhZGluZyxcbi51ay1saW5rLWhlYWRpbmcgYSB7XG4gIGNvbG9yOiBpbmhlcml0OyB9XG5cbmEudWstbGluay1oZWFkaW5nOmhvdmVyLFxuLnVrLWxpbmstaGVhZGluZyBhOmhvdmVyLFxuLnVrLWxpbmstdG9nZ2xlOmhvdmVyIC51ay1saW5rLWhlYWRpbmcsXG4udWstbGluay10b2dnbGU6Zm9jdXMgLnVrLWxpbmstaGVhZGluZyB7XG4gIGNvbG9yOiAjMWU4N2YwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLyogUmVzZXRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIGAhaW1wb3J0YW50YCBuZWVkZWQgdG8gb3ZlcnJpZGUgaW52ZXJzZSBjb21wb25lbnRcbiAqL1xuYS51ay1saW5rLXJlc2V0LFxuLnVrLWxpbmstcmVzZXQgYSB7XG4gIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qIFRvZ2dsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbGluay10b2dnbGUge1xuICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxuXG4udWstbGluay10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBIZWFkaW5nXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1oZWFkaW5nLXNtYWxsIHtcbiAgZm9udC1zaXplOiAyLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cblxuLnVrLWhlYWRpbmctbWVkaXVtIHtcbiAgZm9udC1zaXplOiAyLjg4NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7IH1cblxuLnVrLWhlYWRpbmctbGFyZ2Uge1xuICBmb250LXNpemU6IDMuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTsgfVxuXG4udWstaGVhZGluZy14bGFyZ2Uge1xuICBmb250LXNpemU6IDRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi51ay1oZWFkaW5nLTJ4bGFyZ2Uge1xuICBmb250LXNpemU6IDZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi8qIFRhYmxldCBMYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstaGVhZGluZy1zbWFsbCB7XG4gICAgZm9udC1zaXplOiAzLjI1cmVtOyB9XG4gIC51ay1oZWFkaW5nLW1lZGl1bSB7XG4gICAgZm9udC1zaXplOiAzLjVyZW07IH1cbiAgLnVrLWhlYWRpbmctbGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogNHJlbTsgfVxuICAudWstaGVhZGluZy14bGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogNnJlbTsgfVxuICAudWstaGVhZGluZy0yeGxhcmdlIHtcbiAgICBmb250LXNpemU6IDhyZW07IH0gfVxuXG4vKiBMYXB0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstaGVhZGluZy1tZWRpdW0ge1xuICAgIGZvbnQtc2l6ZTogNHJlbTsgfVxuICAudWstaGVhZGluZy1sYXJnZSB7XG4gICAgZm9udC1zaXplOiA2cmVtOyB9XG4gIC51ay1oZWFkaW5nLXhsYXJnZSB7XG4gICAgZm9udC1zaXplOiA4cmVtOyB9XG4gIC51ay1oZWFkaW5nLTJ4bGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMTFyZW07IH0gfVxuXG4vKiBQcmltYXJ5XG4gICBEZXByZWNhdGVkOiBVc2UgYHVrLWhlYWRpbmctbWVkaXVtYCBpbnN0ZWFkXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG4vKiBIZXJvXG4gICBEZXByZWNhdGVkOiBVc2UgYHVrLWhlYWRpbmcteGxhcmdlYCBpbnN0ZWFkXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG4vKiBEaXZpZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1oZWFkaW5nLWRpdmlkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYyg1cHggKyAwLjFlbSk7XG4gIGJvcmRlci1ib3R0b206IGNhbGMoMC4ycHggKyAwLjA1ZW0pIHNvbGlkICNlNWU1ZTU7IH1cblxuLyogQnVsbGV0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1oZWFkaW5nLWJ1bGxldCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKlxuICogMS4gVXNpbmcgYGlubGluZS1ibG9ja2AgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGV4dCBhbGlnbm1lbnRcbiAqIDIuIENlbnRlciB2ZXJ0aWNhbGx5XG4gKiAzLiBTdHlsZVxuICovXG4udWstaGVhZGluZy1idWxsZXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiBjYWxjKC0wLjEgKiAxZW0pO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAvKiAzICovXG4gIGhlaWdodDogY2FsYyg0cHggKyAwLjdlbSk7XG4gIG1hcmdpbi1yaWdodDogY2FsYyg1cHggKyAwLjJlbSk7XG4gIGJvcmRlci1sZWZ0OiBjYWxjKDVweCArIDAuMWVtKSBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qIExpbmVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIENsaXAgdGhlIGNoaWxkIGVsZW1lbnRcbiAqL1xuLnVrLWhlYWRpbmctbGluZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLypcbiAqIEV4dHJhIG1hcmt1cCBpcyBuZWVkZWQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGV4dCBhbGlnblxuICovXG4udWstaGVhZGluZy1saW5lID4gKiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi8qXG4gKiAxLiBDZW50ZXIgdmVydGljYWxseVxuICogMi4gTWFrZSB0aGUgZWxlbWVudCBhcyBsYXJnZSBhcyBwb3NzaWJsZS4gSXQncyBjbGlwcGVkIGJ5IHRoZSBjb250YWluZXIuXG4gKiAzLiBTdHlsZVxuICovXG4udWstaGVhZGluZy1saW5lID4gOjpiZWZvcmUsXG4udWstaGVhZGluZy1saW5lID4gOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIC8qIDEgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlIC0gKGNhbGMoMC4ycHggKyAwLjA1ZW0pIC8gMikpO1xuICAvKiAyICovXG4gIHdpZHRoOiAyMDAwcHg7XG4gIC8qIDMgKi9cbiAgYm9yZGVyLWJvdHRvbTogY2FsYygwLjJweCArIDAuMDVlbSkgc29saWQgI2U1ZTVlNTsgfVxuXG4udWstaGVhZGluZy1saW5lID4gOjpiZWZvcmUge1xuICByaWdodDogMTAwJTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDVweCArIDAuM2VtKTsgfVxuXG4udWstaGVhZGluZy1saW5lID4gOjphZnRlciB7XG4gIGxlZnQ6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDVweCArIDAuM2VtKTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogRGl2aWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUmVzZXQgZGVmYXVsdCBgaHJgXG4gKiAyLiBTZXQgbWFyZ2luIGlmIGEgYGRpdmAgaXMgdXNlZCBmb3Igc2VtYW50aWNhbCByZWFzb25cbiAqL1xuW2NsYXNzKj0ndWstZGl2aWRlciddIHtcbiAgLyogMSAqL1xuICBib3JkZXI6IG5vbmU7XG4gIC8qIDIgKi9cbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4vKiBBZGQgbWFyZ2luIGlmIGFkamFjZW50IGVsZW1lbnQgKi9cbiogKyBbY2xhc3MqPSd1ay1kaXZpZGVyJ10ge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi8qIEljb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWRpdmlkZXItaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjIwJTIyJTIwaGVpZ2h0JTNEJTIyMjAlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyMCUyMDIwJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHN0cm9rZSUzRCUyMiUyM2U1ZTVlNSUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjIlMjIlMjBjeCUzRCUyMjEwJTIyJTIwY3klM0QlMjIxMCUyMiUyMHIlM0QlMjI3JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlOyB9XG5cbi51ay1kaXZpZGVyLWljb246OmJlZm9yZSxcbi51ay1kaXZpZGVyLWljb246OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWF4LXdpZHRoOiBjYWxjKDUwJSAtICg1MHB4IC8gMikpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4udWstZGl2aWRlci1pY29uOjpiZWZvcmUge1xuICByaWdodDogY2FsYyg1MCUgKyAoNTBweCAvIDIpKTtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnVrLWRpdmlkZXItaWNvbjo6YWZ0ZXIge1xuICBsZWZ0OiBjYWxjKDUwJSArICg1MHB4IC8gMikpO1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKiBTbWFsbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gRml4IGhlaWdodCBiZWNhdXNlIG9mIGBpbmxpbmUtYmxvY2tgXG4gKiAyLiBVc2luZyA6OmFmdGVyIGFuZCBpbmxpbmUtYmxvY2sgdG8gbWFrZSBgdGV4dC1hbGlnbmAgd29ya1xuICovXG4vKiAxICovXG4udWstZGl2aWRlci1zbWFsbCB7XG4gIGxpbmUtaGVpZ2h0OiAwOyB9XG5cbi8qIDIgKi9cbi51ay1kaXZpZGVyLXNtYWxsOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi8qIFZlcnRpY2FsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBMaXN0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1saXN0IHtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1saXN0ID4gKiA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKlxuICogU3R5bGVcbiAqL1xuLnVrLWxpc3QgPiA6bnRoLWNoaWxkKG4rMiksXG4udWstbGlzdCA+ICogPiB1bCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuLyogTWFya2VyIG1vZGlmaWVyc1xuICogTW92aW5nIGA6Om1hcmtlcmAgaW5zaWRlIGA6OmJlZm9yZWAgdG8gc3R5bGUgaXQgZGlmZmVyZW50bHlcbiAqIFRvIHN0eWxlIHRoZSBgOjptYXJrZXJgIGlzIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRlZCBpbiBGaXJlZm94IGFuZCBTYWZhcmlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWxpc3QtZGlzYyA+ICosXG4udWstbGlzdC1jaXJjbGUgPiAqLFxuLnVrLWxpc3Qtc3F1YXJlID4gKixcbi51ay1saXN0LWRlY2ltYWwgPiAqLFxuLnVrLWxpc3QtaHlwaGVuID4gKiB7XG4gIHBhZGRpbmctbGVmdDogMzBweDsgfVxuXG4vKlxuICogVHlwZSBtb2RpZmllcnNcbiAqL1xuLnVrLWxpc3QtZGVjaW1hbCB7XG4gIGNvdW50ZXItcmVzZXQ6IGRlY2ltYWw7IH1cblxuLnVrLWxpc3QtZGVjaW1hbCA+ICoge1xuICBjb3VudGVyLWluY3JlbWVudDogZGVjaW1hbDsgfVxuXG5bY2xhc3MqPSd1ay1saXN0J10gPiA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC0zMHB4O1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAxLjVlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTEuNWVtO1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnVrLWxpc3QtZGlzYyA+IDo6YmVmb3JlIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cbi51ay1saXN0LWNpcmNsZSA+IDo6YmVmb3JlIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7IH1cblxuLnVrLWxpc3Qtc3F1YXJlID4gOjpiZWZvcmUge1xuICBsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTsgfVxuXG4udWstbGlzdC1kZWNpbWFsID4gOjpiZWZvcmUge1xuICBjb250ZW50OiBjb3VudGVyKGRlY2ltYWwsIGRlY2ltYWwpIFwi4oCKLsKgXCI7IH1cblxuLnVrLWxpc3QtaHlwaGVuID4gOjpiZWZvcmUge1xuICBjb250ZW50OiAn4oCTXFwwMEEwXFwwMEEwJzsgfVxuXG4vKlxuICogQ29sb3IgbW9kaWZpZXJzXG4gKi9cbi51ay1saXN0LW11dGVkID4gOjpiZWZvcmUge1xuICBjb2xvcjogIzk5OSAhaW1wb3J0YW50OyB9XG5cbi51ay1saXN0LWVtcGhhc2lzID4gOjpiZWZvcmUge1xuICBjb2xvcjogIzMzMyAhaW1wb3J0YW50OyB9XG5cbi51ay1saXN0LXByaW1hcnkgPiA6OmJlZm9yZSB7XG4gIGNvbG9yOiAjMWU4N2YwICFpbXBvcnRhbnQ7IH1cblxuLnVrLWxpc3Qtc2Vjb25kYXJ5ID4gOjpiZWZvcmUge1xuICBjb2xvcjogIzIyMiAhaW1wb3J0YW50OyB9XG5cbi8qIEltYWdlIGJ1bGxldCBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbGlzdC1idWxsZXQgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4OyB9XG5cbi51ay1saXN0LWJ1bGxldCA+IDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMzBweDtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMS41ZW07XG4gIG1hcmdpbi1ib3R0b206IC0xLjVlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjI2JTIyJTIwaGVpZ2h0JTNEJTIyNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYlMjA2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBmaWxsJTNEJTIyJTIzNjY2JTIyJTIwY3glM0QlMjIzJTIyJTIwY3klM0QlMjIzJTIyJTIwciUzRCUyMjMlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7IH1cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBEaXZpZGVyXG4gKi9cbi51ay1saXN0LWRpdmlkZXIgPiA6bnRoLWNoaWxkKG4rMikge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLypcbiAqIFN0cmlwZWRcbiAqL1xuLnVrLWxpc3Qtc3RyaXBlZCA+ICoge1xuICBwYWRkaW5nOiAxMHB4IDEwcHg7IH1cbiAgLnVrLWxpc3Qtc3RyaXBlZCA+ICo6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLnVrLWxpc3Qtc3RyaXBlZCA+IDpudGgtb2YtdHlwZShvZGQpIHtcbiAgYmFja2dyb3VuZDogI2Y4ZjhmODsgfVxuXG4udWstbGlzdC1zdHJpcGVkID4gOm50aC1jaGlsZChuKzIpIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4vKiBTaXplIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1saXN0LWxhcmdlID4gOm50aC1jaGlsZChuKzIpLFxuLnVrLWxpc3QtbGFyZ2UgPiAqID4gdWwge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi51ay1saXN0LWNvbGxhcHNlID4gOm50aC1jaGlsZChuKzIpLFxuLnVrLWxpc3QtY29sbGFwc2UgPiAqID4gdWwge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qXG4gKiBEaXZpZGVyXG4gKi9cbi51ay1saXN0LWxhcmdlLnVrLWxpc3QtZGl2aWRlciA+IDpudGgtY2hpbGQobisyKSB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIHBhZGRpbmctdG9wOiAyMHB4OyB9XG5cbi51ay1saXN0LWNvbGxhcHNlLnVrLWxpc3QtZGl2aWRlciA+IDpudGgtY2hpbGQobisyKSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi8qXG4gKiBTdHJpcGVkXG4gKi9cbi51ay1saXN0LWxhcmdlLnVrLWxpc3Qtc3RyaXBlZCA+ICoge1xuICBwYWRkaW5nOiAyMHB4IDEwcHg7IH1cblxuLnVrLWxpc3QtY29sbGFwc2UudWstbGlzdC1zdHJpcGVkID4gKiB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuXG4udWstbGlzdC1sYXJnZS51ay1saXN0LXN0cmlwZWQgPiA6bnRoLWNoaWxkKG4rMiksXG4udWstbGlzdC1jb2xsYXBzZS51ay1saXN0LXN0cmlwZWQgPiA6bnRoLWNoaWxkKG4rMikge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBEZXNjcmlwdGlvbiBsaXN0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBUZXJtXG4gKi9cbi51ay1kZXNjcmlwdGlvbi1saXN0ID4gZHQge1xuICBjb2xvcjogIzMzMztcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4udWstZGVzY3JpcHRpb24tbGlzdCA+IGR0Om50aC1jaGlsZChuKzIpIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4vKlxuICogRGVzY3JpcHRpb25cbiAqL1xuLyogU3R5bGUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIExpbmVcbiAqL1xuLnVrLWRlc2NyaXB0aW9uLWxpc3QtZGl2aWRlciA+IGR0Om50aC1jaGlsZChuKzIpIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUYWJsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICogMi4gQmVoYXZlIGxpa2UgYSBibG9jayBlbGVtZW50XG4gKiAzLiBTdHlsZVxuICovXG4udWstdGFibGUge1xuICAvKiAxICovXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICAvKiAyICovXG4gIHdpZHRoOiAxMDAlO1xuICAvKiAzICovXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgLnVrLXRhYmxlIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4vKiBIZWFkZXIgY2VsbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gU3R5bGVcbiAqL1xuLnVrLXRhYmxlIHRoIHtcbiAgcGFkZGluZzogMTZweCAxMnB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjOTk5O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi8qIENlbGxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRhYmxlIHRkIHtcbiAgcGFkZGluZzogMTZweCAxMnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuLnVrLXRhYmxlIHRkID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIEZvb3RlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGFibGUgdGZvb3Qge1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi8qIENhcHRpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRhYmxlIGNhcHRpb24ge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBBbGlnbm1lbnQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRhYmxlLW1pZGRsZSxcbi51ay10YWJsZS1taWRkbGUgdGQge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7IH1cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBEaXZpZGVyXG4gKi9cbi51ay10YWJsZS1kaXZpZGVyID4gdHI6bm90KDpmaXJzdC1jaGlsZCksXG4udWstdGFibGUtZGl2aWRlciA+IDpub3QoOmZpcnN0LWNoaWxkKSA+IHRyLFxuLnVrLXRhYmxlLWRpdmlkZXIgPiA6Zmlyc3QtY2hpbGQgPiB0cjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qXG4gKiBTdHJpcGVkXG4gKi9cbi51ay10YWJsZS1zdHJpcGVkID4gdHI6bnRoLW9mLXR5cGUob2RkKSxcbi51ay10YWJsZS1zdHJpcGVkIHRib2R5IHRyOm50aC1vZi10eXBlKG9kZCkge1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLypcbiAqIEhvdmVyXG4gKi9cbi51ay10YWJsZS1ob3ZlciA+IHRyOmhvdmVyLFxuLnVrLXRhYmxlLWhvdmVyIHRib2R5IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZDsgfVxuXG4vKiBBY3RpdmUgc3RhdGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRhYmxlID4gdHIudWstYWN0aXZlLFxuLnVrLXRhYmxlIHRib2R5IHRyLnVrLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNmZmQ7IH1cblxuLyogU2l6ZSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGFibGUtc21hbGwgdGgsXG4udWstdGFibGUtc21hbGwgdGQge1xuICBwYWRkaW5nOiAxMHB4IDEycHg7IH1cblxuLnVrLXRhYmxlLWxhcmdlIHRoLFxuLnVrLXRhYmxlLWxhcmdlIHRkIHtcbiAgcGFkZGluZzogMjJweCAxMnB4OyB9XG5cbi8qIEp1c3RpZnkgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRhYmxlLWp1c3RpZnkgdGg6Zmlyc3QtY2hpbGQsXG4udWstdGFibGUtanVzdGlmeSB0ZDpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4udWstdGFibGUtanVzdGlmeSB0aDpsYXN0LWNoaWxkLFxuLnVrLXRhYmxlLWp1c3RpZnkgdGQ6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLyogQ2VsbCBzaXplIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay10YWJsZS1zaHJpbmsge1xuICB3aWR0aDogMXB4OyB9XG5cbi51ay10YWJsZS1leHBhbmQge1xuICBtaW4td2lkdGg6IDE1MHB4OyB9XG5cbi8qIENlbGwgbGluayBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRG9lcyBub3Qgd29yayB3aXRoIGB1ay10YWJsZS1qdXN0aWZ5YCBhdCB0aGUgbW9tZW50XG4gKi9cbi51ay10YWJsZS1saW5rIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XG5cbi51ay10YWJsZS1saW5rID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxNnB4IDEycHg7IH1cblxuLnVrLXRhYmxlLXNtYWxsIC51ay10YWJsZS1saW5rID4gYSB7XG4gIHBhZGRpbmc6IDEwcHggMTJweDsgfVxuXG4vKiBSZXNwb25zaXZlIHRhYmxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAudWstdGFibGUtcmVzcG9uc2l2ZSxcbiAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgdGJvZHksXG4gIC51ay10YWJsZS1yZXNwb25zaXZlIHRoLFxuICAudWstdGFibGUtcmVzcG9uc2l2ZSB0ZCxcbiAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgdHIge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC51ay10YWJsZS1yZXNwb25zaXZlIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC51ay10YWJsZS1yZXNwb25zaXZlIHRoLFxuICAudWstdGFibGUtcmVzcG9uc2l2ZSB0ZCB7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDsgfVxuICAudWstdGFibGUtcmVzcG9uc2l2ZSB0aDpub3QoOmZpcnN0LWNoaWxkKTpub3QoLnVrLXRhYmxlLWxpbmspLFxuICAudWstdGFibGUtcmVzcG9uc2l2ZSB0ZDpub3QoOmZpcnN0LWNoaWxkKTpub3QoLnVrLXRhYmxlLWxpbmspLFxuICAudWstdGFibGUtcmVzcG9uc2l2ZSAudWstdGFibGUtbGluazpub3QoOmZpcnN0LWNoaWxkKSA+IGEge1xuICAgIHBhZGRpbmctdG9wOiA1cHggIWltcG9ydGFudDsgfVxuICAudWstdGFibGUtcmVzcG9uc2l2ZSB0aDpub3QoOmxhc3QtY2hpbGQpOm5vdCgudWstdGFibGUtbGluayksXG4gIC51ay10YWJsZS1yZXNwb25zaXZlIHRkOm5vdCg6bGFzdC1jaGlsZCk6bm90KC51ay10YWJsZS1saW5rKSxcbiAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgLnVrLXRhYmxlLWxpbms6bm90KDpsYXN0LWNoaWxkKSA+IGEge1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHggIWltcG9ydGFudDsgfVxuICAudWstdGFibGUtanVzdGlmeS51ay10YWJsZS1yZXNwb25zaXZlIHRoLFxuICAudWstdGFibGUtanVzdGlmeS51ay10YWJsZS1yZXNwb25zaXZlIHRkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG5cbi51ay10YWJsZSB0Ym9keSB0ciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBsaW5lYXI7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEljb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIE5vdGU6IDEuIC0gNy4gaXMgcmVxdWlyZWQgZm9yIGBidXR0b25gIGVsZW1lbnRzLiBOZWVkZWQgZm9yIENsb3NlIGFuZCBGb3JtIEljb24gY29tcG9uZW50LlxuICogMS4gUmVtb3ZlIG1hcmdpbnMgaW4gQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhLlxuICogMi4gUmVtb3ZlIGJvcmRlcnMgZm9yIGBidXR0b25gLlxuICogMy4gUmVtb3ZlIGJvcmRlci1yYWRpdXMgaW4gQ2hyb21lLlxuICogNC4gQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRS5cbiAqIDUuIENvcnJlY3QgYGZvbnRgIHByb3BlcnRpZXMgYW5kIGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBmb3IgYGJ1dHRvbmAuXG4gKiA2LiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDcuIFJlbW92ZSBkZWZhdWx0IGBidXR0b25gIHBhZGRpbmcgYW5kIGJhY2tncm91bmQgY29sb3JcbiAqIDguIFN0eWxlXG4gKiA5LiBGaWxsIGFsbCBTVkcgZWxlbWVudHMgd2l0aCB0aGUgY3VycmVudCB0ZXh0IGNvbG9yIGlmIG5vIGBmaWxsYCBhdHRyaWJ1dGUgaXMgc2V0XG4gKiAxMC4gTGV0IHRoZSBjb250YWluZXIgZml0IHRoZSBoZWlnaHQgb2YgdGhlIGljb25cbiAqL1xuLnVrLWljb24ge1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqL1xuICBib3JkZXI6IG5vbmU7XG4gIC8qIDMgKi9cbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgLyogNCAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogNSAqL1xuICBmb250OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogNiAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLyogNy4gKi9cbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIDggKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiA5ICovXG4gIGZpbGw6IGN1cnJlbnRjb2xvcjtcbiAgLyogMTAgKi9cbiAgbGluZS1oZWlnaHQ6IDA7IH1cblxuLyogUmVxdWlyZWQgZm9yIGBidXR0b25gLiAqL1xuYnV0dG9uLnVrLWljb246bm90KDpkaXNhYmxlZCkge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLypcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbi51ay1pY29uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qXG4gKiBTZXQgdGhlIGZpbGwgYW5kIHN0cm9rZSBjb2xvciBvZiBhbGwgU1ZHIGVsZW1lbnRzIHRvIHRoZSBjdXJyZW50IHRleHQgY29sb3JcbiAqL1xuLnVrLWljb246bm90KC51ay1wcmVzZXJ2ZSkgW2ZpbGwqPScjJ106bm90KC51ay1wcmVzZXJ2ZSkge1xuICBmaWxsOiBjdXJyZW50Y29sb3I7IH1cblxuLnVrLWljb246bm90KC51ay1wcmVzZXJ2ZSkgW3N0cm9rZSo9JyMnXTpub3QoLnVrLXByZXNlcnZlKSB7XG4gIHN0cm9rZTogY3VycmVudGNvbG9yOyB9XG5cbi8qXG4gKiBGaXggRmlyZWZveCBibHVycnkgU1ZHIHJlbmRlcmluZzogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NjgzNVxuICovXG4udWstaWNvbiA+ICoge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4vKiBJbWFnZSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRGlzcGxheSBpbWFnZXMgaW4gaWNvbiBkaW1lbnNpb25zXG4gKi9cbi51ay1pY29uLWltYWdlIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogTGlua1xuICovXG4udWstaWNvbi1saW5rIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLnVrLWljb24tbGluazpob3Zlcixcbi51ay1pY29uLWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzY2NjtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXG4udWstaWNvbi1saW5rOmFjdGl2ZSxcbi51ay1hY3RpdmUgPiAudWstaWNvbi1saW5rIHtcbiAgY29sb3I6ICM1OTU5NTk7IH1cblxuLypcbiAqIEJ1dHRvblxuICogMS4gQ2VudGVyIGljb24gdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5XG4gKi9cbi51ay1pY29uLWJ1dHRvbiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICBjb2xvcjogIzk5OTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IDAuMXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yOyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1pY29uLWJ1dHRvbjpob3Zlcixcbi51ay1pY29uLWJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7XG4gIGNvbG9yOiAjNjY2O1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qIE9uQ2xpY2sgKyBBY3RpdmUgKi9cbi51ay1pY29uLWJ1dHRvbjphY3RpdmUsXG4udWstYWN0aXZlID4gLnVrLWljb24tYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZGVkZTtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEZvcm0gUmFuZ2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIE5vcm1hbGl6ZSBhbmQgZGVmYXVsdHNcbiAqIDIuIFByZXZlbnQgY29udGVudCBvdmVyZmxvdyBpZiBhIGZpeGVkIHdpZHRoIGlzIHVzZWRcbiAqIDMuIFRha2UgdGhlIGZ1bGwgd2lkdGhcbiAqIDQuIFJlbW92ZSBkZWZhdWx0IHN0eWxlXG4gKiA1LiBSZW1vdmUgd2hpdGUgYmFja2dyb3VuZCBpbiBDaHJvbWVcbiAqIDYuIFJlbW92ZSBwYWRkaW5nIGluIElFMTFcbiAqL1xuLnVrLXJhbmdlIHtcbiAgLyogMSAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIDIgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAzICovXG4gIHdpZHRoOiAxMDAlO1xuICAvKiA0ICovXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLyogNSAqL1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgLyogNiAqL1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qIEZvY3VzICovXG4udWstcmFuZ2U6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi51ay1yYW5nZTo6LW1vei1mb2N1cy1vdXRlciB7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4vKiBJRTExIFJlc2V0ICovXG4udWstcmFuZ2U6Oi1tcy10cmFjayB7XG4gIGhlaWdodDogMTVweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKlxuICogSW1wcm92ZXMgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGZvciBjbGlja2FibGUgZWxlbWVudHNcbiAqL1xuLnVrLXJhbmdlOm5vdCg6ZGlzYWJsZWQpOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4udWstcmFuZ2U6bm90KDpkaXNhYmxlZCk6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLnVrLXJhbmdlOm5vdCg6ZGlzYWJsZWQpOjotbXMtdGh1bWIge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLyogVGh1bWJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFJlc2V0XG4gKiAyLiBTdHlsZVxuICovXG4vKiBXZWJraXQgKi9cbi51ay1yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAvKiAxICovXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTdweDtcbiAgLyogMiAqL1xuICBoZWlnaHQ6IDE1cHg7XG4gIHdpZHRoOiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2JjYjsgfVxuXG4vKiBGaXJlZm94ICovXG4udWstcmFuZ2U6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAvKiAxICovXG4gIGJvcmRlcjogbm9uZTtcbiAgLyogMiAqL1xuICBoZWlnaHQ6IDE1cHg7XG4gIHdpZHRoOiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2JjYjsgfVxuXG4vKiBFZGdlICovXG4udWstcmFuZ2U6Oi1tcy10aHVtYiB7XG4gIC8qIDEgKi9cbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4vKiBJRTExICovXG4udWstcmFuZ2U6Oi1tcy10aHVtYiB7XG4gIC8qIDEgKi9cbiAgYm9yZGVyOiBub25lO1xuICAvKiAyICovXG4gIGhlaWdodDogMTVweDtcbiAgd2lkdGg6IDE1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjYmNiOyB9XG5cbi8qIEVkZ2UgKyBJRTExICovXG4udWstcmFuZ2U6Oi1tcy10b29sdGlwIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBUcmFja1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gU2FmYXJpIGRvZXNuJ3QgaGF2ZSBhIGZvY3VzIHN0YXRlLiBVc2luZyBhY3RpdmUgaW5zdGVhZC5cbiAqL1xuLyogV2Via2l0ICovXG4udWstcmFuZ2U6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQ6ICNlYmViZWI7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHB4OyB9XG5cbi51ay1yYW5nZTpmb2N1czo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2ssXG4udWstcmFuZ2U6YWN0aXZlOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gIGJhY2tncm91bmQ6ICNkMmQyZDI7IH1cblxuLyogRmlyZWZveCAqL1xuLnVrLXJhbmdlOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQ6ICNlYmViZWI7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHB4OyB9XG5cbi51ay1yYW5nZTpmb2N1czo6LW1vei1yYW5nZS10cmFjayB7XG4gIGJhY2tncm91bmQ6ICNkMmQyZDI7IH1cblxuLyogRWRnZSAqL1xuLnVrLXJhbmdlOjotbXMtZmlsbC1sb3dlcixcbi51ay1yYW5nZTo6LW1zLWZpbGwtdXBwZXIge1xuICBoZWlnaHQ6IDNweDtcbiAgYmFja2dyb3VuZDogI2ViZWJlYjtcbiAgYm9yZGVyLXJhZGl1czogNTAwcHg7IH1cblxuLnVrLXJhbmdlOmZvY3VzOjotbXMtZmlsbC1sb3dlcixcbi51ay1yYW5nZTpmb2N1czo6LW1zLWZpbGwtdXBwZXIge1xuICBiYWNrZ3JvdW5kOiAjZDJkMmQyOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBGb3JtXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBEZWZpbmUgY29uc2lzdGVudCBib3ggc2l6aW5nLlxuICogICAgRGVmYXVsdCBpcyBgY29udGVudC1ib3hgIHdpdGggZm9sbG93aW5nIGV4Y2VwdGlvbnMgc2V0IHRvIGBib3JkZXItYm94YFxuICogICAgYHNlbGVjdGAsIGBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl1gIGFuZCBgaW5wdXRbdHlwZT1cInJhZGlvXCJdYFxuICogICAgYGlucHV0W3R5cGU9XCJzZWFyY2hcIl1gIGluIENocm9tZSwgU2FmYXJpIGFuZCBPcGVyYVxuICogICAgYGlucHV0W3R5cGU9XCJjb2xvclwiXWAgaW4gRmlyZWZveFxuICogMi4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94L0lFIGFuZCBDaHJvbWUvU2FmYXJpL09wZXJhLlxuICogMy4gUmVtb3ZlIGBib3JkZXItcmFkaXVzYCBpbiBpT1MuXG4gKiA0LiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbi51ay1pbnB1dCxcbi51ay1zZWxlY3QsXG4udWstdGV4dGFyZWEsXG4udWstcmFkaW8sXG4udWstY2hlY2tib3gge1xuICAvKiAxICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovXG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC8qIDQgKi9cbiAgZm9udDogaW5oZXJpdDsgfVxuXG4vKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuLnVrLWlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLypcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuLnVrLXNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qXG4gKiAxLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBhbGwgYnJvd3NlcnNcbiAqIDIuIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgYW5kIHVzZSBgYm9sZGAgaW5zdGVhZC5cbiAqIE5PVEU6IEJvdGggZGVjbGFyYXRpb25zIGRvbid0IHdvcmsgaW4gQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhLlxuICovXG4udWstc2VsZWN0IG9wdGdyb3VwIHtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuLnVrLXRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLypcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIG9uIE9TIFggYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG4udWstaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbi51ay1pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cbi51ay1pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuLnVrLWlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLypcbiAqIFJlbW92ZXMgcGxhY2Vob2xkZXIgdHJhbnNwYXJlbmN5IGluIEZpcmVmb3guXG4gKi9cbi51ay1pbnB1dDo6LW1vei1wbGFjZWhvbGRlcixcbi51ay10ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLypcbiAqIEltcHJvdmVzIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBmb3IgY2xpY2thYmxlIGVsZW1lbnRzXG4gKi9cbi51ay1yYWRpbzpub3QoOmRpc2FibGVkKSxcbi51ay1jaGVja2JveDpub3QoOmRpc2FibGVkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4vKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG4udWstZmllbGRzZXQge1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKiBJbnB1dCwgc2VsZWN0IGFuZCB0ZXh0YXJlYVxuICogQWxsb3dlZDogYHRleHRgLCBgcGFzc3dvcmRgLCBgZGF0ZXRpbWVgLCBgZGF0ZXRpbWUtbG9jYWxgLCBgZGF0ZWAsICBgbW9udGhgLFxuICAgICAgICAgICAgYHRpbWVgLCBgd2Vla2AsIGBudW1iZXJgLCBgZW1haWxgLCBgdXJsYCwgYHNlYXJjaGAsIGB0ZWxgLCBgY29sb3JgXG4gKiBEaXNhbGxvd2VkOiBgcmFuZ2VgLCBgcmFkaW9gLCBgY2hlY2tib3hgLCBgZmlsZWAsIGBzdWJtaXRgLCBgcmVzZXRgIGFuZCBgaW1hZ2VgXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZW1vdmUgZGVmYXVsdCBzdHlsZSBpbiBpT1MuXG4gKi9cbi51ay1pbnB1dCxcbi51ay10ZXh0YXJlYSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKlxuICogMS4gUHJldmVudCBjb250ZW50IG92ZXJmbG93IGlmIGEgZml4ZWQgd2lkdGggaXMgdXNlZFxuICogMi4gVGFrZSB0aGUgZnVsbCB3aWR0aFxuICogMy4gUmVzZXQgZGVmYXVsdFxuICogNC4gU3R5bGVcbiAqL1xuLnVrLWlucHV0LFxuLnVrLXNlbGVjdCxcbi51ay10ZXh0YXJlYSB7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAyICovXG4gIHdpZHRoOiAxMDAlO1xuICAvKiAzICovXG4gIGJvcmRlcjogMCBub25lO1xuICAvKiA0ICovXG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICM2NjY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gIHRyYW5zaXRpb246IDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXI7IH1cblxuLypcbiAqIFNpbmdsZS1saW5lXG4gKiAxLiBBbGxvdyBhbnkgZWxlbWVudCB0byBsb29rIGxpa2UgYW4gYGlucHV0YCBvciBgc2VsZWN0YCBlbGVtZW50XG4gKiAyLiBNYWtlIHN1cmUgbGluZS1oZWlnaHQgaXMgbm90IGxhcmdlciB0aGFuIGhlaWdodFxuICogICAgQWxzbyBuZWVkZWQgdG8gY2VudGVyIHRoZSB0ZXh0IHZlcnRpY2FsbHlcbiAqL1xuLnVrLWlucHV0LFxuLnVrLXNlbGVjdDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkge1xuICBoZWlnaHQ6IDQwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qIDIgKi9cbi51ay1pbnB1dDpub3QoaW5wdXQpLFxuLnVrLXNlbGVjdDpub3Qoc2VsZWN0KSB7XG4gIGxpbmUtaGVpZ2h0OiAzOHB4OyB9XG5cbi8qXG4gKiBNdWx0aS1saW5lXG4gKi9cbi51ay1zZWxlY3RbbXVsdGlwbGVdLFxuLnVrLXNlbGVjdFtzaXplXSxcbi51ay10ZXh0YXJlYSB7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLyogRm9jdXMgKi9cbi51ay1pbnB1dDpmb2N1cyxcbi51ay1zZWxlY3Q6Zm9jdXMsXG4udWstdGV4dGFyZWE6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzY2NjtcbiAgYm9yZGVyLWNvbG9yOiAjMWU4N2YwOyB9XG5cbi8qIERpc2FibGVkICovXG4udWstaW5wdXQ6ZGlzYWJsZWQsXG4udWstc2VsZWN0OmRpc2FibGVkLFxuLnVrLXRleHRhcmVhOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgY29sb3I6ICM5OTk7XG4gIGJvcmRlci1jb2xvcjogI2U1ZTVlNTsgfVxuXG4vKlxuICogUGxhY2Vob2xkZXJcbiAqL1xuLnVrLWlucHV0OjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OSAhaW1wb3J0YW50OyB9XG5cbi51ay1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OTsgfVxuXG4udWstdGV4dGFyZWE6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyIChgdWstaW5wdXRgLCBgdWstc2VsZWN0YCBhbmQgYHVrLXRleHRhcmVhYClcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFNtYWxsXG4gKi9cbi51ay1mb3JtLXNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuXG4udWstZm9ybS1zbWFsbDpub3QodGV4dGFyZWEpOm5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKSB7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDsgfVxuXG4udWstZm9ybS1zbWFsbDpub3Qoc2VsZWN0KTpub3QoaW5wdXQpOm5vdCh0ZXh0YXJlYSkge1xuICBsaW5lLWhlaWdodDogMjhweDsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuLnVrLWZvcm0tbGFyZ2Uge1xuICBmb250LXNpemU6IDEuMjVyZW07IH1cblxuLnVrLWZvcm0tbGFyZ2U6bm90KHRleHRhcmVhKTpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkge1xuICBoZWlnaHQ6IDU1cHg7XG4gIHBhZGRpbmctbGVmdDogMTJweDtcbiAgcGFkZGluZy1yaWdodDogMTJweDsgfVxuXG4udWstZm9ybS1sYXJnZTpub3Qoc2VsZWN0KTpub3QoaW5wdXQpOm5vdCh0ZXh0YXJlYSkge1xuICBsaW5lLWhlaWdodDogNTNweDsgfVxuXG4vKiBTdHlsZSBtb2RpZmllciAoYHVrLWlucHV0YCwgYHVrLXNlbGVjdGAgYW5kIGB1ay10ZXh0YXJlYWApXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBFcnJvclxuICovXG4udWstZm9ybS1kYW5nZXIsXG4udWstZm9ybS1kYW5nZXI6Zm9jdXMge1xuICBjb2xvcjogI2YwNTA2ZTtcbiAgYm9yZGVyLWNvbG9yOiAjZjA1MDZlOyB9XG5cbi8qXG4gKiBTdWNjZXNzXG4gKi9cbi51ay1mb3JtLXN1Y2Nlc3MsXG4udWstZm9ybS1zdWNjZXNzOmZvY3VzIHtcbiAgY29sb3I6ICMzMmQyOTY7XG4gIGJvcmRlci1jb2xvcjogIzMyZDI5NjsgfVxuXG4vKlxuICogQmxhbmtcbiAqL1xuLnVrLWZvcm0tYmxhbmsge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi51ay1mb3JtLWJsYW5rOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTVlNWU1O1xuICBib3JkZXItc3R5bGU6IGRhc2hlZDsgfVxuXG4vKiBXaWR0aCBtb2RpZmllcnMgKGB1ay1pbnB1dGAsIGB1ay1zZWxlY3RgIGFuZCBgdWstdGV4dGFyZWFgKVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRml4ZWQgd2lkdGhzXG4gKiBEaWZmZXJlbnQgd2lkdGhzIGZvciBtaW5pIHNpemVkIGBpbnB1dGAgYW5kIGBzZWxlY3RgIGVsZW1lbnRzXG4gKi9cbmlucHV0LnVrLWZvcm0td2lkdGgteHNtYWxsIHtcbiAgd2lkdGg6IDUwcHg7IH1cblxuc2VsZWN0LnVrLWZvcm0td2lkdGgteHNtYWxsIHtcbiAgd2lkdGg6IDc1cHg7IH1cblxuLnVrLWZvcm0td2lkdGgtc21hbGwge1xuICB3aWR0aDogMTMwcHg7IH1cblxuLnVrLWZvcm0td2lkdGgtbWVkaXVtIHtcbiAgd2lkdGg6IDIwMHB4OyB9XG5cbi51ay1mb3JtLXdpZHRoLWxhcmdlIHtcbiAgd2lkdGg6IDUwMHB4OyB9XG5cbi8qIFNlbGVjdFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUmVtb3ZlIGRlZmF1bHQgc3R5bGUuIEFsc28gd29ya3MgaW4gRmlyZWZveFxuICogMi4gU3R5bGVcbiAqIDMuIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGluIElFIDEwLzExXG4gKiA0LiBTZXQgYGNvbG9yYCBmb3Igb3B0aW9ucyBpbiB0aGUgc2VsZWN0IGRyb3Bkb3duLCBiZWNhdXNlIHRoZSBpbmhlcml0ZWQgYGNvbG9yYCBtaWdodCBiZSB0b28gbGlnaHQuXG4gKi9cbi51ay1zZWxlY3Q6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pIHtcbiAgLyogMSAqL1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgLyogMiAqL1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzY2NiUyMiUyMHBvaW50cyUzRCUyMjEyJTIwMSUyMDklMjA2JTIwMTUlMjA2JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2NjYlMjIlMjBwb2ludHMlM0QlMjIxMiUyMDEzJTIwOSUyMDglMjAxNSUyMDglMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0UlMEFcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlOyB9XG5cbi8qIDMgKi9cbi51ay1zZWxlY3Q6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pOjotbXMtZXhwYW5kIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiA0ICovXG4udWstc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKSBvcHRpb24ge1xuICBjb2xvcjogIzQ0NDsgfVxuXG4vKlxuICogRGlzYWJsZWRcbiAqL1xuLnVrLXNlbGVjdDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSk6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk5OSUyMiUyMHBvaW50cyUzRCUyMjEyJTIwMSUyMDklMjA2JTIwMTUlMjA2JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5OTklMjIlMjBwb2ludHMlM0QlMjIxMiUyMDEzJTIwOSUyMDglMjAxNSUyMDglMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0UlMEFcIik7IH1cblxuLyogRGF0YWxpc3RcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGluIENocm9tZVxuICovXG4udWstaW5wdXRbbGlzdF0ge1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTsgfVxuXG4udWstaW5wdXRbbGlzdF06aG92ZXIsXG4udWstaW5wdXRbbGlzdF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjI0JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzY2NiUyMiUyMHBvaW50cyUzRCUyMjEyJTIwMTIlMjA4JTIwNiUyMDE2JTIwNiUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQVwiKTsgfVxuXG4vKiAxICovXG4udWstaW5wdXRbbGlzdF06Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogUmFkaW8gYW5kIGNoZWNrYm94XG4gKiBOb3RlOiBEb2VzIG5vdCB3b3JrIGluIElFMTFcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFN0eWxlXG4gKiAyLiBNYWtlIGJveCBtb3JlIHJvYnVzdCBzbyBpdCBjbGlwcyB0aGUgY2hpbGQgZWxlbWVudFxuICogMy4gVmVydGljYWwgYWxpZ25tZW50XG4gKiA0LiBSZW1vdmUgZGVmYXVsdCBzdHlsZVxuICogNS4gRml4IGJsYWNrIGJhY2tncm91bmQgb24gaU9TXG4gKiA2LiBDZW50ZXIgaWNvbnNcbiAqL1xuLnVrLXJhZGlvLFxuLnVrLWNoZWNrYm94IHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMTZweDtcbiAgd2lkdGg6IDE2cHg7XG4gIC8qIDIgKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogMyAqL1xuICBtYXJnaW4tdG9wOiAtNHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAvKiA0ICovXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAvKiA1ICovXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiA2ICovXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NiY2I7XG4gIHRyYW5zaXRpb246IDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIGJvcmRlcjsgfVxuXG4udWstcmFkaW8ge1xuICBib3JkZXItcmFkaXVzOiA1MCU7IH1cblxuLyogRm9jdXMgKi9cbi51ay1yYWRpbzpmb2N1cyxcbi51ay1jaGVja2JveDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogIzFlODdmMDsgfVxuXG4vKlxuICogQ2hlY2tlZFxuICovXG4udWstcmFkaW86Y2hlY2tlZCxcbi51ay1jaGVja2JveDpjaGVja2VkLFxuLnVrLWNoZWNrYm94OmluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWU4N2YwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIEZvY3VzICovXG4udWstcmFkaW86Y2hlY2tlZDpmb2N1cyxcbi51ay1jaGVja2JveDpjaGVja2VkOmZvY3VzLFxuLnVrLWNoZWNrYm94OmluZGV0ZXJtaW5hdGU6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGU2ZWNkOyB9XG5cbi8qXG4gKiBJY29uc1xuICovXG4udWstcmFkaW86Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTYlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTYlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2NpcmNsZSUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBjeCUzRCUyMjglMjIlMjBjeSUzRCUyMjglMjIlMjByJTNEJTIyMiUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRVwiKTsgfVxuXG4udWstY2hlY2tib3g6Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxMSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzZmZmJTIyJTIwcG9pbnRzJTNEJTIyMTIlMjAxJTIwNSUyMDcuNSUyMDIlMjA1JTIwMSUyMDUuNSUyMDUlMjAxMCUyMDEzJTIwMS41JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBXCIpOyB9XG5cbi51ay1jaGVja2JveDppbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjB4JTNEJTIyMyUyMiUyMHklM0QlMjI4JTIyJTIwd2lkdGglM0QlMjIxMCUyMiUyMGhlaWdodCUzRCUyMjElMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIik7IH1cblxuLypcbiAqIERpc2FibGVkXG4gKi9cbi51ay1yYWRpbzpkaXNhYmxlZCxcbi51ay1jaGVja2JveDpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XG4gIGJvcmRlci1jb2xvcjogI2U1ZTVlNTsgfVxuXG4udWstcmFkaW86ZGlzYWJsZWQ6Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTYlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTYlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2NpcmNsZSUyMGZpbGwlM0QlMjIlMjM5OTklMjIlMjBjeCUzRCUyMjglMjIlMjBjeSUzRCUyMjglMjIlMjByJTNEJTIyMiUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRVwiKTsgfVxuXG4udWstY2hlY2tib3g6ZGlzYWJsZWQ6Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxMSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTk5JTIyJTIwcG9pbnRzJTNEJTIyMTIlMjAxJTIwNSUyMDcuNSUyMDIlMjA1JTIwMSUyMDUuNSUyMDUlMjAxMCUyMDEzJTIwMS41JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBXCIpOyB9XG5cbi51ay1jaGVja2JveDpkaXNhYmxlZDppbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM5OTklMjIlMjB4JTNEJTIyMyUyMiUyMHklM0QlMjI4JTIyJTIwd2lkdGglM0QlMjIxMCUyMiUyMGhlaWdodCUzRCUyMjElMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIik7IH1cblxuLyogTGVnZW5kXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBMZWdlbmRcbiAqIDEuIEJlaGF2ZSBsaWtlIGJsb2NrIGVsZW1lbnRcbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqIDQuIFN0eWxlXG4gKi9cbi51ay1sZWdlbmQge1xuICAvKiAxICovXG4gIHdpZHRoOiAxMDAlO1xuICAvKiAyICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAzICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDQgKi9cbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuLyogQ3VzdG9tIGNvbnRyb2xzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBDb250YWluZXIgZml0cyBpdHMgY29udGVudFxuICogMi4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHRcbiAqIDMuIFByZXZlbnQgY29udGVudCBvdmVyZmxvd1xuICogNC4gQmVoYXZlIGxpa2UgbW9zdCBpbmxpbmUtYmxvY2sgZWxlbWVudHNcbiAqL1xuLnVrLWZvcm0tY3VzdG9tIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiAzICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogNCAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8qXG4gKiAxLiBQb3NpdGlvbiBhbmQgcmVzaXplIHRoZSBmb3JtIGNvbnRyb2wgdG8gYWx3YXlzIGNvdmVyIGl0cyBjb250YWluZXJcbiAqIDIuIFJlcXVpcmVkIGZvciBGaXJlZm94IGZvciBwb3NpdGlvbmluZyB0byB0aGUgbGVmdFxuICogMy4gUmVxdWlyZWQgZm9yIFdlYmtpdCB0byBtYWtlIGBoZWlnaHRgIHdvcmtcbiAqIDQuIEhpZGUgY29udHJvbGUgYW5kIHNob3cgY3Vyc29yXG4gKiA1LiBOZWVkZWQgZm9yIHRoZSBjdXJzb3JcbiAqIDYuIENsaXAgaGVpZ2h0IGNhdXNlZCBieSA1LiBOZWVkZWQgZm9yIFdlYmtpdCBvbmx5XG4gKi9cbi51ay1mb3JtLWN1c3RvbSBzZWxlY3QsXG4udWstZm9ybS1jdXN0b20gaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAvKiAxICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICAvKiAyICovXG4gIGxlZnQ6IDA7XG4gIC8qIDMgKi9cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAvKiA0ICovXG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4udWstZm9ybS1jdXN0b20gaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAvKiA1ICovXG4gIGZvbnQtc2l6ZTogNTAwcHg7XG4gIC8qIDYgKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBMYWJlbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstZm9ybS1sYWJlbCB7XG4gIGNvbG9yOiAjMzMzO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi8qIExheW91dFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogU3RhY2tlZFxuICovXG4udWstZm9ybS1zdGFja2VkIC51ay1mb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4vKlxuICogSG9yaXpvbnRhbFxuICovXG4vKiBUYWJsZXQgcG9ydHJhaXQgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLyogQmVoYXZlIGxpa2UgYHVrLWZvcm0tc3RhY2tlZGAgKi9cbiAgLnVrLWZvcm0taG9yaXpvbnRhbCAudWstZm9ybS1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1mb3JtLWhvcml6b250YWwgLnVrLWZvcm0tbGFiZWwge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnVrLWZvcm0taG9yaXpvbnRhbCAudWstZm9ybS1jb250cm9scyB7XG4gICAgbWFyZ2luLWxlZnQ6IDIxNXB4OyB9XG4gIC8qIEJldHRlciB2ZXJ0aWNhbCBhbGlnbm1lbnQgaWYgY29udHJvbHMgYXJlIGNoZWNrYm94ZXMgYW5kIHJhZGlvIGJ1dHRvbnMgd2l0aCB0ZXh0ICovXG4gIC51ay1mb3JtLWhvcml6b250YWwgLnVrLWZvcm0tY29udHJvbHMtdGV4dCB7XG4gICAgcGFkZGluZy10b3A6IDdweDsgfSB9XG5cbi8qIEljb25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBTZXQgcG9zaXRpb25cbiAqIDIuIFNldCB3aWR0aFxuICogMy4gQ2VudGVyIGljb24gdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5XG4gKiA0LiBTdHlsZVxuICovXG4udWstZm9ybS1pY29uIHtcbiAgLyogMSAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICAvKiAyICovXG4gIHdpZHRoOiA0MHB4O1xuICAvKiAzICovXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLyogNCAqL1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKlxuICogUmVxdWlyZWQgZm9yIGBhYC5cbiAqL1xuLnVrLWZvcm0taWNvbjpob3ZlciB7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi8qXG4gKiBNYWtlIGBpbnB1dGAgZWxlbWVudCBjbGlja2FibGUgdGhyb3VnaCBpY29uLCBlLmcuIGlmIGl0J3MgYSBgc3BhbmBcbiAqL1xuLnVrLWZvcm0taWNvbjpub3QoYSk6bm90KGJ1dHRvbik6bm90KGlucHV0KSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qXG4gKiBJbnB1dCBwYWRkaW5nXG4gKi9cbi51ay1mb3JtLWljb246bm90KC51ay1mb3JtLWljb24tZmxpcCkgfiAudWstaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDQwcHggIWltcG9ydGFudDsgfVxuXG4vKlxuICogUG9zaXRpb24gbW9kaWZpZXJcbiAqL1xuLnVrLWZvcm0taWNvbi1mbGlwIHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLnVrLWZvcm0taWNvbi1mbGlwIH4gLnVrLWlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogNDBweCAhaW1wb3J0YW50OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBCdXR0b25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFJlbW92ZSBtYXJnaW5zIGluIENocm9tZSwgU2FmYXJpIGFuZCBPcGVyYS5cbiAqIDIuIFJlbW92ZSBib3JkZXJzIGZvciBgYnV0dG9uYC5cbiAqIDMuIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUuXG4gKiA0LiBDb3JyZWN0IGBmb250YCBwcm9wZXJ0aWVzIGFuZCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgZm9yIGBidXR0b25gLlxuICogNS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiA2LiBSZW1vdmUgZGVmYXVsdCBzdHlsZSBmb3IgYGlucHV0IHR5cGU9XCJzdWJtaXRcImBpbiBpT1MuXG4gKiA3LiBTdHlsZVxuICogOC4gYGxpbmUtaGVpZ2h0YCBpcyB1c2VkIHRvIGNyZWF0ZSBhIGhlaWdodCBiZWNhdXNlIGl0IGFsc28gY2VudGVycyB0aGUgdGV4dCB2ZXJ0aWNhbGx5IGZvciBgYWAgZWxlbWVudHMuXG4gKiAgICBCZXR0ZXIgd291bGQgYmUgdG8gdXNlIGhlaWdodCBhbmQgZmxleGJveCB0byBjZW50ZXIgdGhlIHRleHQgdmVydGljYWxseSBidXQgZmxleGJveCBkb2Vzbid0IHdvcmsgaW4gRmlyZWZveCBvbiBgYnV0dG9uYCBlbGVtZW50cy5cbiAqIDkuIEFsaWduIHRleHQgaWYgYnV0dG9uIGhhcyBhIHdpZHRoXG4gKiAxMC4gUmVxdWlyZWQgZm9yIGBhYC5cbiAqL1xuLnVrLWJ1dHRvbiB7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovXG4gIGJvcmRlcjogbm9uZTtcbiAgLyogMyAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogNCAqL1xuICBmb250OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogNSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLyogNiAqL1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC8qIDcgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwIDMwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIC8qIDggKi9cbiAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gIC8qIDkgKi9cbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvKiAxMCAqL1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zaXRpb246IDAuMXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3I7IH1cblxuLnVrLWJ1dHRvbjpub3QoOmRpc2FibGVkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4vKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuLnVrLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKiBIb3ZlciAqL1xuLnVrLWJ1dHRvbjpob3ZlciB7XG4gIC8qIDkgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qIEZvY3VzICovXG4udWstYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIERlZmF1bHRcbiAqL1xuLnVrLWJ1dHRvbi1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1idXR0b24tZGVmYXVsdDpob3Zlcixcbi51ay1idXR0b24tZGVmYXVsdDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzMzMztcbiAgYm9yZGVyLWNvbG9yOiAjYjJiMmIyOyB9XG5cbi8qIE9uQ2xpY2sgKyBBY3RpdmUgKi9cbi51ay1idXR0b24tZGVmYXVsdDphY3RpdmUsXG4udWstYnV0dG9uLWRlZmF1bHQudWstYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXItY29sb3I6ICM5OTk4OTg7IH1cblxuLypcbiAqIFByaW1hcnlcbiAqL1xuLnVrLWJ1dHRvbi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlODdmMDtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1idXR0b24tcHJpbWFyeTpob3Zlcixcbi51ay1idXR0b24tcHJpbWFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjdhZTU7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi8qIE9uQ2xpY2sgKyBBY3RpdmUgKi9cbi51ay1idXR0b24tcHJpbWFyeTphY3RpdmUsXG4udWstYnV0dG9uLXByaW1hcnkudWstYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBlNmVjZDtcbiAgY29sb3I6ICNmZmY7IH1cblxuLypcbiAqIFNlY29uZGFyeVxuICovXG4udWstYnV0dG9uLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstYnV0dG9uLXNlY29uZGFyeTpob3Zlcixcbi51ay1idXR0b24tc2Vjb25kYXJ5OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1MTUxNTtcbiAgY29sb3I6ICNmZmY7IH1cblxuLyogT25DbGljayArIEFjdGl2ZSAqL1xuLnVrLWJ1dHRvbi1zZWNvbmRhcnk6YWN0aXZlLFxuLnVrLWJ1dHRvbi1zZWNvbmRhcnkudWstYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA5MDgwODtcbiAgY29sb3I6ICNmZmY7IH1cblxuLypcbiAqIERhbmdlclxuICovXG4udWstYnV0dG9uLWRhbmdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMDUwNmU7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstYnV0dG9uLWRhbmdlcjpob3Zlcixcbi51ay1idXR0b24tZGFuZ2VyOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlMzk1YjtcbiAgY29sb3I6ICNmZmY7IH1cblxuLyogT25DbGljayArIEFjdGl2ZSAqL1xuLnVrLWJ1dHRvbi1kYW5nZXI6YWN0aXZlLFxuLnVrLWJ1dHRvbi1kYW5nZXIudWstYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjMjE0NztcbiAgY29sb3I6ICNmZmY7IH1cblxuLypcbiAqIERpc2FibGVkXG4gKiBUaGUgc2FtZSBmb3IgYWxsIHN0eWxlIG1vZGlmaWVyc1xuICovXG4udWstYnV0dG9uLWRlZmF1bHQ6ZGlzYWJsZWQsXG4udWstYnV0dG9uLXByaW1hcnk6ZGlzYWJsZWQsXG4udWstYnV0dG9uLXNlY29uZGFyeTpkaXNhYmxlZCxcbi51ay1idXR0b24tZGFuZ2VyOmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjOTk5O1xuICBib3JkZXItY29sb3I6ICNlNWU1ZTU7IH1cblxuLyogU2l6ZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWJ1dHRvbi1zbWFsbCB7XG4gIHBhZGRpbmc6IDAgMTVweDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cblxuLnVrLWJ1dHRvbi1sYXJnZSB7XG4gIHBhZGRpbmc6IDAgNDBweDtcbiAgbGluZS1oZWlnaHQ6IDUzcHg7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cblxuLyogVGV4dCBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFRleHRcbiAqIDEuIFJlc2V0XG4gKiAyLiBTdHlsZVxuICovXG4udWstYnV0dG9uLXRleHQge1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIC8qIDIgKi9cbiAgY29sb3I6ICMzMzM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAudWstYnV0dG9uLXRleHQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7XG4gICAgdHJhbnNpdGlvbjogcmlnaHQgMC4zcyBlYXNlLW91dDsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstYnV0dG9uLXRleHQ6aG92ZXIsXG4udWstYnV0dG9uLXRleHQ6Zm9jdXMge1xuICBjb2xvcjogIzMzMzsgfVxuICAudWstYnV0dG9uLXRleHQ6aG92ZXI6OmJlZm9yZSxcbiAgLnVrLWJ1dHRvbi10ZXh0OmZvY3VzOjpiZWZvcmUge1xuICAgIHJpZ2h0OiAwOyB9XG5cbi8qIERpc2FibGVkICovXG4udWstYnV0dG9uLXRleHQ6ZGlzYWJsZWQge1xuICBjb2xvcjogIzk5OTsgfVxuICAudWstYnV0dG9uLXRleHQ6ZGlzYWJsZWQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4vKlxuICogTGlua1xuICogMS4gUmVzZXRcbiAqIDIuIFN0eWxlXG4gKi9cbi51ay1idXR0b24tbGluayB7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgLyogMiAqL1xuICBjb2xvcjogI2YwMWQ0ZjsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstYnV0dG9uLWxpbms6aG92ZXIsXG4udWstYnV0dG9uLWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzBmNmVjZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLyogRGlzYWJsZWQgKi9cbi51ay1idXR0b24tbGluazpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjOTk5O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLyogR3JvdXBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFVzaW5nIGBmbGV4YCBpbnN0ZWFkIG9mIGBpbmxpbmUtYmxvY2tgIHRvIHByZXZlbnQgd2hpdGVzcGFjZSBiZXR3ZWVudCBjaGlsZCBlbGVtZW50c1xuICogMi4gQmVoYXZlIGxpa2UgYnV0dG9uXG4gKiAzLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dFxuICovXG4udWstYnV0dG9uLWdyb3VwIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgLyogMiAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAvKiAzICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKiBHcm91cFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAgICAgKiBDb2xsYXBzZSBib3JkZXJcbiAgICAgKi9cbi51ay1idXR0b24tZ3JvdXAgPiAudWstYnV0dG9uOm50aC1jaGlsZChuKzIpLFxuLnVrLWJ1dHRvbi1ncm91cCA+IGRpdjpudGgtY2hpbGQobisyKSAudWstYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7IH1cblxuLypcbiAgICAgKiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCB0byBzdXBlcmltcG9zZSB0aGUgc3VjY2Vzc29yIGVsZW1lbnRzIGJvcmRlclxuICAgICAqIEtub3duIGlzc3VlOiBJZiB5b3UgdXNlIGFuIGBhYCBlbGVtZW50IGFzIGJ1dHRvbiBhbmQgYW4gaWNvbiBpbnNpZGUsXG4gICAgICogdGhlIGFjdGl2ZSBzdGF0ZSB3aWxsIG5vdCB3b3JrIGlmIHlvdSBjbGljayB0aGUgaWNvbiBpbnNpZGUgdGhlIGJ1dHRvblxuICAgICAqIFdvcmthcm91bmQ6IEp1c3QgdXNlIGEgYGJ1dHRvbmAgb3IgYGlucHV0YCBlbGVtZW50IGFzIGJ1dHRvblxuICAgICAqL1xuLnVrLWJ1dHRvbi1ncm91cCAudWstYnV0dG9uOmhvdmVyLFxuLnVrLWJ1dHRvbi1ncm91cCAudWstYnV0dG9uOmZvY3VzLFxuLnVrLWJ1dHRvbi1ncm91cCAudWstYnV0dG9uOmFjdGl2ZSxcbi51ay1idXR0b24tZ3JvdXAgLnVrLWJ1dHRvbi51ay1hY3RpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFByb2dyZXNzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICogMi4gUmVtb3ZlIGRlZmF1bHQgc3R5bGVcbiAqIDMuIEJlaGF2ZSBsaWtlIGEgYmxvY2sgZWxlbWVudFxuICogNC4gUmVtb3ZlIGJvcmRlcnMgaW4gRmlyZWZveCBhbmQgRWRnZVxuICogNS4gU2V0IGJhY2tncm91bmQgY29sb3IgZm9yIHByb2dyZXNzIGNvbnRhaW5lciBpbiBGaXJlZm94LCBJRTExIGFuZCBFZGdlXG4gKiA2LiBTdHlsZVxuICovXG4udWstcHJvZ3Jlc3Mge1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqL1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgLyogMyAqL1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIC8qIDQgKi9cbiAgYm9yZGVyOiAwO1xuICAvKiA1ICovXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XG4gIC8qIDYgKi9cbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBBZGQgbWFyZ2luIGlmIGFkamFjZW50IGVsZW1lbnQgKi9cbiogKyAudWstcHJvZ3Jlc3Mge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi8qXG4gKiBSZW1vdmUgYW5pbWF0ZWQgY2lyY2xlcyBmb3IgaW5kZXRlcm1pbmF0ZSBzdGF0ZSBpbiBJRTExIGFuZCBFZGdlXG4gKi9cbi51ay1wcm9ncmVzczppbmRldGVybWluYXRlIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qXG4gKiBQcm9ncmVzcyBjb250YWluZXJcbiAqIDIuIFJlbW92ZSBwcm9ncmVzcyBiYXIgZm9yIGluZGV0ZXJtaW5hdGUgc3RhdGUgaW4gRmlyZWZveFxuICovXG4udWstcHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgYm9yZGVyLXJhZGl1czogNTAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogMiAqL1xuLnVrLXByb2dyZXNzOmluZGV0ZXJtaW5hdGU6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgd2lkdGg6IDA7IH1cblxuLypcbiAqIFByb2dyZXNzIGJhclxuICogMS4gUmVtb3ZlIHJpZ2h0IGJvcmRlciBpbiBJRTExIGFuZCBFZGdlXG4gKi9cbi51ay1wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTg3ZjA7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgZWFzZTsgfVxuXG4udWstcHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlODdmMDsgfVxuXG4udWstcHJvZ3Jlc3M6Oi1tcy1maWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlODdmMDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBlYXNlO1xuICAvKiAxICovXG4gIGJvcmRlcjogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogU2VjdGlvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gTWFrZSBpdCB3b3JrIHdpdGggYDEwMHZoYCBhbmQgaGVpZ2h0IGluIGdlbmVyYWxcbiAqL1xuLnVrLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZy10b3A6IDQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstc2VjdGlvbiB7XG4gICAgcGFkZGluZy10b3A6IDcwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDcwcHg7IH0gfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1zZWN0aW9uID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIFNpemUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBYU21hbGxcbiAqL1xuLnVrLXNlY3Rpb24teHNtYWxsIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4OyB9XG5cbi8qXG4gKiBTbWFsbFxuICovXG4udWstc2VjdGlvbi1zbWFsbCB7XG4gIHBhZGRpbmctdG9wOiA0MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuLnVrLXNlY3Rpb24tbGFyZ2Uge1xuICBwYWRkaW5nLXRvcDogNzBweDtcbiAgcGFkZGluZy1ib3R0b206IDcwcHg7IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1zZWN0aW9uLWxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogMTQwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDE0MHB4OyB9IH1cblxuLypcbiAqIFhMYXJnZVxuICovXG4udWstc2VjdGlvbi14bGFyZ2Uge1xuICBwYWRkaW5nLXRvcDogMTQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNDBweDsgfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLXNlY3Rpb24teGxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogMjEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDIxMHB4OyB9IH1cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBEZWZhdWx0XG4gKi9cbi51ay1zZWN0aW9uLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG5cbi8qXG4gKiBNdXRlZFxuICovXG4udWstc2VjdGlvbi1tdXRlZCB7XG4gIGJhY2tncm91bmQ6ICNmOGY4Zjg7IH1cblxuLypcbiAqIFByaW1hcnlcbiAqL1xuLnVrLXNlY3Rpb24tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMxZTg3ZjA7IH1cblxuLypcbiAqIFNlY29uZGFyeVxuICovXG4udWstc2VjdGlvbi1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kOiAjMjIyOyB9XG5cbi8qIE92ZXJsYXAgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFJlc2VydmVkIG1vZGlmaWVyIHRvIG1ha2UgYSBzZWN0aW9uIG92ZXJsYXAgYW5vdGhlciBzZWN0aW9uIHdpdGggYW4gYm9yZGVyIGltYWdlXG4gKiBJbXBsZW1lbnRlZCBieSB0aGUgdGhlbWVcbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IENvbnRhaW5lclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gQm94IHNpemluZyBoYXMgdG8gYmUgYGNvbnRlbnQtYm94YCBzbyB0aGUgbWF4LXdpZHRoIGlzIGFsd2F5cyB0aGUgc2FtZSBhbmRcbiAqICAgIHVuYWZmZWN0ZWQgYnkgdGhlIHBhZGRpbmcgb24gZGlmZmVyZW50IGJyZWFrcG9pbnRzLiBJdCdzIGltcG9ydGFudCBmb3IgdGhlIHNpemUgbW9kaWZpZXJzLlxuICovXG4udWstY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxvdy1yb290O1xuICAvKiAxICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVrLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7IH0gfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1jb250YWluZXIgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLypcbiAqIFJlbW92ZSBwYWRkaW5nIGZyb20gbmVzdGVkIGNvbnRhaW5lcnNcbiAqL1xuLnVrLWNvbnRhaW5lciAudWstY29udGFpbmVyIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi8qIFNpemUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWNvbnRhaW5lci14c21hbGwge1xuICBtYXgtd2lkdGg6IDc1MHB4OyB9XG5cbi51ay1jb250YWluZXItc21hbGwge1xuICBtYXgtd2lkdGg6IDkwMHB4OyB9XG5cbi51ay1jb250YWluZXItbGFyZ2Uge1xuICBtYXgtd2lkdGg6IDE0MDBweDsgfVxuXG4udWstY29udGFpbmVyLXhsYXJnZSB7XG4gIG1heC13aWR0aDogMTYwMHB4OyB9XG5cbi51ay1jb250YWluZXItZXhwYW5kIHtcbiAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi8qIEV4cGFuZCBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRXhwYW5kIG9uZSBzaWRlIG9ubHlcbiAqL1xuLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdC51ay1jb250YWluZXIteHNtYWxsLFxuICAudWstY29udGFpbmVyLWV4cGFuZC1yaWdodC51ay1jb250YWluZXIteHNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNTAlICsgKDc1MHB4IC8gMikgLSAzMHB4KTsgfVxuICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LnVrLWNvbnRhaW5lci1zbWFsbCxcbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLXNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNTAlICsgKDkwMHB4IC8gMikgLSAzMHB4KTsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LFxuICAudWstY29udGFpbmVyLWV4cGFuZC1yaWdodCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDUwJSArICgxMjAwcHggLyAyKSAtIDQwcHgpOyB9XG4gIC51ay1jb250YWluZXItZXhwYW5kLWxlZnQudWstY29udGFpbmVyLXhzbWFsbCxcbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLXhzbWFsbCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDUwJSArICg3NTBweCAvIDIpIC0gNDBweCk7IH1cbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdC51ay1jb250YWluZXItc21hbGwsXG4gIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0LnVrLWNvbnRhaW5lci1zbWFsbCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDUwJSArICg5MDBweCAvIDIpIC0gNDBweCk7IH1cbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdC51ay1jb250YWluZXItbGFyZ2UsXG4gIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0LnVrLWNvbnRhaW5lci1sYXJnZSB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDUwJSArICgxNDAwcHggLyAyKSAtIDQwcHgpOyB9XG4gIC51ay1jb250YWluZXItZXhwYW5kLWxlZnQudWstY29udGFpbmVyLXhsYXJnZSxcbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLXhsYXJnZSB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDUwJSArICgxNjAwcHggLyAyKSAtIDQwcHgpOyB9IH1cblxuLyogSXRlbVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogVXRpbGl0eSBjbGFzc2VzIHRvIHJlc2V0IGNvbnRhaW5lciBwYWRkaW5nIG9uIHRoZSBsZWZ0IG9yIHJpZ2h0IHNpZGVcbiAqIE5vdGU6IEl0IGhhcyB0byBiZSBuZWdhdGl2ZSBtYXJnaW4gb24gdGhlIGl0ZW0sIGJlY2F1c2UgaXQncyBzcGVjaWZpYyB0byB0aGUgaXRlbS5cbiAqL1xuLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQsXG4udWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtcmlnaHQge1xuICB3aWR0aDogY2FsYygxMDAlICsgMTVweCk7IH1cblxuLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQge1xuICBtYXJnaW4tbGVmdDogLTE1cHg7IH1cblxuLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1sZWZ0LFxuICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtcmlnaHQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAzMHB4KTsgfVxuICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0zMHB4OyB9XG4gIC51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMzBweDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtbGVmdCxcbiAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNDBweCk7IH1cbiAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAtNDBweDsgfVxuICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogLTQwcHg7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogVGlsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGlsZSB7XG4gIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctdG9wOiA0MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay10aWxlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstdGlsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZy10b3A6IDcwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDcwcHg7IH0gfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay10aWxlID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIFNpemUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBYU21hbGxcbiAqL1xuLnVrLXRpbGUteHNtYWxsIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4OyB9XG5cbi8qXG4gKiBTbWFsbFxuICovXG4udWstdGlsZS1zbWFsbCB7XG4gIHBhZGRpbmctdG9wOiA0MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNDBweDsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuLnVrLXRpbGUtbGFyZ2Uge1xuICBwYWRkaW5nLXRvcDogNzBweDtcbiAgcGFkZGluZy1ib3R0b206IDcwcHg7IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay10aWxlLWxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogMTQwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDE0MHB4OyB9IH1cblxuLypcbiAqIFhMYXJnZVxuICovXG4udWstdGlsZS14bGFyZ2Uge1xuICBwYWRkaW5nLXRvcDogMTQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNDBweDsgfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLXRpbGUteGxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogMjEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDIxMHB4OyB9IH1cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBEZWZhdWx0XG4gKi9cbi51ay10aWxlLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG5cbi8qXG4gKiBNdXRlZFxuICovXG4udWstdGlsZS1tdXRlZCB7XG4gIGJhY2tncm91bmQ6ICNmOGY4Zjg7IH1cblxuLypcbiAqIFByaW1hcnlcbiAqL1xuLnVrLXRpbGUtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMxZTg3ZjA7IH1cblxuLypcbiAqIFNlY29uZGFyeVxuICovXG4udWstdGlsZS1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kOiAjMjIyOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBDYXJkXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMXMgZWFzZS1pbi1vdXQ7IH1cblxuLyogU2VjdGlvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWNhcmQtYm9keSB7XG4gIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgcGFkZGluZzogMzBweCAzMHB4OyB9XG5cbi51ay1jYXJkLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgcGFkZGluZzogMTVweCAzMHB4OyB9XG5cbi51ay1jYXJkLWZvb3RlciB7XG4gIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgcGFkZGluZzogMTVweCAzMHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstY2FyZC1ib2R5IHtcbiAgICBwYWRkaW5nOiA0MHB4IDQwcHg7IH1cbiAgLnVrLWNhcmQtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAyMHB4IDQwcHg7IH1cbiAgLnVrLWNhcmQtZm9vdGVyIHtcbiAgICBwYWRkaW5nOiAyMHB4IDQwcHg7IH0gfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1jYXJkLWJvZHkgPiA6bGFzdC1jaGlsZCxcbi51ay1jYXJkLWhlYWRlciA+IDpsYXN0LWNoaWxkLFxuLnVrLWNhcmQtZm9vdGVyID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIE1lZGlhXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZXNlcnZlZCBhbGlnbm1lbnQgbW9kaWZpZXIgdG8gc3R5bGUgdGhlIG1lZGlhIGVsZW1lbnQsIGUuZy4gd2l0aCBgYm9yZGVyLXJhZGl1c2BcbiAqIEltcGxlbWVudGVkIGJ5IHRoZSB0aGVtZVxuICovXG4vKiBUaXRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY2FyZC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbi8qIEJhZGdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jYXJkLWJhZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDMwcHg7XG4gIHJpZ2h0OiAzMHB4O1xuICB6LWluZGV4OiAxOyB9XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gYWRqYWNlbnQgZWxlbWVudFxuICovXG4udWstY2FyZC1iYWRnZTpmaXJzdC1jaGlsZCArICoge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qIEhvdmVyIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jYXJkLWhvdmVyOm5vdCgudWstY2FyZC1kZWZhdWx0KTpub3QoLnVrLWNhcmQtcHJpbWFyeSk6bm90KC51ay1jYXJkLXNlY29uZGFyeSk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDE0cHggMjVweCByZ2JhKDAsIDAsIDAsIDAuMTYpOyB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogRGVmYXVsdFxuICogTm90ZTogSGVhZGVyIGFuZCBGb290ZXIgYXJlIG9ubHkgaW1wbGVtZW50ZWQgZm9yIHRoZSBkZWZhdWx0IHN0eWxlXG4gKi9cbi51ay1jYXJkLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjb2xvcjogIzY2NjtcbiAgYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuMDgpOyB9XG5cbi51ay1jYXJkLWRlZmF1bHQgLnVrLWNhcmQtdGl0bGUge1xuICBjb2xvcjogIzMzMzsgfVxuXG4udWstY2FyZC1kZWZhdWx0LnVrLWNhcmQtaG92ZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDE0cHggMjVweCByZ2JhKDAsIDAsIDAsIDAuMTYpOyB9XG5cbi51ay1jYXJkLWRlZmF1bHQgLnVrLWNhcmQtaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLnVrLWNhcmQtZGVmYXVsdCAudWstY2FyZC1mb290ZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4vKlxuICogUHJpbWFyeVxuICovXG4udWstY2FyZC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzFlODdmMDtcbiAgY29sb3I6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjA4KTsgfVxuXG4udWstY2FyZC1wcmltYXJ5IC51ay1jYXJkLXRpdGxlIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLnVrLWNhcmQtcHJpbWFyeS51ay1jYXJkLWhvdmVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlODdmMDtcbiAgYm94LXNoYWRvdzogMCAxNHB4IDI1cHggcmdiYSgwLCAwLCAwLCAwLjE2KTsgfVxuXG4vKlxuICogU2Vjb25kYXJ5XG4gKi9cbi51ay1jYXJkLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6ICMyMjI7XG4gIGNvbG9yOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7IH1cblxuLnVrLWNhcmQtc2Vjb25kYXJ5IC51ay1jYXJkLXRpdGxlIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLnVrLWNhcmQtc2Vjb25kYXJ5LnVrLWNhcmQtaG92ZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICBib3gtc2hhZG93OiAwIDE0cHggMjVweCByZ2JhKDAsIDAsIDAsIDAuMTYpOyB9XG5cbi8qIFNpemUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFNtYWxsXG4gKi9cbi51ay1jYXJkLXNtYWxsLnVrLWNhcmQtYm9keSxcbi51ay1jYXJkLXNtYWxsIC51ay1jYXJkLWJvZHkge1xuICBwYWRkaW5nOiAyMHB4IDIwcHg7IH1cblxuLnVrLWNhcmQtc21hbGwgLnVrLWNhcmQtaGVhZGVyIHtcbiAgcGFkZGluZzogMTNweCAyMHB4OyB9XG5cbi51ay1jYXJkLXNtYWxsIC51ay1jYXJkLWZvb3RlciB7XG4gIHBhZGRpbmc6IDEzcHggMjBweDsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1jYXJkLWxhcmdlLnVrLWNhcmQtYm9keSxcbiAgLnVrLWNhcmQtbGFyZ2UgLnVrLWNhcmQtYm9keSB7XG4gICAgcGFkZGluZzogNzBweCA3MHB4OyB9XG4gIC51ay1jYXJkLWxhcmdlIC51ay1jYXJkLWhlYWRlciB7XG4gICAgcGFkZGluZzogMzVweCA3MHB4OyB9XG4gIC51ay1jYXJkLWxhcmdlIC51ay1jYXJkLWZvb3RlciB7XG4gICAgcGFkZGluZzogMzVweCA3MHB4OyB9IH1cblxuLypcbiAgICAgKiBEZWZhdWx0XG4gICAgICovXG4udWstY2FyZC1ib2R5ID4gLnVrLW5hdi1kZWZhdWx0IHtcbiAgbWFyZ2luLWxlZnQ6IC0zMHB4O1xuICBtYXJnaW4tcmlnaHQ6IC0zMHB4OyB9XG5cbi51ay1jYXJkLWJvZHkgPiAudWstbmF2LWRlZmF1bHQ6b25seS1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IC0xNXB4O1xuICBtYXJnaW4tYm90dG9tOiAtMTVweDsgfVxuXG4udWstY2FyZC1ib2R5IC51ay1uYXYtZGVmYXVsdCA+IGxpID4gYSxcbi51ay1jYXJkLWJvZHkgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtaGVhZGVyLFxuLnVrLWNhcmQtYm9keSAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1kaXZpZGVyIHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAzMHB4OyB9XG5cbi51ay1jYXJkLWJvZHkgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIHtcbiAgcGFkZGluZy1sZWZ0OiA0NXB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstY2FyZC1ib2R5ID4gLnVrLW5hdi1kZWZhdWx0IHtcbiAgICBtYXJnaW4tbGVmdDogLTQwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNDBweDsgfVxuICAudWstY2FyZC1ib2R5ID4gLnVrLW5hdi1kZWZhdWx0Om9ubHktY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IC0yNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IC0yNXB4OyB9XG4gIC51ay1jYXJkLWJvZHkgLnVrLW5hdi1kZWZhdWx0ID4gbGkgPiBhLFxuICAudWstY2FyZC1ib2R5IC51ay1uYXYtZGVmYXVsdCAudWstbmF2LWhlYWRlcixcbiAgLnVrLWNhcmQtYm9keSAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1kaXZpZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgcGFkZGluZy1yaWdodDogNDBweDsgfVxuICAudWstY2FyZC1ib2R5IC51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiB7XG4gICAgcGFkZGluZy1sZWZ0OiA1NXB4OyB9IH1cblxuLypcbiAgICAgKiBTbWFsbFxuICAgICAqL1xuLnVrLWNhcmQtc21hbGwgPiAudWstbmF2LWRlZmF1bHQge1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIG1hcmdpbi1yaWdodDogLTIwcHg7IH1cblxuLnVrLWNhcmQtc21hbGwgPiAudWstbmF2LWRlZmF1bHQ6b25seS1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIG1hcmdpbi1ib3R0b206IC01cHg7IH1cblxuLnVrLWNhcmQtc21hbGwgLnVrLW5hdi1kZWZhdWx0ID4gbGkgPiBhLFxuLnVrLWNhcmQtc21hbGwgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtaGVhZGVyLFxuLnVrLWNhcmQtc21hbGwgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtZGl2aWRlciB7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuXG4udWstY2FyZC1zbWFsbCAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIge1xuICBwYWRkaW5nLWxlZnQ6IDM1cHg7IH1cblxuLypcbiAgICAgKiBMYXJnZVxuICAgICAqL1xuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1jYXJkLWxhcmdlID4gLnVrLW5hdi1kZWZhdWx0IHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnVrLWNhcmQtbGFyZ2UgPiAudWstbmF2LWRlZmF1bHQ6b25seS1jaGlsZCB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC51ay1jYXJkLWxhcmdlIC51ay1uYXYtZGVmYXVsdCA+IGxpID4gYSxcbiAgLnVrLWNhcmQtbGFyZ2UgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtaGVhZGVyLFxuICAudWstY2FyZC1sYXJnZSAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1kaXZpZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAudWstY2FyZC1sYXJnZSAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBDbG9zZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRvcHRzIGB1ay1pY29uYFxuICovXG4udWstY2xvc2Uge1xuICBjb2xvcjogIzk5OTtcbiAgdHJhbnNpdGlvbjogMC4xcyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIG9wYWNpdHk7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWNsb3NlOmhvdmVyLFxuLnVrLWNsb3NlOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFNwaW5uZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkb3B0cyBgdWstaWNvbmBcbiAqL1xuLyogU1ZHXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1zcGlubmVyID4gKiB7XG4gIGFuaW1hdGlvbjogdWstc3Bpbm5lci1yb3RhdGUgMS40cyBsaW5lYXIgaW5maW5pdGU7IH1cblxuQGtleWZyYW1lcyB1ay1zcGlubmVyLXJvdGF0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOyB9IH1cblxuLypcbiAqIENpcmNsZVxuICovXG4udWstc3Bpbm5lciA+ICogPiAqIHtcbiAgc3Ryb2tlLWRhc2hhcnJheTogODhweDtcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgYW5pbWF0aW9uOiB1ay1zcGlubmVyLWRhc2ggMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgc3Ryb2tlLXdpZHRoOiAxO1xuICBzdHJva2UtbGluZWNhcDogcm91bmQ7IH1cblxuQGtleWZyYW1lcyB1ay1zcGlubmVyLWRhc2gge1xuICAwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDg4cHg7IH1cbiAgNTAlIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMjJweDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpOyB9XG4gIDEwMCUge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiA4OHB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1MGRlZyk7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogVG90b3BcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZG9wdHMgYHVrLWljb25gXG4gKi9cbi51ay10b3RvcCB7XG4gIHBhZGRpbmc6IDVweDtcbiAgY29sb3I6ICM5OTk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZS1pbi1vdXQ7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLXRvdG9wOmhvdmVyLFxuLnVrLXRvdG9wOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogT25DbGljayAqL1xuLnVrLXRvdG9wOmFjdGl2ZSB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBNYXJrZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZG9wdHMgYHVrLWljb25gXG4gKi9cbi51ay1tYXJrZXIge1xuICBwYWRkaW5nOiA1cHg7XG4gIGJhY2tncm91bmQ6ICMyMjI7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA1MDBweDsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstbWFya2VyOmhvdmVyLFxuLnVrLW1hcmtlcjpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBBbGVydFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYWxlcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHBhZGRpbmc6IDE1cHggMjlweCAxNXB4IDE1cHg7XG4gIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIC51ay1hbGVydCB7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG4udWstYWxlcnQgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyogQ2xvc2VcbiAqIEFkb3B0cyBgdWstY2xvc2VgXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1hbGVydC1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMHB4O1xuICByaWdodDogMTVweDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG9wYWNpdHk6IDAuNDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIGFkamFjZW50IGVsZW1lbnRcbiAqL1xuLnVrLWFsZXJ0LWNsb3NlOmZpcnN0LWNoaWxkICsgKiB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLypcbiAqIEhvdmVyICsgRm9jdXNcbiAqL1xuLnVrLWFsZXJ0LWNsb3NlOmhvdmVyLFxuLnVrLWFsZXJ0LWNsb3NlOmZvY3VzIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG9wYWNpdHk6IDAuODsgfVxuXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFByaW1hcnlcbiAqL1xuLnVrLWFsZXJ0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjZDhlYWZjO1xuICBjb2xvcjogIzFlODdmMDsgfVxuXG4vKlxuICogU3VjY2Vzc1xuICovXG4udWstYWxlcnQtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQ6ICNlZGZiZjY7XG4gIGNvbG9yOiAjMzJkMjk2OyB9XG5cbi8qXG4gKiBXYXJuaW5nXG4gKi9cbi51ay1hbGVydC13YXJuaW5nIHtcbiAgYmFja2dyb3VuZDogI2ZlZjVlZTtcbiAgY29sb3I6ICNmYWEwNWE7IH1cblxuLypcbiAqIERhbmdlclxuICovXG4udWstYWxlcnQtZGFuZ2VyIHtcbiAgYmFja2dyb3VuZDogI2ZlZjRmNjtcbiAgY29sb3I6ICNmMDUwNmU7IH1cblxuLypcbiAgICAgKiBDb250ZW50XG4gICAgICovXG4udWstYWxlcnQgaDEsXG4udWstYWxlcnQgaDIsXG4udWstYWxlcnQgaDMsXG4udWstYWxlcnQgaDQsXG4udWstYWxlcnQgaDUsXG4udWstYWxlcnQgaDYge1xuICBjb2xvcjogaW5oZXJpdDsgfVxuXG4udWstYWxlcnQgYTpub3QoW2NsYXNzXSkge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLnVrLWFsZXJ0IGE6bm90KFtjbGFzc10pOmhvdmVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBQbGFjZWhvbGRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstcGxhY2Vob2xkZXIge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nOiAzMHB4IDMwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBkYXNoZWQgI2U1ZTVlNTsgfVxuXG4vKiBBZGQgbWFyZ2luIGlmIGFkamFjZW50IGVsZW1lbnQgKi9cbiogKyAudWstcGxhY2Vob2xkZXIge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuLnVrLXBsYWNlaG9sZGVyID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBCYWRnZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gU3R5bGVcbiAqIDIuIENlbnRlciBjaGlsZCB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHlcbiAqL1xuLnVrLWJhZGdlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLXdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgLyogMSAqL1xuICBiYWNrZ3JvdW5kOiAjMWU4N2YwO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLypcbiAqIFJlcXVpcmVkIGZvciBgYWBcbiAqL1xuLnVrLWJhZGdlOmhvdmVyLFxuLnVrLWJhZGdlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogTGFiZWxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIGJhY2tncm91bmQ6ICMxZTg3ZjA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjZmZmO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLyogQ29sb3IgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBTdWNjZXNzXG4gKi9cbi51ay1sYWJlbC1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyZDI5NjtcbiAgY29sb3I6ICNmZmY7IH1cblxuLypcbiAqIFdhcm5pbmdcbiAqL1xuLnVrLWxhYmVsLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhMDVhO1xuICBjb2xvcjogI2ZmZjsgfVxuXG4vKlxuICogRGFuZ2VyXG4gKi9cbi51ay1sYWJlbC1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjA1MDZlO1xuICBjb2xvcjogI2ZmZjsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogT3ZlcmxheVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstb3ZlcmxheSB7XG4gIHBhZGRpbmc6IDMwcHggMzBweDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1vdmVybGF5ID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIEljb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBEZWZhdWx0XG4gKi9cbi51ay1vdmVybGF5LWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7IH1cblxuLypcbiAqIFByaW1hcnlcbiAqL1xuLnVrLW92ZXJsYXktcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMzQsIDM0LCAzNCwgMC44KTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQXJ0aWNsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYXJ0aWNsZSB7XG4gIGRpc3BsYXk6IGZsb3ctcm9vdDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1hcnRpY2xlID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIEFkamFjZW50IHNpYmxpbmdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWFydGljbGUgKyAudWstYXJ0aWNsZSB7XG4gIG1hcmdpbi10b3A6IDcwcHg7IH1cblxuLyogVGl0bGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWFydGljbGUtdGl0bGUge1xuICBmb250LXNpemU6IDIuMjMxMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1hcnRpY2xlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDIuNjI1cmVtOyB9IH1cblxuLyogTWV0YVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYXJ0aWNsZS1tZXRhIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM5OTk7IH1cbiAgLnVrLWFydGljbGUtbWV0YSBhIHtcbiAgICBjb2xvcjogIzk5OTsgfVxuICAudWstYXJ0aWNsZS1tZXRhIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjNjY2O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQ29tbWVudFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBTZWN0aW9uc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY29tbWVudC1ib2R5IHtcbiAgZGlzcGxheTogZmxvdy1yb290O1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH1cblxuLnVrLWNvbW1lbnQtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxvdy1yb290O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuLnVrLWNvbW1lbnQtYm9keSA+IDpsYXN0LWNoaWxkLFxuLnVrLWNvbW1lbnQtaGVhZGVyID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIFRpdGxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jb21tZW50LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbi8qIE1ldGFcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWNvbW1lbnQtbWV0YSB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qIEF2YXRhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBMaXN0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jb21tZW50LWxpc3Qge1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qIEFkamFjZW50IHNpYmxpbmdzICovXG4udWstY29tbWVudC1saXN0ID4gOm50aC1jaGlsZChuKzIpIHtcbiAgbWFyZ2luLXRvcDogNzBweDsgfVxuXG4vKlxuICogU3VibGlzdHNcbiAqIE5vdGU6IEdlbmVyYWwgc2libGluZyBzZWxlY3RvciBhbGxvd3MgcmVwbHkgYmxvY2sgYmV0d2VlbiBjb21tZW50IGFuZCBzdWJsaXN0XG4gKi9cbi51ay1jb21tZW50LWxpc3QgLnVrLWNvbW1lbnQgfiB1bCB7XG4gIG1hcmdpbjogNzBweCAwIDAgMDtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qIFRhYmxldCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1jb21tZW50LWxpc3QgLnVrLWNvbW1lbnQgfiB1bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMDBweDsgfSB9XG5cbi8qIEFkamFjZW50IHNpYmxpbmdzICovXG4udWstY29tbWVudC1saXN0IC51ay1jb21tZW50IH4gdWwgPiA6bnRoLWNoaWxkKG4rMikge1xuICBtYXJnaW4tdG9wOiA3MHB4OyB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jb21tZW50LXByaW1hcnkge1xuICBwYWRkaW5nOiAzMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTZWFyY2hcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENvbnRhaW5lciBmaXRzIGl0cyBjb250ZW50XG4gKiAyLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dFxuICogMy4gUHJldmVudCBjb250ZW50IG92ZXJmbG93XG4gKiA0LiBSZXNldCBgZm9ybWBcbiAqL1xuLnVrLXNlYXJjaCB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLyogMyAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDQgKi9cbiAgbWFyZ2luOiAwOyB9XG5cbi8qIElucHV0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBvbiBPUyBYIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuLnVrLXNlYXJjaC1pbnB1dDo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbi51ay1zZWFyY2gtaW5wdXQ6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLypcbiAqIFJlbW92ZXMgcGxhY2Vob2xkZXIgdHJhbnNwYXJlbmN5IGluIEZpcmVmb3guXG4gKi9cbi51ay1zZWFyY2gtaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAxOyB9XG5cbi8qXG4gKiAxLiBEZWZpbmUgY29uc2lzdGVudCBib3ggc2l6aW5nLlxuICogMi4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94L0lFIGFuZCBDaHJvbWUvU2FmYXJpL09wZXJhLlxuICogMy4gUmVtb3ZlIGBib3JkZXItcmFkaXVzYCBpbiBpT1MuXG4gKiA0LiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBhbGwgYnJvd3NlcnNcbiAqIDUuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKiA2LiBSZW1vdmUgZGVmYXVsdCBzdHlsZSBpbiBpT1MuXG4gKiA3LiBWZXJ0aWNhbCBhbGlnbm1lbnRcbiAqIDguIFRha2UgdGhlIGZ1bGwgY29udGFpbmVyIHdpZHRoXG4gKiA5LiBTdHlsZVxuICovXG4udWstc2VhcmNoLWlucHV0IHtcbiAgLyogMSAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAyICovXG4gIG1hcmdpbjogMDtcbiAgLyogMyAqL1xuICBib3JkZXItcmFkaXVzOiAwO1xuICAvKiA0ICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDUgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDYgKi9cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAvKiA3ICovXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIDggKi9cbiAgd2lkdGg6IDEwMCU7XG4gIC8qIDkgKi9cbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogIzY2NjsgfVxuXG4udWstc2VhcmNoLWlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBQbGFjZWhvbGRlciAqL1xuLnVrLXNlYXJjaC1pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OSAhaW1wb3J0YW50OyB9XG5cbi51ay1zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLyogSWNvbiAoQWRvcHRzIGB1ay1pY29uYClcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFJlbW92ZSBkZWZhdWx0IGZvY3VzIHN0eWxlXG4gKi9cbi51ay1zZWFyY2gtaWNvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLypcbiAqIFBvc2l0aW9uIGFib3ZlIGlucHV0XG4gKiAxLiBTZXQgcG9zaXRpb25cbiAqIDIuIENlbnRlciBpY29uIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseVxuICogMy4gU3R5bGVcbiAqL1xuLnVrLXNlYXJjaCAudWstc2VhcmNoLWljb24ge1xuICAvKiAxICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvKiAzICovXG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qXG4gKiBSZXF1aXJlZCBmb3IgYGFgLlxuICovXG4udWstc2VhcmNoIC51ay1zZWFyY2gtaWNvbjpob3ZlciB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qXG4gKiBNYWtlIGBpbnB1dGAgZWxlbWVudCBjbGlja2FibGUgdGhyb3VnaCBpY29uLCBlLmcuIGlmIGl0J3MgYSBgc3BhbmBcbiAqL1xuLnVrLXNlYXJjaCAudWstc2VhcmNoLWljb246bm90KGEpOm5vdChidXR0b24pOm5vdChpbnB1dCkge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4vKlxuICogUG9zaXRpb24gbW9kaWZpZXJcbiAqL1xuLnVrLXNlYXJjaCAudWstc2VhcmNoLWljb24tZmxpcCB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi8qIERlZmF1bHQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXNlYXJjaC1kZWZhdWx0IHtcbiAgd2lkdGg6IDE4MHB4OyB9XG5cbi8qXG4gKiBJbnB1dFxuICovXG4udWstc2VhcmNoLWRlZmF1bHQgLnVrLXNlYXJjaC1pbnB1dCB7XG4gIGhlaWdodDogNDBweDtcbiAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLyogRm9jdXMgKi9cbi51ay1zZWFyY2gtZGVmYXVsdCAudWstc2VhcmNoLWlucHV0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLypcbiAqIEljb25cbiAqL1xuLnVrLXNlYXJjaC1kZWZhdWx0IC51ay1zZWFyY2gtaWNvbiB7XG4gIHdpZHRoOiA0MHB4OyB9XG5cbi51ay1zZWFyY2gtZGVmYXVsdCAudWstc2VhcmNoLWljb246bm90KC51ay1zZWFyY2gtaWNvbi1mbGlwKSB+IC51ay1zZWFyY2gtaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDQwcHg7IH1cblxuLnVrLXNlYXJjaC1kZWZhdWx0IC51ay1zZWFyY2gtaWNvbi1mbGlwIH4gLnVrLXNlYXJjaC1pbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDQwcHg7IH1cblxuLyogTmF2YmFyIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1zZWFyY2gtbmF2YmFyIHtcbiAgd2lkdGg6IDQwMHB4OyB9XG5cbi8qXG4gKiBJbnB1dFxuICovXG4udWstc2VhcmNoLW5hdmJhciAudWstc2VhcmNoLWlucHV0IHtcbiAgaGVpZ2h0OiA0MHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAxLjVyZW07IH1cblxuLypcbiAqIEljb25cbiAqL1xuLnVrLXNlYXJjaC1uYXZiYXIgLnVrLXNlYXJjaC1pY29uIHtcbiAgd2lkdGg6IDQwcHg7IH1cblxuLnVrLXNlYXJjaC1uYXZiYXIgLnVrLXNlYXJjaC1pY29uOm5vdCgudWstc2VhcmNoLWljb24tZmxpcCkgfiAudWstc2VhcmNoLWlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9XG5cbi51ay1zZWFyY2gtbmF2YmFyIC51ay1zZWFyY2gtaWNvbi1mbGlwIH4gLnVrLXNlYXJjaC1pbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDQwcHg7IH1cblxuLyogTGFyZ2UgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXNlYXJjaC1sYXJnZSB7XG4gIHdpZHRoOiA1MDBweDsgfVxuXG4vKlxuICogSW5wdXRcbiAqL1xuLnVrLXNlYXJjaC1sYXJnZSAudWstc2VhcmNoLWlucHV0IHtcbiAgaGVpZ2h0OiA4MHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAyLjYyNXJlbTsgfVxuXG4vKlxuICogSWNvblxuICovXG4udWstc2VhcmNoLWxhcmdlIC51ay1zZWFyY2gtaWNvbiB7XG4gIHdpZHRoOiA4MHB4OyB9XG5cbi51ay1zZWFyY2gtbGFyZ2UgLnVrLXNlYXJjaC1pY29uOm5vdCgudWstc2VhcmNoLWljb24tZmxpcCkgfiAudWstc2VhcmNoLWlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiA4MHB4OyB9XG5cbi51ay1zZWFyY2gtbGFyZ2UgLnVrLXNlYXJjaC1pY29uLWZsaXAgfiAudWstc2VhcmNoLWlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogODBweDsgfVxuXG4vKiBUb2dnbGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXNlYXJjaC10b2dnbGUge1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstc2VhcmNoLXRvZ2dsZTpob3Zlcixcbi51ay1zZWFyY2gtdG9nZ2xlOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEFjY29yZGlvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYWNjb3JkaW9uIHtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4vKiBJdGVtXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1hY2NvcmRpb24gPiA6bnRoLWNoaWxkKG4rMikge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi8qIFRpdGxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1hY2NvcmRpb24tdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogIzMzMztcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAudWstYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lkdGg6IDEuNGVtO1xuICAgIGhlaWdodDogMS40ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTMlMjIlMjBoZWlnaHQlM0QlMjIxMyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEzJTIwMTMlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzNjY2JTIyJTIwd2lkdGglM0QlMjIxMyUyMiUyMGhlaWdodCUzRCUyMjElMjIlMjB4JTNEJTIyMCUyMiUyMHklM0QlMjI2JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjM2NjYlMjIlMjB3aWR0aCUzRCUyMjElMjIlMjBoZWlnaHQlM0QlMjIxMyUyMiUyMHglM0QlMjI2JTIyJTIweSUzRCUyMjAlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlOyB9XG4gIC51ay1vcGVuID4gLnVrLWFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjEzJTIyJTIwaGVpZ2h0JTNEJTIyMTMlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMyUyMDEzJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyMzY2NiUyMiUyMHdpZHRoJTNEJTIyMTMlMjIlMjBoZWlnaHQlM0QlMjIxJTIyJTIweCUzRCUyMjAlMjIlMjB5JTNEJTIyNiUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRVwiKTsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstYWNjb3JkaW9uLXRpdGxlOmhvdmVyLFxuLnVrLWFjY29yZGlvbi10aXRsZTpmb2N1cyB7XG4gIGNvbG9yOiAjNjY2O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogQ29udGVudFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYWNjb3JkaW9uLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG4udWstYWNjb3JkaW9uLWNvbnRlbnQgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IERyb3BcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxuICogMi4gU2V0IHBvc2l0aW9uXG4gKiAzLiBTZXQgYSBkZWZhdWx0IHdpZHRoXG4gKi9cbi51ay1kcm9wIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBub25lO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAyMDtcbiAgLyogMyAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMzAwcHg7IH1cblxuLyogU2hvdyAqL1xuLnVrLWRyb3AudWstb3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIERpcmVjdGlvbiAvIEFsaWdubWVudCBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogRGlyZWN0aW9uICovXG5bY2xhc3MqPSd1ay1kcm9wLXRvcCddIHtcbiAgbWFyZ2luLXRvcDogLTIwcHg7IH1cblxuW2NsYXNzKj0ndWstZHJvcC1ib3R0b20nXSB7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuW2NsYXNzKj0ndWstZHJvcC1sZWZ0J10ge1xuICBtYXJnaW4tbGVmdDogLTIwcHg7IH1cblxuW2NsYXNzKj0ndWstZHJvcC1yaWdodCddIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7IH1cblxuLyogR3JpZCBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWRyb3Atc3RhY2sgLnVrLWRyb3AtZ3JpZCA+ICoge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBEcm9wZG93blxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gSGlkZSBieSBkZWZhdWx0XG4gKiAyLiBTZXQgcG9zaXRpb25cbiAqIDMuIFNldCBhIGRlZmF1bHQgd2lkdGhcbiAqIDQuIFN0eWxlXG4gKi9cbi51ay1kcm9wZG93biB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogbm9uZTtcbiAgLyogMiAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMjA7XG4gIC8qIDMgKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgLyogNCAqL1xuICBwYWRkaW5nOiAyNXB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjb2xvcjogIzY2NjtcbiAgYm94LXNoYWRvdzogMCA1cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOyB9XG5cbi8qIFNob3cgKi9cbi51ay1kcm9wZG93bi51ay1vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogTmF2XG4gKiBBZG9wdHMgYHVrLW5hdmBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWRyb3Bkb3duLW5hdiB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cblxuLypcbiAqIEl0ZW1zXG4gKi9cbi51ay1kcm9wZG93bi1uYXYgPiBsaSA+IGEge1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICsgQWN0aXZlICovXG4udWstZHJvcGRvd24tbmF2ID4gbGkgPiBhOmhvdmVyLFxuLnVrLWRyb3Bkb3duLW5hdiA+IGxpID4gYTpmb2N1cyxcbi51ay1kcm9wZG93bi1uYXYgPiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLypcbiAqIEhlYWRlclxuICovXG4udWstZHJvcGRvd24tbmF2IC51ay1uYXYtaGVhZGVyIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLypcbiAqIERpdmlkZXJcbiAqL1xuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LWRpdmlkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4vKlxuICogU3VibGlzdHNcbiAqL1xuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBhIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBhOmhvdmVyLFxuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBhOmZvY3VzLFxuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogRGlyZWN0aW9uIC8gQWxpZ25tZW50IG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBEaXJlY3Rpb24gKi9cbltjbGFzcyo9J3VrLWRyb3Bkb3duLXRvcCddIHtcbiAgbWFyZ2luLXRvcDogLTEwcHg7IH1cblxuW2NsYXNzKj0ndWstZHJvcGRvd24tYm90dG9tJ10ge1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbltjbGFzcyo9J3VrLWRyb3Bkb3duLWxlZnQnXSB7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDsgfVxuXG5bY2xhc3MqPSd1ay1kcm9wZG93bi1yaWdodCddIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7IH1cblxuLyogR3JpZCBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWRyb3Bkb3duLXN0YWNrIC51ay1kcm9wZG93bi1ncmlkID4gKiB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE1vZGFsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcbiAqIDIuIFNldCBwb3NpdGlvblxuICogMy4gQWxsb3cgc2Nyb2xsaW5nIGZvciB0aGUgbW9kYWwgZGlhbG9nXG4gKiA0LiBIb3Jpem9udGFsIHBhZGRpbmdcbiAqIDUuIE1hc2sgdGhlIGJhY2tncm91bmQgcGFnZVxuICogNi4gRmFkZS1pbiB0cmFuc2l0aW9uXG4gKi9cbi51ay1tb2RhbCB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogbm9uZTtcbiAgLyogMiAqL1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAxMDtcbiAgLyogMyAqL1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC8qIDQgKi9cbiAgcGFkZGluZzogMzJweCAzMnB4O1xuICAvKiA1ICovXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgLyogNiAqL1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay1tb2RhbCB7XG4gICAgcGFkZGluZzogNTBweCAzMHB4OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1tb2RhbCB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7IH0gfVxuXG4vKlxuICogT3BlblxuICovXG4udWstbW9kYWwudWstb3BlbiB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLyogUGFnZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUHJldmVudCBzY3JvbGxiYXJzXG4gKi9cbi51ay1tb2RhbC1wYWdlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBEaWFsb2dcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0IGZvciBzcGlubmVyIGFuZCBjbG9zZSBidXR0b25cbiAqIDIuIERpbWVuc2lvbnNcbiAqIDMuIEZpeCBgbWF4LXdpZHRoOiAxMDAlYCBub3Qgd29ya2luZyBpbiBjb21iaW5hdGlvbiB3aXRoIGZsZXggYW5kIHJlc3BvbnNpdmUgaW1hZ2VzIGluIElFMTFcbiAqICAgIGAhaW1wb3J0YW50YCBuZWVkZWQgdG8gb3ZlcndyaXRlIGB1ay13aWR0aC1hdXRvYC4gU2VlIGAjbW9kYWwtbWVkaWEtaW1hZ2VgIGluIHRlc3RzXG4gKiA0LiBTdHlsZVxuICogNS4gU2xpZGUtaW4gdHJhbnNpdGlvblxuICovXG4udWstbW9kYWwtZGlhbG9nIHtcbiAgLyogMSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qIDIgKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiA2MDBweDtcbiAgLyogMyAqL1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDAuMDFweCkgIWltcG9ydGFudDtcbiAgLyogNCAqL1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAvKiA1ICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwcHgpO1xuICB0cmFuc2l0aW9uOiAwLjNzIGxpbmVhcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgdHJhbnNmb3JtOyB9XG5cbi8qXG4gKiBPcGVuXG4gKi9cbi51ay1vcGVuID4gLnVrLW1vZGFsLWRpYWxvZyB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4vKiBTaXplIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBDb250YWluZXIgc2l6ZVxuICogVGFrZSB0aGUgc2FtZSBzaXplIGFzIHRoZSBDb250YWluZXIgY29tcG9uZW50XG4gKi9cbi51ay1tb2RhbC1jb250YWluZXIgLnVrLW1vZGFsLWRpYWxvZyB7XG4gIHdpZHRoOiAxMjAwcHg7IH1cblxuLypcbiAqIEZ1bGwgc2l6ZVxuICogMS4gUmVtb3ZlIHBhZGRpbmcgYW5kIGJhY2tncm91bmQgZnJvbSBtb2RhbFxuICogMi4gUmVzZXQgYWxsIGRlZmF1bHQgZGVjbGFyYXRpb25zIGZyb20gbW9kYWwgZGlhbG9nXG4gKi9cbi8qIDEgKi9cbi51ay1tb2RhbC1mdWxsIHtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogbm9uZTsgfVxuXG4vKiAyICovXG4udWstbW9kYWwtZnVsbCAudWstbW9kYWwtZGlhbG9nIHtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLyogU2VjdGlvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW1vZGFsLWJvZHkge1xuICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gIHBhZGRpbmc6IDE2cHggMTZweDsgfVxuXG4udWstbW9kYWwtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxvdy1yb290O1xuICBwYWRkaW5nOiAxNXB4IDMwcHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi51ay1tb2RhbC1mb290ZXIge1xuICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gIHBhZGRpbmc6IDE1cHggMzBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG4udWstbW9kYWwtYm9keSA+IDpsYXN0LWNoaWxkLFxuLnVrLW1vZGFsLWhlYWRlciA+IDpsYXN0LWNoaWxkLFxuLnVrLW1vZGFsLWZvb3RlciA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiBUaXRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbW9kYWwtdGl0bGUge1xuICBmb250LXNpemU6IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7IH1cblxuLyogQ2xvc2VcbiAqIEFkb3B0cyBgdWstY2xvc2VgXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbltjbGFzcyo9J3VrLW1vZGFsLWNsb3NlLSddIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDEwO1xuICB0b3A6IDEwcHg7XG4gIHJpZ2h0OiAxMHB4O1xuICBwYWRkaW5nOiA1cHg7IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSBhZGphY2VudCBlbGVtZW50XG4gKi9cbltjbGFzcyo9J3VrLW1vZGFsLWNsb3NlLSddOmZpcnN0LWNoaWxkICsgKiB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLypcbiAqIEhvdmVyXG4gKi9cbi8qXG4gKiBEZWZhdWx0XG4gKi9cbi8qXG4gKiBPdXRzaWRlXG4gKiAxLiBQcmV2ZW50IHNjcm9sbGJhciBvbiBzbWFsbCBkZXZpY2VzXG4gKi9cbi51ay1tb2RhbC1jbG9zZS1vdXRzaWRlIHtcbiAgdG9wOiAwO1xuICAvKiAxICovXG4gIHJpZ2h0OiAtNXB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTAwJSk7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4udWstbW9kYWwtY2xvc2Utb3V0c2lkZTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAvKiAxICovXG4gIC51ay1tb2RhbC1jbG9zZS1vdXRzaWRlIHtcbiAgICByaWdodDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDAlLCAtMTAwJSk7IH0gfVxuXG4vKlxuICogRnVsbFxuICovXG4udWstbW9kYWwtY2xvc2UtZnVsbCB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFNsaWRlc2hvd1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUHJldmVudCB0YWIgaGlnaGxpZ2h0aW5nIG9uIGlPUy5cbiAqL1xuLnVrLXNsaWRlc2hvdyB7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKiBJdGVtc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gQ3JlYXRlIHBvc2l0aW9uIGFuZCBzdGFja2luZyBjb250ZXh0XG4gKiAyLiBSZXNldCBsaXN0XG4gKiAzLiBDbGlwIGNoaWxkIGVsZW1lbnRzXG4gKiA0LiBQcmV2ZW50IGRpc3BsYXlpbmcgdGhlIGNhbGxvdXQgaW5mb3JtYXRpb24gb24gaU9TLlxuICovXG4udWstc2xpZGVzaG93LWl0ZW1zIHtcbiAgLyogMSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICAvKiAzICovXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qIDQgKi9cbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOyB9XG5cbi8qIEl0ZW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFBvc2l0aW9uIGl0ZW1zIGFib3ZlIGVhY2ggb3RoZXJcbiAqIDIuIFRha2UgdGhlIGZ1bGwgd2lkdGhcbiAqIDMuIENsaXAgY2hpbGQgZWxlbWVudHMsIGUuZy4gZm9yIGB1ay1jb3ZlcmBcbiAqIDQuIE9wdGltaXplIGFuaW1hdGlvblxuICogNS4gRGlzYWJsZSBob3Jpem9udGFsIHBhbm5pbmcgZ2VzdHVyZXMgaW4gSUUxMSBhbmQgRWRnZVxuICogNi4gU3VwcHJlc3Mgb3V0bGluZSBvbiBmb2N1c1xuICovXG4udWstc2xpZGVzaG93LWl0ZW1zID4gKiB7XG4gIC8qIDEgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIC8qIDIgKi9cbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgLyogMyAqL1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiA0ICovXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIC8qIDUgKi9cbiAgdG91Y2gtYWN0aW9uOiBwYW4teTsgfVxuXG4vKiA2ICovXG4udWstc2xpZGVzaG93LWl0ZW1zID4gOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKlxuICogSGlkZSBub3QgYWN0aXZlIGl0ZW1zXG4gKi9cbi51ay1zbGlkZXNob3ctaXRlbXMgPiA6bm90KC51ay1hY3RpdmUpIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogU2xpZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBQcmV2ZW50IHRhYiBoaWdobGlnaHRpbmcgb24gaU9TLlxuICovXG4udWstc2xpZGVyIHtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIENvbnRhaW5lclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQ2xpcCBjaGlsZCBlbGVtZW50c1xuICovXG4udWstc2xpZGVyLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLypcbiAqIFdpZGVuIGNvbnRhaW5lciB0byBwcmV2ZW50IGJveC1zaGFkb3dzIGZyb20gY2xpcHBpbmcsIGBsYXJnZS1ib3gtc2hhZG93YFxuICovXG4udWstc2xpZGVyLWNvbnRhaW5lci1vZmZzZXQge1xuICBtYXJnaW46IC0xMXB4IC0yNXB4IC0zOXB4IC0yNXB4O1xuICBwYWRkaW5nOiAxMXB4IDI1cHggMzlweCAyNXB4OyB9XG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBPcHRpbWl6ZSBhbmltYXRpb25cbiAqIDIuIENyZWF0ZSBhIGNvbnRhaW5pbmcgYmxvY2suIEluIFNhZmFyaSBpdCdzIG5laXRoZXIgY3JlYXRlZCBieSBgdHJhbnNmb3JtYCBub3IgYHdpbGwtY2hhbmdlYC5cbiAqL1xuLnVrLXNsaWRlci1pdGVtcyB7XG4gIC8qIDEgKi9cbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgLyogMiAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLypcbiAqIDEuIFJlc2V0IGxpc3Qgc3R5bGUgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIGdyaWRcbiAqIDIuIFByZXZlbnQgZGlzcGxheWluZyB0aGUgY2FsbG91dCBpbmZvcm1hdGlvbiBvbiBpT1MuXG4gKi9cbi51ay1zbGlkZXItaXRlbXM6bm90KC51ay1ncmlkKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICAvKiAyICovXG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfVxuXG4udWstc2xpZGVyLWl0ZW1zLnVrLWdyaWQge1xuICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuXG4vKiBJdGVtXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBMZXQgaXRlbXMgdGFrZSBjb250ZW50IGRpbWVuc2lvbnMgKDAgMCBhdXRvKVxuICogMi4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHRcbiAqIDMuIERpc2FibGUgaG9yaXpvbnRhbCBwYW5uaW5nIGdlc3R1cmVzIGluIElFMTEgYW5kIEVkZ2VcbiAqIDQuIFN1cHByZXNzIG91dGxpbmUgb24gZm9jdXNcbiAqL1xuLnVrLXNsaWRlci1pdGVtcyA+ICoge1xuICAvKiAxICovXG4gIGZsZXg6IG5vbmU7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiAzICovXG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7IH1cblxuLyogNCAqL1xuLnVrLXNsaWRlci1pdGVtcyA+IDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFN0aWNreVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUmVzb2x2ZSBmcmFtZSByYXRlIGlzc3VlcyBvbiBkZXZpY2VzIHdpdGggbG93ZXIgZnJhbWUgcmF0ZXMgYnkgZm9yY2luZyBoYXJkd2FyZSBhY2NlbGVyYXRpb25cbiAqL1xuLnVrLXN0aWNreS1maXhlZCB7XG4gIHotaW5kZXg6IDk4MDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4vKlxuICogRmFzdGVyIGFuaW1hdGlvbnNcbiAqL1xuLnVrLXN0aWNreVtjbGFzcyo9J3VrLWFuaW1hdGlvbi0nXSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4yczsgfVxuXG4udWstc3RpY2t5LnVrLWFuaW1hdGlvbi1yZXZlcnNlIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBPZmYtY2FudmFzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcbiAqIDIuIFNldCBwb3NpdGlvblxuICovXG4udWstb2ZmY2FudmFzIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBub25lO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7IH1cblxuLypcbiAqIEZsaXAgbW9kaWZpZXJcbiAqL1xuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bzsgfVxuXG4vKiBCYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFNldCBwb3NpdGlvblxuICogMi4gU2l6ZSBhbmQgc3R5bGVcbiAqIDMuIEFsbG93IHNjcm9sbGluZ1xuICovXG4udWstb2ZmY2FudmFzLWJhciB7XG4gIC8qIDEgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogLTI3MHB4O1xuICAvKiAyICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAyNzBweDtcbiAgcGFkZGluZzogMjBweCAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjMjIyO1xuICAvKiAzICovXG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLW9mZmNhbnZhcy1iYXIge1xuICAgIGxlZnQ6IC0zNTBweDtcbiAgICB3aWR0aDogMzUwcHg7XG4gICAgcGFkZGluZzogNDBweCA0MHB4OyB9IH1cblxuLyogRmxpcCBtb2RpZmllciAqL1xuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMtYmFyIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yNzBweDsgfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMtYmFyIHtcbiAgICByaWdodDogLTM1MHB4OyB9IH1cblxuLypcbiAqIE9wZW5cbiAqL1xuLnVrLW9wZW4gPiAudWstb2ZmY2FudmFzLWJhciB7XG4gIGxlZnQ6IDA7IH1cblxuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vcGVuID4gLnVrLW9mZmNhbnZhcy1iYXIge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDsgfVxuXG4vKlxuICogU2xpZGUgQW5pbWF0aW9uIChVc2VkIGluIHNsaWRlIGFuZCBwdXNoIG1vZGUpXG4gKi9cbi51ay1vZmZjYW52YXMtYmFyLWFuaW1hdGlvbiB7XG4gIHRyYW5zaXRpb246IGxlZnQgMC4zcyBlYXNlLW91dDsgfVxuXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcy1iYXItYW5pbWF0aW9uIHtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogcmlnaHQ7IH1cblxuLypcbiAqIFJldmVhbCBBbmltYXRpb25cbiAqIDEuIFNldCBwb3NpdGlvblxuICogMi4gQ2xpcCB0aGUgYmFyXG4gKiAzLiBBbmltYXRpb25cbiAqIDQuIFJlc2V0IHBvc2l0aW9uXG4gKi9cbi51ay1vZmZjYW52YXMtcmV2ZWFsIHtcbiAgLyogMSAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICAvKiAyICovXG4gIHdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiAzICovXG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgZWFzZS1vdXQ7IH1cblxuLnVrLW9mZmNhbnZhcy1yZXZlYWwgLnVrLW9mZmNhbnZhcy1iYXIge1xuICAvKiA0ICovXG4gIGxlZnQ6IDA7IH1cblxuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMtcmV2ZWFsIC51ay1vZmZjYW52YXMtYmFyIHtcbiAgLyogNCAqL1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDsgfVxuXG4udWstb3BlbiA+IC51ay1vZmZjYW52YXMtcmV2ZWFsIHtcbiAgd2lkdGg6IDI3MHB4OyB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstb3BlbiA+IC51ay1vZmZjYW52YXMtcmV2ZWFsIHtcbiAgICB3aWR0aDogMzUwcHg7IH0gfVxuXG4vKlxuICogRmxpcCBtb2RpZmllclxuICovXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcy1yZXZlYWwge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bzsgfVxuXG4vKiBDbG9zZVxuICogQWRvcHRzIGB1ay1jbG9zZWBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW9mZmNhbnZhcy1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbiAgdG9wOiAyMHB4O1xuICByaWdodDogMjBweDtcbiAgcGFkZGluZzogNXB4OyB9XG5cbi8qIE92ZXJsYXlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIE92ZXJsYXkgdGhlIHdob2xlIHBhZ2UuIE5lZWRlZCBmb3IgdGhlIGA6OmJlZm9yZWBcbiAqIDEuIFVzaW5nIGAxMDB2d2Agc28gbm8gbW9kaWZpY2F0aW9uIGlzIG5lZWRlZCB3aGVuIG9mZi1jYW52YXMgaXMgZmxpcHBlZFxuICogMi4gQWxsb3cgZm9yIGNsb3Npbmcgd2l0aCBzd2lwZSBnZXN0dXJlIG9uIGRldmljZXMgd2l0aCBwb2ludGVyIGV2ZW50cy5cbiAqL1xuLnVrLW9mZmNhbnZhcy1vdmVybGF5IHtcbiAgLyogMSAqL1xuICB3aWR0aDogMTAwdnc7XG4gIC8qIDIgKi9cbiAgdG91Y2gtYWN0aW9uOiBub25lOyB9XG5cbi8qXG4gKiAxLiBNYXNrIHRoZSB3aG9sZSBwYWdlXG4gKiAyLiBGYWRlLWluIHRyYW5zaXRpb25cbiAqL1xuLnVrLW9mZmNhbnZhcy1vdmVybGF5OjpiZWZvcmUge1xuICAvKiAxICovXG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIC8qIDIgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7IH1cblxuLnVrLW9mZmNhbnZhcy1vdmVybGF5LnVrLW9wZW46OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLyogUHJldmVudCBzY3JvbGxpbmdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFByZXZlbnQgaG9yaXpvbnRhbCBzY3JvbGxiYXIgd2hlbiB0aGUgY29udGVudCBpcyBzbGlkZS1vdXRcbiAqIEhhcyB0byBiZSBvbiB0aGUgYGh0bWxgIGVsZW1lbnQgdG9vIHRvIG1ha2UgaXQgd29yayBvbiB0aGUgYGJvZHlgXG4gKi9cbi51ay1vZmZjYW52YXMtcGFnZSxcbi51ay1vZmZjYW52YXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuOyB9XG5cbi8qIENvbnRhaW5lclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUHJlcGFyZSBzbGlkZS1vdXQgYW5pbWF0aW9uIChVc2VkIGluIHJldmVhbCBhbmQgcHVzaCBtb2RlKVxuICogVXNpbmcgYHBvc2l0aW9uOiBsZWZ0YCBpbnN0ZWFkIG9mIGB0cmFuc2Zvcm1gIGJlY2F1c2UgcG9zaXRpb24gYGZpeGVkYCBlbGVtZW50cyBsaWtlIHN0aWNreSBuYXZiYXJzXG4gKiBsb3NlIHRoZWlyIGZpeGVkIHN0YXRlIGFuZCBiZWhhdmVzIGxpa2UgYGFic29sdXRlYCB3aXRoaW4gYSB0cmFuc2Zvcm1lZCBjb250YWluZXJcbiAqIDEuIFByb3ZpZGUgYSBmaXhlZCB3aWR0aCBhbmQgcHJldmVudCBzaHJpbmtpbmdcbiAqL1xuLnVrLW9mZmNhbnZhcy1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zaXRpb246IGxlZnQgMC4zcyBlYXNlLW91dDtcbiAgLyogMSAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKlxuICogQWN0aXZhdGUgc2xpZGUtb3V0IGFuaW1hdGlvblxuICovXG46bm90KC51ay1vZmZjYW52YXMtZmxpcCkudWstb2ZmY2FudmFzLWNvbnRhaW5lci1hbmltYXRpb24ge1xuICBsZWZ0OiAyNzBweDsgfVxuXG4udWstb2ZmY2FudmFzLWZsaXAudWstb2ZmY2FudmFzLWNvbnRhaW5lci1hbmltYXRpb24ge1xuICBsZWZ0OiAtMjcwcHg7IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIDpub3QoLnVrLW9mZmNhbnZhcy1mbGlwKS51ay1vZmZjYW52YXMtY29udGFpbmVyLWFuaW1hdGlvbiB7XG4gICAgbGVmdDogMzUwcHg7IH1cbiAgLnVrLW9mZmNhbnZhcy1mbGlwLnVrLW9mZmNhbnZhcy1jb250YWluZXItYW5pbWF0aW9uIHtcbiAgICBsZWZ0OiAtMzUwcHg7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogU3dpdGNoZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFJlc2V0IGxpc3RcbiAqL1xuLnVrLXN3aXRjaGVyIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBIaWRlIG5vdCBhY3RpdmUgaXRlbXNcbiAqL1xuLnVrLXN3aXRjaGVyID4gOm5vdCgudWstYWN0aXZlKSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG4udWstc3dpdGNoZXIgPiAqID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBMZWFkZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWxlYWRlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLypcbiAqIDEuIFBsYWNlIGVsZW1lbnQgaW4gdGV4dCBmbG93XG4gKiAyLiBOZXZlciBicmVhayBpbnRvIGEgbmV3IGxpbmVcbiAqIDMuIEdldCBhIHN0cmluZyBiYWNrIHdpdGggYXMgbWFueSByZXBlYXRpbmcgY2hhcmFjdGVycyB0byBmaWxsIHRoZSBjb250YWluZXJcbiAqIDQuIFByZXZlbnQgd3JhcHBpbmcuIE92ZXJmbG93aW5nIGNoYXJhY3RlcnMgd2lsbCBiZSBjbGlwcGVkIGJ5IHRoZSBjb250YWluZXJcbiAqL1xuLnVrLWxlYWRlci1maWxsOjphZnRlciB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgLyogMiAqL1xuICB3aWR0aDogMDtcbiAgLyogMyAqL1xuICBjb250ZW50OiBhdHRyKGRhdGEtZmlsbCk7XG4gIC8qIDQgKi9cbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4vKlxuICogSGlkZSBpZiBtZWRpYSBkb2VzIG5vdCBtYXRjaFxuICovXG4udWstbGVhZGVyLWZpbGwudWstbGVhZGVyLWhpZGU6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKlxuICogUGFzcyBmaWxsIGNoYXJhY3RlciB0byBKU1xuICovXG4udWstbGVhZGVyLWZpbGwtY29udGVudDo6YmVmb3JlIHtcbiAgY29udGVudDogXCIuXCI7IH1cblxuOnJvb3Qge1xuICAtLXVrLWxlYWRlci1maWxsLWNvbnRlbnQ6IC47IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE5vdGlmaWNhdGlvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gU2V0IHBvc2l0aW9uXG4gKiAyLiBEaW1lbnNpb25zXG4gKi9cbi51ay1ub3RpZmljYXRpb24ge1xuICAvKiAxICovXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAxMHB4O1xuICBsZWZ0OiAxMHB4O1xuICB6LWluZGV4OiAxMDQwO1xuICAvKiAyICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAzNTBweDsgfVxuXG4vKiBQb3NpdGlvbiBtb2RpZmllcnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbm90aWZpY2F0aW9uLXRvcC1yaWdodCxcbi51ay1ub3RpZmljYXRpb24tYm90dG9tLXJpZ2h0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDEwcHg7IH1cblxuLnVrLW5vdGlmaWNhdGlvbi10b3AtY2VudGVyLFxuLnVrLW5vdGlmaWNhdGlvbi1ib3R0b20tY2VudGVyIHtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTE3NXB4OyB9XG5cbi51ay1ub3RpZmljYXRpb24tYm90dG9tLWxlZnQsXG4udWstbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodCxcbi51ay1ub3RpZmljYXRpb24tYm90dG9tLWNlbnRlciB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAxMHB4OyB9XG5cbi8qIFJlc3BvbnNpdmVuZXNzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogUGhvbmVzIHBvcnRyYWl0IGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVrLW5vdGlmaWNhdGlvbiB7XG4gICAgbGVmdDogMTBweDtcbiAgICByaWdodDogMTBweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46IDA7IH0gfVxuXG4vKiBNZXNzYWdlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxNXB4O1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICBjb2xvcjogIzY2NjtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuKiArIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuLyogQ2xvc2VcbiAqIEFkb3B0cyBgdWstY2xvc2VgXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1ub3RpZmljYXRpb24tY2xvc2Uge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMjBweDtcbiAgcmlnaHQ6IDE1cHg7IH1cblxuLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlOmhvdmVyIC51ay1ub3RpZmljYXRpb24tY2xvc2Uge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFByaW1hcnlcbiAqL1xuLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnkge1xuICBjb2xvcjogIzFlODdmMDsgfVxuXG4vKlxuICogU3VjY2Vzc1xuICovXG4udWstbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2VzcyB7XG4gIGNvbG9yOiAjMzJkMjk2OyB9XG5cbi8qXG4gKiBXYXJuaW5nXG4gKi9cbi51ay1ub3RpZmljYXRpb24tbWVzc2FnZS13YXJuaW5nIHtcbiAgY29sb3I6ICNmYWEwNWE7IH1cblxuLypcbiAqIERhbmdlclxuICovXG4udWstbm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyIHtcbiAgY29sb3I6ICNmMDUwNmU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFRvb2x0aXBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxuICogMi4gUG9zaXRpb25cbiAqIDMuIFJlbW92ZSB0b29sdGlwIGZyb20gZG9jdW1lbnQgZmxvdyB0byBrZWVwIHRoZSBVSWtpdCBjb250YWluZXIgZnJvbSBjaGFuZ2luZyBpdHMgc2l6ZSB3aGVuIGluamVjdGVkIGludG8gdGhlIGRvY3VtZW50IGluaXRpYWxseVxuICogNC4gRGltZW5zaW9uc1xuICogNS4gU3R5bGVcbiAqL1xuLnVrLXRvb2x0aXAge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IG5vbmU7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDMwO1xuICAvKiAzICovXG4gIHRvcDogMDtcbiAgLyogNCAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXgtd2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nOiAzcHggNnB4O1xuICAvKiA1ICovXG4gIGJhY2tncm91bmQ6ICM2NjY7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG4vKiBTaG93ICovXG4udWstdG9vbHRpcC51ay1hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiBEaXJlY3Rpb24gLyBBbGlnbm1lbnQgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIERpcmVjdGlvbiAqL1xuW2NsYXNzKj0ndWstdG9vbHRpcC10b3AnXSB7XG4gIG1hcmdpbi10b3A6IC0xMHB4OyB9XG5cbltjbGFzcyo9J3VrLXRvb2x0aXAtYm90dG9tJ10ge1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbltjbGFzcyo9J3VrLXRvb2x0aXAtbGVmdCddIHtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4OyB9XG5cbltjbGFzcyo9J3VrLXRvb2x0aXAtcmlnaHQnXSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTb3J0YWJsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstc29ydGFibGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG4udWstc29ydGFibGUgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyogRHJhZ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstc29ydGFibGUtZHJhZyB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMDUwICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qIFBsYWNlaG9sZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1zb3J0YWJsZS1wbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qIEVtcHR5IG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1zb3J0YWJsZS1lbXB0eSB7XG4gIG1pbi1oZWlnaHQ6IDUwcHg7IH1cblxuLyogSGFuZGxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIEhvdmVyICovXG4udWstc29ydGFibGUtaGFuZGxlOmhvdmVyIHtcbiAgY3Vyc29yOiBtb3ZlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBDb3VudGRvd25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogSXRlbVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBOdW1iZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIE1ha2UgbnVtYmVycyBhbGwgb2YgdGhlIHNhbWUgc2l6ZSB0byBwcmV2ZW50IGp1bXBpbmcuIE11c3QgYmUgc3VwcG9ydGVkIGJ5IHRoZSBmb250LlxuICogMi4gU3R5bGVcbiAqL1xuLnVrLWNvdW50ZG93bi1udW1iZXIge1xuICAvKiAxICovXG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIC8qIDIgKi9cbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMC44OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVrLWNvdW50ZG93bi1udW1iZXIge1xuICAgIGZvbnQtc2l6ZTogNHJlbTsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstY291bnRkb3duLW51bWJlciB7XG4gICAgZm9udC1zaXplOiA2cmVtOyB9IH1cblxuLyogU2VwYXJhdG9yXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jb3VudGRvd24tc2VwYXJhdG9yIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS42OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVrLWNvdW50ZG93bi1zZXBhcmF0b3Ige1xuICAgIGZvbnQtc2l6ZTogMnJlbTsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstY291bnRkb3duLXNlcGFyYXRvciB7XG4gICAgZm9udC1zaXplOiAzcmVtOyB9IH1cblxuLyogTGFiZWxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEdyaWRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEFsbG93IGNlbGxzIHRvIHdyYXAgaW50byB0aGUgbmV4dCBsaW5lXG4gKiAyLiBSZXNldCBsaXN0XG4gKi9cbi51ay1ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogMSAqL1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qXG4gKiBHcmlkIGNlbGxcbiAqIE5vdGU6IFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zLCBidXQgc2hyaW5rczogMCAxIGF1dG9cbiAqIFJlc2V0IG1hcmdpbiBmb3IgZS5nLiBwYXJhZ3JhcGhzXG4gKi9cbi51ay1ncmlkID4gKiB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cbi51ay1ncmlkID4gKiA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiBHdXR0ZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIERlZmF1bHRcbiAqL1xuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQge1xuICBtYXJnaW4tbGVmdDogLTMwcHg7IH1cblxuLnVrLWdyaWQgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4OyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstZ3JpZCArIC51ay1ncmlkLFxuLnVrLWdyaWQgPiAudWstZ3JpZC1tYXJnaW4sXG4qICsgLnVrLWdyaWQtbWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogMzBweDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLyogSG9yaXpvbnRhbCAqL1xuICAudWstZ3JpZCB7XG4gICAgbWFyZ2luLWxlZnQ6IC00MHB4OyB9XG4gIC51ay1ncmlkID4gKiB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9XG4gIC8qIFZlcnRpY2FsICovXG4gIC51ay1ncmlkICsgLnVrLWdyaWQsXG4gIC51ay1ncmlkID4gLnVrLWdyaWQtbWFyZ2luLFxuICAqICsgLnVrLWdyaWQtbWFyZ2luIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4OyB9IH1cblxuLypcbiAqIFNtYWxsXG4gKi9cbi8qIEhvcml6b250YWwgKi9cbi51ay1ncmlkLXNtYWxsLFxuLnVrLWdyaWQtY29sdW1uLXNtYWxsIHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4OyB9XG5cbi51ay1ncmlkLXNtYWxsID4gKixcbi51ay1ncmlkLWNvbHVtbi1zbWFsbCA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkICsgLnVrLWdyaWQtc21hbGwsXG4udWstZ3JpZCArIC51ay1ncmlkLXJvdy1zbWFsbCxcbi51ay1ncmlkLXNtYWxsID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtcm93LXNtYWxsID4gLnVrLWdyaWQtbWFyZ2luLFxuKiArIC51ay1ncmlkLW1hcmdpbi1zbWFsbCB7XG4gIG1hcmdpbi10b3A6IDE1cHg7IH1cblxuLypcbiAqIE1lZGl1bVxuICovXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1tZWRpdW0sXG4udWstZ3JpZC1jb2x1bW4tbWVkaXVtIHtcbiAgbWFyZ2luLWxlZnQ6IC0zMHB4OyB9XG5cbi51ay1ncmlkLW1lZGl1bSA+ICosXG4udWstZ3JpZC1jb2x1bW4tbWVkaXVtID4gKiB7XG4gIHBhZGRpbmctbGVmdDogMzBweDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQgKyAudWstZ3JpZC1tZWRpdW0sXG4udWstZ3JpZCArIC51ay1ncmlkLXJvdy1tZWRpdW0sXG4udWstZ3JpZC1tZWRpdW0gPiAudWstZ3JpZC1tYXJnaW4sXG4udWstZ3JpZC1yb3ctbWVkaXVtID4gLnVrLWdyaWQtbWFyZ2luLFxuKiArIC51ay1ncmlkLW1hcmdpbi1tZWRpdW0ge1xuICBtYXJnaW4tdG9wOiAzMHB4OyB9XG5cbi8qXG4gKiBMYXJnZVxuICovXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1sYXJnZSxcbi51ay1ncmlkLWNvbHVtbi1sYXJnZSB7XG4gIG1hcmdpbi1sZWZ0OiAtNDBweDsgfVxuXG4udWstZ3JpZC1sYXJnZSA+ICosXG4udWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstZ3JpZCArIC51ay1ncmlkLWxhcmdlLFxuLnVrLWdyaWQgKyAudWstZ3JpZC1yb3ctbGFyZ2UsXG4udWstZ3JpZC1sYXJnZSA+IC51ay1ncmlkLW1hcmdpbixcbi51ay1ncmlkLXJvdy1sYXJnZSA+IC51ay1ncmlkLW1hcmdpbixcbiogKyAudWstZ3JpZC1tYXJnaW4tbGFyZ2Uge1xuICBtYXJnaW4tdG9wOiA0MHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAvKiBIb3Jpem9udGFsICovXG4gIC51ay1ncmlkLWxhcmdlLFxuICAudWstZ3JpZC1jb2x1bW4tbGFyZ2Uge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTUwcHg7IH1cbiAgLnVrLWdyaWQtbGFyZ2UgPiAqLFxuICAudWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiAqIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1MHB4OyB9XG4gIC8qIFZlcnRpY2FsICovXG4gIC51ay1ncmlkICsgLnVrLWdyaWQtbGFyZ2UsXG4gIC51ay1ncmlkICsgLnVrLWdyaWQtcm93LWxhcmdlLFxuICAudWstZ3JpZC1sYXJnZSA+IC51ay1ncmlkLW1hcmdpbixcbiAgLnVrLWdyaWQtcm93LWxhcmdlID4gLnVrLWdyaWQtbWFyZ2luLFxuICAqICsgLnVrLWdyaWQtbWFyZ2luLWxhcmdlIHtcbiAgICBtYXJnaW4tdG9wOiAxNTBweDsgfSB9XG5cbi8qXG4gKiBDb2xsYXBzZVxuICovXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1jb2xsYXBzZSxcbi51ay1ncmlkLWNvbHVtbi1jb2xsYXBzZSB7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi51ay1ncmlkLWNvbGxhcHNlID4gKixcbi51ay1ncmlkLWNvbHVtbi1jb2xsYXBzZSA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkICsgLnVrLWdyaWQtY29sbGFwc2UsXG4udWstZ3JpZCArIC51ay1ncmlkLXJvdy1jb2xsYXBzZSxcbi51ay1ncmlkLWNvbGxhcHNlID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtcm93LWNvbGxhcHNlID4gLnVrLWdyaWQtbWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4vKiBEaXZpZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1ncmlkLWRpdmlkZXIgPiAqIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi51ay1ncmlkLWRpdmlkZXIgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLypcbiAqIERlZmF1bHRcbiAqL1xuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQtZGl2aWRlciB7XG4gIG1hcmdpbi1sZWZ0OiAtNjBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyID4gKiB7XG4gIHBhZGRpbmctbGVmdDogNjBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgbGVmdDogMzBweDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogNjBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gIHRvcDogLTMwcHg7XG4gIGxlZnQ6IDYwcHg7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC8qIEhvcml6b250YWwgKi9cbiAgLnVrLWdyaWQtZGl2aWRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IC04MHB4OyB9XG4gIC51ay1ncmlkLWRpdmlkZXIgPiAqIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDgwcHg7IH1cbiAgLnVrLWdyaWQtZGl2aWRlciA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSB7XG4gICAgbGVmdDogNDBweDsgfVxuICAvKiBWZXJ0aWNhbCAqL1xuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4ge1xuICAgIG1hcmdpbi10b3A6IDgwcHg7IH1cbiAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICAgIHRvcDogLTQwcHg7XG4gICAgbGVmdDogODBweDsgfSB9XG5cbi8qXG4gKiBTbWFsbFxuICovXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc21hbGwsXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLXNtYWxsIHtcbiAgbWFyZ2luLWxlZnQ6IC0zMHB4OyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zbWFsbCA+ICosXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLXNtYWxsID4gKiB7XG4gIHBhZGRpbmctbGVmdDogMzBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc21hbGwgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUsXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLXNtYWxsID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgbGVmdDogMTVweDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4sXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4ge1xuICBtYXJnaW4tdG9wOiAzMHB4OyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zbWFsbC51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICB0b3A6IC0xNXB4O1xuICBsZWZ0OiAzMHB4OyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctc21hbGwudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgdG9wOiAtMTVweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gIGxlZnQ6IDMwcHg7IH1cblxuLypcbiAqIE1lZGl1bVxuICovXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbWVkaXVtLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1tZWRpdW0ge1xuICBtYXJnaW4tbGVmdDogLTYwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bSA+ICosXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLW1lZGl1bSA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bSA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbWVkaXVtID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgbGVmdDogMzBweDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXJvdy1tZWRpdW0udWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbiB7XG4gIG1hcmdpbi10b3A6IDYwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICB0b3A6IC0zMHB4O1xuICBsZWZ0OiA2MHB4OyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctbWVkaXVtLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gIHRvcDogLTMwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1tZWRpdW0udWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgbGVmdDogNjBweDsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSB7XG4gIG1hcmdpbi1sZWZ0OiAtODBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UgPiAqLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDgwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSB7XG4gIGxlZnQ6IDQwcHg7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXJvdy1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogODBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgdG9wOiAtNDBweDtcbiAgbGVmdDogODBweDsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gIHRvcDogLTQwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICBsZWZ0OiA4MHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAvKiBIb3Jpem9udGFsICovXG4gIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZSxcbiAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0zMDBweDsgfVxuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UgPiAqLFxuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLWxhcmdlID4gKiB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMDBweDsgfVxuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUsXG4gIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICAgIGxlZnQ6IDE1MHB4OyB9XG4gIC8qIFZlcnRpY2FsICovXG4gIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luLFxuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4ge1xuICAgIG1hcmdpbi10b3A6IDMwMHB4OyB9XG4gIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICAgIHRvcDogLTE1MHB4O1xuICAgIGxlZnQ6IDMwMHB4OyB9XG4gIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgICB0b3A6IC0xNTBweDsgfVxuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgbGVmdDogMzAwcHg7IH0gfVxuXG4vKiBNYXRjaCBjaGlsZCBvZiBhIGdyaWQgY2VsbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQmVoYXZlIGxpa2UgYSBibG9jayBlbGVtZW50XG4gKiAxLiBXcmFwIGludG8gdGhlIG5leHQgbGluZVxuICogMi4gVGFrZSB0aGUgZnVsbCB3aWR0aCwgYXQgbGVhc3QgMTAwJS4gT25seSBpZiBubyBjbGFzcyBmcm9tIHRoZSBXaWR0aCBjb21wb25lbnQgaXMgc2V0LlxuICogMy4gRXhwYW5kIHdpZHRoIGV2ZW4gaWYgbGFyZ2VyIHRoYW4gMTAwJSwgZS5nLiBiZWNhdXNlIG9mIG5lZ2F0aXZlIG1hcmdpbiAoTmVlZGVkIGZvciBuZXN0ZWQgZ3JpZHMpXG4gKi9cbi51ay1ncmlkLW1hdGNoID4gKixcbi51ay1ncmlkLWl0ZW0tbWF0Y2gge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKiAxICovXG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuXG4udWstZ3JpZC1tYXRjaCA+ICogPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pLFxuLnVrLWdyaWQtaXRlbS1tYXRjaCA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSkge1xuICAvKiAyICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICAvKiAzICovXG4gIGZsZXg6IGF1dG87IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUmVzZXRcbiAqIDEuIFByZXBhcmUgbGlzdHNcbiAqIDIuIFByZXBhcmUgbGlua3NcbiAqIDMuIFJlbW92ZSBkZWZhdWx0IGZvY3VzIHN0eWxlXG4gKi9cbi8qIDEgKi9cbi51ay1uYXYsXG4udWstbmF2IHVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qIDIgKi9cbi51ay1uYXYgbGkgPiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKiAzICovXG4udWstbmF2IGxpID4gYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLypcbiAqIEl0ZW1zXG4gKiBNdXN0IHRhcmdldCBgYWAgZWxlbWVudHMgdG8gZXhjbHVkZSBvdGhlciBlbGVtZW50cyAoZS5nLiBsaXN0cylcbiAqL1xuLnVrLW5hdiA+IGxpID4gYSB7XG4gIHBhZGRpbmc6IDVweCAwOyB9XG5cbi8qIFN1Ymxpc3RzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBMZXZlbCAyXG4gKiBgdWxgIG5lZWRlZCBmb3IgaGlnaGVyIHNwZWNpZmljaXR5IHRvIG92ZXJyaWRlIHBhZGRpbmdcbiAqL1xudWwudWstbmF2LXN1YiB7XG4gIHBhZGRpbmc6IDVweCAwIDVweCAxNXB4OyB9XG5cbi8qXG4gKiBMZXZlbCAzIGFuZCBkZWVwZXJcbiAqL1xuLnVrLW5hdi1zdWIgdWwge1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH1cblxuLypcbiAqIEl0ZW1zXG4gKi9cbi51ay1uYXYtc3ViIGEge1xuICBwYWRkaW5nOiAycHggMDsgfVxuXG4vKiBQYXJlbnQgaWNvbiBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbmF2LXBhcmVudC1pY29uID4gLnVrLXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDEuNWVtO1xuICBoZWlnaHQ6IDEuNWVtO1xuICBmbG9hdDogcmlnaHQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxNCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlsaW5lJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBzdHJva2UlM0QlMjIlMjM2NjYlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIxLjElMjIlMjBwb2ludHMlM0QlMjIxMCUyMDElMjA0JTIwNyUyMDEwJTIwMTMlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7IH1cblxuLnVrLW5hdi1wYXJlbnQtaWNvbiA+IC51ay1wYXJlbnQudWstb3BlbiA+IGE6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxNCUyMiUyMGhlaWdodCUzRCUyMjE0JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTQlMjAxNCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWxpbmUlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHN0cm9rZSUzRCUyMiUyMzY2NiUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjEuMSUyMiUyMHBvaW50cyUzRCUyMjElMjA0JTIwNyUyMDEwJTIwMTMlMjA0JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIpOyB9XG5cbi8qIEhlYWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbmF2LWhlYWRlciB7XG4gIHBhZGRpbmc6IDVweCAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi51ay1uYXYtaGVhZGVyOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4vKiBEaXZpZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1uYXYtZGl2aWRlciB7XG4gIG1hcmdpbjogNXB4IDA7IH1cblxuLyogRGVmYXVsdCBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbmF2LWRlZmF1bHQge1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi8qXG4gKiBJdGVtc1xuICovXG4udWstbmF2LWRlZmF1bHQgPiBsaSA+IGEge1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstbmF2LWRlZmF1bHQgPiBsaSA+IGE6aG92ZXIsXG4udWstbmF2LWRlZmF1bHQgPiBsaSA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKiBBY3RpdmUgKi9cbi51ay1uYXYtZGVmYXVsdCA+IGxpLnVrLWFjdGl2ZSA+IGEge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKlxuICogSGVhZGVyXG4gKi9cbi51ay1uYXYtZGVmYXVsdCAudWstbmF2LWhlYWRlciB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qXG4gKiBEaXZpZGVyXG4gKi9cbi51ay1uYXYtZGVmYXVsdCAudWstbmF2LWRpdmlkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4vKlxuICogU3VibGlzdHNcbiAqL1xuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIGEge1xuICBjb2xvcjogIzk5OTsgfVxuXG4udWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgYTpob3Zlcixcbi51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiBhOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIGxpLnVrLWFjdGl2ZSA+IGEge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKiBQcmltYXJ5IG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBJdGVtc1xuICovXG4udWstbmF2LXByaW1hcnkgPiBsaSA+IGEge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICM5OTk7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLW5hdi1wcmltYXJ5ID4gbGkgPiBhOmhvdmVyLFxuLnVrLW5hdi1wcmltYXJ5ID4gbGkgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogQWN0aXZlICovXG4udWstbmF2LXByaW1hcnkgPiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLypcbiAqIEhlYWRlclxuICovXG4udWstbmF2LXByaW1hcnkgLnVrLW5hdi1oZWFkZXIge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKlxuICogRGl2aWRlclxuICovXG4udWstbmF2LXByaW1hcnkgLnVrLW5hdi1kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLypcbiAqIFN1Ymxpc3RzXG4gKi9cbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiBhIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLnVrLW5hdi1wcmltYXJ5IC51ay1uYXYtc3ViIGE6aG92ZXIsXG4udWstbmF2LXByaW1hcnkgLnVrLW5hdi1zdWIgYTpmb2N1cyB7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLyogQWxpZ25tZW50IG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1uYXYtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8qIFN1Ymxpc3RzICovXG4udWstbmF2LWNlbnRlciAudWstbmF2LXN1Yixcbi51ay1uYXYtY2VudGVyIC51ay1uYXYtc3ViIHVsIHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi8qIFBhcmVudCBpY29uIG1vZGlmaWVyICAqL1xuLnVrLW5hdi1jZW50ZXIudWstbmF2LXBhcmVudC1pY29uID4gLnVrLXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBOYXZiYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0IHRvIGNlbnRlciBuYXZiYXIgZ3JvdXBcbiAqL1xuLnVrLW5hdmJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIDEgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi8qIENvbnRhaW5lclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbmF2YmFyLWNvbnRhaW5lcjpub3QoLnVrLW5hdmJhci10cmFuc3BhcmVudCkge1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4OyB9XG5cbi8qXG4gKiBSZW1vdmUgcHNldWRvIGVsZW1lbnRzIGNyZWF0ZWQgYnkgbWljcm8gY2xlYXJmaXggYXMgcHJlY2F1dGlvbiAoaWYgQ29udGFpbmVyIGNvbXBvbmVudCBpcyB1c2VkKVxuICovXG4udWstbmF2YmFyLWNvbnRhaW5lciA+IDo6YmVmb3JlLFxuLnVrLW5hdmJhci1jb250YWluZXIgPiA6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qIEdyb3Vwc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gQWxpZ24gbmF2cyBhbmQgaXRlbXMgdmVydGljYWxseSBpZiB0aGV5IGhhdmUgYSBkaWZmZXJlbnQgaGVpZ2h0XG4gKiAyLiBOb3RlOiBJRSAxMSByZXF1aXJlcyBhbiBleHRyYSBgZGl2YCB3aGljaCBhZmZlY3RzIHRoZSBjZW50ZXIgc2VsZWN0b3JcbiAqL1xuLnVrLW5hdmJhci1sZWZ0LFxuLnVrLW5hdmJhci1yaWdodCxcbi51ay1uYXZiYXItY2VudGVyLFxuLnVrLW5hdmJhci1jZW50ZXItbGVmdCA+ICosXG4udWstbmF2YmFyLWNlbnRlci1yaWdodCA+ICoge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKiAxICovXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLypcbiAqIEhvcml6b250YWwgYWxpZ25tZW50XG4gKiAxLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCBmb3IgY2VudGVyZWQgbmF2YmFyIHdpdGggc3ViIGdyb3VwcyAobGVmdC9yaWdodClcbiAqIDIuIEZpeCB0ZXh0IHdyYXBwaW5nIGlmIGNvbnRlbnQgaXMgbGFyZ2VyIHRoYW4gNTAlIG9mIHRoZSBjb250YWluZXIuXG4gKiAzLiBOZWVkZWQgZm9yIGRyb3Bkb3ducyBiZWNhdXNlIGEgbmV3IHBvc2l0aW9uIGNvbnRleHQgaXMgY3JlYXRlZFxuICogICAgYHotaW5kZXhgIG11c3QgYmUgc21hbGxlciB0aGFuIG9mZi1jYW52YXNcbiAqIDQuIEFsaWduIHN1YiBncm91cHMgZm9yIGNlbnRlcmVkIG5hdmJhclxuICovXG4udWstbmF2YmFyLXJpZ2h0IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLnVrLW5hdmJhci1jZW50ZXI6b25seS1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIC8qIDEgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi51ay1uYXZiYXItY2VudGVyOm5vdCg6b25seS1jaGlsZCkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAvKiAyICovXG4gIHdpZHRoOiBtYXgtY29udGVudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMyAqL1xuICB6LWluZGV4OiA5OTA7IH1cblxuLyogNCAqL1xuLnVrLW5hdmJhci1jZW50ZXItbGVmdCxcbi51ay1uYXZiYXItY2VudGVyLXJpZ2h0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7IH1cblxuLnVrLW5hdmJhci1jZW50ZXItbGVmdCB7XG4gIHJpZ2h0OiAxMDAlOyB9XG5cbi51ay1uYXZiYXItY2VudGVyLXJpZ2h0IHtcbiAgbGVmdDogMTAwJTsgfVxuXG5bY2xhc3MqPSd1ay1uYXZiYXItY2VudGVyLSddIHtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qIE5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUmVzZXQgbGlzdFxuICovXG4udWstbmF2YmFyLW5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qXG4gKiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxuICogT25seSBub3QgYGFic29sdXRlYCBwb3NpdGlvbmVkIGdyb3Vwc1xuICovXG4udWstbmF2YmFyLWxlZnQsXG4udWstbmF2YmFyLXJpZ2h0LFxuLnVrLW5hdmJhci1jZW50ZXI6b25seS1jaGlsZCB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuXG4vKlxuICogSXRlbXNcbiAqIDEuIENlbnRlciBjb250ZW50IHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseVxuICogMi4gRGltZW5zaW9uc1xuICogMy4gU3R5bGVcbiAqIDQuIFJlcXVpcmVkIGZvciBgYWBcbiAqL1xuLnVrLW5hdmJhci1uYXYgPiBsaSA+IGEsXG4udWstbmF2YmFyLWl0ZW0sXG4udWstbmF2YmFyLXRvZ2dsZSB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC8qIDIgKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogODBweDtcbiAgcGFkZGluZzogMCAxNXB4O1xuICAvKiAzICovXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBcIk5vdG8gU2Fuc1wiLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIC8qIDQgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qXG4gKiBOYXYgaXRlbXNcbiAqL1xuLnVrLW5hdmJhci1uYXYgPiBsaSA+IGEge1xuICBjb2xvcjogIzk5OTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdHJhbnNpdGlvbjogMC4xcyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3I7IH1cblxuLypcbiAqIEhvdmVyXG4gKiBBcHBseSBob3ZlciBzdHlsZSBhbHNvIHRvIGZvY3VzIHN0YXRlIGFuZCBpZiBkcm9wZG93biBpcyBvcGVuZWRcbiAqL1xuLnVrLW5hdmJhci1uYXYgPiBsaTpob3ZlciA+IGEsXG4udWstbmF2YmFyLW5hdiA+IGxpID4gYTpmb2N1cyxcbi51ay1uYXZiYXItbmF2ID4gbGkgPiBhLnVrLW9wZW4ge1xuICBjb2xvcjogIzY2NjtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBPbkNsaWNrICovXG4udWstbmF2YmFyLW5hdiA+IGxpID4gYTphY3RpdmUge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKiBBY3RpdmUgKi9cbi51ay1uYXZiYXItbmF2ID4gbGkudWstYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qIEl0ZW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW5hdmJhci1pdGVtIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogVG9nZ2xlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1uYXZiYXItdG9nZ2xlIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLnVrLW5hdmJhci10b2dnbGU6aG92ZXIsXG4udWstbmF2YmFyLXRvZ2dsZTpmb2N1cyxcbi51ay1uYXZiYXItdG9nZ2xlLnVrLW9wZW4ge1xuICBjb2xvcjogIzY2NjtcbiAgb3V0bGluZTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qXG4gKiBJY29uXG4gKiBBZG9wdHMgYHVrLWljb25gXG4gKi9cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi8qIFN1YnRpdGxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1uYXZiYXItc3VidGl0bGUge1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBEcm9wZG93blxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRvcHRzIGB1ay1kcm9wZG93bmBcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxuICogMi4gU2V0IHBvc2l0aW9uXG4gKiAzLiBTZXQgYSBkZWZhdWx0IHdpZHRoXG4gKiA0LiBTdHlsZVxuICovXG4udWstbmF2YmFyLWRyb3Bkb3duIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBub25lO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAyMDtcbiAgLyogMyAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMjAwcHg7XG4gIC8qIDQgKi9cbiAgcGFkZGluZzogMjVweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICM2NjY7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsgfVxuXG4vKiBTaG93ICovXG4udWstbmF2YmFyLWRyb3Bkb3duLnVrLW9wZW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICogRGlyZWN0aW9uIC8gQWxpZ25tZW50IG1vZGlmaWVyc1xuICovXG4vKiBEaXJlY3Rpb24gKi9cbltjbGFzcyo9J3VrLW5hdmJhci1kcm9wZG93bi10b3AnXSB7XG4gIG1hcmdpbi10b3A6IC0xNXB4OyB9XG5cbltjbGFzcyo9J3VrLW5hdmJhci1kcm9wZG93bi1ib3R0b20nXSB7XG4gIG1hcmdpbi10b3A6IDE1cHg7IH1cblxuW2NsYXNzKj0ndWstbmF2YmFyLWRyb3Bkb3duLWxlZnQnXSB7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDsgfVxuXG5bY2xhc3MqPSd1ay1uYXZiYXItZHJvcGRvd24tcmlnaHQnXSB7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4OyB9XG5cbi8qXG4gKiBHcmlkXG4gKiBBZG9wdHMgYHVrLWdyaWRgXG4gKi9cbi8qIEd1dHRlciBIb3Jpem9udGFsICovXG4udWstbmF2YmFyLWRyb3Bkb3duLWdyaWQge1xuICBtYXJnaW4tbGVmdDogLTUwcHg7IH1cblxuLnVrLW5hdmJhci1kcm9wZG93bi1ncmlkID4gKiB7XG4gIHBhZGRpbmctbGVmdDogNTBweDsgfVxuXG4vKiBHdXR0ZXIgVmVydGljYWwgKi9cbi51ay1uYXZiYXItZHJvcGRvd24tZ3JpZCA+IC51ay1ncmlkLW1hcmdpbiB7XG4gIG1hcmdpbi10b3A6IDUwcHg7IH1cblxuLyogU3RhY2sgKi9cbi51ay1uYXZiYXItZHJvcGRvd24tc3RhY2sgLnVrLW5hdmJhci1kcm9wZG93bi1ncmlkID4gKiB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLypcbiAqIFdpZHRoIG1vZGlmaWVyXG4gKi9cbi51ay1uYXZiYXItZHJvcGRvd24td2lkdGgtMjpub3QoLnVrLW5hdmJhci1kcm9wZG93bi1zdGFjaykge1xuICB3aWR0aDogNDAwcHg7IH1cblxuLnVrLW5hdmJhci1kcm9wZG93bi13aWR0aC0zOm5vdCgudWstbmF2YmFyLWRyb3Bkb3duLXN0YWNrKSB7XG4gIHdpZHRoOiA2MDBweDsgfVxuXG4udWstbmF2YmFyLWRyb3Bkb3duLXdpZHRoLTQ6bm90KC51ay1uYXZiYXItZHJvcGRvd24tc3RhY2spIHtcbiAgd2lkdGg6IDgwMHB4OyB9XG5cbi51ay1uYXZiYXItZHJvcGRvd24td2lkdGgtNTpub3QoLnVrLW5hdmJhci1kcm9wZG93bi1zdGFjaykge1xuICB3aWR0aDogMTAwMHB4OyB9XG5cbi8qXG4gKiBEcm9wYmFyIG1vZGlmaWVyXG4gKi9cbi51ay1uYXZiYXItZHJvcGRvd24tZHJvcGJhciB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLyogRHJvcGRvd24gTmF2XG4gKiBBZG9wdHMgYHVrLW5hdmBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYge1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi8qXG4gKiBJdGVtc1xuICovXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiA+IGxpID4gYSB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1uYXZiYXItZHJvcGRvd24tbmF2ID4gbGkgPiBhOmhvdmVyLFxuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgPiBsaSA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKiBBY3RpdmUgKi9cbi51ay1uYXZiYXItZHJvcGRvd24tbmF2ID4gbGkudWstYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qXG4gKiBIZWFkZXJcbiAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgLnVrLW5hdi1oZWFkZXIge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKlxuICogRGl2aWRlclxuICovXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LWRpdmlkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4vKlxuICogU3VibGlzdHNcbiAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgLnVrLW5hdi1zdWIgYSB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi51ay1uYXZiYXItZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGE6aG92ZXIsXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBhOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgLnVrLW5hdi1zdWIgbGkudWstYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qIERyb3BiYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW5hdmJhci1kcm9wYmFyIHtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuXG4vKlxuICogU2xpZGUgbW9kaWZpZXJcbiAqL1xuLnVrLW5hdmJhci1kcm9wYmFyLXNsaWRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5ODA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3gtc2hhZG93OiAwIDVweCA3cHggcmdiYSgwLCAwLCAwLCAwLjA1KTsgfVxuXG4vKlxuICAgICAqIE5hdmJhclxuICAgICAqL1xuLnVrLW5hdmJhci1jb250YWluZXIgPiAudWstY29udGFpbmVyIC51ay1uYXZiYXItbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDsgfVxuXG4udWstbmF2YmFyLWNvbnRhaW5lciA+IC51ay1jb250YWluZXIgLnVrLW5hdmJhci1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7IH1cblxuLypcbiAgICAgKiBHcmlkIERpdmlkZXJcbiAgICAgKi9cbi51ay1uYXZiYXItZHJvcGRvd24tZ3JpZCA+ICoge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnVrLW5hdmJhci1kcm9wZG93bi1ncmlkID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMjVweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstbmF2YmFyLWRyb3Bkb3duLWdyaWQudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0yNXB4O1xuICBsZWZ0OiA1MHB4O1xuICByaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFN1Ym5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gQWxsb3cgaXRlbXMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcbiAqIDIuIEd1dHRlclxuICogMy4gUmVzZXQgbGlzdFxuICovXG4udWstc3VibmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogMSAqL1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8qIDIgKi9cbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICAvKiAzICovXG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLypcbiAqIDEuIFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zOiAwIDAgYXV0b1xuICogMi4gR3V0dGVyXG4gKiAzLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCBmb3IgZHJvcGRvd25zXG4gKi9cbi51ay1zdWJuYXYgPiAqIHtcbiAgLyogMSAqL1xuICBmbGV4OiBub25lO1xuICAvKiAyICovXG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgLyogMyAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLyogSXRlbXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEl0ZW1zIG11c3QgdGFyZ2V0IGBhYCBlbGVtZW50cyB0byBleGNsdWRlIG90aGVyIGVsZW1lbnRzIChlLmcuIGRyb3Bkb3ducylcbiAqIFVzaW5nIGA6Zmlyc3QtY2hpbGRgIGluc3RlYWQgb2YgYGFgIHRvIHN1cHBvcnQgYHNwYW5gIGVsZW1lbnRzIGZvciB0ZXh0XG4gKiAxLiBQcmV2ZW50IGdhcCBpZiBjaGlsZCBlbGVtZW50IGlzIGBpbmxpbmUtYmxvY2tgLCBlLmcuIGFuIGljb25cbiAqIDIuIFN0eWxlXG4gKi9cbi51ay1zdWJuYXYgPiAqID4gOmZpcnN0LWNoaWxkIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBibG9jaztcbiAgLyogMiAqL1xuICBjb2xvcjogIzk5OTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdHJhbnNpdGlvbjogMC4xcyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3I7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLXN1Ym5hdiA+ICogPiBhOmhvdmVyLFxuLnVrLXN1Ym5hdiA+ICogPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBBY3RpdmUgKi9cbi51ay1zdWJuYXYgPiAudWstYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi8qIERpdmlkZXIgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFNldCBndXR0ZXIgXG4gKi9cbi51ay1zdWJuYXYtZGl2aWRlciB7XG4gIG1hcmdpbi1sZWZ0OiAtNDFweDsgfVxuXG4vKlxuICogQWxpZ24gaXRlbXMgYW5kIGRpdmlkZXIgdmVydGljYWxseVxuICovXG4udWstc3VibmF2LWRpdmlkZXIgPiAqIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4vKlxuICogRGl2aWRlclxuICogMS4gYG50aC1jaGlsZGAgbWFrZXMgaXQgYWxzbyB3b3JrIHdpdGhvdXQgSlMgaWYgaXQncyBvbmx5IG9uZSByb3dcbiAqL1xuLnVrLXN1Ym5hdi1kaXZpZGVyID4gOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IDEuNWVtO1xuICBtYXJnaW4tbGVmdDogMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cblxuLyogMSAqL1xuLnVrLXN1Ym5hdi1kaXZpZGVyID4gOm50aC1jaGlsZChuKzIpOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNlNWU1ZTU7IH1cblxuLyogUGlsbCBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstc3VibmF2LXBpbGwgPiAqID4gOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstc3VibmF2LXBpbGwgPiAqID4gYTpob3Zlcixcbi51ay1zdWJuYXYtcGlsbCA+ICogPiBhOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogT25DbGljayAqL1xuLnVrLXN1Ym5hdi1waWxsID4gKiA+IGE6YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogQWN0aXZlICovXG4udWstc3VibmF2LXBpbGwgPiAudWstYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTg3ZjA7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi8qIERpc2FibGVkXG4gKiBUaGUgc2FtZSBmb3IgYWxsIHN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstc3VibmF2ID4gLnVrLWRpc2FibGVkID4gYSB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBCcmVhZGNydW1iXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZXNldCBsaXN0XG4gKi9cbi51ay1icmVhZGNydW1iIHtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4vKlxuICogMS4gRG9lc24ndCBnZW5lcmF0ZSBhbnkgYm94IGFuZCByZXBsYWNlZCBieSBjaGlsZCBib3hlc1xuICovXG4udWstYnJlYWRjcnVtYiA+ICoge1xuICBkaXNwbGF5OiBjb250ZW50czsgfVxuXG4vKiBJdGVtc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYnJlYWRjcnVtYiA+ICogPiAqIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6ICM5OTk7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWJyZWFkY3J1bWIgPiAqID4gOmhvdmVyLFxuLnVrLWJyZWFkY3J1bWIgPiAqID4gOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKiBEaXNhYmxlZCAqL1xuLyogQWN0aXZlICovXG4udWstYnJlYWRjcnVtYiA+IDpsYXN0LWNoaWxkID4gc3Bhbixcbi51ay1icmVhZGNydW1iID4gOmxhc3QtY2hpbGQgPiBhOm5vdChbaHJlZl0pIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLypcbiAqIERpdmlkZXJcbiAqIGBudGgtY2hpbGRgIG1ha2VzIGl0IGFsc28gd29yayB3aXRob3V0IEpTIGlmIGl0J3Mgb25seSBvbmUgcm93XG4gKiAxLiBSZW1vdmUgc3BhY2UgYmV0d2VlbiBpbmxpbmUgYmxvY2sgZWxlbWVudHMuXG4gKiAyLiBTdHlsZVxuICovXG4udWstYnJlYWRjcnVtYiA+IDpudGgtY2hpbGQobisyKTpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiL1wiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwIDIwcHggMCBjYWxjKDIwcHggLSA0cHgpO1xuICAvKiAyICovXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBQYWdpbmF0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxuICogMi4gR3V0dGVyXG4gKiAzLiBSZXNldCBsaXN0XG4gKi9cbi51ay1wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogMSAqL1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8qIDIgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIC8qIDMgKi9cbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4vKlxuICogMS4gU3BhY2UgaXMgYWxsb2NhdGVkIHNvbGVseSBiYXNlZCBvbiBjb250ZW50IGRpbWVuc2lvbnM6IDAgMCBhdXRvXG4gKiAyLiBHdXR0ZXJcbiAqIDMuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0IGZvciBkcm9wZG93bnNcbiAqL1xuLnVrLXBhZ2luYXRpb24gPiAqIHtcbiAgLyogMSAqL1xuICBmbGV4OiBub25lO1xuICAvKiAyICovXG4gIHBhZGRpbmctbGVmdDogMDtcbiAgLyogMyAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLyogSXRlbXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFByZXZlbnQgZ2FwIGlmIGNoaWxkIGVsZW1lbnQgaXMgYGlubGluZS1ibG9ja2AsIGUuZy4gYW4gaWNvblxuICogMi4gU3R5bGVcbiAqL1xuLnVrLXBhZ2luYXRpb24gPiAqID4gKiB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7XG4gIC8qIDIgKi9cbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGNvbG9yOiAjOTk5O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2UtaW4tb3V0OyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1wYWdpbmF0aW9uID4gKiA+IDpob3Zlcixcbi51ay1wYWdpbmF0aW9uID4gKiA+IDpmb2N1cyB7XG4gIGNvbG9yOiAjNjY2O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLyogQWN0aXZlICovXG4udWstcGFnaW5hdGlvbiA+IC51ay1hY3RpdmUgPiAqIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogRGlzYWJsZWQgKi9cbi51ay1wYWdpbmF0aW9uID4gLnVrLWRpc2FibGVkID4gKiB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUYWJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEFsbG93IGl0ZW1zIHRvIHdyYXAgaW50byB0aGUgbmV4dCBsaW5lXG4gKiAyLiBHdXR0ZXJcbiAqIDMuIFJlc2V0IGxpc3RcbiAqL1xuLnVrLXRhYiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIDEgKi9cbiAgZmxleC13cmFwOiB3cmFwO1xuICAvKiAyICovXG4gIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgLyogMyAqL1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnVrLXRhYjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMjBweDtcbiAgICByaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4vKlxuICogMS4gU3BhY2UgaXMgYWxsb2NhdGVkIHNvbGVseSBiYXNlZCBvbiBjb250ZW50IGRpbWVuc2lvbnM6IDAgMCBhdXRvXG4gKiAyLiBHdXR0ZXJcbiAqIDMuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0IGZvciBkcm9wZG93bnNcbiAqL1xuLnVrLXRhYiA+ICoge1xuICAvKiAxICovXG4gIGZsZXg6IG5vbmU7XG4gIC8qIDIgKi9cbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAvKiAzICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKiBJdGVtc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogSXRlbXMgbXVzdCB0YXJnZXQgYGFgIGVsZW1lbnRzIHRvIGV4Y2x1ZGUgb3RoZXIgZWxlbWVudHMgKGUuZy4gZHJvcGRvd25zKVxuICogMS4gQ2VudGVyIHRleHQgaWYgYSB3aWR0aCBpcyBzZXRcbiAqIDIuIFN0eWxlXG4gKi9cbi51ay10YWIgPiAqID4gYSB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLyogMiAqL1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgY29sb3I6ICM5OTk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLWluLW91dDsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstdGFiID4gKiA+IGE6aG92ZXIsXG4udWstdGFiID4gKiA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzY2NjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qIEFjdGl2ZSAqL1xuLnVrLXRhYiA+IC51ay1hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJvcmRlci1jb2xvcjogIzFlODdmMDsgfVxuXG4vKiBEaXNhYmxlZCAqL1xuLnVrLXRhYiA+IC51ay1kaXNhYmxlZCA+IGEge1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBQb3NpdGlvbiBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQm90dG9tXG4gKi9cbi51ay10YWItYm90dG9tOjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGJvdHRvbTogYXV0bzsgfVxuXG4udWstdGFiLWJvdHRvbSA+ICogPiBhIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi8qXG4gKiBMZWZ0ICsgUmlnaHRcbiAqIDEuIFJlc2V0IEd1dHRlclxuICovXG4udWstdGFiLWxlZnQsXG4udWstdGFiLXJpZ2h0IHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLyogMSAqL1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4vKiAxICovXG4udWstdGFiLWxlZnQgPiAqLFxuLnVrLXRhYi1yaWdodCA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLnVrLXRhYi1sZWZ0OjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2U1ZTVlNTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4udWstdGFiLXJpZ2h0OjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2U1ZTVlNTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4udWstdGFiLWxlZnQgPiAqID4gYSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi51ay10YWItcmlnaHQgPiAqID4gYSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLnVrLXRhYiAudWstZHJvcGRvd24ge1xuICBtYXJnaW4tbGVmdDogMzBweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogU2xpZGVuYXZcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkb3B0cyBgdWstaWNvbmBcbiAqL1xuLnVrLXNsaWRlbmF2IHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGNvbG9yOiByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuNSk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZS1pbi1vdXQ7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLXNsaWRlbmF2OmhvdmVyLFxuLnVrLXNsaWRlbmF2OmZvY3VzIHtcbiAgY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMC45KTtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBPbkNsaWNrICovXG4udWstc2xpZGVuYXY6YWN0aXZlIHtcbiAgY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMC41KTsgfVxuXG4vKiBJY29uIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBQcmV2aW91c1xuICovXG4vKlxuICogTmV4dFxuICovXG4vKiBTaXplIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1zbGlkZW5hdi1sYXJnZSB7XG4gIHBhZGRpbmc6IDEwcHggMTBweDsgfVxuXG4vKiBDb250YWluZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXNsaWRlbmF2LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IERvdG5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gQWxsb3cgaXRlbXMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcbiAqIDIuIFJlc2V0IGxpc3RcbiAqIDMuIEd1dHRlclxuICovXG4udWstZG90bmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogMSAqL1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICAvKiAzICovXG4gIG1hcmdpbi1sZWZ0OiAtMTJweDsgfVxuXG4vKlxuICogMS4gU3BhY2UgaXMgYWxsb2NhdGVkIHNvbGVseSBiYXNlZCBvbiBjb250ZW50IGRpbWVuc2lvbnM6IDAgMCBhdXRvXG4gKiAyLiBHdXR0ZXJcbiAqL1xuLnVrLWRvdG5hdiA+ICoge1xuICAvKiAxICovXG4gIGZsZXg6IG5vbmU7XG4gIC8qIDIgKi9cbiAgcGFkZGluZy1sZWZ0OiAxMnB4OyB9XG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBJdGVtc1xuICogMS4gSGlkZSB0ZXh0IGlmIHByZXNlbnRcbiAqL1xuLnVrLWRvdG5hdiA+ICogPiAqIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIC8qIDEgKi9cbiAgdGV4dC1pbmRlbnQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmYzNiM2Q7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC51ay1kb3RuYXYgPiAqID4gKiB7XG4gICAgICB3aWR0aDogMjJweDtcbiAgICAgIGhlaWdodDogMjJweDsgfSB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1kb3RuYXYgPiAqID4gOmhvdmVyLFxuLnVrLWRvdG5hdiA+ICogPiA6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmMzYjNkO1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIE9uQ2xpY2sgKi9cbi51ay1kb3RuYXYgPiAqID4gOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYzNiM2Q7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyogQWN0aXZlICovXG4udWstZG90bmF2ID4gLnVrLWFjdGl2ZSA+ICoge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmMzYjNkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIE1vZGlmaWVyOiAndWstZG90bmF2LXZlcnRpY2FsJ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gQ2hhbmdlIGRpcmVjdGlvblxuICogMi4gR3V0dGVyXG4gKi9cbi51ay1kb3RuYXYtdmVydGljYWwge1xuICAvKiAxICovXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC8qIDIgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi10b3A6IC0xMnB4OyB9XG5cbi8qIDIgKi9cbi51ay1kb3RuYXYtdmVydGljYWwgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXRvcDogMTJweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogVGh1bWJuYXZcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEFsbG93IGl0ZW1zIHRvIHdyYXAgaW50byB0aGUgbmV4dCBsaW5lXG4gKiAyLiBSZXNldCBsaXN0XG4gKiAzLiBHdXR0ZXJcbiAqL1xuLnVrLXRodW1ibmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogMSAqL1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICAvKiAzICovXG4gIG1hcmdpbi1sZWZ0OiAtMTVweDsgfVxuXG4vKlxuICogU3BhY2UgaXMgYWxsb2NhdGVkIGJhc2VkIG9uIGNvbnRlbnQgZGltZW5zaW9ucywgYnV0IHNocmlua3M6IDAgMSBhdXRvXG4gKiAxLiBHdXR0ZXJcbiAqL1xuLnVrLXRodW1ibmF2ID4gKiB7XG4gIC8qIDEgKi9cbiAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9XG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBJdGVtc1xuICovXG4udWstdGh1bWJuYXYgPiAqID4gKiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC51ay10aHVtYm5hdiA+ICogPiAqOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZS1pbi1vdXQ7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLXRodW1ibmF2ID4gKiA+IDpob3Zlcixcbi51ay10aHVtYm5hdiA+ICogPiA6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG4gIC51ay10aHVtYm5hdiA+ICogPiA6aG92ZXI6OmFmdGVyLFxuICAudWstdGh1bWJuYXYgPiAqID4gOmZvY3VzOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyogQWN0aXZlICovXG4udWstdGh1bWJuYXYgPiAudWstYWN0aXZlID4gKjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKiBNb2RpZmllcjogJ3VrLXRodW1ibmF2LXZlcnRpY2FsJ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gQ2hhbmdlIGRpcmVjdGlvblxuICogMi4gR3V0dGVyXG4gKi9cbi51ay10aHVtYm5hdi12ZXJ0aWNhbCB7XG4gIC8qIDEgKi9cbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLyogMiAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogLTE1cHg7IH1cblxuLyogMiAqL1xuLnVrLXRodW1ibmF2LXZlcnRpY2FsID4gKiB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy10b3A6IDE1cHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEljb25uYXZcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEFsbG93IGl0ZW1zIHRvIHdyYXAgaW50byB0aGUgbmV4dCBsaW5lXG4gKiAyLiBSZXNldCBsaXN0XG4gKiAzLiBHdXR0ZXJcbiAqL1xuLnVrLWljb25uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKiAxICovXG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgLyogMiAqL1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIC8qIDMgKi9cbiAgbWFyZ2luLWxlZnQ6IC0xMHB4OyB9XG5cbi8qXG4gKiBTcGFjZSBpcyBhbGxvY2F0ZWQgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zLCBidXQgc2hyaW5rczogMCAxIGF1dG9cbiAqIDEuIEd1dHRlclxuICovXG4udWstaWNvbm5hdiA+ICoge1xuICAvKiAxICovXG4gIHBhZGRpbmctbGVmdDogMTBweDsgfVxuXG4vKiBJdGVtc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogSXRlbXMgbXVzdCB0YXJnZXQgYGFgIGVsZW1lbnRzIHRvIGV4Y2x1ZGUgb3RoZXIgZWxlbWVudHMgKGUuZy4gZHJvcGRvd25zKVxuICogMS4gUHJldmVudCBnYXAgaWYgY2hpbGQgZWxlbWVudCBpcyBgaW5saW5lLWJsb2NrYCwgZS5nLiBhbiBpY29uXG4gKiAyLiBTdHlsZVxuICovXG4udWstaWNvbm5hdiA+ICogPiBhIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBibG9jaztcbiAgLyogMiAqL1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstaWNvbm5hdiA+ICogPiBhOmhvdmVyLFxuLnVrLWljb25uYXYgPiAqID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNjY2O1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qIEFjdGl2ZSAqL1xuLnVrLWljb25uYXYgPiAudWstYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi8qIE1vZGlmaWVyOiAndWstaWNvbm5hdi12ZXJ0aWNhbCdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENoYW5nZSBkaXJlY3Rpb25cbiAqIDIuIEd1dHRlclxuICovXG4udWstaWNvbm5hdi12ZXJ0aWNhbCB7XG4gIC8qIDEgKi9cbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLyogMiAqL1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7IH1cblxuLyogMiAqL1xuLnVrLWljb25uYXYtdmVydGljYWwgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXRvcDogMTBweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogTGlnaHRib3hcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxuICogMi4gU2V0IHBvc2l0aW9uXG4gKiAzLiBBbGxvdyBzY3JvbGxpbmcgZm9yIHRoZSBtb2RhbCBkaWFsb2dcbiAqIDQuIEhvcml6b250YWwgcGFkZGluZ1xuICogNS4gTWFzayB0aGUgYmFja2dyb3VuZCBwYWdlXG4gKiA2LiBGYWRlLWluIHRyYW5zaXRpb25cbiAqIDcuIFByZXZlbnQgY2FuY2VsbGF0aW9uIG9mIHBvaW50ZXIgZXZlbnRzIHdoaWxlIGRyYWdnaW5nXG4gKi9cbi51ay1saWdodGJveCB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogbm9uZTtcbiAgLyogMiAqL1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAxMDtcbiAgLyogNSAqL1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAvKiA2ICovXG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyO1xuICAvKiA3ICovXG4gIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbTsgfVxuXG4vKlxuICogT3BlblxuICogMS4gQ2VudGVyIGNoaWxkXG4gKiAyLiBGYWRlLWluXG4gKi9cbi51ay1saWdodGJveC51ay1vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8qIDIgKi9cbiAgb3BhY2l0eTogMTsgfVxuXG4vKiBQYWdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBQcmV2ZW50IHNjcm9sbGJhcnNcbiAqL1xuLnVrLWxpZ2h0Ym94LXBhZ2Uge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEl0ZW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIENlbnRlciBjaGlsZCB3aXRoaW4gdGhlIHZpZXdwb3J0XG4gKiAyLiBOb3QgdmlzaWJsZSBieSBkZWZhdWx0XG4gKiAzLiBDb2xvciBuZWVkZWQgZm9yIHNwaW5uZXIgaWNvblxuICogNC4gT3B0aW1pemUgYW5pbWF0aW9uXG4gKiA1LiBSZXNwb25zaXZlbmVzc1xuICogICAgVXNpbmcgYHZoYCBmb3IgYG1heC1oZWlnaHRgIHRvIGZpeCBpbWFnZSBwcm9wb3J0aW9ucyBhZnRlciByZXNpemUgaW4gU2FmYXJpIGFuZCBPcGVyYVxuICogICAgVXNpbmcgYHZoYCBhbmQgYHZ3YCB0byBtYWtlIHJlc3BvbnNpdmUgaW1hZ2Ugd29yayBpbiBJRTExXG4gKiA2LiBTdXBwcmVzcyBvdXRsaW5lIG9uIGZvY3VzXG4gKi9cbi51ay1saWdodGJveC1pdGVtcyA+ICoge1xuICAvKiAxICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICAvKiAyICovXG4gIGRpc3BsYXk6IG5vbmU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvKiAzICovXG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIC8qIDQgKi9cbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsgfVxuXG4vKiA1ICovXG4udWstbGlnaHRib3gtaXRlbXMgPiAqID4gKiB7XG4gIG1heC13aWR0aDogMTAwdnc7XG4gIG1heC1oZWlnaHQ6IDEwMHZoOyB9XG5cbi8qIDYgKi9cbi51ay1saWdodGJveC1pdGVtcyA+IDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gKiA+IDpub3QoaWZyYW1lKSB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gLnVrLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLyogVG9vbGJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbGlnaHRib3gtdG9vbGJhciB7XG4gIHBhZGRpbmc6IDEwcHggMTBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpOyB9XG5cbi51ay1saWdodGJveC10b29sYmFyID4gKiB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7IH1cblxuLyogVG9vbGJhciBJY29uIChDbG9zZSlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWxpZ2h0Ym94LXRvb2xiYXItaWNvbiB7XG4gIHBhZGRpbmc6IDVweDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTsgfVxuXG4vKlxuICogSG92ZXJcbiAqL1xuLnVrLWxpZ2h0Ym94LXRvb2xiYXItaWNvbjpob3ZlciB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi8qIEJ1dHRvbiAoU2xpZGVuYXYpXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBDZW50ZXIgaWNvbiB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHlcbiAqL1xuLnVrLWxpZ2h0Ym94LWJ1dHRvbiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWxpZ2h0Ym94LWJ1dHRvbjpob3Zlcixcbi51ay1saWdodGJveC1idXR0b246Zm9jdXMge1xuICBjb2xvcjogI2ZmZjsgfVxuXG4vKiBPbkNsaWNrICovXG4vKiBDYXB0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1saWdodGJveC1jYXB0aW9uOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBJZnJhbWVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWxpZ2h0Ym94LWlmcmFtZSB7XG4gIHdpZHRoOiA4MCU7XG4gIGhlaWdodDogODAlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBBbmltYXRpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuW2NsYXNzKj0ndWstYW5pbWF0aW9uLSddIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsgfVxuXG4vKiBBbmltYXRpb25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBGYWRlXG4gKi9cbi51ay1hbmltYXRpb24tZmFkZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuOHM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsgfVxuXG4vKlxuICogU2NhbGVcbiAqL1xuLnVrLWFuaW1hdGlvbi1zY2FsZS11cCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXNjYWxlLTAyOyB9XG5cbi51ay1hbmltYXRpb24tc2NhbGUtZG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXNjYWxlLTE4OyB9XG5cbi8qXG4gKiBTbGlkZVxuICovXG4udWstYW5pbWF0aW9uLXNsaWRlLXRvcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXRvcDsgfVxuXG4udWstYW5pbWF0aW9uLXNsaWRlLWJvdHRvbSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWJvdHRvbTsgfVxuXG4udWstYW5pbWF0aW9uLXNsaWRlLWxlZnQge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS1sZWZ0OyB9XG5cbi51ay1hbmltYXRpb24tc2xpZGUtcmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS1yaWdodDsgfVxuXG4vKlxuICogU2xpZGUgU21hbGxcbiAqL1xuLnVrLWFuaW1hdGlvbi1zbGlkZS10b3Atc21hbGwge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS10b3Atc21hbGw7IH1cblxuLnVrLWFuaW1hdGlvbi1zbGlkZS1ib3R0b20tc21hbGwge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS1ib3R0b20tc21hbGw7IH1cblxuLnVrLWFuaW1hdGlvbi1zbGlkZS1sZWZ0LXNtYWxsIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtbGVmdC1zbWFsbDsgfVxuXG4udWstYW5pbWF0aW9uLXNsaWRlLXJpZ2h0LXNtYWxsIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtcmlnaHQtc21hbGw7IH1cblxuLypcbiAqIFNsaWRlIE1lZGl1bVxuICovXG4udWstYW5pbWF0aW9uLXNsaWRlLXRvcC1tZWRpdW0ge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS10b3AtbWVkaXVtOyB9XG5cbi51ay1hbmltYXRpb24tc2xpZGUtYm90dG9tLW1lZGl1bSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWJvdHRvbS1tZWRpdW07IH1cblxuLnVrLWFuaW1hdGlvbi1zbGlkZS1sZWZ0LW1lZGl1bSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWxlZnQtbWVkaXVtOyB9XG5cbi51ay1hbmltYXRpb24tc2xpZGUtcmlnaHQtbWVkaXVtIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtcmlnaHQtbWVkaXVtOyB9XG5cbi8qXG4gKiBLZW5idXJuc1xuICovXG4udWstYW5pbWF0aW9uLWtlbmJ1cm5zIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLXNjYWxlLWtlbmJ1cm5zO1xuICBhbmltYXRpb24tZHVyYXRpb246IDE1czsgfVxuXG4vKlxuICogU2hha2VcbiAqL1xuLnVrLWFuaW1hdGlvbi1zaGFrZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1zaGFrZTsgfVxuXG4vKlxuICogU1ZHIFN0cm9rZVxuICogVGhlIGAtLXVrLWFuaW1hdGlvbi1zdHJva2VgIGN1c3RvbSBwcm9wZXJ0eSBjb250YWlucyB0aGUgbG9uZ2VzdCBwYXRoIGxlbmd0aC5cbiAqIFNldCBpdCBtYW51YWxseSBvciB1c2UgYHVrLXN2Zz1cInN0cm9rZS1hbmltYXRpb246IHRydWVcImAgdG8gc2V0IGl0IGF1dG9tYXRpY2FsbHkuXG4gKiBBbGwgc3Ryb2tlcyBhcmUgYW5pbWF0ZWQgYnkgdGhlIHNhbWUgcGFjZSBhbmQgZG9lc24ndCBlbmQgc2ltdWx0YW5lb3VzbHkuXG4gKiBUbyBlbmQgc2ltdWx0YW5lb3VzbHksIGBwYXRoTGVuZ3RoPVwiMVwiYCBjb3VsZCBiZSB1c2VkLCBidXQgaXQncyBub3Qgd29ya2luZyBpbiBTYWZhcmkgeWV0LlxuICovXG4udWstYW5pbWF0aW9uLXN0cm9rZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1zdHJva2U7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IHZhcigtLXVrLWFuaW1hdGlvbi1zdHJva2UpO1xuICBhbmltYXRpb24tZHVyYXRpb246IDJzOyB9XG5cbi8qIERpcmVjdGlvbiBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYW5pbWF0aW9uLXJldmVyc2Uge1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyB9XG5cbi8qIER1cmF0aW9uIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1hbmltYXRpb24tZmFzdCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4xczsgfVxuXG4vKiBUb2dnbGUgKEhvdmVyICsgRm9jdXMpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFRoZSB0b2dnbGUgaXMgdHJpZ2dlcmVkIG9uIHRvdWNoIGRldmljZXMgdXNpbmcgYDpmb2N1c2AgYW5kIHRhYmluZGV4XG4gKi9cbi51ay1hbmltYXRpb24tdG9nZ2xlOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpIFtjbGFzcyo9J3VrLWFuaW1hdGlvbi0nXSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBub25lOyB9XG5cbi8qXG4gKiAxLiBQcmV2ZW50IHRhYiBoaWdobGlnaHRpbmcgb24gaU9TLlxuICovXG4udWstYW5pbWF0aW9uLXRvZ2dsZSB7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKlxuICogUmVtb3ZlIG91dGxpbmUgZm9yIGB0YWJpbmRleGBcbiAqL1xuLnVrLWFuaW1hdGlvbi10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qIEtleWZyYW1lcyB1c2VkIGJ5IGFuaW1hdGlvbiBjbGFzc2VzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBGYWRlXG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4vKlxuICogU2xpZGUgVG9wXG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZS10b3Age1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLypcbiAqIFNsaWRlIEJvdHRvbVxuICovXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtYm90dG9tIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLypcbiAqIFNsaWRlIExlZnRcbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLWxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuLypcbiAqIFNsaWRlIFJpZ2h0XG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZS1yaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi8qXG4gKiBTbGlkZSBUb3AgU21hbGxcbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLXRvcC1zbWFsbCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4vKlxuICogU2xpZGUgQm90dG9tIFNtYWxsXG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZS1ib3R0b20tc21hbGwge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4vKlxuICogU2xpZGUgTGVmdCBTbWFsbFxuICovXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtbGVmdC1zbWFsbCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG4vKlxuICogU2xpZGUgUmlnaHQgU21hbGxcbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLXJpZ2h0LXNtYWxsIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuLypcbiAqIFNsaWRlIFRvcCBNZWRpdW1cbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLXRvcC1tZWRpdW0ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLypcbiAqIFNsaWRlIEJvdHRvbSBNZWRpdW1cbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLWJvdHRvbS1tZWRpdW0ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4vKlxuICogU2xpZGUgTGVmdCBNZWRpdW1cbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLWxlZnQtbWVkaXVtIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi8qXG4gKiBTbGlkZSBSaWdodCBNZWRpdW1cbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLXJpZ2h0LW1lZGl1bSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi8qXG4gKiBTY2FsZSBVcFxuICovXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtc2NhbGUtMDIge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMik7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH1cblxuLypcbiAqIFNjYWxlIERvd25cbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLXNjYWxlLTE4IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG5cbi8qXG4gKiBLZW5idXJuc1xuICovXG5Aa2V5ZnJhbWVzIHVrLXNjYWxlLWtlbmJ1cm5zIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOyB9IH1cblxuLypcbiAqIFNoYWtlXG4gKi9cbkBrZXlmcmFtZXMgdWstc2hha2Uge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDEwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC05cHgpOyB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7IH1cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTdweCk7IH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNnB4KTsgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTsgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpOyB9XG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpOyB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7IH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFweCk7IH0gfVxuXG4vKlxuICogU3Ryb2tlXG4gKi9cbkBrZXlmcmFtZXMgdWstc3Ryb2tlIHtcbiAgMCUge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiB2YXIoLS11ay1hbmltYXRpb24tc3Ryb2tlKTsgfVxuICAxMDAlIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBXaWR0aFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBFcXVhbCBjaGlsZCB3aWR0aHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuW2NsYXNzKj0ndWstY2hpbGQtd2lkdGgnXSA+ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTsgfVxuXG4udWstY2hpbGQtd2lkdGgtMS0yID4gKiB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLnVrLWNoaWxkLXdpZHRoLTEtMyA+ICoge1xuICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuXG4udWstY2hpbGQtd2lkdGgtMS00ID4gKiB7XG4gIHdpZHRoOiAyNSU7IH1cblxuLnVrLWNoaWxkLXdpZHRoLTEtNSA+ICoge1xuICB3aWR0aDogMjAlOyB9XG5cbi51ay1jaGlsZC13aWR0aC0xLTYgPiAqIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cblxuLnVrLWNoaWxkLXdpZHRoLWF1dG8gPiAqIHtcbiAgd2lkdGg6IGF1dG87IH1cblxuLypcbiAqIDEuIFJlc2V0IHRoZSBgbWluLXdpZHRoYCwgd2hpY2ggaXMgc2V0IHRvIGF1dG8gYnkgZGVmYXVsdCwgYmVjYXVzZVxuICogICAgZmxleCBpdGVtcyB3b24ndCBzaHJpbmsgYmVsb3cgdGhlaXIgbWluaW11bSBpbnRyaW5zaWMgY29udGVudCBzaXplLlxuICogICAgVXNpbmcgYDFweGAgaW5zdGVhZCBvZiBgMGAsIHNvIGl0ZW1zIHN0aWxsIHdyYXAgaW50byB0aGUgbmV4dCBsaW5lLFxuICogICAgaWYgdGhleSBoYXZlIHplcm8gd2lkdGggYW5kIHBhZGRpbmcgYW5kIHRoZSBwcmVkZWNlc3NvciBpcyAxMDAlIHdpZGUuXG4gKi9cbi51ay1jaGlsZC13aWR0aC1leHBhbmQgPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcbiAgZmxleDogMTtcbiAgLyogMSAqL1xuICBtaW4td2lkdGg6IDFweDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay1jaGlsZC13aWR0aC0xLTFcXEBzID4gKiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtMlxcQHMgPiAqIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTNcXEBzID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNFxcQHMgPiAqIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTVcXEBzID4gKiB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS02XFxAcyA+ICoge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNi4wMDEpOyB9XG4gIC51ay1jaGlsZC13aWR0aC1hdXRvXFxAcyA+ICoge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC51ay1jaGlsZC13aWR0aC1leHBhbmRcXEBzID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDFweDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstY2hpbGQtd2lkdGgtMS0xXFxAbSA+ICoge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTJcXEBtID4gKiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS0zXFxAbSA+ICoge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gMy4wMDEpOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTRcXEBtID4gKiB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS01XFxAbSA+ICoge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNlxcQG0gPiAqIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDYuMDAxKTsgfVxuICAudWstY2hpbGQtd2lkdGgtYXV0b1xcQG0gPiAqIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAudWstY2hpbGQtd2lkdGgtZXhwYW5kXFxAbSA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSkge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxcHg7IH0gfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLWNoaWxkLXdpZHRoLTEtMVxcQGwgPiAqIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS0yXFxAbCA+ICoge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtM1xcQGwgPiAqIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS00XFxAbCA+ICoge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNVxcQGwgPiAqIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTZcXEBsID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLWF1dG9cXEBsID4gKiB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLnVrLWNoaWxkLXdpZHRoLWV4cGFuZFxcQGwgPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMXB4OyB9IH1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgLnVrLWNoaWxkLXdpZHRoLTEtMVxcQHhsID4gKiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtMlxcQHhsID4gKiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS0zXFxAeGwgPiAqIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS00XFxAeGwgPiAqIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTVcXEB4bCA+ICoge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNlxcQHhsID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLWF1dG9cXEB4bCA+ICoge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC51ay1jaGlsZC13aWR0aC1leHBhbmRcXEB4bCA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSkge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxcHg7IH0gfVxuXG4vKiBTaW5nbGUgV2lkdGhzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBgbWF4LXdpZHRoYCBpcyBuZWVkZWQgZm9yIHRoZSBwaXhlbC1iYXNlZCBjbGFzc2VzXG4gKi9cbltjbGFzcyo9J3VrLXdpZHRoJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLyogSGFsdmVzICovXG4udWstd2lkdGgtMS0yIHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4vKiBUaGlyZHMgKi9cbi51ay13aWR0aC0xLTMge1xuICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuXG4udWstd2lkdGgtMi0zIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAqIDIgLyAzLjAwMSk7IH1cblxuLyogUXVhcnRlcnMgKi9cbi51ay13aWR0aC0xLTQge1xuICB3aWR0aDogMjUlOyB9XG5cbi51ay13aWR0aC0zLTQge1xuICB3aWR0aDogNzUlOyB9XG5cbi8qIEZpZnRocyAqL1xuLnVrLXdpZHRoLTEtNSB7XG4gIHdpZHRoOiAyMCU7IH1cblxuLnVrLXdpZHRoLTItNSB7XG4gIHdpZHRoOiA0MCU7IH1cblxuLnVrLXdpZHRoLTMtNSB7XG4gIHdpZHRoOiA2MCU7IH1cblxuLnVrLXdpZHRoLTQtNSB7XG4gIHdpZHRoOiA4MCU7IH1cblxuLyogU2l4dGhzICovXG4udWstd2lkdGgtMS02IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cblxuLnVrLXdpZHRoLTUtNiB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKiA1IC8gNi4wMDEpOyB9XG5cbi8qIFBpeGVsICovXG4udWstd2lkdGgtc21hbGwge1xuICB3aWR0aDogMTUwcHg7IH1cblxuLnVrLXdpZHRoLW1lZGl1bSB7XG4gIHdpZHRoOiAzMDBweDsgfVxuXG4udWstd2lkdGgtbGFyZ2Uge1xuICB3aWR0aDogNDUwcHg7IH1cblxuLnVrLXdpZHRoLXhsYXJnZSB7XG4gIHdpZHRoOiA2MDBweDsgfVxuXG4udWstd2lkdGgtMnhsYXJnZSB7XG4gIHdpZHRoOiA3NTBweDsgfVxuXG4vKiBBdXRvICovXG4udWstd2lkdGgtYXV0byB7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi8qIEV4cGFuZCAqL1xuLnVrLXdpZHRoLWV4cGFuZCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMXB4OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLyogV2hvbGUgKi9cbiAgLnVrLXdpZHRoLTEtMVxcQHMge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC8qIEhhbHZlcyAqL1xuICAudWstd2lkdGgtMS0yXFxAcyB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAvKiBUaGlyZHMgKi9cbiAgLnVrLXdpZHRoLTEtM1xcQHMge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gMy4wMDEpOyB9XG4gIC51ay13aWR0aC0yLTNcXEBzIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMiAvIDMuMDAxKTsgfVxuICAvKiBRdWFydGVycyAqL1xuICAudWstd2lkdGgtMS00XFxAcyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAudWstd2lkdGgtMy00XFxAcyB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAvKiBGaWZ0aHMgKi9cbiAgLnVrLXdpZHRoLTEtNVxcQHMge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLnVrLXdpZHRoLTItNVxcQHMge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgLnVrLXdpZHRoLTMtNVxcQHMge1xuICAgIHdpZHRoOiA2MCU7IH1cbiAgLnVrLXdpZHRoLTQtNVxcQHMge1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgLyogU2l4dGhzICovXG4gIC51ay13aWR0aC0xLTZcXEBzIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDYuMDAxKTsgfVxuICAudWstd2lkdGgtNS02XFxAcyB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDUgLyA2LjAwMSk7IH1cbiAgLyogUGl4ZWwgKi9cbiAgLnVrLXdpZHRoLXNtYWxsXFxAcyB7XG4gICAgd2lkdGg6IDE1MHB4OyB9XG4gIC51ay13aWR0aC1tZWRpdW1cXEBzIHtcbiAgICB3aWR0aDogMzAwcHg7IH1cbiAgLnVrLXdpZHRoLWxhcmdlXFxAcyB7XG4gICAgd2lkdGg6IDQ1MHB4OyB9XG4gIC51ay13aWR0aC14bGFyZ2VcXEBzIHtcbiAgICB3aWR0aDogNjAwcHg7IH1cbiAgLnVrLXdpZHRoLTJ4bGFyZ2VcXEBzIHtcbiAgICB3aWR0aDogNzUwcHg7IH1cbiAgLyogQXV0byAqL1xuICAudWstd2lkdGgtYXV0b1xcQHMge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC8qIEV4cGFuZCAqL1xuICAudWstd2lkdGgtZXhwYW5kXFxAcyB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDFweDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAvKiBXaG9sZSAqL1xuICAudWstd2lkdGgtMS0xXFxAbSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLyogSGFsdmVzICovXG4gIC51ay13aWR0aC0xLTJcXEBtIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC8qIFRoaXJkcyAqL1xuICAudWstd2lkdGgtMS0zXFxAbSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cbiAgLnVrLXdpZHRoLTItM1xcQG0ge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAyIC8gMy4wMDEpOyB9XG4gIC8qIFF1YXJ0ZXJzICovXG4gIC51ay13aWR0aC0xLTRcXEBtIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC51ay13aWR0aC0zLTRcXEBtIHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC8qIEZpZnRocyAqL1xuICAudWstd2lkdGgtMS01XFxAbSB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAudWstd2lkdGgtMi01XFxAbSB7XG4gICAgd2lkdGg6IDQwJTsgfVxuICAudWstd2lkdGgtMy01XFxAbSB7XG4gICAgd2lkdGg6IDYwJTsgfVxuICAudWstd2lkdGgtNC01XFxAbSB7XG4gICAgd2lkdGg6IDgwJTsgfVxuICAvKiBTaXh0aHMgKi9cbiAgLnVrLXdpZHRoLTEtNlxcQG0ge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNi4wMDEpOyB9XG4gIC51ay13aWR0aC01LTZcXEBtIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNSAvIDYuMDAxKTsgfVxuICAvKiBQaXhlbCAqL1xuICAudWstd2lkdGgtc21hbGxcXEBtIHtcbiAgICB3aWR0aDogMTUwcHg7IH1cbiAgLnVrLXdpZHRoLW1lZGl1bVxcQG0ge1xuICAgIHdpZHRoOiAzMDBweDsgfVxuICAudWstd2lkdGgtbGFyZ2VcXEBtIHtcbiAgICB3aWR0aDogNDUwcHg7IH1cbiAgLnVrLXdpZHRoLXhsYXJnZVxcQG0ge1xuICAgIHdpZHRoOiA2MDBweDsgfVxuICAudWstd2lkdGgtMnhsYXJnZVxcQG0ge1xuICAgIHdpZHRoOiA3NTBweDsgfVxuICAvKiBBdXRvICovXG4gIC51ay13aWR0aC1hdXRvXFxAbSB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLyogRXhwYW5kICovXG4gIC51ay13aWR0aC1leHBhbmRcXEBtIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMXB4OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC8qIFdob2xlICovXG4gIC51ay13aWR0aC0xLTFcXEBsIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAvKiBIYWx2ZXMgKi9cbiAgLnVrLXdpZHRoLTEtMlxcQGwge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLyogVGhpcmRzICovXG4gIC51ay13aWR0aC0xLTNcXEBsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuICAudWstd2lkdGgtMi0zXFxAbCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDIgLyAzLjAwMSk7IH1cbiAgLyogUXVhcnRlcnMgKi9cbiAgLnVrLXdpZHRoLTEtNFxcQGwge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLXdpZHRoLTMtNFxcQGwge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLyogRmlmdGhzICovXG4gIC51ay13aWR0aC0xLTVcXEBsIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC51ay13aWR0aC0yLTVcXEBsIHtcbiAgICB3aWR0aDogNDAlOyB9XG4gIC51ay13aWR0aC0zLTVcXEBsIHtcbiAgICB3aWR0aDogNjAlOyB9XG4gIC51ay13aWR0aC00LTVcXEBsIHtcbiAgICB3aWR0aDogODAlOyB9XG4gIC8qIFNpeHRocyAqL1xuICAudWstd2lkdGgtMS02XFxAbCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLXdpZHRoLTUtNlxcQGwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA1IC8gNi4wMDEpOyB9XG4gIC8qIFBpeGVsICovXG4gIC51ay13aWR0aC1zbWFsbFxcQGwge1xuICAgIHdpZHRoOiAxNTBweDsgfVxuICAudWstd2lkdGgtbWVkaXVtXFxAbCB7XG4gICAgd2lkdGg6IDMwMHB4OyB9XG4gIC51ay13aWR0aC1sYXJnZVxcQGwge1xuICAgIHdpZHRoOiA0NTBweDsgfVxuICAudWstd2lkdGgteGxhcmdlXFxAbCB7XG4gICAgd2lkdGg6IDYwMHB4OyB9XG4gIC51ay13aWR0aC0yeGxhcmdlXFxAbCB7XG4gICAgd2lkdGg6IDc1MHB4OyB9XG4gIC8qIEF1dG8gKi9cbiAgLnVrLXdpZHRoLWF1dG9cXEBsIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAvKiBFeHBhbmQgKi9cbiAgLnVrLXdpZHRoLWV4cGFuZFxcQGwge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxcHg7IH0gfVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAvKiBXaG9sZSAqL1xuICAudWstd2lkdGgtMS0xXFxAeGwge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC8qIEhhbHZlcyAqL1xuICAudWstd2lkdGgtMS0yXFxAeGwge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLyogVGhpcmRzICovXG4gIC51ay13aWR0aC0xLTNcXEB4bCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cbiAgLnVrLXdpZHRoLTItM1xcQHhsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMiAvIDMuMDAxKTsgfVxuICAvKiBRdWFydGVycyAqL1xuICAudWstd2lkdGgtMS00XFxAeGwge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLXdpZHRoLTMtNFxcQHhsIHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC8qIEZpZnRocyAqL1xuICAudWstd2lkdGgtMS01XFxAeGwge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLnVrLXdpZHRoLTItNVxcQHhsIHtcbiAgICB3aWR0aDogNDAlOyB9XG4gIC51ay13aWR0aC0zLTVcXEB4bCB7XG4gICAgd2lkdGg6IDYwJTsgfVxuICAudWstd2lkdGgtNC01XFxAeGwge1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgLyogU2l4dGhzICovXG4gIC51ay13aWR0aC0xLTZcXEB4bCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLXdpZHRoLTUtNlxcQHhsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNSAvIDYuMDAxKTsgfVxuICAvKiBQaXhlbCAqL1xuICAudWstd2lkdGgtc21hbGxcXEB4bCB7XG4gICAgd2lkdGg6IDE1MHB4OyB9XG4gIC51ay13aWR0aC1tZWRpdW1cXEB4bCB7XG4gICAgd2lkdGg6IDMwMHB4OyB9XG4gIC51ay13aWR0aC1sYXJnZVxcQHhsIHtcbiAgICB3aWR0aDogNDUwcHg7IH1cbiAgLnVrLXdpZHRoLXhsYXJnZVxcQHhsIHtcbiAgICB3aWR0aDogNjAwcHg7IH1cbiAgLnVrLXdpZHRoLTJ4bGFyZ2VcXEB4bCB7XG4gICAgd2lkdGg6IDc1MHB4OyB9XG4gIC8qIEF1dG8gKi9cbiAgLnVrLXdpZHRoLWF1dG9cXEB4bCB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLyogRXhwYW5kICovXG4gIC51ay13aWR0aC1leHBhbmRcXEB4bCB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDFweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAudWstY2hpbGQtd2lkdGgtMS0xXFxAeHMgPiAqIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS0yXFxAeHMgPiAqIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTNcXEB4cyA+ICoge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gMy4wMDEpOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTRcXEB4cyA+ICoge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNVxcQHhzID4gKiB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS02XFxAeHMgPiAqIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDYuMDAxKTsgfVxuICAudWstY2hpbGQtd2lkdGgtYXV0b1xcQHhzID4gKiB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLnVrLWNoaWxkLXdpZHRoLWV4cGFuZFxcQHhzID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDFweDsgfSB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLyogV2hvbGUgKi9cbiAgLnVrLXdpZHRoLTEtMVxcQHhzIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAvKiBIYWx2ZXMgKi9cbiAgLnVrLXdpZHRoLTEtMlxcQHhzIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC8qIFRoaXJkcyAqL1xuICAudWstd2lkdGgtMS0zXFxAeHMge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gMy4wMDEpOyB9XG4gIC51ay13aWR0aC0yLTNcXEB4cyB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDIgLyAzLjAwMSk7IH1cbiAgLyogUXVhcnRlcnMgKi9cbiAgLnVrLXdpZHRoLTEtNFxcQHhzIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC51ay13aWR0aC0zLTRcXEB4cyB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAvKiBGaWZ0aHMgKi9cbiAgLnVrLXdpZHRoLTEtNVxcQHhzIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC51ay13aWR0aC0yLTVcXEB4cyB7XG4gICAgd2lkdGg6IDQwJTsgfVxuICAudWstd2lkdGgtMy01XFxAeHMge1xuICAgIHdpZHRoOiA2MCU7IH1cbiAgLnVrLXdpZHRoLTQtNVxcQHhzIHtcbiAgICB3aWR0aDogODAlOyB9XG4gIC8qIFNpeHRocyAqL1xuICAudWstd2lkdGgtMS02XFxAeHMge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNi4wMDEpOyB9XG4gIC51ay13aWR0aC01LTZcXEB4cyB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDUgLyA2LjAwMSk7IH1cbiAgLyogQXV0byAqL1xuICAudWstd2lkdGgtYXV0b1xcQHhzIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAvKiBFeHBhbmQgKi9cbiAgLnVrLXdpZHRoLWV4cGFuZFxcQHhzIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMXB4OyB9IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWstY2hpbGQtd2lkdGgtMS0xXFxAcyA+ICoge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTJcXEBzID4gKiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS0zXFxAcyA+ICoge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gMy4wMDEpOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTRcXEBzID4gKiB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS01XFxAcyA+ICoge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNlxcQHMgPiAqIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDYuMDAxKTsgfVxuICAudWstY2hpbGQtd2lkdGgtYXV0b1xcQHMgPiAqIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAudWstY2hpbGQtd2lkdGgtZXhwYW5kXFxAcyA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSkge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxcHg7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLWNoaWxkLXdpZHRoLTEtMVxcQG0gPiAqIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS0yXFxAbSA+ICoge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtM1xcQG0gPiAqIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS00XFxAbSA+ICoge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNVxcQG0gPiAqIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTZcXEBtID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLWF1dG9cXEBtID4gKiB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLnVrLWNoaWxkLXdpZHRoLWV4cGFuZFxcQG0gPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMXB4OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1jaGlsZC13aWR0aC0xLTFcXEBsID4gKiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtMlxcQGwgPiAqIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTNcXEBsID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNFxcQGwgPiAqIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTVcXEBsID4gKiB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS02XFxAbCA+ICoge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNi4wMDEpOyB9XG4gIC51ay1jaGlsZC13aWR0aC1hdXRvXFxAbCA+ICoge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC51ay1jaGlsZC13aWR0aC1leHBhbmRcXEBsID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDFweDsgfSB9XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC51ay1jaGlsZC13aWR0aC0xLTFcXEB4bCA+ICoge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTJcXEB4bCA+ICoge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtM1xcQHhsID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNFxcQHhsID4gKiB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS01XFxAeGwgPiAqIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTZcXEB4bCA+ICoge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNi4wMDEpOyB9XG4gIC51ay1jaGlsZC13aWR0aC1hdXRvXFxAeGwgPiAqIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAudWstY2hpbGQtd2lkdGgtZXhwYW5kXFxAeGwgPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMXB4OyB9IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAvKiBXaG9sZSAqL1xuICAudWstd2lkdGgtMS0xXFxAcyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLyogSGFsdmVzICovXG4gIC51ay13aWR0aC0xLTJcXEBzIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC8qIFRoaXJkcyAqL1xuICAudWstd2lkdGgtMS0zXFxAcyB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cbiAgLnVrLXdpZHRoLTItM1xcQHMge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAyIC8gMy4wMDEpOyB9XG4gIC8qIFF1YXJ0ZXJzICovXG4gIC51ay13aWR0aC0xLTRcXEBzIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC51ay13aWR0aC0zLTRcXEBzIHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC8qIEZpZnRocyAqL1xuICAudWstd2lkdGgtMS01XFxAcyB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAudWstd2lkdGgtMi01XFxAcyB7XG4gICAgd2lkdGg6IDQwJTsgfVxuICAudWstd2lkdGgtMy01XFxAcyB7XG4gICAgd2lkdGg6IDYwJTsgfVxuICAudWstd2lkdGgtNC01XFxAcyB7XG4gICAgd2lkdGg6IDgwJTsgfVxuICAvKiBTaXh0aHMgKi9cbiAgLnVrLXdpZHRoLTEtNlxcQHMge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNi4wMDEpOyB9XG4gIC51ay13aWR0aC01LTZcXEBzIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNSAvIDYuMDAxKTsgfVxuICAvKiBQaXhlbCAqL1xuICAudWstd2lkdGgtc21hbGxcXEBzIHtcbiAgICB3aWR0aDogMTUwcHg7IH1cbiAgLnVrLXdpZHRoLW1lZGl1bVxcQHMge1xuICAgIHdpZHRoOiAzMDBweDsgfVxuICAudWstd2lkdGgtbGFyZ2VcXEBzIHtcbiAgICB3aWR0aDogNDUwcHg7IH1cbiAgLnVrLXdpZHRoLXhsYXJnZVxcQHMge1xuICAgIHdpZHRoOiA2MDBweDsgfVxuICAudWstd2lkdGgtMnhsYXJnZVxcQHMge1xuICAgIHdpZHRoOiA3NTBweDsgfVxuICAvKiBBdXRvICovXG4gIC51ay13aWR0aC1hdXRvXFxAcyB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLyogRXhwYW5kICovXG4gIC51ay13aWR0aC1leHBhbmRcXEBzIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMXB4OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC8qIFdob2xlICovXG4gIC51ay13aWR0aC0xLTFcXEBtIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAvKiBIYWx2ZXMgKi9cbiAgLnVrLXdpZHRoLTEtMlxcQG0ge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLyogVGhpcmRzICovXG4gIC51ay13aWR0aC0xLTNcXEBtIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuICAudWstd2lkdGgtMi0zXFxAbSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDIgLyAzLjAwMSk7IH1cbiAgLyogUXVhcnRlcnMgKi9cbiAgLnVrLXdpZHRoLTEtNFxcQG0ge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLXdpZHRoLTMtNFxcQG0ge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLyogRmlmdGhzICovXG4gIC51ay13aWR0aC0xLTVcXEBtIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC51ay13aWR0aC0yLTVcXEBtIHtcbiAgICB3aWR0aDogNDAlOyB9XG4gIC51ay13aWR0aC0zLTVcXEBtIHtcbiAgICB3aWR0aDogNjAlOyB9XG4gIC51ay13aWR0aC00LTVcXEBtIHtcbiAgICB3aWR0aDogODAlOyB9XG4gIC8qIFNpeHRocyAqL1xuICAudWstd2lkdGgtMS02XFxAbSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLXdpZHRoLTUtNlxcQG0ge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA1IC8gNi4wMDEpOyB9XG4gIC8qIFBpeGVsICovXG4gIC51ay13aWR0aC1zbWFsbFxcQG0ge1xuICAgIHdpZHRoOiAxNTBweDsgfVxuICAudWstd2lkdGgtbWVkaXVtXFxAbSB7XG4gICAgd2lkdGg6IDMwMHB4OyB9XG4gIC51ay13aWR0aC1sYXJnZVxcQG0ge1xuICAgIHdpZHRoOiA0NTBweDsgfVxuICAudWstd2lkdGgteGxhcmdlXFxAbSB7XG4gICAgd2lkdGg6IDYwMHB4OyB9XG4gIC51ay13aWR0aC0yeGxhcmdlXFxAbSB7XG4gICAgd2lkdGg6IDc1MHB4OyB9XG4gIC8qIEF1dG8gKi9cbiAgLnVrLXdpZHRoLWF1dG9cXEBtIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAvKiBFeHBhbmQgKi9cbiAgLnVrLXdpZHRoLWV4cGFuZFxcQG0ge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxcHg7IH0gfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLyogV2hvbGUgKi9cbiAgLnVrLXdpZHRoLTEtMVxcQGwge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC8qIEhhbHZlcyAqL1xuICAudWstd2lkdGgtMS0yXFxAbCB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAvKiBUaGlyZHMgKi9cbiAgLnVrLXdpZHRoLTEtM1xcQGwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gMy4wMDEpOyB9XG4gIC51ay13aWR0aC0yLTNcXEBsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMiAvIDMuMDAxKTsgfVxuICAvKiBRdWFydGVycyAqL1xuICAudWstd2lkdGgtMS00XFxAbCB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAudWstd2lkdGgtMy00XFxAbCB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAvKiBGaWZ0aHMgKi9cbiAgLnVrLXdpZHRoLTEtNVxcQGwge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLnVrLXdpZHRoLTItNVxcQGwge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgLnVrLXdpZHRoLTMtNVxcQGwge1xuICAgIHdpZHRoOiA2MCU7IH1cbiAgLnVrLXdpZHRoLTQtNVxcQGwge1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgLyogU2l4dGhzICovXG4gIC51ay13aWR0aC0xLTZcXEBsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDYuMDAxKTsgfVxuICAudWstd2lkdGgtNS02XFxAbCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDUgLyA2LjAwMSk7IH1cbiAgLyogUGl4ZWwgKi9cbiAgLnVrLXdpZHRoLXNtYWxsXFxAbCB7XG4gICAgd2lkdGg6IDE1MHB4OyB9XG4gIC51ay13aWR0aC1tZWRpdW1cXEBsIHtcbiAgICB3aWR0aDogMzAwcHg7IH1cbiAgLnVrLXdpZHRoLWxhcmdlXFxAbCB7XG4gICAgd2lkdGg6IDQ1MHB4OyB9XG4gIC51ay13aWR0aC14bGFyZ2VcXEBsIHtcbiAgICB3aWR0aDogNjAwcHg7IH1cbiAgLnVrLXdpZHRoLTJ4bGFyZ2VcXEBsIHtcbiAgICB3aWR0aDogNzUwcHg7IH1cbiAgLyogQXV0byAqL1xuICAudWstd2lkdGgtYXV0b1xcQGwge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC8qIEV4cGFuZCAqL1xuICAudWstd2lkdGgtZXhwYW5kXFxAbCB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDFweDsgfSB9XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC8qIFdob2xlICovXG4gIC51ay13aWR0aC0xLTFcXEB4bCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLyogSGFsdmVzICovXG4gIC51ay13aWR0aC0xLTJcXEB4bCB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAvKiBUaGlyZHMgKi9cbiAgLnVrLXdpZHRoLTEtM1xcQHhsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuICAudWstd2lkdGgtMi0zXFxAeGwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAyIC8gMy4wMDEpOyB9XG4gIC8qIFF1YXJ0ZXJzICovXG4gIC51ay13aWR0aC0xLTRcXEB4bCB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAudWstd2lkdGgtMy00XFxAeGwge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLyogRmlmdGhzICovXG4gIC51ay13aWR0aC0xLTVcXEB4bCB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAudWstd2lkdGgtMi01XFxAeGwge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgLnVrLXdpZHRoLTMtNVxcQHhsIHtcbiAgICB3aWR0aDogNjAlOyB9XG4gIC51ay13aWR0aC00LTVcXEB4bCB7XG4gICAgd2lkdGg6IDgwJTsgfVxuICAvKiBTaXh0aHMgKi9cbiAgLnVrLXdpZHRoLTEtNlxcQHhsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDYuMDAxKTsgfVxuICAudWstd2lkdGgtNS02XFxAeGwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA1IC8gNi4wMDEpOyB9XG4gIC8qIFBpeGVsICovXG4gIC51ay13aWR0aC1zbWFsbFxcQHhsIHtcbiAgICB3aWR0aDogMTUwcHg7IH1cbiAgLnVrLXdpZHRoLW1lZGl1bVxcQHhsIHtcbiAgICB3aWR0aDogMzAwcHg7IH1cbiAgLnVrLXdpZHRoLWxhcmdlXFxAeGwge1xuICAgIHdpZHRoOiA0NTBweDsgfVxuICAudWstd2lkdGgteGxhcmdlXFxAeGwge1xuICAgIHdpZHRoOiA2MDBweDsgfVxuICAudWstd2lkdGgtMnhsYXJnZVxcQHhsIHtcbiAgICB3aWR0aDogNzUwcHg7IH1cbiAgLyogQXV0byAqL1xuICAudWstd2lkdGgtYXV0b1xcQHhsIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAvKiBFeHBhbmQgKi9cbiAgLnVrLXdpZHRoLWV4cGFuZFxcQHhsIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMXB4OyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEhlaWdodFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5bY2xhc3MqPSd1ay1oZWlnaHQnXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLypcbiAqIE9ubHkgd29ya3MgaWYgcGFyZW50IGVsZW1lbnQgaGFzIGEgaGVpZ2h0IHNldFxuICovXG4udWstaGVpZ2h0LTEtMSB7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4vKlxuICogVXNlZnVsIHRvIGNyZWF0ZSBpbWFnZSB0ZWFzZXJzXG4gKi9cbi51ay1oZWlnaHQtdmlld3BvcnQge1xuICBtaW4taGVpZ2h0OiAxMDB2aDsgfVxuXG4vKlxuICogUGl4ZWxcbiAqIFVzZWZ1bCBmb3IgYG92ZXJmbG93OiBhdXRvYFxuICovXG4udWstaGVpZ2h0LXNtYWxsIHtcbiAgaGVpZ2h0OiAxNTBweDsgfVxuXG4udWstaGVpZ2h0LW1lZGl1bSB7XG4gIGhlaWdodDogMzAwcHg7IH1cblxuLnVrLWhlaWdodC1sYXJnZSB7XG4gIGhlaWdodDogNDUwcHg7IH1cblxuLnVrLWhlaWdodC1tYXgtc21hbGwge1xuICBtYXgtaGVpZ2h0OiAxNTBweDsgfVxuXG4udWstaGVpZ2h0LW1heC1tZWRpdW0ge1xuICBtYXgtaGVpZ2h0OiAzMDBweDsgfVxuXG4udWstaGVpZ2h0LW1heC1sYXJnZSB7XG4gIG1heC1oZWlnaHQ6IDQ1MHB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUZXh0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGV4dC1sZWFkIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMzMzOyB9XG5cbi51ay10ZXh0LW1ldGEge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogIzk5OTsgfVxuICAudWstdGV4dC1tZXRhIGEge1xuICAgIGNvbG9yOiAjOTk5OyB9XG4gIC51ay10ZXh0LW1ldGEgYTpob3ZlciB7XG4gICAgY29sb3I6ICM2NjY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qIFNpemUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay10ZXh0LXNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuXG4udWstdGV4dC1sYXJnZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS41OyB9XG5cbi51ay10ZXh0LWRlZmF1bHQge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cblxuLyogV2VpZ2h0IG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay10ZXh0LWxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4udWstdGV4dC1ub3JtYWwge1xuICBmb250LXdlaWdodDogNDAwOyB9XG5cbi51ay10ZXh0LWJvbGQge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi51ay10ZXh0LWxpZ2h0ZXIge1xuICBmb250LXdlaWdodDogbGlnaHRlcjsgfVxuXG4udWstdGV4dC1ib2xkZXIge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay10ZXh0LWl0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKiBUcmFuc2Zvcm0gbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRleHQtY2FwaXRhbGl6ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50OyB9XG5cbi51ay10ZXh0LWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UgIWltcG9ydGFudDsgfVxuXG4vKiBDb2xvciBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRleHQtbXV0ZWQge1xuICBjb2xvcjogIzk5OSAhaW1wb3J0YW50OyB9XG5cbi51ay10ZXh0LWVtcGhhc2lzIHtcbiAgY29sb3I6ICMzMzMgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC1wcmltYXJ5IHtcbiAgY29sb3I6ICMxZTg3ZjAgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC1zZWNvbmRhcnkge1xuICBjb2xvcjogIzIyMiAhaW1wb3J0YW50OyB9XG5cbi51ay10ZXh0LXN1Y2Nlc3Mge1xuICBjb2xvcjogIzMyZDI5NiAhaW1wb3J0YW50OyB9XG5cbi51ay10ZXh0LXdhcm5pbmcge1xuICBjb2xvcjogI2ZhYTA1YSAhaW1wb3J0YW50OyB9XG5cbi51ay10ZXh0LWRhbmdlciB7XG4gIGNvbG9yOiAjZjA1MDZlICFpbXBvcnRhbnQ7IH1cblxuLyogQmFja2dyb3VuZCBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gVGhlIGJhY2tncm91bmQgY2xpcHMgdG8gdGhlIGZvcmVncm91bmQgdGV4dC4gV29ya3MgaW4gQ2hyb21lLCBGaXJlZm94LCBTYWZhcmksIEVkZ2UgYW5kIE9wZXJhXG4gKiAgICBEZWZhdWx0IGNvbG9yIGlzIHNldCB0byB0cmFuc3BhcmVudFxuICogMi4gQ29udGFpbmVyIGZpdHMgdGhlIHRleHRcbiAqIDMuIEZhbGxiYWNrIGNvbG9yIGZvciBJRTExXG4gKi9cbi51ay10ZXh0LWJhY2tncm91bmQge1xuICAvKiAxICovXG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAvKiAyICovXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMyAqL1xuICBjb2xvcjogIzFlODdmMCAhaW1wb3J0YW50OyB9XG5cbkBzdXBwb3J0cyAoLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQpIHtcbiAgLnVrLXRleHQtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFlODdmMDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfSB9XG5cbi8qIEFsaWdubWVudCBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay10ZXh0LWxlZnRcXEBzIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLXRleHQtcmlnaHRcXEBzIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gIC51ay10ZXh0LWNlbnRlclxcQHMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay10ZXh0LWxlZnRcXEBtIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLXRleHQtcmlnaHRcXEBtIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gIC51ay10ZXh0LWNlbnRlclxcQG0ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay10ZXh0LWxlZnRcXEBsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLXRleHQtcmlnaHRcXEBsIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gIC51ay10ZXh0LWNlbnRlclxcQGwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9IH1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgLnVrLXRleHQtbGVmdFxcQHhsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLXRleHQtcmlnaHRcXEB4bCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAudWstdGV4dC1jZW50ZXJcXEB4bCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH0gfVxuXG4vKlxuICogVmVydGljYWxcbiAqL1xuLnVrLXRleHQtdG9wIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50OyB9XG5cbi51ay10ZXh0LW1pZGRsZSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC1ib3R0b20ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtYmFzZWxpbmUge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxuXG4vKiBXcmFwIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogUHJldmVudCB0ZXh0IGZyb20gd3JhcHBpbmcgb250byBtdWx0aXBsZSBsaW5lc1xuICovXG4udWstdGV4dC1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi8qXG4gKiAxLiBNYWtlIHN1cmUgYSBtYXgtd2lkdGggaXMgc2V0IGFmdGVyIHdoaWNoIHRydW5jYXRpb24gY2FuIG9jY3VyXG4gKiAyLiBQcmV2ZW50IHRleHQgZnJvbSB3cmFwcGluZyBvbnRvIG11bHRpcGxlIGxpbmVzLCBhbmQgdHJ1bmNhdGUgd2l0aCBhbiBlbGxpcHNpc1xuICogMy4gRml4IGZvciB0YWJsZSBjZWxsc1xuICovXG4udWstdGV4dC10cnVuY2F0ZSB7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAyICovXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi8qIDIgKi9cbnRoLnVrLXRleHQtdHJ1bmNhdGUsXG50ZC51ay10ZXh0LXRydW5jYXRlIHtcbiAgbWF4LXdpZHRoOiAwOyB9XG5cbi8qXG4gKiAxLiBXcmFwIGxvbmcgd29yZHMgb250byB0aGUgbmV4dCBsaW5lIGFuZCBicmVhayB0aGVtIGlmIHRoZXkgYXJlIHRvbyBsb25nIHRvIGZpdFxuICogMi4gTGVnYWN5IGB3b3JkLXdyYXBgIGFzIGZhbGxiYWNrIGZvciBgb3ZlcmZsb3ctd3JhcGBcbiAqIDMuIEZpeCBgb3ZlcmZsb3ctd3JhcGAgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGggdGFibGUgY2VsbHMgaW4gQ2hyb21lLCBPcGVyYSwgSUUxMSBhbmQgRWRnZVxuICogICAgTXVzdCB1c2UgYGJyZWFrLWFsbGAgdG8gc3VwcG9ydCBJRTExIGFuZCBFZGdlXG4gKiBOb3RlOiBOb3QgdXNpbmcgYGh5cGhlbnM6IGF1dG87YCBiZWNhdXNlIGl0IGh5cGhlbmF0ZXMgdGV4dCBldmVuIGlmIG5vdCBuZWVkZWRcbiAqL1xuLnVrLXRleHQtYnJlYWsge1xuICAvKiAxICovXG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIC8qIDIgKi9cbiAgd29yZC13cmFwOiBicmVhay13b3JkOyB9XG5cbi8qIDMgKi9cbnRoLnVrLXRleHQtYnJlYWssXG50ZC51ay10ZXh0LWJyZWFrIHtcbiAgd29yZC1icmVhazogYnJlYWstYWxsOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBDb2x1bW5cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuW2NsYXNzKj0ndWstY29sdW1uLSddIHtcbiAgY29sdW1uLWdhcDogMzBweDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgW2NsYXNzKj0ndWstY29sdW1uLSddIHtcbiAgICBjb2x1bW4tZ2FwOiA0MHB4OyB9IH1cblxuLypcbiAqIEZpeCBpbWFnZSAxcHggbGluZSB3cmFwcGluZyBpbnRvIHRoZSBuZXh0IGNvbHVtbiBpbiBDaHJvbWVcbiAqL1xuW2NsYXNzKj0ndWstY29sdW1uLSddIGltZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cblxuLyogRGl2aWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gRG91YmxlIHRoZSBjb2x1bW4gZ2FwXG4gKi9cbi51ay1jb2x1bW4tZGl2aWRlciB7XG4gIGNvbHVtbi1ydWxlOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgLyogMSAqL1xuICBjb2x1bW4tZ2FwOiA2MHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstY29sdW1uLWRpdmlkZXIge1xuICAgIGNvbHVtbi1nYXA6IDgwcHg7IH0gfVxuXG4vKiBXaWR0aCBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWNvbHVtbi0xLTIge1xuICBjb2x1bW4tY291bnQ6IDI7IH1cblxuLnVrLWNvbHVtbi0xLTMge1xuICBjb2x1bW4tY291bnQ6IDM7IH1cblxuLnVrLWNvbHVtbi0xLTQge1xuICBjb2x1bW4tY291bnQ6IDQ7IH1cblxuLnVrLWNvbHVtbi0xLTUge1xuICBjb2x1bW4tY291bnQ6IDU7IH1cblxuLnVrLWNvbHVtbi0xLTYge1xuICBjb2x1bW4tY291bnQ6IDY7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWstY29sdW1uLTEtMlxcQHMge1xuICAgIGNvbHVtbi1jb3VudDogMjsgfVxuICAudWstY29sdW1uLTEtM1xcQHMge1xuICAgIGNvbHVtbi1jb3VudDogMzsgfVxuICAudWstY29sdW1uLTEtNFxcQHMge1xuICAgIGNvbHVtbi1jb3VudDogNDsgfVxuICAudWstY29sdW1uLTEtNVxcQHMge1xuICAgIGNvbHVtbi1jb3VudDogNTsgfVxuICAudWstY29sdW1uLTEtNlxcQHMge1xuICAgIGNvbHVtbi1jb3VudDogNjsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstY29sdW1uLTEtMlxcQG0ge1xuICAgIGNvbHVtbi1jb3VudDogMjsgfVxuICAudWstY29sdW1uLTEtM1xcQG0ge1xuICAgIGNvbHVtbi1jb3VudDogMzsgfVxuICAudWstY29sdW1uLTEtNFxcQG0ge1xuICAgIGNvbHVtbi1jb3VudDogNDsgfVxuICAudWstY29sdW1uLTEtNVxcQG0ge1xuICAgIGNvbHVtbi1jb3VudDogNTsgfVxuICAudWstY29sdW1uLTEtNlxcQG0ge1xuICAgIGNvbHVtbi1jb3VudDogNjsgfSB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstY29sdW1uLTEtMlxcQGwge1xuICAgIGNvbHVtbi1jb3VudDogMjsgfVxuICAudWstY29sdW1uLTEtM1xcQGwge1xuICAgIGNvbHVtbi1jb3VudDogMzsgfVxuICAudWstY29sdW1uLTEtNFxcQGwge1xuICAgIGNvbHVtbi1jb3VudDogNDsgfVxuICAudWstY29sdW1uLTEtNVxcQGwge1xuICAgIGNvbHVtbi1jb3VudDogNTsgfVxuICAudWstY29sdW1uLTEtNlxcQGwge1xuICAgIGNvbHVtbi1jb3VudDogNjsgfSB9XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC51ay1jb2x1bW4tMS0yXFxAeGwge1xuICAgIGNvbHVtbi1jb3VudDogMjsgfVxuICAudWstY29sdW1uLTEtM1xcQHhsIHtcbiAgICBjb2x1bW4tY291bnQ6IDM7IH1cbiAgLnVrLWNvbHVtbi0xLTRcXEB4bCB7XG4gICAgY29sdW1uLWNvdW50OiA0OyB9XG4gIC51ay1jb2x1bW4tMS01XFxAeGwge1xuICAgIGNvbHVtbi1jb3VudDogNTsgfVxuICAudWstY29sdW1uLTEtNlxcQHhsIHtcbiAgICBjb2x1bW4tY291bnQ6IDY7IH0gfVxuXG4vKiBNYWtlIGVsZW1lbnQgc3BhbiBhY3Jvc3MgYWxsIGNvbHVtbnNcbiAqIERvZXMgbm90IHdvcmsgaW4gRmlyZWZveCB5ZXRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWNvbHVtbi1zcGFuIHtcbiAgY29sdW1uLXNwYW46IGFsbDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQ292ZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFdvcmtzIHdpdGggaWZyYW1lcyBhbmQgZW1iZWRkZWQgY29udGVudFxuICogMS4gUmVzZXQgcmVzcG9uc2l2ZW5lc3MgZm9yIGVtYmVkZGVkIGNvbnRlbnRcbiAqIDIuIENlbnRlciBvYmplY3RcbiAqIE5vdGU6IFBlcmNlbnQgdmFsdWVzIG9uIHRoZSBgdG9wYCBwcm9wZXJ0eSBvbmx5IHdvcmtzIGlmIHRoaXMgZWxlbWVudFxuICogICAgICAgaXMgYWJzb2x1dGUgcG9zaXRpb25lZCBvciBpZiB0aGUgY29udGFpbmVyIGhhcyBhIGhlaWdodFxuICovXG4udWstY292ZXIge1xuICAvKiAxICovXG4gIG1heC13aWR0aDogbm9uZTtcbiAgLyogMiAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG5cbmlmcmFtZS51ay1jb3ZlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qIENvbnRhaW5lclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUGFyZW50IGNvbnRhaW5lciB3aGljaCBjbGlwcyByZXNpemVkIG9iamVjdFxuICogMi4gTmVlZGVkIGlmIHRoZSBjaGlsZCBpcyBwb3NpdGlvbmVkIGFic29sdXRlLiBTZWUgbm90ZSBhYm92ZVxuICovXG4udWstY292ZXItY29udGFpbmVyIHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQmFja2dyb3VuZFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBDb2xvclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYmFja2dyb3VuZC1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4udWstYmFja2dyb3VuZC1tdXRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7IH1cblxuLnVrLWJhY2tncm91bmQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTg3ZjA7IH1cblxuLnVrLWJhY2tncm91bmQtc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsgfVxuXG4vKiBTaXplXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1iYWNrZ3JvdW5kLWNvdmVyLFxuLnVrLWJhY2tncm91bmQtY29udGFpbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cblxuLnVrLWJhY2tncm91bmQtY292ZXIge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWNvbnRhaW4ge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47IH1cblxuLyogUG9zaXRpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWJhY2tncm91bmQtdG9wLWxlZnQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH1cblxuLnVrLWJhY2tncm91bmQtdG9wLWNlbnRlciB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAwOyB9XG5cbi51ay1iYWNrZ3JvdW5kLXRvcC1yaWdodCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMDsgfVxuXG4udWstYmFja2dyb3VuZC1jZW50ZXItbGVmdCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgNTAlOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWNlbnRlci1jZW50ZXIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWNlbnRlci1yaWdodCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWJvdHRvbS1sZWZ0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAxMDAlOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWJvdHRvbS1jZW50ZXIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMTAwJTsgfVxuXG4udWstYmFja2dyb3VuZC1ib3R0b20tcmlnaHQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDEwMCU7IH1cblxuLyogUmVwZWF0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1iYWNrZ3JvdW5kLW5vcmVwZWF0IHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuXG4vKiBBdHRhY2htZW50XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBGaXggYnVnIGludHJvZHVjZWQgaW4gQ2hyb21lIDY3OiB0aGUgYmFja2dyb3VuZCBpbWFnZSBpcyBub3QgdmlzaWJsZSBpZiBhbnkgZWxlbWVudCBvbiB0aGUgcGFnZSB1c2VzIGB0cmFuc2xhdGUzZGBcbiAqL1xuLnVrLWJhY2tncm91bmQtZml4ZWQge1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICAvKiAxICovXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4vKlxuICogRXhjbHVkZSB0b3VjaCBkZXZpY2VzIGJlY2F1c2UgYGZpeGVkYCBkb2Vzbid0IHdvcmsgb24gaU9TIGFuZCBBbmRyb2lkXG4gKi9cbkBtZWRpYSAocG9pbnRlcjogY29hcnNlKSB7XG4gIC51ay1iYWNrZ3JvdW5kLWZpeGVkIHtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbDsgfSB9XG5cbi8qIEltYWdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFBob25lIHBvcnRyYWl0IGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVrLWJhY2tncm91bmQtaW1hZ2VcXEBzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLnVrLWJhY2tncm91bmQtaW1hZ2VcXEBtIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC51ay1iYWNrZ3JvdW5kLWltYWdlXFxAbCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLyogRGVza3RvcCBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDE1OTlweCkge1xuICAudWstYmFja2dyb3VuZC1pbWFnZVxcQHhsIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBCbGVuZCBtb2Rlc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYmFja2dyb3VuZC1ibGVuZC1tdWx0aXBseSB7XG4gIGJhY2tncm91bmQtYmxlbmQtbW9kZTogbXVsdGlwbHk7IH1cblxuLnVrLWJhY2tncm91bmQtYmxlbmQtc2NyZWVuIHtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBzY3JlZW47IH1cblxuLnVrLWJhY2tncm91bmQtYmxlbmQtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtYmxlbmQtbW9kZTogb3ZlcmxheTsgfVxuXG4udWstYmFja2dyb3VuZC1ibGVuZC1kYXJrZW4ge1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGRhcmtlbjsgfVxuXG4udWstYmFja2dyb3VuZC1ibGVuZC1saWdodGVuIHtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBsaWdodGVuOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWNvbG9yLWRvZGdlIHtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBjb2xvci1kb2RnZTsgfVxuXG4udWstYmFja2dyb3VuZC1ibGVuZC1jb2xvci1idXJuIHtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBjb2xvci1idXJuOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWhhcmQtbGlnaHQge1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGhhcmQtbGlnaHQ7IH1cblxuLnVrLWJhY2tncm91bmQtYmxlbmQtc29mdC1saWdodCB7XG4gIGJhY2tncm91bmQtYmxlbmQtbW9kZTogc29mdC1saWdodDsgfVxuXG4udWstYmFja2dyb3VuZC1ibGVuZC1kaWZmZXJlbmNlIHtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBkaWZmZXJlbmNlOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWV4Y2x1c2lvbiB7XG4gIGJhY2tncm91bmQtYmxlbmQtbW9kZTogZXhjbHVzaW9uOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWh1ZSB7XG4gIGJhY2tncm91bmQtYmxlbmQtbW9kZTogaHVlOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLXNhdHVyYXRpb24ge1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IHNhdHVyYXRpb247IH1cblxuLnVrLWJhY2tncm91bmQtYmxlbmQtY29sb3Ige1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGNvbG9yOyB9XG5cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWx1bWlub3NpdHkge1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGx1bWlub3NpdHk7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEFsaWduXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBEZWZhdWx0XG4gKi9cbltjbGFzcyo9J3VrLWFsaWduJ10ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4qICsgW2NsYXNzKj0ndWstYWxpZ24nXSB7XG4gIG1hcmdpbi10b3A6IDMwcHg7IH1cblxuLypcbiAqIENlbnRlclxuICovXG4udWstYWxpZ24tY2VudGVyIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuXG4vKlxuICogTGVmdC9SaWdodFxuICovXG4udWstYWxpZ24tbGVmdCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1yaWdodDogMzBweDtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLnVrLWFsaWduLXJpZ2h0IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51ay1hbGlnbi1sZWZ0XFxAcyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnVrLWFsaWduLXJpZ2h0XFxAcyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICBmbG9hdDogcmlnaHQ7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnVrLWFsaWduLWxlZnRcXEBtIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAudWstYWxpZ24tcmlnaHRcXEBtIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIGZsb2F0OiByaWdodDsgfSB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstYWxpZ24tbGVmdFxcQGwge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnVrLWFsaWduLXJpZ2h0XFxAbCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLnVrLWFsaWduLWxlZnQsXG4gIC51ay1hbGlnbi1sZWZ0XFxAcyxcbiAgLnVrLWFsaWduLWxlZnRcXEBtLFxuICAudWstYWxpZ24tbGVmdFxcQGwge1xuICAgIG1hcmdpbi1yaWdodDogNDBweDsgfVxuICAudWstYWxpZ24tcmlnaHQsXG4gIC51ay1hbGlnbi1yaWdodFxcQHMsXG4gIC51ay1hbGlnbi1yaWdodFxcQG0sXG4gIC51ay1hbGlnbi1yaWdodFxcQGwge1xuICAgIG1hcmdpbi1sZWZ0OiA0MHB4OyB9IH1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgLnVrLWFsaWduLWxlZnRcXEB4bCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnVrLWFsaWduLXJpZ2h0XFxAeGwge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFNWR1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gRmlsbCBhbGwgU1ZHIGVsZW1lbnRzIHdpdGggdGhlIGN1cnJlbnQgdGV4dCBjb2xvciBpZiBubyBgZmlsbGAgYXR0cmlidXRlIGlzIHNldFxuICogMi4gU2V0IHRoZSBmaWxsIGFuZCBzdHJva2UgY29sb3Igb2YgYWxsIFNWRyBlbGVtZW50cyB0byB0aGUgY3VycmVudCB0ZXh0IGNvbG9yXG4gKi9cbi8qIDEgKi9cbi51ay1zdmcsXG4udWstc3ZnOm5vdCgudWstcHJlc2VydmUpIFtmaWxsKj0nIyddOm5vdCgudWstcHJlc2VydmUpIHtcbiAgZmlsbDogY3VycmVudGNvbG9yOyB9XG5cbi51ay1zdmc6bm90KC51ay1wcmVzZXJ2ZSkgW3N0cm9rZSo9JyMnXTpub3QoLnVrLXByZXNlcnZlKSB7XG4gIHN0cm9rZTogY3VycmVudGNvbG9yOyB9XG5cbi8qXG4gKiBGaXggRmlyZWZveCBibHVycnkgU1ZHIHJlbmRlcmluZzogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NjgzNVxuICovXG4udWstc3ZnIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFV0aWxpdHlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogUGFuZWxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBhbmVsIHtcbiAgZGlzcGxheTogZmxvdy1yb290O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG4udWstcGFuZWwgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLypcbiAqIFNjcm9sbGFibGVcbiAqL1xuLnVrLXBhbmVsLXNjcm9sbGFibGUge1xuICBoZWlnaHQ6IDE3MHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICByZXNpemU6IGJvdGg7IH1cblxuLyogQ2xlYXJmaXhcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIGB0YWJsZS1jZWxsYCBpcyB1c2VkIHdpdGggYDo6YmVmb3JlYCBiZWNhdXNlIGB0YWJsZWAgY3JlYXRlcyBhIDFweCBnYXAgd2hlbiBpdCBiZWNvbWVzIGEgZmxleCBpdGVtLCBvbmx5IGluIFdlYmtpdFxuICogMi4gYHRhYmxlYCBpcyB1c2VkIGFnYWluIHdpdGggYDo6YWZ0ZXJgIGJlY2F1c2UgYGNsZWFyYCBvbmx5IHdvcmtzIHdpdGggYmxvY2sgZWxlbWVudHMuXG4gKiBOb3RlOiBgZGlzcGxheTogYmxvY2tgIHdpdGggYG92ZXJmbG93OiBoaWRkZW5gIGlzIGN1cnJlbnRseSBub3Qgd29ya2luZyBpbiB0aGUgbGF0ZXN0IFNhZmFyaVxuICovXG4vKiAxICovXG4udWstY2xlYXJmaXg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7IH1cblxuLyogMiAqL1xuLnVrLWNsZWFyZml4OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDsgfVxuXG4vKiBGbG9hdFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUHJldmVudCBjb250ZW50IG92ZXJmbG93XG4gKi9cbi51ay1mbG9hdC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLnVrLWZsb2F0LXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi8qIDEgKi9cbltjbGFzcyo9J3VrLWZsb2F0LSddIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi8qIE92ZXJmb3dcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW92ZXJmbG93LWhpZGRlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLypcbiAqIEVuYWJsZSBzY3JvbGxiYXJzIGlmIGNvbnRlbnQgaXMgY2xpcHBlZFxuICogTm90ZTogRmlyZWZveCBpZ25vcmVzIGBwYWRkaW5nLWJvdHRvbWAgZm9yIHRoZSBzY3JvbGxhYmxlIG92ZXJmbG93IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODUxOFxuICovXG4udWstb3ZlcmZsb3ctYXV0byB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cblxuLnVrLW92ZXJmbG93LWF1dG8gPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyogUmVzaXplXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1yZXNpemUge1xuICByZXNpemU6IGJvdGg7IH1cblxuLnVrLXJlc2l6ZS12ZXJ0aWNhbCB7XG4gIHJlc2l6ZTogdmVydGljYWw7IH1cblxuLyogRGlzcGxheVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstZGlzcGxheS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLnVrLWRpc3BsYXktaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH1cblxuLnVrLWRpc3BsYXktaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLyogSW5saW5lXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBDb250YWluZXIgZml0cyBpdHMgY29udGVudFxuICogMi4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHRcbiAqIDMuIFByZXZlbnQgY29udGVudCBvdmVyZmxvd1xuICogNC4gQmVoYXZlIGxpa2UgbW9zdCBpbmxpbmUtYmxvY2sgZWxlbWVudHNcbiAqIDUuIEZvcmNlIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiB3aXRob3V0IGNyZWF0aW5nIGEgbmV3IHN0YWNraW5nIGNvbnRleHRcbiAqICAgIHRvIGZpeCAxcHggZ2xpdGNoIHdoZW4gY29tYmluZWQgd2l0aCBvdmVybGF5cyBhbmQgdHJhbnNpdGlvbnMgaW4gV2Via2l0XG4gKiA2LiBDbGlwIGNoaWxkIGVsZW1lbnRzXG4gKi9cbltjbGFzcyo9J3VrLWlubGluZSddIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiAzICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogNCAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAvKiA1ICovXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi51ay1pbmxpbmUtY2xpcCB7XG4gIC8qIDYgKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBSZXNwb25zaXZlIG9iamVjdHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIFByZXNlcnZlIG9yaWdpbmFsIGRpbWVuc2lvbnNcbiAqIEJlY2F1c2UgYGltZywgYHZpZGVvYCwgYGNhbnZhc2AgYW5kICBgYXVkaW9gIGFyZSBhbHJlYWR5IHJlc3BvbnNpdmUgYnkgZGVmYXVsdCwgc2VlIEJhc2UgY29tcG9uZW50XG4gKi9cbi51ay1wcmVzZXJ2ZS13aWR0aCxcbi51ay1wcmVzZXJ2ZS13aWR0aCBjYW52YXMsXG4udWstcHJlc2VydmUtd2lkdGggaW1nLFxuLnVrLXByZXNlcnZlLXdpZHRoIHN2Zyxcbi51ay1wcmVzZXJ2ZS13aWR0aCB2aWRlbyB7XG4gIG1heC13aWR0aDogbm9uZTsgfVxuXG4vKlxuICogUmVzcG9uc2l2ZW5lc3NcbiAqIENvcnJlY3RzIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgYmVoYXZpb3IgaWYgcGFkZGluZyBhbmQgYm9yZGVyIGFyZSB1c2VkXG4gKi9cbi51ay1yZXNwb25zaXZlLXdpZHRoLFxuLnVrLXJlc3BvbnNpdmUtaGVpZ2h0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vKlxuICogMS4gU2V0IGEgbWF4aW11bSB3aWR0aC4gYGltcG9ydGFudGAgbmVlZGVkIHRvIG92ZXJyaWRlIGB1ay1wcmVzZXJ2ZS13aWR0aCBpbWdgXG4gKiAyLiBBdXRvIHNjYWxlIHRoZSBoZWlnaHQuIE9ubHkgbmVlZGVkIGlmIGBoZWlnaHRgIGF0dHJpYnV0ZSBpcyBwcmVzZW50XG4gKi9cbi51ay1yZXNwb25zaXZlLXdpZHRoIHtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgLyogMiAqL1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLypcbiAqIDEuIFNldCBhIG1heGltdW0gaGVpZ2h0LiBPbmx5IHdvcmtzIGlmIHRoZSBwYXJlbnQgZWxlbWVudCBoYXMgYSBmaXhlZCBoZWlnaHRcbiAqIDIuIEF1dG8gc2NhbGUgdGhlIHdpZHRoLiBPbmx5IG5lZWRlZCBpZiBgd2lkdGhgIGF0dHJpYnV0ZSBpcyBwcmVzZW50XG4gKiAzLiBSZXNldCBtYXgtd2lkdGgsIHdoaWNoIGBpbWcsIGB2aWRlb2AsIGBjYW52YXNgIGFuZCAgYGF1ZGlvYCBhbHJlYWR5IGhhdmUgYnkgZGVmYXVsdFxuICovXG4udWstcmVzcG9uc2l2ZS1oZWlnaHQge1xuICAvKiAxICovXG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIC8qIDIgKi9cbiAgd2lkdGg6IGF1dG87XG4gIC8qIDMgKi9cbiAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi8qIEJvcmRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYm9yZGVyLWNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuXG4udWstYm9yZGVyLXBpbGwge1xuICBib3JkZXItcmFkaXVzOiA1MDBweDsgfVxuXG4udWstYm9yZGVyLXJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiA1cHg7IH1cblxuLypcbiAqIEZpeCBgb3ZlcmZsb3c6IGhpZGRlbmAgdG8gYmUgaWdub3JlZCB3aXRoIGJvcmRlci1yYWRpdXMgYW5kIENTUyB0cmFuc2Zvcm1zIGluIFdlYmtpdFxuICovXG4udWstaW5saW5lLWNsaXBbY2xhc3MqPSd1ay1ib3JkZXItJ10ge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsgfVxuXG4vKiBCb3gtc2hhZG93XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1ib3gtc2hhZG93LXNtYWxsIHtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7IH1cblxuLnVrLWJveC1zaGFkb3ctbWVkaXVtIHtcbiAgYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuMDgpOyB9XG5cbi51ay1ib3gtc2hhZG93LWxhcmdlIHtcbiAgYm94LXNoYWRvdzogMCAxNHB4IDI1cHggcmdiYSgwLCAwLCAwLCAwLjE2KTsgfVxuXG4udWstYm94LXNoYWRvdy14bGFyZ2Uge1xuICBib3gtc2hhZG93OiAwIDI4cHggNTBweCByZ2JhKDAsIDAsIDAsIDAuMTYpOyB9XG5cbi8qXG4gKiBIb3ZlclxuICovXG5bY2xhc3MqPSd1ay1ib3gtc2hhZG93LWhvdmVyJ10ge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMXMgZWFzZS1pbi1vdXQ7IH1cblxuLnVrLWJveC1zaGFkb3ctaG92ZXItc21hbGw6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA4KTsgfVxuXG4udWstYm94LXNoYWRvdy1ob3Zlci1tZWRpdW06aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7IH1cblxuLnVrLWJveC1zaGFkb3ctaG92ZXItbGFyZ2U6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDE0cHggMjVweCByZ2JhKDAsIDAsIDAsIDAuMTYpOyB9XG5cbi51ay1ib3gtc2hhZG93LWhvdmVyLXhsYXJnZTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMjhweCA1MHB4IHJnYmEoMCwgMCwgMCwgMC4xNik7IH1cblxuLyogQm94LXNoYWRvdyBib3R0b21cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFNldCBwb3NpdGlvbi5cbiAqIDIuIFNldCBzdHlsZVxuICogMy4gQmx1ciBkb2Vzbid0IHdvcmsgb24gcHNldWRvIGVsZW1lbnRzIHdpdGggbmVnYXRpdmUgYHotaW5kZXhgIGluIEVkZ2UuXG4gKiAgICBTb2x2ZWQgYnkgdXNpbmcgYGJlZm9yZWAgYW5kIGFkZCBwb3NpdGlvbiBjb250ZXh0IHRvIGNoaWxkIGVsZW1lbnRzLlxuICovXG5Ac3VwcG9ydHMgKGZpbHRlcjogYmx1cigwKSkge1xuICAudWstYm94LXNoYWRvdy1ib3R0b20ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLnVrLWJveC1zaGFkb3ctYm90dG9tOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIC8qIDEgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtMzBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIC8qIDIgKi9cbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjNDQ0O1xuICAgIGZpbHRlcjogYmx1cigyMHB4KTsgfVxuICAvKiAzICovXG4gIC51ay1ib3gtc2hhZG93LWJvdHRvbSA+ICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfSB9XG5cbi8qIERyb3AgY2FwXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBGaXJlZm94IGRvZXNuJ3QgYXBwbHkgYDo6Zmlyc3QtbGV0dGVyYCBpZiB0aGUgZmlyc3QgbGV0dGVyIGlzIGluc2lkZSBjaGlsZCBlbGVtZW50c1xuICogICAgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MDA0XG4gKiAyLiBJbiBGaXJlZm94LCBhIGZsb2F0aW5nIGA6OmZpcnN0LWxldHRlcmAgZG9lc24ndCBoYXZlIGEgbGluZSBib3ggYW5kIHRoZXJlIGZvciBubyBgbGluZS1oZWlnaHRgXG4gKiAgICBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTc5MzNcbiAqIDMuIENhdXNlZCBieSAxLjogRWRnZSBjcmVhdGVzIHR3byBuZXN0ZWQgYDo6Zmlyc3QtbGV0dGVyYCBjb250YWluZXJzLCBvbmUgZm9yIGVhY2ggc2VsZWN0b3JcbiAqICAgIFRoaXMgZG91YmxlcyB0aGUgYGZvbnQtc2l6ZWAgZXhwb25lbnRpYWwgd2hlbiB1c2luZyB0aGUgYGVtYCB1bml0LlxuICovXG4udWstZHJvcGNhcDo6Zmlyc3QtbGV0dGVyLFxuLnVrLWRyb3BjYXAgPiBwOmZpcnN0LW9mLXR5cGU6OmZpcnN0LWxldHRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXNpemU6IDQuNWVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWJvdHRvbTogLTJweDsgfVxuXG4vKiAyICovXG5ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuICAudWstZHJvcGNhcDo6Zmlyc3QtbGV0dGVyLFxuICAudWstZHJvcGNhcCA+IHA6Zmlyc3Qtb2YtdHlwZTo6Zmlyc3QtbGV0dGVyIHtcbiAgICBtYXJnaW4tdG9wOiAxLjElOyB9IH1cblxuLyogMyAqL1xuQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gIC51ay1kcm9wY2FwID4gcDpmaXJzdC1vZi10eXBlOjpmaXJzdC1sZXR0ZXIge1xuICAgIGZvbnQtc2l6ZTogMWVtOyB9IH1cblxuLyogTG9nb1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogMS4gUmVxdWlyZWQgZm9yIGBhYFxuICovXG4udWstbG9nbyB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgXCJOb3RvIFNhbnNcIiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBjb2xvcjogIzY2NjtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWxvZ286aG92ZXIsXG4udWstbG9nbzpmb2N1cyB7XG4gIGNvbG9yOiAjNjY2O1xuICBvdXRsaW5lOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4udWstbG9nby1pbnZlcnNlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBEaXNhYmxlZCBTdGF0ZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4vKiBEcmFnIFN0YXRlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBOZWVkZWQgaWYgbW92aW5nIG92ZXIgZWxlbWVudHMgd2l0aCBoYXZlIHRoZWlyIG93biBjdXJzb3Igb24gaG92ZXIsIGUuZy4gbGlua3Mgb3IgYnV0dG9uc1xuICogMi4gRml4IGRyYWdnaW5nIG92ZXIgaWZyYW1lc1xuICovXG4udWstZHJhZyxcbi51ay1kcmFnICoge1xuICBjdXJzb3I6IG1vdmU7IH1cblxuLyogMiAqL1xuLnVrLWRyYWcgaWZyYW1lIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLyogRHJhZ292ZXIgU3RhdGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIENyZWF0ZSBhIGJveC1zaGFkb3cgd2hlbiBkcmFnZ2luZyBhIGZpbGUgb3ZlciB0aGUgdXBsb2FkIGFyZWFcbiAqL1xuLnVrLWRyYWdvdmVyIHtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjMpOyB9XG5cbi8qIEJsZW5kIG1vZGVzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1ibGVuZC1tdWx0aXBseSB7XG4gIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsgfVxuXG4udWstYmxlbmQtc2NyZWVuIHtcbiAgbWl4LWJsZW5kLW1vZGU6IHNjcmVlbjsgfVxuXG4udWstYmxlbmQtb3ZlcmxheSB7XG4gIG1peC1ibGVuZC1tb2RlOiBvdmVybGF5OyB9XG5cbi51ay1ibGVuZC1kYXJrZW4ge1xuICBtaXgtYmxlbmQtbW9kZTogZGFya2VuOyB9XG5cbi51ay1ibGVuZC1saWdodGVuIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGxpZ2h0ZW47IH1cblxuLnVrLWJsZW5kLWNvbG9yLWRvZGdlIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGNvbG9yLWRvZGdlOyB9XG5cbi51ay1ibGVuZC1jb2xvci1idXJuIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGNvbG9yLWJ1cm47IH1cblxuLnVrLWJsZW5kLWhhcmQtbGlnaHQge1xuICBtaXgtYmxlbmQtbW9kZTogaGFyZC1saWdodDsgfVxuXG4udWstYmxlbmQtc29mdC1saWdodCB7XG4gIG1peC1ibGVuZC1tb2RlOiBzb2Z0LWxpZ2h0OyB9XG5cbi51ay1ibGVuZC1kaWZmZXJlbmNlIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGRpZmZlcmVuY2U7IH1cblxuLnVrLWJsZW5kLWV4Y2x1c2lvbiB7XG4gIG1peC1ibGVuZC1tb2RlOiBleGNsdXNpb247IH1cblxuLnVrLWJsZW5kLWh1ZSB7XG4gIG1peC1ibGVuZC1tb2RlOiBodWU7IH1cblxuLnVrLWJsZW5kLXNhdHVyYXRpb24ge1xuICBtaXgtYmxlbmQtbW9kZTogc2F0dXJhdGlvbjsgfVxuXG4udWstYmxlbmQtY29sb3Ige1xuICBtaXgtYmxlbmQtbW9kZTogY29sb3I7IH1cblxuLnVrLWJsZW5kLWx1bWlub3NpdHkge1xuICBtaXgtYmxlbmQtbW9kZTogbHVtaW5vc2l0eTsgfVxuXG4vKiBUcmFuc2Zvcm1cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdHJhbnNmb3JtLWNlbnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG5cbi8qIFRyYW5zZm9ybSBPcmlnaW5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdHJhbnNmb3JtLW9yaWdpbi10b3AtbGVmdCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDsgfVxuXG4udWstdHJhbnNmb3JtLW9yaWdpbi10b3AtY2VudGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDA7IH1cblxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tdG9wLXJpZ2h0IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwOyB9XG5cbi51ay10cmFuc2Zvcm0tb3JpZ2luLWNlbnRlci1sZWZ0IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCA1MCU7IH1cblxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tY2VudGVyLXJpZ2h0IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSA1MCU7IH1cblxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tYm90dG9tLWxlZnQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7IH1cblxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tYm90dG9tLWNlbnRlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMDAlOyB9XG5cbi51ay10cmFuc2Zvcm0tb3JpZ2luLWJvdHRvbS1yaWdodCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogRmxleFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLnVrLWZsZXgtaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cblxuLypcbiAqIFJlbW92ZSBwc2V1ZG8gZWxlbWVudHMgY3JlYXRlZCBieSBtaWNybyBjbGVhcmZpeCBhcyBwcmVjYXV0aW9uXG4gKi9cbi51ay1mbGV4OjpiZWZvcmUsXG4udWstZmxleDo6YWZ0ZXIsXG4udWstZmxleC1pbmxpbmU6OmJlZm9yZSxcbi51ay1mbGV4LWlubGluZTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEFsaWdubWVudFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWxpZ24gaXRlbXMgYWxvbmcgdGhlIG1haW4gYXhpcyBvZiB0aGUgY3VycmVudCBsaW5lIG9mIHRoZSBmbGV4IGNvbnRhaW5lclxuICogUm93OiBIb3Jpem9udGFsXG4gKi9cbi51ay1mbGV4LWxlZnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cblxuLnVrLWZsZXgtY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLnVrLWZsZXgtcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi51ay1mbGV4LWJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLnVrLWZsZXgtYXJvdW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWstZmxleC1sZWZ0XFxAcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC51ay1mbGV4LWNlbnRlclxcQHMge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC51ay1mbGV4LXJpZ2h0XFxAcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAudWstZmxleC1iZXR3ZWVuXFxAcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC51ay1mbGV4LWFyb3VuZFxcQHMge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC51ay1mbGV4LWxlZnRcXEBtIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLnVrLWZsZXgtY2VudGVyXFxAbSB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLnVrLWZsZXgtcmlnaHRcXEBtIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC51ay1mbGV4LWJldHdlZW5cXEBtIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLnVrLWZsZXgtYXJvdW5kXFxAbSB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLWZsZXgtbGVmdFxcQGwge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAudWstZmxleC1jZW50ZXJcXEBsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAudWstZmxleC1yaWdodFxcQGwge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgLnVrLWZsZXgtYmV0d2VlblxcQGwge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAudWstZmxleC1hcm91bmRcXEBsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfSB9XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC51ay1mbGV4LWxlZnRcXEB4bCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC51ay1mbGV4LWNlbnRlclxcQHhsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAudWstZmxleC1yaWdodFxcQHhsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC51ay1mbGV4LWJldHdlZW5cXEB4bCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC51ay1mbGV4LWFyb3VuZFxcQHhsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfSB9XG5cbi8qXG4gKiBBbGlnbiBpdGVtcyBpbiB0aGUgY3Jvc3MgYXhpcyBvZiB0aGUgY3VycmVudCBsaW5lIG9mIHRoZSBmbGV4IGNvbnRhaW5lclxuICogUm93OiBWZXJ0aWNhbFxuICovXG4udWstZmxleC1zdHJldGNoIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cblxuLnVrLWZsZXgtdG9wIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLnVrLWZsZXgtbWlkZGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4udWstZmxleC1ib3R0b20ge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cblxuLyogRGlyZWN0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1mbGV4LXJvdyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cblxuLnVrLWZsZXgtcm93LXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cblxuLnVrLWZsZXgtY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG4udWstZmxleC1jb2x1bW4tcmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuXG4vKiBXcmFwXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1mbGV4LW5vd3JhcCB7XG4gIGZsZXgtd3JhcDogbm93cmFwOyB9XG5cbi51ay1mbGV4LXdyYXAge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuLnVrLWZsZXgtd3JhcC1yZXZlcnNlIHtcbiAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7IH1cblxuLypcbiAqIEFsaWducyBpdGVtcyB3aXRoaW4gdGhlIGZsZXggY29udGFpbmVyIHdoZW4gdGhlcmUgaXMgZXh0cmEgc3BhY2UgaW4gdGhlIGNyb3NzLWF4aXNcbiAqIE9ubHkgd29ya3MgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBsaW5lIG9mIGZsZXggaXRlbXNcbiAqL1xuLnVrLWZsZXgtd3JhcC1zdHJldGNoIHtcbiAgYWxpZ24tY29udGVudDogc3RyZXRjaDsgfVxuXG4udWstZmxleC13cmFwLXRvcCB7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cblxuLnVrLWZsZXgtd3JhcC1taWRkbGUge1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7IH1cblxuLnVrLWZsZXgtd3JhcC1ib3R0b20ge1xuICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4udWstZmxleC13cmFwLWJldHdlZW4ge1xuICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi51ay1mbGV4LXdyYXAtYXJvdW5kIHtcbiAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi8qIEl0ZW0gb3JkZXJpbmdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIERlZmF1bHQgaXMgMFxuICovXG4udWstZmxleC1maXJzdCB7XG4gIG9yZGVyOiAtMTsgfVxuXG4udWstZmxleC1sYXN0IHtcbiAgb3JkZXI6IDk5OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVrLWZsZXgtZmlyc3RcXEBzIHtcbiAgICBvcmRlcjogLTE7IH1cbiAgLnVrLWZsZXgtbGFzdFxcQHMge1xuICAgIG9yZGVyOiA5OTsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstZmxleC1maXJzdFxcQG0ge1xuICAgIG9yZGVyOiAtMTsgfVxuICAudWstZmxleC1sYXN0XFxAbSB7XG4gICAgb3JkZXI6IDk5OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1mbGV4LWZpcnN0XFxAbCB7XG4gICAgb3JkZXI6IC0xOyB9XG4gIC51ay1mbGV4LWxhc3RcXEBsIHtcbiAgICBvcmRlcjogOTk7IH0gfVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAudWstZmxleC1maXJzdFxcQHhsIHtcbiAgICBvcmRlcjogLTE7IH1cbiAgLnVrLWZsZXgtbGFzdFxcQHhsIHtcbiAgICBvcmRlcjogOTk7IH0gfVxuXG4vKiBJdGVtIGRpbWVuc2lvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEluaXRpYWw6IDAgMSBhdXRvXG4gKiBDb250ZW50IGRpbWVuc2lvbnMsIGJ1dCBzaHJpbmtzXG4gKi9cbi8qXG4gKiBObyBGbGV4OiAwIDAgYXV0b1xuICogQ29udGVudCBkaW1lbnNpb25zXG4gKi9cbi51ay1mbGV4LW5vbmUge1xuICBmbGV4OiBub25lOyB9XG5cbi8qXG4gKiBSZWxhdGl2ZSBGbGV4OiAxIDEgYXV0b1xuICogU3BhY2UgaXMgYWxsb2NhdGVkIGNvbnNpZGVyaW5nIGNvbnRlbnRcbiAqL1xuLnVrLWZsZXgtYXV0byB7XG4gIGZsZXg6IGF1dG87IH1cblxuLypcbiAqIEFic29sdXRlIEZsZXg6IDEgMSAwJVxuICogU3BhY2UgaXMgYWxsb2NhdGVkIHNvbGVseSBiYXNlZCBvbiBmbGV4XG4gKi9cbi51ay1mbGV4LTEge1xuICBmbGV4OiAxOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBNYXJnaW5cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIERlZmF1bHRcbiAqL1xuLnVrLW1hcmdpbiB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuKiArIC51ay1tYXJnaW4ge1xuICBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi10b3Age1xuICBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7IH1cblxuLyogU21hbGxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW1hcmdpbi1zbWFsbCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuKiArIC51ay1tYXJnaW4tc21hbGwge1xuICBtYXJnaW4tdG9wOiAxMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1zbWFsbC10b3Age1xuICBtYXJnaW4tdG9wOiAxMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1zbWFsbC1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1zbWFsbC1sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXNtYWxsLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7IH1cblxuLyogTWVkaXVtXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1tYXJnaW4tbWVkaXVtIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDsgfVxuXG4qICsgLnVrLW1hcmdpbi1tZWRpdW0ge1xuICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1tZWRpdW0tdG9wIHtcbiAgbWFyZ2luLXRvcDogNDBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tbWVkaXVtLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLW1lZGl1bS1sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IDQwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLW1lZGl1bS1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogNDBweCAhaW1wb3J0YW50OyB9XG5cbi8qIExhcmdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1tYXJnaW4tbGFyZ2Uge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG5cbiogKyAudWstbWFyZ2luLWxhcmdlIHtcbiAgbWFyZ2luLXRvcDogNDBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tbGFyZ2UtdG9wIHtcbiAgbWFyZ2luLXRvcDogNDBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tbGFyZ2UtYm90dG9tIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tbGFyZ2UtbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1sYXJnZS1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogNDBweCAhaW1wb3J0YW50OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstbWFyZ2luLWxhcmdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA3MHB4OyB9XG4gICogKyAudWstbWFyZ2luLWxhcmdlIHtcbiAgICBtYXJnaW4tdG9wOiA3MHB4ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1sYXJnZS10b3Age1xuICAgIG1hcmdpbi10b3A6IDcwcHggIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLWxhcmdlLWJvdHRvbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNzBweCAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tbGFyZ2UtbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDcwcHggIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLWxhcmdlLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDcwcHggIWltcG9ydGFudDsgfSB9XG5cbi8qIFhMYXJnZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbWFyZ2luLXhsYXJnZSB7XG4gIG1hcmdpbi1ib3R0b206IDcwcHg7IH1cblxuKiArIC51ay1tYXJnaW4teGxhcmdlIHtcbiAgbWFyZ2luLXRvcDogNzBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4teGxhcmdlLXRvcCB7XG4gIG1hcmdpbi10b3A6IDcwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXhsYXJnZS1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiA3MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi14bGFyZ2UtbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiA3MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi14bGFyZ2UtcmlnaHQge1xuICBtYXJnaW4tcmlnaHQ6IDcwcHggIWltcG9ydGFudDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLW1hcmdpbi14bGFyZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDE0MHB4OyB9XG4gICogKyAudWstbWFyZ2luLXhsYXJnZSB7XG4gICAgbWFyZ2luLXRvcDogMTQwcHggIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLXhsYXJnZS10b3Age1xuICAgIG1hcmdpbi10b3A6IDE0MHB4ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi14bGFyZ2UtYm90dG9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNDBweCAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4teGxhcmdlLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAxNDBweCAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4teGxhcmdlLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE0MHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBBdXRvXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1tYXJnaW4tYXV0byB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tYXV0by10b3Age1xuICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1hdXRvLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLWF1dG8tbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1hdXRvLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1hdXRvLXZlcnRpY2FsIHtcbiAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWstbWFyZ2luLWF1dG9cXEBzIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tYXV0by1sZWZ0XFxAcyB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLWF1dG8tcmlnaHRcXEBzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstbWFyZ2luLWF1dG9cXEBtIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tYXV0by1sZWZ0XFxAbSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLWF1dG8tcmlnaHRcXEBtIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfSB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstbWFyZ2luLWF1dG9cXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tYXV0by1sZWZ0XFxAbCB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLWF1dG8tcmlnaHRcXEBsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfSB9XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC51ay1tYXJnaW4tYXV0b1xcQHhsIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tYXV0by1sZWZ0XFxAeGwge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1hdXRvLXJpZ2h0XFxAeGwge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9IH1cblxuLyogUmVtb3ZlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1tYXJnaW4tcmVtb3ZlIHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1yZW1vdmUtdG9wIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tcmVtb3ZlLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXJlbW92ZS1sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXJlbW92ZS1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tcmVtb3ZlLXZlcnRpY2FsIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1yZW1vdmUtYWRqYWNlbnQgKyAqLFxuLnVrLW1hcmdpbi1yZW1vdmUtZmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1yZW1vdmUtbGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVrLW1hcmdpbi1yZW1vdmUtbGVmdFxcQHMge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1yZW1vdmUtcmlnaHRcXEBzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstbWFyZ2luLXJlbW92ZS1sZWZ0XFxAbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLXJlbW92ZS1yaWdodFxcQG0ge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1tYXJnaW4tcmVtb3ZlLWxlZnRcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tcmVtb3ZlLXJpZ2h0XFxAbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAudWstbWFyZ2luLXJlbW92ZS1sZWZ0XFxAeGwge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1yZW1vdmUtcmlnaHRcXEB4bCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogUGFkZGluZ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstcGFkZGluZyB7XG4gIHBhZGRpbmc6IDMwcHg7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1wYWRkaW5nIHtcbiAgICBwYWRkaW5nOiA0MHB4OyB9IH1cblxuLyogU21hbGxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBhZGRpbmctc21hbGwge1xuICBwYWRkaW5nOiAxNXB4OyB9XG5cbi8qIExhcmdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1wYWRkaW5nLWxhcmdlIHtcbiAgcGFkZGluZzogMzBweDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLXBhZGRpbmctbGFyZ2Uge1xuICAgIHBhZGRpbmc6IDcwcHg7IH0gfVxuXG4vKiBSZW1vdmVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBhZGRpbmctcmVtb3ZlIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1wYWRkaW5nLXJlbW92ZS10b3Age1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1wYWRkaW5nLXJlbW92ZS1ib3R0b20ge1xuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1wYWRkaW5nLXJlbW92ZS1sZWZ0IHtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1wYWRkaW5nLXJlbW92ZS12ZXJ0aWNhbCB7XG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLXBhZGRpbmctcmVtb3ZlLWhvcml6b250YWwge1xuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBQb3NpdGlvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBEaXJlY3Rpb25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiAxLiBQcmV2ZW50IGNvbnRlbnQgb3ZlcmZsb3cgaWYgYG1heC13aWR0aDogMTAwJWAgaXMgdXNlZCBpbnNpZGUgcG9zaXRpb24gY29udGFpbmVyLlxuICovXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi10b3AnXSxcbltjbGFzcyo9J3VrLXBvc2l0aW9uLWJvdHRvbSddLFxuW2NsYXNzKj0ndWstcG9zaXRpb24tbGVmdCddLFxuW2NsYXNzKj0ndWstcG9zaXRpb24tcmlnaHQnXSxcbltjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlciddIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi8qIEVkZ2VzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIERvbid0IHVzZSBgd2lkdGg6IDEwMCVgIGJlY2F1c2UgaXQgaXMgd3JvbmcgaWYgdGhlIHBhcmVudCBoYXMgcGFkZGluZy4gKi9cbi51ay1wb3NpdGlvbi10b3Age1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwOyB9XG5cbi51ay1wb3NpdGlvbi1ib3R0b20ge1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwOyB9XG5cbi51ay1wb3NpdGlvbi1sZWZ0IHtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7IH1cblxuLnVrLXBvc2l0aW9uLXJpZ2h0IHtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwOyB9XG5cbi8qIENvcm5lcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBvc2l0aW9uLXRvcC1sZWZ0IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwOyB9XG5cbi51ay1wb3NpdGlvbi10b3AtcmlnaHQge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwOyB9XG5cbi51ay1wb3NpdGlvbi1ib3R0b20tbGVmdCB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDsgfVxuXG4udWstcG9zaXRpb24tYm90dG9tLXJpZ2h0IHtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDsgfVxuXG4vKlxuICogQ2VudGVyXG4gKiAxLiBGaXggdGV4dCB3cmFwcGluZyBpZiBjb250ZW50IGlzIGxhcmdlciB0aGFuIDUwJSBvZiB0aGUgY29udGFpbmVyLlxuICovXG4udWstcG9zaXRpb24tY2VudGVyIHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIC8qIDEgKi9cbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLyogVmVydGljYWwgKi9cbltjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1sZWZ0J10sXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItcmlnaHQnXSB7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLnVrLXBvc2l0aW9uLWNlbnRlci1sZWZ0IHtcbiAgbGVmdDogMDsgfVxuXG4udWstcG9zaXRpb24tY2VudGVyLXJpZ2h0IHtcbiAgcmlnaHQ6IDA7IH1cblxuLnVrLXBvc2l0aW9uLWNlbnRlci1sZWZ0LW91dCB7XG4gIHJpZ2h0OiAxMDAlO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7IH1cblxuLnVrLXBvc2l0aW9uLWNlbnRlci1yaWdodC1vdXQge1xuICBsZWZ0OiAxMDAlO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7IH1cblxuLyogSG9yaXpvbnRhbCAqL1xuLnVrLXBvc2l0aW9uLXRvcC1jZW50ZXIsXG4udWstcG9zaXRpb24tYm90dG9tLWNlbnRlciB7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAvKiAxICovXG4gIHdpZHRoOiBtYXgtY29udGVudDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi51ay1wb3NpdGlvbi10b3AtY2VudGVyIHtcbiAgdG9wOiAwOyB9XG5cbi51ay1wb3NpdGlvbi1ib3R0b20tY2VudGVyIHtcbiAgYm90dG9tOiAwOyB9XG5cbi8qIENvdmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1wb3NpdGlvbi1jb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwOyB9XG5cbi8qIFV0aWxpdHlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBvc2l0aW9uLXJlbGF0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7IH1cblxuLnVrLXBvc2l0aW9uLWFic29sdXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IH1cblxuLnVrLXBvc2l0aW9uLWZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7IH1cblxuLnVrLXBvc2l0aW9uLXotaW5kZXgge1xuICB6LWluZGV4OiAxOyB9XG5cbi8qIE1hcmdpbiBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogU21hbGxcbiAqL1xuLnVrLXBvc2l0aW9uLXNtYWxsIHtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAoMTVweCAqIDIpKTtcbiAgbWFyZ2luOiAxNXB4OyB9XG5cbi51ay1wb3NpdGlvbi1zbWFsbC51ay1wb3NpdGlvbi1jZW50ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSB0cmFuc2xhdGUoLTE1cHgsIC0xNXB4KTsgfVxuXG4udWstcG9zaXRpb24tc21hbGxbY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItbGVmdCddLFxuLnVrLXBvc2l0aW9uLXNtYWxsW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLXJpZ2h0J10ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWSgtMTVweCk7IH1cblxuLnVrLXBvc2l0aW9uLXNtYWxsLnVrLXBvc2l0aW9uLXRvcC1jZW50ZXIsXG4udWstcG9zaXRpb24tc21hbGwudWstcG9zaXRpb24tYm90dG9tLWNlbnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVYKC0xNXB4KTsgfVxuXG4vKlxuICogTWVkaXVtXG4gKi9cbi51ay1wb3NpdGlvbi1tZWRpdW0ge1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICgzMHB4ICogMikpO1xuICBtYXJnaW46IDMwcHg7IH1cblxuLnVrLXBvc2l0aW9uLW1lZGl1bS51ay1wb3NpdGlvbi1jZW50ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSB0cmFuc2xhdGUoLTMwcHgsIC0zMHB4KTsgfVxuXG4udWstcG9zaXRpb24tbWVkaXVtW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLWxlZnQnXSxcbi51ay1wb3NpdGlvbi1tZWRpdW1bY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItcmlnaHQnXSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVZKC0zMHB4KTsgfVxuXG4udWstcG9zaXRpb24tbWVkaXVtLnVrLXBvc2l0aW9uLXRvcC1jZW50ZXIsXG4udWstcG9zaXRpb24tbWVkaXVtLnVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWCgtMzBweCk7IH1cblxuLypcbiAqIExhcmdlXG4gKi9cbi51ay1wb3NpdGlvbi1sYXJnZSB7XG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gKDMwcHggKiAyKSk7XG4gIG1hcmdpbjogMzBweDsgfVxuXG4udWstcG9zaXRpb24tbGFyZ2UudWstcG9zaXRpb24tY2VudGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgdHJhbnNsYXRlKC0zMHB4LCAtMzBweCk7IH1cblxuLnVrLXBvc2l0aW9uLWxhcmdlW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLWxlZnQnXSxcbi51ay1wb3NpdGlvbi1sYXJnZVtjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1yaWdodCddIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVkoLTMwcHgpOyB9XG5cbi51ay1wb3NpdGlvbi1sYXJnZS51ay1wb3NpdGlvbi10b3AtY2VudGVyLFxuLnVrLXBvc2l0aW9uLWxhcmdlLnVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWCgtMzBweCk7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1wb3NpdGlvbi1sYXJnZSB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAoNTBweCAqIDIpKTtcbiAgICBtYXJnaW46IDUwcHg7IH1cbiAgLnVrLXBvc2l0aW9uLWxhcmdlLnVrLXBvc2l0aW9uLWNlbnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgdHJhbnNsYXRlKC01MHB4LCAtNTBweCk7IH1cbiAgLnVrLXBvc2l0aW9uLWxhcmdlW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLWxlZnQnXSxcbiAgLnVrLXBvc2l0aW9uLWxhcmdlW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLXJpZ2h0J10ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVZKC01MHB4KTsgfVxuICAudWstcG9zaXRpb24tbGFyZ2UudWstcG9zaXRpb24tdG9wLWNlbnRlcixcbiAgLnVrLXBvc2l0aW9uLWxhcmdlLnVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVYKC01MHB4KTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUcmFuc2l0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFRvZ2dsZSAoSG92ZXIgKyBGb2N1cylcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIDEuIFByZXZlbnQgdGFiIGhpZ2hsaWdodGluZyBvbiBpT1MuXG4gKi9cbi51ay10cmFuc2l0aW9uLXRvZ2dsZSB7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKlxuICogUmVtb3ZlIG91dGxpbmUgZm9yIGB0YWJpbmRleGBcbiAqL1xuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBUcmFuc2l0aW9uc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogVGhlIHRvZ2dsZSBpcyB0cmlnZ2VyZWQgb24gdG91Y2ggZGV2aWNlcyBieSB0d28gbWV0aG9kczpcbiAqIDEuIFVzaW5nIGA6Zm9jdXNgIGFuZCB0YWJpbmRleFxuICogMi4gVXNpbmcgYDpob3ZlcmAgYW5kIGEgYHRvdWNoc3RhcnRgIGV2ZW50IGxpc3RlbmVyIHJlZ2lzdGVyZWQgb24gdGhlIGRvY3VtZW50XG4gKiAgICAoRG9lc24ndCB3b3JrIG9uIFN1cmZhY2UgdG91Y2ggZGV2aWNlcylcbiAqXG4gKiBOb3RlOiBUcmFuc2l0aW9ucyBkb24ndCB3b3JrIHdpdGggYHVrLXBvc3Rpb24tY2VudGVyLSpgIGNsYXNzZXMgYmVjYXVzZSB0aGV5IGFsc28gdXNlIGB0cmFuc2Zvcm1gLFxuICogICAgICAgdGhlcmVmb3JlIGl0J3MgcmVjb21tZW5kZWQgdG8gdXNlIGFuIGV4dHJhIGBkaXZgIGZvciB0aGUgdHJhbnNpdGlvbi5cbiAqL1xuLnVrLXRyYW5zaXRpb24tZmFkZSxcbltjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2NhbGUnXSxcbltjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2xpZGUnXSB7XG4gIHRyYW5zaXRpb246IDAuM3MgZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIHRyYW5zZm9ybSwgZmlsdGVyO1xuICBvcGFjaXR5OiAwOyB9XG5cbi8qXG4gKiBGYWRlXG4gKi9cbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpob3ZlciAudWstdHJhbnNpdGlvbi1mYWRlLFxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmZvY3VzIC51ay10cmFuc2l0aW9uLWZhZGUsXG4udWstdHJhbnNpdGlvbi1hY3RpdmUudWstYWN0aXZlIC51ay10cmFuc2l0aW9uLWZhZGUge1xuICBvcGFjaXR5OiAxOyB9XG5cbi8qXG4gKiBTY2FsZVxuICovXG4udWstdHJhbnNpdGlvbi1zY2FsZS11cCB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7IH1cblxuLnVrLXRyYW5zaXRpb24tc2NhbGUtZG93biB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xLCAxLjEpOyB9XG5cbi8qIFNob3cgKi9cbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpob3ZlciAudWstdHJhbnNpdGlvbi1zY2FsZS11cCxcbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpmb2N1cyAudWstdHJhbnNpdGlvbi1zY2FsZS11cCxcbi51ay10cmFuc2l0aW9uLWFjdGl2ZS51ay1hY3RpdmUgLnVrLXRyYW5zaXRpb24tc2NhbGUtdXAge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSwgMS4xKTsgfVxuXG4udWstdHJhbnNpdGlvbi10b2dnbGU6aG92ZXIgLnVrLXRyYW5zaXRpb24tc2NhbGUtZG93bixcbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpmb2N1cyAudWstdHJhbnNpdGlvbi1zY2FsZS1kb3duLFxuLnVrLXRyYW5zaXRpb24tYWN0aXZlLnVrLWFjdGl2ZSAudWstdHJhbnNpdGlvbi1zY2FsZS1kb3duIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTsgfVxuXG4vKlxuICogU2xpZGVcbiAqL1xuLnVrLXRyYW5zaXRpb24tc2xpZGUtdG9wIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1ib3R0b20ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7IH1cblxuLnVrLXRyYW5zaXRpb24tc2xpZGUtbGVmdCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cblxuLnVrLXRyYW5zaXRpb24tc2xpZGUtcmlnaHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cblxuLnVrLXRyYW5zaXRpb24tc2xpZGUtdG9wLXNtYWxsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1ib3R0b20tc21hbGwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7IH1cblxuLnVrLXRyYW5zaXRpb24tc2xpZGUtbGVmdC1zbWFsbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7IH1cblxuLnVrLXRyYW5zaXRpb24tc2xpZGUtcmlnaHQtc21hbGwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7IH1cblxuLnVrLXRyYW5zaXRpb24tc2xpZGUtdG9wLW1lZGl1bSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTBweCk7IH1cblxuLnVrLXRyYW5zaXRpb24tc2xpZGUtYm90dG9tLW1lZGl1bSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1sZWZ0LW1lZGl1bSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTBweCk7IH1cblxuLnVrLXRyYW5zaXRpb24tc2xpZGUtcmlnaHQtbWVkaXVtIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwcHgpOyB9XG5cbi8qIFNob3cgKi9cbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpob3ZlciBbY2xhc3MqPSd1ay10cmFuc2l0aW9uLXNsaWRlJ10sXG4udWstdHJhbnNpdGlvbi10b2dnbGU6Zm9jdXMgW2NsYXNzKj0ndWstdHJhbnNpdGlvbi1zbGlkZSddLFxuLnVrLXRyYW5zaXRpb24tYWN0aXZlLnVrLWFjdGl2ZSBbY2xhc3MqPSd1ay10cmFuc2l0aW9uLXNsaWRlJ10ge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4vKiBPcGFjaXR5IG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay10cmFuc2l0aW9uLW9wYXF1ZSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLyogRHVyYXRpb24gbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay10cmFuc2l0aW9uLXNsb3cge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjdzOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBWaXNpYmlsaXR5XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBIaWRkZW5cbiAqIGBoaWRkZW5gIGF0dHJpYnV0ZSBhbHNvIHNldCBoZXJlIHRvIG1ha2UgaXQgc3Ryb25nZXJcbiAqL1xuW2hpZGRlbl0sXG4udWstaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVrLWhpZGRlblxcQHMge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAudWstaGlkZGVuXFxAbSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1oaWRkZW5cXEBsIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAudWstaGlkZGVuXFxAeGwge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qXG4gKiBWaXNpYmxlXG4gKi9cbi8qIFBob25lIHBvcnRyYWl0IGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVrLXZpc2libGVcXEBzIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLnVrLXZpc2libGVcXEBtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC51ay12aXNpYmxlXFxAbCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLyogRGVza3RvcCBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDE1OTlweCkge1xuICAudWstdmlzaWJsZVxcQHhsIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBWaXNpYmlsaXR5XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuXG4vKiBUb2dnbGUgKEhvdmVyICsgRm9jdXMpXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBIaWRkZW5cbiAqIDEuIFRoZSB0b2dnbGUgaXMgdHJpZ2dlcmVkIG9uIHRvdWNoIGRldmljZXMgdXNpbmcgYDpmb2N1c2AgYW5kIHRhYmluZGV4XG4gKiAyLiBUaGUgdGFyZ2V0IHN0YXlzIHZpc2libGUgaWYgYW55IGVsZW1lbnQgd2l0aGluIHJlY2VpdmVzIGZvY3VzIHRocm91Z2gga2V5Ym9hcmRcbiAqICAgIERvZXNuJ3Qgd29yayBpbiBFZGdlLCB5ZXQuXG4gKiAzLiBDYW4ndCB1c2UgYGRpc3BsYXk6IG5vbmVgIG5vciBgdmlzaWJpbGl0eTogaGlkZGVuYCBiZWNhdXNlIGJvdGggYXJlIG5vdCBmb2N1c2FibGUuXG4gKlxuICovXG4vKiAxICsgMiAqL1xuLnVrLXZpc2libGUtdG9nZ2xlOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpIC51ay1oaWRkZW4taG92ZXI6bm90KDpmb2N1cy13aXRoaW4pIHtcbiAgLyogMyAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuXG4vKlxuICogSW52aXNpYmxlXG4gKi9cbi8qIDEgKyAyICovXG4udWstdmlzaWJsZS10b2dnbGU6bm90KDpob3Zlcik6bm90KDpmb2N1cykgLnVrLWludmlzaWJsZS1ob3Zlcjpub3QoOmZvY3VzLXdpdGhpbikge1xuICAvKiAzICovXG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDsgfVxuXG4vKlxuICogMS4gUHJldmVudCB0YWIgaGlnaGxpZ2h0aW5nIG9uIGlPUy5cbiAqL1xuLnVrLXZpc2libGUtdG9nZ2xlIHtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qXG4gKiBSZW1vdmUgb3V0bGluZSBmb3IgYHRhYmluZGV4YFxuICovXG4udWstdmlzaWJsZS10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qIFRvdWNoXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBIaWRlIGlmIHByaW1hcnkgcG9pbnRpbmcgZGV2aWNlIGhhcyBsaW1pdGVkIGFjY3VyYWN5LCBlLmcuIGEgdG91Y2ggc2NyZWVuLlxuICogV29ya3Mgb24gbW9iaWxlIGJyb3dzZXJzOiBTYWZhcmksIENocm9tZSBhbmQgQW5kcm9pZCBicm93c2VyXG4gKi9cbkBtZWRpYSAocG9pbnRlcjogY29hcnNlKSB7XG4gIC51ay1oaWRkZW4tdG91Y2gge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qXG4gKiBIaWRlIGlmIHByaW1hcnkgcG9pbnRpbmcgZGV2aWNlIGlzIGFjY3VyYXRlLCBlLmcuIG1vdXNlLlxuICogMS4gRmFsbGJhY2sgZm9yIElFMTEgYW5kIEZpcmVmb3gsIGJlY2F1c2UgYHBvaW50ZXJgIGlzIG5vdCBzdXBwb3J0ZWRcbiAqIDIuIFJlc2V0IGlmIHN1cHBvcnRlZFxuICovXG4vKiAxICovXG4udWstaGlkZGVuLW5vdG91Y2gge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpIHtcbiAgLnVrLWhpZGRlbi1ub3RvdWNoIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEludmVyc2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEltcGxlbWVudGVkIGNsYXNzIGRlcGVuZHMgb24gdGhlIGdlbmVyYWwgdGhlbWUgY29sb3JcbiAqIGB1ay1saWdodGAgaXMgZm9yIGxpZ2h0IGNvbG9ycyBvbiBkYXJrIGJhY2tncm91bmRzXG4gKiBgdWstZGFya2AgaXMgb3IgZGFyayBjb2xvcnMgb24gbGlnaHQgYmFja2dyb3VuZHNcbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFByaW50XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSBwcmludCB7XG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207IH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMzsgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9IH1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU2l0ZSBOYW1lOlxuQXV0aG9yOlxuXG5TdHlsZXNoZWV0OiBTYXNzIEZ1bmN0aW9uc1xuXG5Zb3UgY2FuIGRvIGEgbG90IG9mIHJlYWxseSBjb29sIHRoaW5ncyBpbiBTYXNzLiBGdW5jdGlvbnMgaGVscCB5b3Vcbm1ha2UgcmVwZWF0ZWQgYWN0aW9ucyBhIGxvdCBlYXNpZXIuIFRoZXkgYXJlIHJlYWxseSBzaW1pbGFyIHRvIG1peGlucyxcbmJ1dCBjYW4gYmUgdXNlZCBmb3Igc28gbXVjaCBtb3JlLlxuXG5Bbnl3YXksIGtlZXAgdGhlbSBhbGwgaW4gaGVyZSBzbyBpdCdzIGVhc2llciB0byBmaW5kIHdoZW4geW91J3JlXG5sb29raW5nIGZvciBvbmUuXG5cbkZvciBtb3JlIGluZm8gb24gZnVuY3Rpb25zLCBnbyBoZXJlOlxuaHR0cDovL3Nhc3MtbGFuZy5jb20vZG9jdW1lbnRhdGlvbi9TYXNzL1NjcmlwdC9GdW5jdGlvbnMuaHRtbFxuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqXG5DT0xPUiBGVU5DVElPTlNcblRoZXNlIGFyZSBoZWxwZnVsIHdoZW4geW91J3JlIHdvcmtpbmdcbndpdGggc2hhZG93cyBhbmQgc3VjaCB0aGluZ3MuIEl0J3MgZXNzZW50aWFsbHlcbmEgcXVpY2tlciB3YXkgdG8gd3JpdGUgUkdCQS5cblxuRXhhbXBsZTpcbmJveC1zaGFkb3c6IDAgMCA0cHggYmxhY2soMC4zKTtcbmNvbXBpbGVzIHRvOlxuYm94LXNoYWRvdzogMCAwIDRweCByZ2JhKDAsMCwwLDAuMyk7XG4qKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqXG5SRVNQT05TSVZFIEhFTFBFUiBGVU5DVElPTlxuSWYgeW91J3JlIGNyZWF0aW5nIGEgcmVzcG9uc2l2ZSBzaXRlLCB0aGVuXG55b3UndmUgcHJvYmFibHkgYWxyZWFkeSByZWFkXG5SZXNwb25zaXZlIFdlYiBEZXNpZ246IGh0dHA6Ly93d3cuYWJvb2thcGFydC5jb20vcHJvZHVjdHMvcmVzcG9uc2l2ZS13ZWItZGVzaWduXG5cbkhlcmUncyBhIG5pY2UgbGl0dGxlIGhlbHBlciBmdW5jdGlvbiBmb3IgY2FsY3VsYXRpbmdcbnRhcmdldCAvIGNvbnRleHRcbmFzIG1lbnRpb25lZCBpbiB0aGF0IGJvb2suXG5cbkV4YW1wbGU6XG53aWR0aDogY3AoNjUwcHgsIDEwMDBweCk7XG5vclxud2lkdGg6IGNhbGMtcGVyY2VudCg2NTBweCwgMTAwMHB4KTtcbmJvdGggY29tcGlsZSB0bzpcbndpZHRoOiA2NSU7XG4qKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqXG5JTVBPUlRJTkcgTU9EVUxFU1xuTW9kdWxlcyBhcmUgcmV1c2FibGUgYmxvY2tzIG9yIGVsZW1lbnRzIHdlIHVzZSB0aHJvdWdob3V0IHRoZSBwcm9qZWN0LlxuV2UgY2FuIGJyZWFrIHRoZW0gdXAgYXMgbXVjaCBhcyB3ZSB3YW50IG9yIGp1c3Qga2VlcCB0aGVtIGFsbCBpbiBvbmUuXG5JIG1lYW4sIHlvdSBjYW4gZG8gd2hhdGV2ZXIgeW91IHdhbnQuIFRoZSB3b3JsZCBpcyB5b3VyIG95c3Rlci4gVW5sZXNzXG55b3UgaGF0ZSBveXN0ZXJzLCB0aGVuIHRoZSB3b3JsZCBpcyB5b3VyIHBlYW51dCBidXR0ZXIgJiBqZWxseSBzYW5kd2ljaC5cbioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNpdGUgTmFtZTpcbkF1dGhvcjpcblxuU3R5bGVzaGVldDogQnV0dG9uIFN0eWxlc1xuXG5CdXR0b25zIGFyZSBhIHByZXR0eSBpbXBvcnRhbnQgcGFydCBvZiB5b3VyIHNpdGUncyBzdHlsZSwgc28gaXQnc1xuaW1wb3J0YW50IHRvIGhhdmUgYSBjb25zaXN0ZW50IGJhc2VsaW5lIGZvciB0aGVtLiBVc2UgdGhpcyBzdHlsZXNoZWV0XG50byBjcmVhdGUgYWxsIGtpbmRzIG9mIGJ1dHRvbnMuXG5cbkhlbHBmdWwgTGlua3M6XG5odHRwOi8vZ2FscC5pbi9ibG9nLzIwMTEvMDgvMDIvdGhlLXVpLWd1aWRlLXBhcnQtMS1idXR0b25zL1xuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqXG5CVVRUT04gREVGQVVMVFNcbldlJ3JlIGdvbm5hIHVzZSBhIHBsYWNlaG9sZGVyIHNlbGVjdG9yIGhlcmVcbnNvIHdlIGNhbiB1c2UgY29tbW9uIHN0eWxlcy4gV2UgdGhlbiB1c2UgdGhpc1xudG8gbG9hZCB1cCB0aGUgZGVmYXVsdHMgaW4gYWxsIG91ciBidXR0b25zLlxuXG5IZXJlJ3MgYSBxdWljayB2aWRlbyB0byBzaG93IGhvdyBpdCB3b3Jrczpcbmh0dHA6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1od2RWcEtpSnphY1xuXG4qKioqKioqKioqKioqKioqKioqKiovXG4uYmx1ZS1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1mYW1pbHk6IG1vbnRzZXJyYXQsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBsaW5lLWhlaWdodDogMzRweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogMCAyNHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTRzIGVhc2UtaW4tb3V0OyB9XG4gIC5ibHVlLWJ0bjpob3ZlciwgLmJsdWUtYnRuOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAuYmx1ZS1idG46YWN0aXZlIHtcbiAgICB0b3A6IDFweDsgfVxuXG4vKlxuQW4gZXhhbXBsZSBidXR0b24uXG5Zb3UgY2FuIHVzZSB0aGlzIGV4YW1wbGUgaWYgeW91IHdhbnQuIEp1c3QgcmVwbGFjZSBhbGwgdGhlIHZhcmlhYmxlc1xuYW5kIGl0IHdpbGwgY3JlYXRlIGEgYnV0dG9uIGRlcGVuZGFudCBvbiB0aG9zZSB2YXJpYWJsZXMuXG4qL1xuLmJsdWUtYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTsgfVxuICAuYmx1ZS1idG46aG92ZXIsIC5ibHVlLWJ0bjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzBlNTVkMjsgfVxuICAuYmx1ZS1idG46YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQ1M2NkOyB9XG5cbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogNnB4IDE4cHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQgd2hpdGU7XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB3aGl0ZTtcbiAgdHJhbnNpdGlvbjogYWxsIC4xNHMgZWFzZTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDsgfSB9XG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFhYjM0NzsgfVxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdLnJlZC1idG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYzNiM2Q7IH1cbiAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdLnJlZC1idG46aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFhYjM0NzsgfVxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdLnZpb2xldC1idG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNiNDgwZTU7IH1cbiAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdLnZpb2xldC1idG46aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFhYjM0NzsgfVxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdLmdyZWVuLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFhYjM0NzsgfVxuICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0uZ3JlZW4tYnRuOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYWIzNDc7IH1cblxuLnJlYWQtbW9yZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA2cHggMThweDtcbiAgZm9udC1zaXplOiAxLjRlbTtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCB3aGl0ZTtcbiAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHdoaXRlO1xuICB0cmFuc2l0aW9uOiBhbGwgLjE0cyBlYXNlOyB9XG4gIC5yZWFkLW1vcmU6aG92ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLnJlYWQtbW9yZS5sYXJnZXIge1xuICAgIHBhZGRpbmc6IDEycHggMjdweDtcbiAgICBmb250LXNpemU6IDEuOGVtOyB9XG4gIC5yZWFkLW1vcmUucmVkLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjM2IzZDsgfVxuICAucmVhZC1tb3JlLnZpb2xldC1idG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNiNDgwZTU7IH1cbiAgLnJlYWQtbW9yZS5ncmVlbi1idG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxYWIzNDc7IH1cblxuYS5yZWFkLW1vcmUsXG5hLnJlYWQtbW9yZTphY3RpdmUsXG5hLnJlYWQtbW9yZTpob3ZlcixcbmEucmVhZC1tb3JlOnZpc2l0ZWQge1xuICBjb2xvcjogd2hpdGU7IH1cbiAgYS5yZWFkLW1vcmU6aG92ZXIsXG4gIGEucmVhZC1tb3JlOmFjdGl2ZTpob3ZlcixcbiAgYS5yZWFkLW1vcmU6aG92ZXI6aG92ZXIsXG4gIGEucmVhZC1tb3JlOnZpc2l0ZWQ6aG92ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmJnLXdoaXRlIC5yZWFkLW1vcmUge1xuICBjb2xvcjogI2ZjM2IzZDtcbiAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQgI2ZjM2IzZDtcbiAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICNmYzNiM2Q7IH1cbiAgLmJnLXdoaXRlIC5yZWFkLW1vcmU6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYzNiM2Q7XG4gICAgY29sb3I6IHdoaXRlOyB9XG5cbi5iZy12aW9sZXQgYS5yZWFkLW1vcmUsXG4uYmctdmlvbGV0IGEucmVhZC1tb3JlOmFjdGl2ZSxcbi5iZy12aW9sZXQgYS5yZWFkLW1vcmU6dmlzaXRlZCxcbi5iZy12aW9sZXQgLnJlYWQtbW9yZSB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2I0ODBlNTtcbiAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICNiNDgwZTU7IH1cbiAgLmJnLXZpb2xldCBhLnJlYWQtbW9yZTpob3ZlcixcbiAgLmJnLXZpb2xldCBhLnJlYWQtbW9yZTphY3RpdmU6aG92ZXIsXG4gIC5iZy12aW9sZXQgYS5yZWFkLW1vcmU6dmlzaXRlZDpob3ZlcixcbiAgLmJnLXZpb2xldCAucmVhZC1tb3JlOmhvdmVyIHtcbiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHdoaXRlO1xuICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCB3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBjb2xvcjogI2I0ODBlNTsgfVxuXG4uYmctdmlvbGV0IC5iZy13aGl0ZSAucmVhZC1tb3JlIHtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZmZmO1xuICBib3JkZXItdG9wOiAzcHggc29saWQgI2ZmZjsgfVxuXG4uYmctcmVkIGEucmVhZC1tb3JlLFxuLmJnLXJlZCBhLnJlYWQtbW9yZTphY3RpdmUsXG4uYmctcmVkIGEucmVhZC1tb3JlOnZpc2l0ZWQsXG4uYmctcmVkIC5yZWFkLW1vcmUge1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmYzNiM2Q7XG4gIGJvcmRlci10b3A6IDNweCBzb2xpZCAjZmMzYjNkOyB9XG4gIC5iZy1yZWQgYS5yZWFkLW1vcmU6aG92ZXIsXG4gIC5iZy1yZWQgYS5yZWFkLW1vcmU6YWN0aXZlOmhvdmVyLFxuICAuYmctcmVkIGEucmVhZC1tb3JlOnZpc2l0ZWQ6aG92ZXIsXG4gIC5iZy1yZWQgLnJlYWQtbW9yZTpob3ZlciB7XG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB3aGl0ZTtcbiAgICBib3JkZXItdG9wOiAzcHggc29saWQgd2hpdGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgY29sb3I6ICNiNDgwZTU7IH1cblxuLmJnLXJlZCAuYmctd2hpdGUgLnJlYWQtbW9yZSB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICNmZmY7IH1cblxuLmJnLXdoaXRlIGEucmVhZC1tb3JlLFxuLmJnLXdoaXRlIGEucmVhZC1tb3JlOmFjdGl2ZSxcbi5iZy13aGl0ZSBhLnJlYWQtbW9yZTp2aXNpdGVkLFxuLmJnLXdoaXRlIC5yZWFkLW1vcmUge1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmZmY7XG4gIGJvcmRlci10b3A6IDNweCBzb2xpZCAjZmZmOyB9XG4gIC5iZy13aGl0ZSBhLnJlYWQtbW9yZTpob3ZlcixcbiAgLmJnLXdoaXRlIGEucmVhZC1tb3JlOmFjdGl2ZTpob3ZlcixcbiAgLmJnLXdoaXRlIGEucmVhZC1tb3JlOnZpc2l0ZWQ6aG92ZXIsXG4gIC5iZy13aGl0ZSAucmVhZC1tb3JlOmhvdmVyIHtcbiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHdoaXRlO1xuICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCB3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBjb2xvcjogI2ZjM2IzZDsgfVxuXG4uYmctd2hpdGUgLmJnLXdoaXRlIC5yZWFkLW1vcmUge1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmZmY7XG4gIGJvcmRlci10b3A6IDNweCBzb2xpZCAjZmZmOyB9XG5cbi5iZy1waW5rIGEucmVhZC1tb3JlLFxuLmJnLXBpbmsgYS5yZWFkLW1vcmU6YWN0aXZlLFxuLmJnLXBpbmsgYS5yZWFkLW1vcmU6dmlzaXRlZCxcbi5iZy1waW5rIC5yZWFkLW1vcmUge1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNlODgxYWE7XG4gIGJvcmRlci10b3A6IDNweCBzb2xpZCAjZTg4MWFhOyB9XG4gIC5iZy1waW5rIGEucmVhZC1tb3JlOmhvdmVyLFxuICAuYmctcGluayBhLnJlYWQtbW9yZTphY3RpdmU6aG92ZXIsXG4gIC5iZy1waW5rIGEucmVhZC1tb3JlOnZpc2l0ZWQ6aG92ZXIsXG4gIC5iZy1waW5rIC5yZWFkLW1vcmU6aG92ZXIge1xuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgd2hpdGU7XG4gICAgYm9yZGVyLXRvcDogM3B4IHNvbGlkIHdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGNvbG9yOiAjYjQ4MGU1OyB9XG5cbi5iZy1waW5rIC5iZy13aGl0ZSAucmVhZC1tb3JlIHtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZmZmO1xuICBib3JkZXItdG9wOiAzcHggc29saWQgI2ZmZjsgfVxuXG4uYmlnLXJlZC1idXR0b24sXG5hLmJpZy1yZWQtYnV0dG9uLFxuYS5iaWctcmVkLWJ1dHRvbjp2aXNpdGVkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmMzYjNkO1xuICBtYXJnaW46IDAgYXV0bztcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDEycHggNDhweDtcbiAgbWFyZ2luLXRvcDogNDVweDtcbiAgZm9udC1zaXplOiAyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmJpZy1yZWQtYnV0dG9uLFxuICAgIGEuYmlnLXJlZC1idXR0b24sXG4gICAgYS5iaWctcmVkLWJ1dHRvbjp2aXNpdGVkIHtcbiAgICAgIG1hcmdpbi10b3A6IDkwcHg7XG4gICAgICBmb250LXNpemU6IDMuMmVtOyB9IH1cbiAgLmJpZy1yZWQtYnV0dG9uOmhvdmVyLFxuICBhLmJpZy1yZWQtYnV0dG9uOmhvdmVyLFxuICBhLmJpZy1yZWQtYnV0dG9uOnZpc2l0ZWQ6aG92ZXIge1xuICAgIGNvbG9yOiAjZmMzYjNkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG4gIC5iaWctcmVkLWJ1dHRvbiAuYmctd2hpdGUgLnJlYWQtbW9yZSxcbiAgYS5iaWctcmVkLWJ1dHRvbiAuYmctd2hpdGUgLnJlYWQtbW9yZSxcbiAgYS5iaWctcmVkLWJ1dHRvbjp2aXNpdGVkIC5iZy13aGl0ZSAucmVhZC1tb3JlIHtcbiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICNmZmY7IH1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU2l0ZSBOYW1lOlxuQXV0aG9yOlxuXG5TdHlsZXNoZWV0OiBGb3JtIFN0eWxlc1xuXG5XZSBwdXQgYWxsIHRoZSBmb3JtIGFuZCBidXR0b24gc3R5bGVzIGluIGhlcmUgdG8gc2V0dXAgYSBjb25zaXN0ZW50XG5sb29rLiBJZiB3ZSBuZWVkIHRvIGN1c3RvbWl6ZSB0aGVtLCB3ZSBjYW4gZG8gdGhpcyBpbiB0aGUgbWFpblxuc3R5bGVzaGVldHMgYW5kIGp1c3Qgb3ZlcnJpZGUgdGhlbS4gRWFzeSBQZWFzeS5cblxuWW91J3JlIGdvbm5hIHNlZSBhIGZldyBkYXRhLXVyaSB0aGluZ2llcyBkb3duIHRoZXJlLiBJZiB5b3UncmUgbm90XG5zdXJlIHdoYXQgdGhleSBhcmUsIGNoZWNrIHRoaXMgbGluayBvdXQ6XG5odHRwOi8vY3NzLXRyaWNrcy5jb20vZGF0YS11cmlzL1xuSWYgeW91IHdhbnQgdG8gY3JlYXRlIHlvdXIgb3duLCB1c2UgdGhpcyBoZWxwZnVsIGxpbms6XG5odHRwOi8vd2Vic2VtYW50aWNzLmNvLnVrL29ubGluZV90b29scy9pbWFnZV90b19kYXRhX3VyaV9jb252ZXJ0b3IvXG5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKipcbklOUFVUU1xuKioqKioqKioqKioqKioqKioqKioqL1xuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbmlucHV0W3R5cGU9XCJtb250aFwiXSxcbmlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuaW5wdXRbdHlwZT1cIndlZWtcIl0sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cInVybFwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG5pbnB1dFt0eXBlPVwidGVsXCJdLFxuaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxuc2VsZWN0LFxudGV4dGFyZWEsXG4uZmllbGQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA0MHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMTRweCA5cHggMTBweCA5cHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6IHdoaXRlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogbW9udHNlcnJhdCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBib3JkZXItYm90dG9tOiAzcHggc29saWQgd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cbiAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcbiAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdOmFjdGl2ZSxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbiAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXG4gIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4gIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxuICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXG4gIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXG4gIHNlbGVjdDpmb2N1cyxcbiAgc2VsZWN0OmFjdGl2ZSxcbiAgdGV4dGFyZWE6Zm9jdXMsXG4gIHRleHRhcmVhOmFjdGl2ZSxcbiAgLmZpZWxkOmZvY3VzLFxuICAuZmllbGQ6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICBpbnB1dFt0eXBlPVwidGV4dFwiXTo6cGxhY2Vob2xkZXIsXG4gIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTo6cGxhY2Vob2xkZXIsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTo6cGxhY2Vob2xkZXIsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTo6cGxhY2Vob2xkZXIsXG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdOjpwbGFjZWhvbGRlcixcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOjpwbGFjZWhvbGRlcixcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl06OnBsYWNlaG9sZGVyLFxuICBpbnB1dFt0eXBlPVwid2Vla1wiXTo6cGxhY2Vob2xkZXIsXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl06OnBsYWNlaG9sZGVyLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl06OnBsYWNlaG9sZGVyLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdOjpwbGFjZWhvbGRlcixcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6cGxhY2Vob2xkZXIsXG4gIGlucHV0W3R5cGU9XCJ0ZWxcIl06OnBsYWNlaG9sZGVyLFxuICBpbnB1dFt0eXBlPVwiY29sb3JcIl06OnBsYWNlaG9sZGVyLFxuICBzZWxlY3Q6OnBsYWNlaG9sZGVyLFxuICB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIsXG4gIC5maWVsZDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuICBpbnB1dFt0eXBlPVwidGV4dFwiXS5lcnJvciwgaW5wdXRbdHlwZT1cInRleHRcIl0uaXMtaW52YWxpZCxcbiAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLmVycm9yLFxuICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uaXMtaW52YWxpZCxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLmVycm9yLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0uaXMtaW52YWxpZCxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmVycm9yLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0uaXMtaW52YWxpZCxcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0uZXJyb3IsXG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLmlzLWludmFsaWQsXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXS5lcnJvcixcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmlzLWludmFsaWQsXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLmVycm9yLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5pcy1pbnZhbGlkLFxuICBpbnB1dFt0eXBlPVwid2Vla1wiXS5lcnJvcixcbiAgaW5wdXRbdHlwZT1cIndlZWtcIl0uaXMtaW52YWxpZCxcbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXS5lcnJvcixcbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXS5pcy1pbnZhbGlkLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0uZXJyb3IsXG4gIGlucHV0W3R5cGU9XCJlbWFpbFwiXS5pcy1pbnZhbGlkLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdLmVycm9yLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdLmlzLWludmFsaWQsXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0uZXJyb3IsXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0uaXMtaW52YWxpZCxcbiAgaW5wdXRbdHlwZT1cInRlbFwiXS5lcnJvcixcbiAgaW5wdXRbdHlwZT1cInRlbFwiXS5pcy1pbnZhbGlkLFxuICBpbnB1dFt0eXBlPVwiY29sb3JcIl0uZXJyb3IsXG4gIGlucHV0W3R5cGU9XCJjb2xvclwiXS5pcy1pbnZhbGlkLFxuICBzZWxlY3QuZXJyb3IsXG4gIHNlbGVjdC5pcy1pbnZhbGlkLFxuICB0ZXh0YXJlYS5lcnJvcixcbiAgdGV4dGFyZWEuaXMtaW52YWxpZCxcbiAgLmZpZWxkLmVycm9yLFxuICAuZmllbGQuaXMtaW52YWxpZCB7XG4gICAgY29sb3I6ICNmYmUzZTQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmJlM2U0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogOTklIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJZQUFBQVdDQVlBQUFERXRHdzdBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8yTkRNME5EUkVRa1l3TkVJeE1VVXlPVEk0UkVaR1FURXpNekEyTURjeU5pSWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzJORE0wTkRSRVEwWXdORUl4TVVVeU9USTRSRVpHUVRFek16QTJNRGN5TmlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qUTNPRFJHUmtFMlJqQTBRVEV4UlRJNU1qaEVSa1pCTVRNek1EWXdOekkySWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pZME16UTBORVJCUmpBMFFqRXhSVEk1TWpoRVJrWkJNVE16TURZd056STJJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrVThpVDV3QUFBZWRKUkVGVWVOcWsxVTlJMDJFY3gvSHRWM2FJRkFjMWhjUkRVb0dYUkFxMG9OTEEyQ3JzRUZtSGJpa1p1MGlRWUlGR1lBaWVna0NwTGlwQnhQcERFQk1VekIwRWhTRzJMaEc3aE1SMkd2aVBnVVR2QjU3Qnc4UDMrVTIzQjE2SFBYOCtlL2I4bnQ5M3dlelpTTUNuaFhFVEYzQWNCNUJEQ25IOERxOThFeGNHSGNGbjhBaDNjZERuaStmeG5QRHY5b0FuVEI3Q0t1NlZDRlh0Q2haeTU2THhVanQramZ1Qjh0b1NPdGg5d2Q3eFdBV2hxclVqWVIvRlJUd1dKbStpSVBUL3c3YlFmNWxqaVpuQmc0NWR0S0ZYNkgrTFU4Z0lZOE9FVjZ2Z1RrU3R3WFdFOEJQVEdESEdQcU5QejJtQ2ZTT09Za0E5OVR2Q3QxYmhHUEw2OHpNY3dtbmNNdWFwZTEwanJJK3E0QmJIaS9GTG4zMVM5ejJ4NXRSaFRjKzFXNTA2aXBNK1Qzb1JENFgrOCtxdGM0U3FGdkwwei9GcjE0UytTemppczhiejlMdnZhcThjd1Mvd3dHZmRscWZQU1dxVGlGbFg3N28xM3U5WW0xUEJzOEpBeXRwUm95NDRYOUZ0OUUvZ3ZiQStyWUtuOE5jYWFNVmM4VUhnQnc0YjkvaXFVUVo2aE9BSkZieURjVWZsbXNFWDRhNit3VHRIR2ZoQUlVcWExVTI5WmMyQnl0b3VUaEQ4eDZ4dU41Q3RNUGkyQ3JYTFprWmYvSHlab1JGQ1A3bitRVlI0UFY3dUkvQWpHZ2hON09VL3IxaWxucUlMdGZwTkMrbzZ2SUZsakJLWWxoYi9GMkFBZ2FCc1dSNXdSaUlBQUFBQVNVVk9SSzVDWUlJPSk7XG4gICAgb3V0bGluZS1jb2xvcjogI2ZiZTNlNDsgfVxuICBpbnB1dFt0eXBlPVwidGV4dFwiXS5zdWNjZXNzLCBpbnB1dFt0eXBlPVwidGV4dFwiXS5pcy12YWxpZCxcbiAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLnN1Y2Nlc3MsXG4gIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS5pcy12YWxpZCxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLnN1Y2Nlc3MsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXS5pcy12YWxpZCxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLnN1Y2Nlc3MsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5pcy12YWxpZCxcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0uc3VjY2VzcyxcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0uaXMtdmFsaWQsXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXS5zdWNjZXNzLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0uaXMtdmFsaWQsXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLnN1Y2Nlc3MsXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLmlzLXZhbGlkLFxuICBpbnB1dFt0eXBlPVwid2Vla1wiXS5zdWNjZXNzLFxuICBpbnB1dFt0eXBlPVwid2Vla1wiXS5pcy12YWxpZCxcbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXS5zdWNjZXNzLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLmlzLXZhbGlkLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0uc3VjY2VzcyxcbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLmlzLXZhbGlkLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdLnN1Y2Nlc3MsXG4gIGlucHV0W3R5cGU9XCJ1cmxcIl0uaXMtdmFsaWQsXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0uc3VjY2VzcyxcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXS5pcy12YWxpZCxcbiAgaW5wdXRbdHlwZT1cInRlbFwiXS5zdWNjZXNzLFxuICBpbnB1dFt0eXBlPVwidGVsXCJdLmlzLXZhbGlkLFxuICBpbnB1dFt0eXBlPVwiY29sb3JcIl0uc3VjY2VzcyxcbiAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLmlzLXZhbGlkLFxuICBzZWxlY3Quc3VjY2VzcyxcbiAgc2VsZWN0LmlzLXZhbGlkLFxuICB0ZXh0YXJlYS5zdWNjZXNzLFxuICB0ZXh0YXJlYS5pcy12YWxpZCxcbiAgLmZpZWxkLnN1Y2Nlc3MsXG4gIC5maWVsZC5pcy12YWxpZCB7XG4gICAgY29sb3I6ICNlNmVmYzI7XG4gICAgYm9yZGVyLWNvbG9yOiAjZTZlZmMyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogOTklIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJZQUFBQVdDQVlBQUFERXRHdzdBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8yTkRNME5EUkVSa1l3TkVJeE1VVXlPVEk0UkVaR1FURXpNekEyTURjeU5pSWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzJORE0wTkRSRk1FWXdORUl4TVVVeU9USTRSRVpHUVRFek16QTJNRGN5TmlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qWTBNelEwTkVSRVJqQTBRakV4UlRJNU1qaEVSa1pCTVRNek1EWXdOekkySWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pZME16UTBORVJGUmpBMFFqRXhSVEk1TWpoRVJrWkJNVE16TURZd056STJJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrN29sa1RRQUFBZmhKUkVGVWVOcWtsVTlvRTBFVWh6ZHJvV2p3MHRCZVdsRHhrRWFJcDU1VHNDVTlWS0lnQ3JIQmVsQThDUTFLcjFXUGJaclEzZ3F0UXF2R3F4cFFjMmpCazZCSUlhQUdENHFOQ0tVUnBEU0tpUGk5OGdMRHNKdC8vdUJqc3p0dmZuazc4OTVzSVBBdzYvam9HTVRoRkp5QVhuMitBKzlnQTU3L1RhWS9lVTBPZUJnZmhHbTREaUduc2I3REFzenhCei9OQWRjS2pNSkx1TldDcWFnSGJzc2NONStMK2htSDRRa01PZTFMNWp6RmZOQTJQZ1QzNGFqVHVZN0FHdVpCMC9obWg1bStnUzByOHh2MXpSdmcrZ0dDSFppT3duRjREUDNpQjNzUWtZeFBkMkM2Q1dmaEI5WHdsdXM1K0sxajRqWHVhcTNhK2dNMUg5T1BjQWErN3E5bFBpZFpKcUhiaUltN1dnMjJyc0VJN0ZyUFN6QU1YL1QrQUR5QUtTc3U3RnIxS3BsZWhMdndDczVEdmZCZjY1cCtNeXBxUmJPMUZYSzl1dEg0L1FLdWFxWVRzRzNFM0lOSnYwMFE0NnB4MytYeGFuSi9VdGUyL3ZxUDRGS0R6YTJLY2RsaklLZG5oUzB4WFlVTFRhcW1MTVpGbjhGRlNGdHZ0Nng3MEV4RkNTNW9VWHNwcTJzc2E3b0VsMXN3RmErQ0dGZGd0a0hnUER5REt5MDJ6eXhOVTZsWFJVWmIxRXVIWWF5Tk5zK1loNUIwV1FvKy84ZnBKbk5UWkZ1enoyT3Bqb1EyUXJ1U09RbE15MzVmRUdtRUdNeFk5ZTFicnhvYnc3VGtXQTFoNnhmY2tVUGIrSmhHb0UvSHBmdmV3N3FVbGQvSDlKOEFBd0RwdzNXWXJ4Y1ozUUFBQUFCSlJVNUVya0pnZ2c9PSk7XG4gICAgb3V0bGluZS1jb2xvcjogI2U2ZWZjMjsgfVxuICBpbnB1dFt0eXBlPVwidGV4dFwiXVtkaXNhYmxlZF0sIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLmlzLWRpc2FibGVkLFxuICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl1bZGlzYWJsZWRdLFxuICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uaXMtZGlzYWJsZWQsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXVtkaXNhYmxlZF0sXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXS5pcy1kaXNhYmxlZCxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdW2Rpc2FibGVkXSxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmlzLWRpc2FibGVkLFxuICBpbnB1dFt0eXBlPVwiZGF0ZVwiXVtkaXNhYmxlZF0sXG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLmlzLWRpc2FibGVkLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl1bZGlzYWJsZWRdLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0uaXMtZGlzYWJsZWQsXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdW2Rpc2FibGVkXSxcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl0uaXMtZGlzYWJsZWQsXG4gIGlucHV0W3R5cGU9XCJ3ZWVrXCJdW2Rpc2FibGVkXSxcbiAgaW5wdXRbdHlwZT1cIndlZWtcIl0uaXMtZGlzYWJsZWQsXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl1bZGlzYWJsZWRdLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLmlzLWRpc2FibGVkLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl1bZGlzYWJsZWRdLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0uaXMtZGlzYWJsZWQsXG4gIGlucHV0W3R5cGU9XCJ1cmxcIl1bZGlzYWJsZWRdLFxuICBpbnB1dFt0eXBlPVwidXJsXCJdLmlzLWRpc2FibGVkLFxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdW2Rpc2FibGVkXSxcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXS5pcy1kaXNhYmxlZCxcbiAgaW5wdXRbdHlwZT1cInRlbFwiXVtkaXNhYmxlZF0sXG4gIGlucHV0W3R5cGU9XCJ0ZWxcIl0uaXMtZGlzYWJsZWQsXG4gIGlucHV0W3R5cGU9XCJjb2xvclwiXVtkaXNhYmxlZF0sXG4gIGlucHV0W3R5cGU9XCJjb2xvclwiXS5pcy1kaXNhYmxlZCxcbiAgc2VsZWN0W2Rpc2FibGVkXSxcbiAgc2VsZWN0LmlzLWRpc2FibGVkLFxuICB0ZXh0YXJlYVtkaXNhYmxlZF0sXG4gIHRleHRhcmVhLmlzLWRpc2FibGVkLFxuICAuZmllbGRbZGlzYWJsZWRdLFxuICAuZmllbGQuaXMtZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2ZjZmNmO1xuICAgIG9wYWNpdHk6IDAuNjsgfVxuICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdW2Rpc2FibGVkXTpmb2N1cywgaW5wdXRbdHlwZT1cInRleHRcIl1bZGlzYWJsZWRdOmFjdGl2ZSwgaW5wdXRbdHlwZT1cInRleHRcIl0uaXMtZGlzYWJsZWQ6Zm9jdXMsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLmlzLWRpc2FibGVkOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl1bZGlzYWJsZWRdOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXVtkaXNhYmxlZF06YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS5pcy1kaXNhYmxlZDpmb2N1cyxcbiAgICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uaXMtZGlzYWJsZWQ6YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXVtkaXNhYmxlZF06Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdW2Rpc2FibGVkXTphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLmlzLWRpc2FibGVkOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXS5pcy1kaXNhYmxlZDphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdW2Rpc2FibGVkXTpmb2N1cyxcbiAgICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl1bZGlzYWJsZWRdOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0uaXMtZGlzYWJsZWQ6Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmlzLWRpc2FibGVkOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwiZGF0ZVwiXVtkaXNhYmxlZF06Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cImRhdGVcIl1bZGlzYWJsZWRdOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5pcy1kaXNhYmxlZDpmb2N1cyxcbiAgICBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5pcy1kaXNhYmxlZDphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdW2Rpc2FibGVkXTpmb2N1cyxcbiAgICBpbnB1dFt0eXBlPVwibW9udGhcIl1bZGlzYWJsZWRdOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwibW9udGhcIl0uaXMtZGlzYWJsZWQ6Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmlzLWRpc2FibGVkOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwidGltZVwiXVtkaXNhYmxlZF06Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cInRpbWVcIl1bZGlzYWJsZWRdOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwidGltZVwiXS5pcy1kaXNhYmxlZDpmb2N1cyxcbiAgICBpbnB1dFt0eXBlPVwidGltZVwiXS5pcy1kaXNhYmxlZDphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cIndlZWtcIl1bZGlzYWJsZWRdOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdW2Rpc2FibGVkXTphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cIndlZWtcIl0uaXMtZGlzYWJsZWQ6Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cIndlZWtcIl0uaXMtZGlzYWJsZWQ6YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl1bZGlzYWJsZWRdOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl1bZGlzYWJsZWRdOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLmlzLWRpc2FibGVkOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0uaXMtZGlzYWJsZWQ6YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXVtkaXNhYmxlZF06Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdW2Rpc2FibGVkXTphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLmlzLWRpc2FibGVkOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXS5pcy1kaXNhYmxlZDphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cInVybFwiXVtkaXNhYmxlZF06Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cInVybFwiXVtkaXNhYmxlZF06YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJ1cmxcIl0uaXMtZGlzYWJsZWQ6Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cInVybFwiXS5pcy1kaXNhYmxlZDphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXVtkaXNhYmxlZF06Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXVtkaXNhYmxlZF06YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0uaXMtZGlzYWJsZWQ6Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXS5pcy1kaXNhYmxlZDphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cInRlbFwiXVtkaXNhYmxlZF06Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cInRlbFwiXVtkaXNhYmxlZF06YWN0aXZlLFxuICAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0uaXMtZGlzYWJsZWQ6Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cInRlbFwiXS5pcy1kaXNhYmxlZDphY3RpdmUsXG4gICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdW2Rpc2FibGVkXTpmb2N1cyxcbiAgICBpbnB1dFt0eXBlPVwiY29sb3JcIl1bZGlzYWJsZWRdOmFjdGl2ZSxcbiAgICBpbnB1dFt0eXBlPVwiY29sb3JcIl0uaXMtZGlzYWJsZWQ6Zm9jdXMsXG4gICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLmlzLWRpc2FibGVkOmFjdGl2ZSxcbiAgICBzZWxlY3RbZGlzYWJsZWRdOmZvY3VzLFxuICAgIHNlbGVjdFtkaXNhYmxlZF06YWN0aXZlLFxuICAgIHNlbGVjdC5pcy1kaXNhYmxlZDpmb2N1cyxcbiAgICBzZWxlY3QuaXMtZGlzYWJsZWQ6YWN0aXZlLFxuICAgIHRleHRhcmVhW2Rpc2FibGVkXTpmb2N1cyxcbiAgICB0ZXh0YXJlYVtkaXNhYmxlZF06YWN0aXZlLFxuICAgIHRleHRhcmVhLmlzLWRpc2FibGVkOmZvY3VzLFxuICAgIHRleHRhcmVhLmlzLWRpc2FibGVkOmFjdGl2ZSxcbiAgICAuZmllbGRbZGlzYWJsZWRdOmZvY3VzLFxuICAgIC5maWVsZFtkaXNhYmxlZF06YWN0aXZlLFxuICAgIC5maWVsZC5pcy1kaXNhYmxlZDpmb2N1cyxcbiAgICAuZmllbGQuaXMtZGlzYWJsZWQ6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkNWVkZjg7IH1cblxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuM2VtOyB9XG5cbnRleHRhcmVhIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyNDBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNWVtOyB9XG5cbnNlbGVjdCB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLyogMSAqL1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUE4QUFBQUhDQVlBQUFEWGhSY25BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRHBFT0VaQ01qWXhNRVl3TlVVeE1VVXlPVEk0UkVaR1FURXpNekEyTURjeU5pSWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEcEVPRVpDTWpZeE1VWXdOVVV4TVVVeU9USTRSRVpHUVRFek16QTJNRGN5TmlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09rUTRSa0l5TmpCRlJqQTFSVEV4UlRJNU1qaEVSa1pCTVRNek1EWXdOekkySWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2tRNFJrSXlOakJHUmpBMVJURXhSVEk1TWpoRVJrWkJNVE16TURZd056STJJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrVnhrcDlnQUFBSTlKUkVGVWVOcGlkSEZ4dWNIQXdLQU94RStBbUptQk1QZ0x4REpBZkpNRlNLd0Q0a3FvQUNsZ0ErUC8vLzhaWEYxZFBhQ0djQktoNlFjUUIrM2V2WHM3V0RNSUFBMlFCMUk3Z0ZnRGowYVFGejJCR2grQU9Fd3dVYURBUXlCbENNUjdjR2pjQzVLSGFRUUJ1TTNJQU9pS1RpQlZoaVRVRGRSVWhxNE9xMmFvQWVsQWFoSVE1d00xenNDbUJpREFBRGhZTUpYVlo5dTlBQUFBQUVsRlRrU3VRbUNDKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogOTcuNSUgY2VudGVyOyB9XG5cbi53cGNmNy1ub3QtdmFsaWQtdGlwIHtcbiAgbWFyZ2luLXRvcDogNnB4O1xuICBjb2xvcjogI2ZjM2IzZDtcbiAgZm9udC1zaXplOiAxLjJlbTsgfVxuXG4ud3BjZjcgZm9ybS5pbnZhbGlkIC53cGNmNy1yZXNwb25zZS1vdXRwdXQsXG4ud3BjZjcgZm9ybS51bmFjY2VwdGVkIC53cGNmNy1yZXNwb25zZS1vdXRwdXQsXG4ud3BjZjcgZm9ybS5wYXltZW50LXJlcXVpcmVkIC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICBib3JkZXItY29sb3I6ICNlODgxYWE7IH1cblxuLndwY2Y3IGZvcm0gc3Bhbi53cGNmNy1ub3QtdmFsaWQtdGlwLFxuLndwY2Y3IGZvcm0gbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZm9udC1zaXplOiAxNnB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC53cGNmNyBmb3JtIHNwYW4ud3BjZjctbm90LXZhbGlkLXRpcCxcbiAgICAud3BjZjcgZm9ybSBsYWJlbCB7XG4gICAgICBmb250LXNpemU6IDIwcHg7IH0gfVxuXG4ud3BjZjcgZm9ybSBzcGFuLndwY2Y3LW5vdC12YWxpZC10aXAge1xuICBjb2xvcjogI2ZjM2IzZDsgfVxuXG4ud3BjZjcgZm9ybSAud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcbiAgYm9yZGVyLWNvbG9yOiAjZTg4MWFhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTg4MWFhO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxLjZlbTtcbiAgbWFyZ2luOiA0NXB4IDAgMCAwO1xuICBwYWRkaW5nOiAxMHB4OyB9XG5cbi53cGNmNyBmb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOjpwbGFjZWhvbGRlcixcbi53cGNmNyBmb3JtIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTo6cGxhY2Vob2xkZXIsXG4ud3BjZjcgZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06OnBsYWNlaG9sZGVyLFxuLndwY2Y3IGZvcm0gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOjpwbGFjZWhvbGRlcixcbi53cGNmNyBmb3JtIGlucHV0W3R5cGU9XCJkYXRlXCJdOjpwbGFjZWhvbGRlcixcbi53cGNmNyBmb3JtIGlucHV0W3R5cGU9XCJtb250aFwiXTo6cGxhY2Vob2xkZXIsXG4ud3BjZjcgZm9ybSBpbnB1dFt0eXBlPVwidGltZVwiXTo6cGxhY2Vob2xkZXIsXG4ud3BjZjcgZm9ybSBpbnB1dFt0eXBlPVwid2Vla1wiXTo6cGxhY2Vob2xkZXIsXG4ud3BjZjcgZm9ybSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjpwbGFjZWhvbGRlcixcbi53cGNmNyBmb3JtIGlucHV0W3R5cGU9XCJlbWFpbFwiXTo6cGxhY2Vob2xkZXIsXG4ud3BjZjcgZm9ybSBpbnB1dFt0eXBlPVwidXJsXCJdOjpwbGFjZWhvbGRlcixcbi53cGNmNyBmb3JtIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06OnBsYWNlaG9sZGVyLFxuLndwY2Y3IGZvcm0gaW5wdXRbdHlwZT1cInRlbFwiXTo6cGxhY2Vob2xkZXIsXG4ud3BjZjcgZm9ybSBpbnB1dFt0eXBlPVwiY29sb3JcIl06OnBsYWNlaG9sZGVyLFxuLndwY2Y3IGZvcm0gc2VsZWN0OjpwbGFjZWhvbGRlcixcbi53cGNmNyBmb3JtIHRleHRhcmVhOjpwbGFjZWhvbGRlcixcbi53cGNmNyBmb3JtIC5maWVsZDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzAwMDAwMDsgfVxuXG4ud3BjZjcgZm9ybS5zZW50IC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICBib3JkZXItY29sb3I6ICMxYWIzNDc7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYWIzNDc7IH1cblxuLyohXG4gKiBIYW1idXJnZXJzXG4gKiBAZGVzY3JpcHRpb24gVGFzdHkgQ1NTLWFuaW1hdGVkIGhhbWJ1cmdlcnNcbiAqIEBhdXRob3IgSm9uYXRoYW4gU3VoIEBqb25zdWhcbiAqIEBzaXRlIGh0dHBzOi8vam9uc3VoLmNvbS9oYW1idXJnZXJzXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vam9uc3VoL2hhbWJ1cmdlcnNcbiAqL1xuLmhhbWJ1cmdlciB7XG4gIHBhZGRpbmc6IDEycHggMTJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIGZpbHRlcjtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuICAuaGFtYnVyZ2VyOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjc7IH1cbiAgLmhhbWJ1cmdlci5pcy1hY3RpdmU6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNzsgfVxuICAuaGFtYnVyZ2VyLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyLFxuICAuaGFtYnVyZ2VyLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsXG4gIC5oYW1idXJnZXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbi5oYW1idXJnZXItYm94IHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmhhbWJ1cmdlci1pbm5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTFweDsgfVxuICAuaGFtYnVyZ2VyLWlubmVyLCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTsgfVxuICAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAtNXB4OyB9XG4gIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBib3R0b206IC01cHg7IH1cblxuLypcbiAgICogM0RYXG4gICAqL1xuLmhhbWJ1cmdlci0tM2R4IC5oYW1idXJnZXItYm94IHtcbiAgcGVyc3BlY3RpdmU6IDQwcHg7IH1cblxuLmhhbWJ1cmdlci0tM2R4IC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLTNkeCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLTNkeCAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG5cbi5oYW1idXJnZXItLTNkeC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgxODBkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKDQ1ZGVnKTsgfVxuICAuaGFtYnVyZ2VyLS0zZHguaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApIHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi8qXG4gICAqIDNEWCBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tM2R4LXIgLmhhbWJ1cmdlci1ib3gge1xuICBwZXJzcGVjdGl2ZTogNDBweDsgfVxuXG4uaGFtYnVyZ2VyLS0zZHgtciAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSwgYmFja2dyb3VuZC1jb2xvciAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuICAuaGFtYnVyZ2VyLS0zZHgtciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLTNkeC1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMHMgMC4xcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7IH1cblxuLmhhbWJ1cmdlci0tM2R4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tM2R4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApIHJvdGF0ZSg0NWRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tM2R4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApIHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi8qXG4gICAqIDNEWVxuICAgKi9cbi5oYW1idXJnZXItLTNkeSAuaGFtYnVyZ2VyLWJveCB7XG4gIHBlcnNwZWN0aXZlOiA0MHB4OyB9XG5cbi5oYW1idXJnZXItLTNkeSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKSwgYmFja2dyb3VuZC1jb2xvciAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuICAuaGFtYnVyZ2VyLS0zZHkgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCAuaGFtYnVyZ2VyLS0zZHkgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS0zZHkuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHJvdGF0ZVgoLTE4MGRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tM2R5LmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKSByb3RhdGUoNDVkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeS5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCkgcm90YXRlKC00NWRlZyk7IH1cblxuLypcbiAgICogM0RZIFJldmVyc2VcbiAgICovXG4uaGFtYnVyZ2VyLS0zZHktciAuaGFtYnVyZ2VyLWJveCB7XG4gIHBlcnNwZWN0aXZlOiA0MHB4OyB9XG5cbi5oYW1idXJnZXItLTNkeS1yIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLTNkeS1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSwgLmhhbWJ1cmdlci0tM2R5LXIgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS0zZHktci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeS1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKSByb3RhdGUoNDVkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeS1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKSByb3RhdGUoLTQ1ZGVnKTsgfVxuXG4vKlxuICAgKiAzRFhZXG4gICAqL1xuLmhhbWJ1cmdlci0tM2R4eSAuaGFtYnVyZ2VyLWJveCB7XG4gIHBlcnNwZWN0aXZlOiA0MHB4OyB9XG5cbi5oYW1idXJnZXItLTNkeHkgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSksIGJhY2tncm91bmQtY29sb3IgMHMgMC4xcyBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tM2R4eSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLTNkeHkgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwcyAwLjFzIGN1YmljLWJlemllcigwLjY0NSwgMC4wNDUsIDAuMzU1LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS0zZHh5LmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZykgcm90YXRlWSgxODBkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeHkuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApIHJvdGF0ZSg0NWRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tM2R4eS5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCkgcm90YXRlKC00NWRlZyk7IH1cblxuLypcbiAgICogM0RYWSBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tM2R4eS1yIC5oYW1idXJnZXItYm94IHtcbiAgcGVyc3BlY3RpdmU6IDQwcHg7IH1cblxuLmhhbWJ1cmdlci0tM2R4eS1yIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLTNkeHktciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLTNkeHktciAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDBzIDAuMXMgY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpOyB9XG5cbi5oYW1idXJnZXItLTNkeHktci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZVkoMTgwZGVnKSByb3RhdGVaKC0xODBkZWcpOyB9XG4gIC5oYW1idXJnZXItLTNkeHktci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKDQ1ZGVnKTsgfVxuICAuaGFtYnVyZ2VyLS0zZHh5LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApIHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi8qXG4gICAqIEFycm93XG4gICAqL1xuLmhhbWJ1cmdlci0tYXJyb3cuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTRweCwgMCwgMCkgcm90YXRlKC00NWRlZykgc2NhbGUoMC43LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS1hcnJvdy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00cHgsIDAsIDApIHJvdGF0ZSg0NWRlZykgc2NhbGUoMC43LCAxKTsgfVxuXG4vKlxuICAgKiBBcnJvdyBSaWdodFxuICAgKi9cbi5oYW1idXJnZXItLWFycm93LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNHB4LCAwLCAwKSByb3RhdGUoNDVkZWcpIHNjYWxlKDAuNywgMSk7IH1cblxuLmhhbWJ1cmdlci0tYXJyb3ctci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDRweCwgMCwgMCkgcm90YXRlKC00NWRlZykgc2NhbGUoMC43LCAxKTsgfVxuXG4vKlxuICAgKiBBcnJvdyBBbHRcbiAgICovXG4uaGFtYnVyZ2VyLS1hcnJvd2FsdCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uOiB0b3AgMC4xcyAwLjFzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7IH1cblxuLmhhbWJ1cmdlci0tYXJyb3dhbHQgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uOiBib3R0b20gMC4xcyAwLjFzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7IH1cblxuLmhhbWJ1cmdlci0tYXJyb3dhbHQuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRvcDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNHB4LCAtNXB4LCAwKSByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwLjcsIDEpO1xuICB0cmFuc2l0aW9uOiB0b3AgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyAwLjFzIGN1YmljLWJlemllcigwLjg5NSwgMC4wMywgMC42ODUsIDAuMjIpOyB9XG5cbi5oYW1idXJnZXItLWFycm93YWx0LmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNHB4LCA1cHgsIDApIHJvdGF0ZSg0NWRlZykgc2NhbGUoMC43LCAxKTtcbiAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgMC4xcyBjdWJpYy1iZXppZXIoMC44OTUsIDAuMDMsIDAuNjg1LCAwLjIyKTsgfVxuXG4vKlxuICAgKiBBcnJvdyBBbHQgUmlnaHRcbiAgICovXG4uaGFtYnVyZ2VyLS1hcnJvd2FsdC1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKTsgfVxuXG4uaGFtYnVyZ2VyLS1hcnJvd2FsdC1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpOyB9XG5cbi5oYW1idXJnZXItLWFycm93YWx0LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRvcDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0cHgsIC01cHgsIDApIHJvdGF0ZSg0NWRlZykgc2NhbGUoMC43LCAxKTtcbiAgdHJhbnNpdGlvbjogdG9wIDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgMC4xcyBjdWJpYy1iZXppZXIoMC44OTUsIDAuMDMsIDAuNjg1LCAwLjIyKTsgfVxuXG4uaGFtYnVyZ2VyLS1hcnJvd2FsdC1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0cHgsIDVweCwgMCkgcm90YXRlKC00NWRlZykgc2NhbGUoMC43LCAxKTtcbiAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgMC4xcyBjdWJpYy1iZXppZXIoMC44OTUsIDAuMDMsIDAuNjg1LCAwLjIyKTsgfVxuXG4vKlxuICAgKiBBcnJvdyBUdXJuXG4gICAqL1xuLmhhbWJ1cmdlci0tYXJyb3d0dXJuLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tYXJyb3d0dXJuLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoOHB4LCAwLCAwKSByb3RhdGUoNDVkZWcpIHNjYWxlKDAuNywgMSk7IH1cbiAgLmhhbWJ1cmdlci0tYXJyb3d0dXJuLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg4cHgsIDAsIDApIHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDAuNywgMSk7IH1cblxuLypcbiAgICogQXJyb3cgVHVybiBSaWdodFxuICAgKi9cbi5oYW1idXJnZXItLWFycm93dHVybi1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tYXJyb3d0dXJuLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtOHB4LCAwLCAwKSByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwLjcsIDEpOyB9XG4gIC5oYW1idXJnZXItLWFycm93dHVybi1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtOHB4LCAwLCAwKSByb3RhdGUoNDVkZWcpIHNjYWxlKDAuNywgMSk7IH1cblxuLypcbiAgICogQm9yaW5nXG4gICAqL1xuLmhhbWJ1cmdlci0tYm9yaW5nIC5oYW1idXJnZXItaW5uZXIsIC5oYW1idXJnZXItLWJvcmluZyAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLWJvcmluZyAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IH1cblxuLmhhbWJ1cmdlci0tYm9yaW5nLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG4gIC5oYW1idXJnZXItLWJvcmluZy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuaGFtYnVyZ2VyLS1ib3JpbmcuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsgfVxuXG4vKlxuICAgKiBDb2xsYXBzZVxuICAgKi9cbi5oYW1idXJnZXItLWNvbGxhcHNlIC5oYW1idXJnZXItaW5uZXIge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xM3M7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMTNzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cbiAgLmhhbWJ1cmdlci0tY29sbGFwc2UgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRvcDogLTEwcHg7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksIG9wYWNpdHkgMC4xcyBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tY29sbGFwc2UgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4xMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksIHRyYW5zZm9ybSAwLjEzcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuXG4uaGFtYnVyZ2VyLS1jb2xsYXBzZS5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCkgcm90YXRlKC00NWRlZyk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tY29sbGFwc2UuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksIG9wYWNpdHkgMC4xcyAwLjIycyBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tY29sbGFwc2UuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4xNnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAsIDAuNjY2NjcsIDAuMzMzMzMpLCB0cmFuc2Zvcm0gMC4xM3MgMC4yNXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cblxuLypcbiAgICogQ29sbGFwc2UgUmV2ZXJzZVxuICAgKi9cbi5oYW1idXJnZXItLWNvbGxhcHNlLXIgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjEzcztcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4xM3M7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuICAuaGFtYnVyZ2VyLS1jb2xsYXBzZS1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IC0xMHB4O1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLCBvcGFjaXR5IDAuMXMgbGluZWFyOyB9XG4gIC5oYW1idXJnZXItLWNvbGxhcHNlLXIgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4xMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksIHRyYW5zZm9ybSAwLjEzcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuXG4uaGFtYnVyZ2VyLS1jb2xsYXBzZS1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKSByb3RhdGUoNDVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjIycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLWNvbGxhcHNlLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksIG9wYWNpdHkgMC4xcyAwLjIycyBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tY29sbGFwc2Utci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMTZzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgdHJhbnNmb3JtIDAuMTNzIDAuMjVzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi8qXG4gICAqIEVsYXN0aWNcbiAgICovXG4uaGFtYnVyZ2VyLS1lbGFzdGljIC5oYW1idXJnZXItaW5uZXIge1xuICB0b3A6IDFweDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yNzVzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI2NSwgMS41NSk7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYyAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogNXB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xMjVzIDAuMjc1cyBlYXNlOyB9XG4gIC5oYW1idXJnZXItLWVsYXN0aWMgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRvcDogMTBweDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNzVzIGN1YmljLWJlemllcigwLjY4LCAtMC41NSwgMC4yNjUsIDEuNTUpOyB9XG5cbi5oYW1idXJnZXItLWVsYXN0aWMuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKDEzNWRlZyk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMDc1czsgfVxuICAuaGFtYnVyZ2VyLS1lbGFzdGljLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApIHJvdGF0ZSgtMjcwZGVnKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjA3NXM7IH1cblxuLypcbiAgICogRWxhc3RpYyBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tZWxhc3RpYy1yIC5oYW1idXJnZXItaW5uZXIge1xuICB0b3A6IDFweDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yNzVzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI2NSwgMS41NSk7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiA1cHg7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjEyNXMgMC4yNzVzIGVhc2U7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjc1cyBjdWJpYy1iZXppZXIoMC42OCwgLTAuNTUsIDAuMjY1LCAxLjU1KTsgfVxuXG4uaGFtYnVyZ2VyLS1lbGFzdGljLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKC0xMzVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjA3NXM7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmhhbWJ1cmdlci0tZWxhc3RpYy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCkgcm90YXRlKDI3MGRlZyk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4wNzVzOyB9XG5cbi8qXG4gICAqIEVtcGhhdGljXG4gICAqL1xuLmhhbWJ1cmdlci0tZW1waGF0aWMge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5oYW1idXJnZXItLWVtcGhhdGljIC5oYW1idXJnZXItaW5uZXIge1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xMjVzIDAuMTc1cyBlYXNlLWluOyB9XG4gICAgLmhhbWJ1cmdlci0tZW1waGF0aWMgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xMjVzIGN1YmljLWJlemllcigwLjYsIDAuMDQsIDAuOTgsIDAuMzM1KSwgdG9wIDAuMDVzIDAuMTI1cyBsaW5lYXIsIGxlZnQgMC4xMjVzIDAuMTc1cyBlYXNlLWluOyB9XG4gICAgLmhhbWJ1cmdlci0tZW1waGF0aWMgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgICAgdG9wOiA1cHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjEyNXMgY3ViaWMtYmV6aWVyKDAuNiwgMC4wNCwgMC45OCwgMC4zMzUpLCB0b3AgMC4wNXMgMC4xMjVzIGxpbmVhciwgcmlnaHQgMC4xMjVzIDAuMTc1cyBlYXNlLWluOyB9XG4gIC5oYW1idXJnZXItLWVtcGhhdGljLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAgIC5oYW1idXJnZXItLWVtcGhhdGljLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogLTQwcHg7XG4gICAgICB0b3A6IC00MHB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0MHB4LCA0MHB4LCAwKSByb3RhdGUoNDVkZWcpO1xuICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjEyNXMgZWFzZS1vdXQsIHRvcCAwLjA1cyAwLjEyNXMgbGluZWFyLCB0cmFuc2Zvcm0gMC4xMjVzIDAuMTc1cyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTsgfVxuICAgIC5oYW1idXJnZXItLWVtcGhhdGljLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgICByaWdodDogLTQwcHg7XG4gICAgICB0b3A6IC00MHB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNDBweCwgNDBweCwgMCkgcm90YXRlKC00NWRlZyk7XG4gICAgICB0cmFuc2l0aW9uOiByaWdodCAwLjEyNXMgZWFzZS1vdXQsIHRvcCAwLjA1cyAwLjEyNXMgbGluZWFyLCB0cmFuc2Zvcm0gMC4xMjVzIDAuMTc1cyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTsgfVxuXG4vKlxuICAgKiBFbXBoYXRpYyBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tZW1waGF0aWMtciB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmhhbWJ1cmdlci0tZW1waGF0aWMtciAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTI1cyAwLjE3NXMgZWFzZS1pbjsgfVxuICAgIC5oYW1idXJnZXItLWVtcGhhdGljLXIgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xMjVzIGN1YmljLWJlemllcigwLjYsIDAuMDQsIDAuOTgsIDAuMzM1KSwgdG9wIDAuMDVzIDAuMTI1cyBsaW5lYXIsIGxlZnQgMC4xMjVzIDAuMTc1cyBlYXNlLWluOyB9XG4gICAgLmhhbWJ1cmdlci0tZW1waGF0aWMtciAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgICB0b3A6IDVweDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTI1cyBjdWJpYy1iZXppZXIoMC42LCAwLjA0LCAwLjk4LCAwLjMzNSksIHRvcCAwLjA1cyAwLjEyNXMgbGluZWFyLCByaWdodCAwLjEyNXMgMC4xNzVzIGVhc2UtaW47IH1cbiAgLmhhbWJ1cmdlci0tZW1waGF0aWMtci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cbiAgICAuaGFtYnVyZ2VyLS1lbXBoYXRpYy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgICAgbGVmdDogLTQwcHg7XG4gICAgICB0b3A6IDQwcHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDQwcHgsIC00MHB4LCAwKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIHRyYW5zaXRpb246IGxlZnQgMC4xMjVzIGVhc2Utb3V0LCB0b3AgMC4wNXMgMC4xMjVzIGxpbmVhciwgdHJhbnNmb3JtIDAuMTI1cyAwLjE3NXMgY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyLCAwLjE2NSwgMSk7IH1cbiAgICAuaGFtYnVyZ2VyLS1lbXBoYXRpYy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgICByaWdodDogLTQwcHg7XG4gICAgICB0b3A6IDQwcHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00MHB4LCAtNDBweCwgMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgIHRyYW5zaXRpb246IHJpZ2h0IDAuMTI1cyBlYXNlLW91dCwgdG9wIDAuMDVzIDAuMTI1cyBsaW5lYXIsIHRyYW5zZm9ybSAwLjEyNXMgMC4xNzVzIGN1YmljLWJlemllcigwLjA3NSwgMC44MiwgMC4xNjUsIDEpOyB9XG5cbi8qXG4gICAqIE1pbnVzXG4gICAqL1xuLmhhbWJ1cmdlci0tbWludXMgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCAuaGFtYnVyZ2VyLS1taW51cyAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIHRyYW5zaXRpb246IGJvdHRvbSAwLjA4cyAwcyBlYXNlLW91dCwgdG9wIDAuMDhzIDBzIGVhc2Utb3V0LCBvcGFjaXR5IDBzIGxpbmVhcjsgfVxuXG4uaGFtYnVyZ2VyLS1taW51cy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCAuaGFtYnVyZ2VyLS1taW51cy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBib3R0b20gMC4wOHMgZWFzZS1vdXQsIHRvcCAwLjA4cyBlYXNlLW91dCwgb3BhY2l0eSAwcyAwLjA4cyBsaW5lYXI7IH1cblxuLmhhbWJ1cmdlci0tbWludXMuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRvcDogMDsgfVxuXG4uaGFtYnVyZ2VyLS1taW51cy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICBib3R0b206IDA7IH1cblxuLypcbiAgICogU2xpZGVyXG4gICAqL1xuLmhhbWJ1cmdlci0tc2xpZGVyIC5oYW1idXJnZXItaW5uZXIge1xuICB0b3A6IDFweDsgfVxuICAuaGFtYnVyZ2VyLS1zbGlkZXIgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDVweDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7IH1cbiAgLmhhbWJ1cmdlci0tc2xpZGVyIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDEwcHg7IH1cblxuLmhhbWJ1cmdlci0tc2xpZGVyLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApIHJvdGF0ZSg0NWRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tc2xpZGVyLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoLTIuODU3MTQyODU3MXB4LCAtM3B4LCAwKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5oYW1idXJnZXItLXNsaWRlci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApIHJvdGF0ZSgtOTBkZWcpOyB9XG5cbi8qXG4gICAqIFNsaWRlciBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tc2xpZGVyLXIgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRvcDogMXB4OyB9XG4gIC5oYW1idXJnZXItLXNsaWRlci1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiA1cHg7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzOyB9XG4gIC5oYW1idXJnZXItLXNsaWRlci1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDEwcHg7IH1cblxuLmhhbWJ1cmdlci0tc2xpZGVyLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKC00NWRlZyk7IH1cbiAgLmhhbWJ1cmdlci0tc2xpZGVyLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDIuODU3MTQyODU3MXB4LCAtM3B4LCAwKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5oYW1idXJnZXItLXNsaWRlci1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCkgcm90YXRlKDkwZGVnKTsgfVxuXG4vKlxuICAgKiBTcGluXG4gICAqL1xuLmhhbWJ1cmdlci0tc3BpbiAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuICAuaGFtYnVyZ2VyLS1zcGluIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4yNXMgZWFzZS1pbiwgb3BhY2l0eSAwLjFzIGVhc2UtaW47IH1cbiAgLmhhbWJ1cmdlci0tc3BpbiAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgMC4yNXMgZWFzZS1pbiwgdHJhbnNmb3JtIDAuMjJzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpOyB9XG5cbi5oYW1idXJnZXItLXNwaW4uaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjEycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLXNwaW4uaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgZWFzZS1vdXQsIG9wYWNpdHkgMC4xcyAwLjEycyBlYXNlLW91dDsgfVxuICAuaGFtYnVyZ2VyLS1zcGluLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgYm90dG9tOiAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMXMgZWFzZS1vdXQsIHRyYW5zZm9ybSAwLjIycyAwLjEycyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTsgfVxuXG4vKlxuICAgKiBTcGluIFJldmVyc2VcbiAgICovXG4uaGFtYnVyZ2VyLS1zcGluLXIgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cbiAgLmhhbWJ1cmdlci0tc3Bpbi1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMXMgMC4yNXMgZWFzZS1pbiwgb3BhY2l0eSAwLjFzIGVhc2UtaW47IH1cbiAgLmhhbWJ1cmdlci0tc3Bpbi1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4xcyAwLjI1cyBlYXNlLWluLCB0cmFuc2Zvcm0gMC4yMnMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cblxuLmhhbWJ1cmdlci0tc3Bpbi1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTIyNWRlZyk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMTJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tc3Bpbi1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMXMgMC4xMnMgZWFzZS1vdXQ7IH1cbiAgLmhhbWJ1cmdlci0tc3Bpbi1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgYm90dG9tOiAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4xcyBlYXNlLW91dCwgdHJhbnNmb3JtIDAuMjJzIDAuMTJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi8qXG4gICAqIFNwcmluZ1xuICAgKi9cbi5oYW1idXJnZXItLXNwcmluZyAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdG9wOiAxcHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMHMgMC4xM3MgbGluZWFyOyB9XG4gIC5oYW1idXJnZXItLXNwcmluZyAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogNXB4O1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLCB0cmFuc2Zvcm0gMC4xM3MgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cbiAgLmhhbWJ1cmdlci0tc3ByaW5nIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksIHRyYW5zZm9ybSAwLjEzcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuXG4uaGFtYnVyZ2VyLS1zcHJpbmcuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjIycztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAuaGFtYnVyZ2VyLS1zcHJpbmcuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMTVzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgdHJhbnNmb3JtIDAuMTNzIDAuMjJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKSByb3RhdGUoNDVkZWcpOyB9XG4gIC5oYW1idXJnZXItLXNwcmluZy5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4ycyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksIHRyYW5zZm9ybSAwLjEzcyAwLjIycyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKC00NWRlZyk7IH1cblxuLypcbiAgICogU3ByaW5nIFJldmVyc2VcbiAgICovXG4uaGFtYnVyZ2VyLS1zcHJpbmctciAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDA7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTNzO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpOyB9XG4gIC5oYW1idXJnZXItLXNwcmluZy1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0b3A6IC0xMHB4O1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjJzIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLCBvcGFjaXR5IDBzIGxpbmVhcjsgfVxuICAuaGFtYnVyZ2VyLS1zcHJpbmctciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLCB0cmFuc2Zvcm0gMC4xM3MgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cblxuLmhhbWJ1cmdlci0tc3ByaW5nLXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApIHJvdGF0ZSgtNDVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjIycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLXNwcmluZy1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdG9wOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAsIDAuNjY2NjcsIDAuMzMzMzMpLCBvcGFjaXR5IDBzIDAuMjJzIGxpbmVhcjsgfVxuICAuaGFtYnVyZ2VyLS1zcHJpbmctci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjFzIDAuMTVzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgdHJhbnNmb3JtIDAuMTNzIDAuMjJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi8qXG4gICAqIFN0YW5kXG4gICAqL1xuLmhhbWJ1cmdlci0tc3RhbmQgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA3NXMgMC4xNXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSksIGJhY2tncm91bmQtY29sb3IgMHMgMC4wNzVzIGxpbmVhcjsgfVxuICAuaGFtYnVyZ2VyLS1zdGFuZCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjA3NXMgMC4wNzVzIGVhc2UtaW4sIHRyYW5zZm9ybSAwLjA3NXMgMHMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cbiAgLmhhbWJ1cmdlci0tc3RhbmQgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IGJvdHRvbSAwLjA3NXMgMC4wNzVzIGVhc2UtaW4sIHRyYW5zZm9ybSAwLjA3NXMgMHMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cblxuLmhhbWJ1cmdlci0tc3RhbmQuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA3NXMgMHMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSksIGJhY2tncm91bmQtY29sb3IgMHMgMC4xNXMgbGluZWFyOyB9XG4gIC5oYW1idXJnZXItLXN0YW5kLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjA3NXMgMC4xcyBlYXNlLW91dCwgdHJhbnNmb3JtIDAuMDc1cyAwLjE1cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTsgfVxuICAuaGFtYnVyZ2VyLS1zdGFuZC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMDc1cyAwLjFzIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMC4wNzVzIDAuMTVzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi8qXG4gICAqIFN0YW5kIFJldmVyc2VcbiAgICovXG4uaGFtYnVyZ2VyLS1zdGFuZC1yIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4wNzVzIDAuMTVzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpLCBiYWNrZ3JvdW5kLWNvbG9yIDBzIDAuMDc1cyBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tc3RhbmQtciAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjA3NXMgMC4wNzVzIGVhc2UtaW4sIHRyYW5zZm9ybSAwLjA3NXMgMHMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7IH1cbiAgLmhhbWJ1cmdlci0tc3RhbmQtciAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMDc1cyAwLjA3NXMgZWFzZS1pbiwgdHJhbnNmb3JtIDAuMDc1cyAwcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuXG4uaGFtYnVyZ2VyLS1zdGFuZC1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMDc1cyAwcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSwgYmFja2dyb3VuZC1jb2xvciAwcyAwLjE1cyBsaW5lYXI7IH1cbiAgLmhhbWJ1cmdlci0tc3RhbmQtci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC4wNzVzIDAuMXMgZWFzZS1vdXQsIHRyYW5zZm9ybSAwLjA3NXMgMC4xNXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tc3RhbmQtci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDAuMDc1cyAwLjFzIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMC4wNzVzIDAuMTVzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG5cbi8qXG4gICAqIFNxdWVlemVcbiAgICovXG4uaGFtYnVyZ2VyLS1zcXVlZXplIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjA3NXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuICAuaGFtYnVyZ2VyLS1zcXVlZXplIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMDc1cyAwLjEycyBlYXNlLCBvcGFjaXR5IDAuMDc1cyBlYXNlOyB9XG4gIC5oYW1idXJnZXItLXNxdWVlemUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb246IGJvdHRvbSAwLjA3NXMgMC4xMnMgZWFzZSwgdHJhbnNmb3JtIDAuMDc1cyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTsgfVxuXG4uaGFtYnVyZ2VyLS1zcXVlZXplLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjEycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpOyB9XG4gIC5oYW1idXJnZXItLXNxdWVlemUuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuMDc1cyBlYXNlLCBvcGFjaXR5IDAuMDc1cyAwLjEycyBlYXNlOyB9XG4gIC5oYW1idXJnZXItLXNxdWVlemUuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gMC4wNzVzIGVhc2UsIHRyYW5zZm9ybSAwLjA3NXMgMC4xMnMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7IH1cblxuLypcbiAgICogVm9ydGV4XG4gICAqL1xuLmhhbWJ1cmdlci0tdm9ydGV4IC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpOyB9XG4gIC5oYW1idXJnZXItLXZvcnRleCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLXZvcnRleCAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4xcztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XG4gIC5oYW1idXJnZXItLXZvcnRleCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRvcCwgb3BhY2l0eTsgfVxuICAuaGFtYnVyZ2VyLS12b3J0ZXggLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvdHRvbSwgdHJhbnNmb3JtOyB9XG5cbi5oYW1idXJnZXItLXZvcnRleC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDc2NWRlZyk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4LmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLXZvcnRleC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzOyB9XG4gIC5oYW1idXJnZXItLXZvcnRleC5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuaGFtYnVyZ2VyLS12b3J0ZXguaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XG5cbi8qXG4gICAqIFZvcnRleCBSZXZlcnNlXG4gICAqL1xuLmhhbWJ1cmdlci0tdm9ydGV4LXIgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4LXIgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCAuaGFtYnVyZ2VyLS12b3J0ZXgtciAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4xcztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XG4gIC5oYW1idXJnZXItLXZvcnRleC1yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdG9wLCBvcGFjaXR5OyB9XG4gIC5oYW1idXJnZXItLXZvcnRleC1yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBib3R0b20sIHRyYW5zZm9ybTsgfVxuXG4uaGFtYnVyZ2VyLS12b3J0ZXgtci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC03NjVkZWcpO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpOyB9XG4gIC5oYW1idXJnZXItLXZvcnRleC1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItLXZvcnRleC1yLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gICAgdG9wOiAwO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmhhbWJ1cmdlci0tdm9ydGV4LXIuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsgfVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5CQVNFIChNT0JJTEUpIFNJWkVcblRoaXMgYXJlIHRoZSBtb2JpbGUgc3R5bGVzLiBJdCdzIHdoYXQgcGVvcGxlIHNlZSBvbiB0aGVpciBwaG9uZXMuIElmXG55b3Ugc2V0IGEgZ3JlYXQgZm91bmRhdGlvbiwgeW91IHdvbid0IG5lZWQgdG8gYWRkIHRvbyBtYW55IHN0eWxlcyBpblxudGhlIG90aGVyIHN0eWxlc2hlZXRzLiBSZW1lbWJlciwga2VlcCBpdCBsaWdodDogU3BlZWQgaXMgSW1wb3J0YW50LlxuKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuU2l0ZSBOYW1lOlxuQXV0aG9yOlxuXG5TdHlsZXNoZWV0OiBCYXNlIE1vYmlsZSBTdHlsZXNoZWV0XG5cbkJlIGxpZ2h0IGFuZCBkb24ndCBvdmVyIHN0eWxlIHNpbmNlIGV2ZXJ5dGhpbmcgaGVyZSB3aWxsIGJlXG5sb2FkZWQgYnkgbW9iaWxlIGRldmljZXMuIFlvdSB3YW50IHRvIGtlZXAgaXQgYXMgbWluaW1hbCBhc1xucG9zc2libGUuIFRoaXMgaXMgY2FsbGVkIGF0IHRoZSB0b3Agb2YgdGhlIG1haW4gc3R5bHNoZWV0XG5hbmQgd2lsbCBiZSB1c2VkIGFjcm9zcyBhbGwgdmlld3BvcnRzLlxuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqXG5HRU5FUkFMIFNUWUxFU1xuKioqKioqKioqKioqKioqKioqKioqL1xuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBtb250c2VycmF0LCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNjIuNSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjNWM2YjgwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTsgfVxuXG4udWstc3RpY2t5LXBsYWNlaG9sZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTsgfVxuXG4ud3JhcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAzNnB4O1xuICBtYXgtd2lkdGg6IDE0NDBweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAud3JhcCB7XG4gICAgICBwYWRkaW5nOiAwIDQ1cHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLndyYXAge1xuICAgICAgcGFkZGluZzogMCA5MHB4OyB9XG4gICAgICAud3JhcC5uby1wYWRkaW5nIHtcbiAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gIC53cmFwLndyYXAtc21hbGwge1xuICAgIG1heC13aWR0aDogMTA0MHB4OyB9XG4gIC53cmFwLndyYXAtbWVkaXVtIHtcbiAgICBtYXgtd2lkdGg6IDEyNDBweDsgfVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5MSU5LIFNUWUxFU1xuKioqKioqKioqKioqKioqKioqKioqL1xuYnV0dG9uOmhvdmVyLFxuYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG5hLFxuYTp2aXNpdGVkIHtcbiAgY29sb3I6ICNmMDFkNGY7XG4gIC8qIG9uIGhvdmVyICovXG4gIC8qIG9uIGNsaWNrICovXG4gIC8qIG1vYmlsZSB0YXAgY29sb3IgKi8gfVxuICBhOmhvdmVyLCBhOmZvY3VzLCBhOnZpc2l0ZWQ6aG92ZXIsIGE6dmlzaXRlZDpmb2N1cyB7XG4gICAgY29sb3I6ICNkMTBlM2M7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgYTpsaW5rLCBhOnZpc2l0ZWQ6bGluayB7XG4gICAgLypcblx0XHR0aGlzIGhpZ2hsaWdodHMgbGlua3Mgb24gaVBob25lcy9pUGFkcy5cblx0XHRzbyBpdCBiYXNpY2FsbHkgd29ya3MgbGlrZSB0aGUgOmhvdmVyIHNlbGVjdG9yXG5cdFx0Zm9yIG1vYmlsZSBkZXZpY2VzLlxuXHRcdCovXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuSDEsIEgyLCBIMywgSDQsIEg1IFNUWUxFU1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaDEsIC5oMSwgaDIsIC5oMiwgaDMsIC5oMywgaDQsIC5oNCwgaDUsIC5oNSB7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZWxlZ2liaWxpdHk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIC8qXG5cdGlmIHlvdSdyZSBnb2luZyB0byB1c2Ugd2ViZm9udHMsIGJlIHN1cmUgdG8gY2hlY2sgeW91ciB3ZWlnaHRzXG5cdGh0dHA6Ly9jc3MtdHJpY2tzLmNvbS93YXRjaC15b3VyLWZvbnQtd2VpZ2h0L1xuXHQqL1xuICAvKiByZW1vdmluZyB0ZXh0IGRlY29yYXRpb24gZnJvbSBhbGwgaGVhZGxpbmUgbGlua3MgKi8gfVxuICBoMSBhLCAuaDEgYSwgaDIgYSwgLmgyIGEsIGgzIGEsIC5oMyBhLCBoNCBhLCAuaDQgYSwgaDUgYSwgLmg1IGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5oMSwgLmgxIHtcbiAgZm9udC1zaXplOiAyLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMmVtOyB9XG5cbmgyLCAuaDIge1xuICBmb250LXNpemU6IDEuNzVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjM3NWVtOyB9XG5cbmgzLCAuaDMge1xuICBmb250LXNpemU6IDEuMTI1ZW07IH1cblxuaDQsIC5oNCB7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuaDUsIC5oNSB7XG4gIGZvbnQtc2l6ZTogMC44NDZlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMDllbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDsgfVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5IRUFERVIgU1RZTEVTXG4qKioqKioqKioqKioqKioqKioqKiovXG4udWstbW9kYWwtY2xvc2UtZGVmYXVsdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNzBweDtcbiAgaGVpZ2h0OiA3MHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZS5zdmcpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTNweCAtMTg1cHg7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC41LCAwLjUpOyB9XG4gIC51ay1tb2RhbC1jbG9zZS1kZWZhdWx0IHN2ZyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAudWstbW9kYWwtY2xvc2UtZGVmYXVsdCB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuICAgICAgdG9wOiAzMHB4O1xuICAgICAgcmlnaHQ6IDMwcHg7IH0gfVxuICAudWstbW9kYWwtY2xvc2UtZGVmYXVsdC51ay1tb2RhbC1jbG9zZS13aGl0ZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xODVweDsgfVxuXG4jbG9nbyB7XG4gIG1hcmdpbjogMC43NWVtIDA7IH1cblxuLnNpbmdsZS10aXRsZSxcbi5wYWdlLXRpdGxlLFxuLmVudHJ5LXRpdGxlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qIHBvc3QgbWV0YSAqL1xuLmJ5bGluZSB7XG4gIGNvbG9yOiAjOWZhNmI0O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIG1hcmdpbjogMDsgfVxuXG4ucGFnZS1zZWN0aW9uLnByb2plY3RzLW92ZXJ2aWV3LWhvbGRlciB7XG4gIHBhZGRpbmc6IDYwcHggMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAucGFnZS1zZWN0aW9uLnByb2plY3RzLW92ZXJ2aWV3LWhvbGRlciB7XG4gICAgICBwYWRkaW5nOiA5MHB4IDA7IH0gfVxuICAucGFnZS1zZWN0aW9uLnByb2plY3RzLW92ZXJ2aWV3LWhvbGRlciAucHJvamVjdHMtb3ZlcnZpZXcge1xuICAgIG1hcmdpbi10b3A6IDYwcHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5wYWdlLXNlY3Rpb24ucHJvamVjdHMtb3ZlcnZpZXctaG9sZGVyIC5wcm9qZWN0cy1vdmVydmlldyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDkwcHg7IH0gfVxuICAgIC5wYWdlLXNlY3Rpb24ucHJvamVjdHMtb3ZlcnZpZXctaG9sZGVyIC5wcm9qZWN0cy1vdmVydmlldyBpbWcge1xuICAgICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgICAgICAucGFnZS1zZWN0aW9uLnByb2plY3RzLW92ZXJ2aWV3LWhvbGRlciAucHJvamVjdHMtb3ZlcnZpZXcgaW1nIHtcbiAgICAgICAgICBoZWlnaHQ6IDkwcHg7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIC5wYWdlLXNlY3Rpb24ucHJvamVjdHMtb3ZlcnZpZXctaG9sZGVyIC5wcm9qZWN0cy1vdmVydmlldyBpbWcge1xuICAgICAgICAgIGhlaWdodDogMTUwcHg7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgbWFyZ2luOiAwIDE1cHg7IH0gfVxuXG4ud3AtY2FwdGlvbiB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiA0NXB4IDA7XG4gIC8qIGltYWdlcyBpbnNpZGUgd3AtY2FwdGlvbiAqLyB9XG4gIC53cC1jYXB0aW9uIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLndwLWNhcHRpb24gcC53cC1jYXB0aW9uLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgbWFyZ2luOiAwIDAgMzBweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKiBlbmQgLndwLWNhcHRpb24gKi9cbi8qIGltYWdlIGdhbGxlcnkgc3R5bGVzICovXG4vKiBlbmQgLmdhbGxlcnkgKi9cbi8qIGdhbGxlcnkgY2FwdGlvbiBzdHlsZXMgKi9cbi50YWdzIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblBBR0UgTkFWSSBTVFlMRVNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5wYWdpbmF0aW9uLFxuLndwLXByZXYtbmV4dCB7XG4gIG1hcmdpbjogMTIwcHggMCAzMHB4IDA7IH1cblxuLnBhZ2luYXRpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnBhZ2luYXRpb24gdWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnBhZ2luYXRpb24gbGkge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnBhZ2luYXRpb24gYSwgLnBhZ2luYXRpb24gc3BhbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgZm9udC1zaXplOiAxLjRlbTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7IH1cbiAgICAucGFnaW5hdGlvbiBhOmhvdmVyLCAucGFnaW5hdGlvbiBhOmZvY3VzLCAucGFnaW5hdGlvbiBzcGFuOmhvdmVyLCAucGFnaW5hdGlvbiBzcGFuOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBjb2xvcjogI2ZjM2IzZDsgfVxuICAucGFnaW5hdGlvbiAuY3VycmVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIGNvbG9yOiAjZmMzYjNkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAucGFnaW5hdGlvbiAuY3VycmVudDpob3ZlciwgLnBhZ2luYXRpb24gLmN1cnJlbnQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICNmYzNiM2Q7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbi5uZXdzbGV0dGVyLWZvcm0taG9sZGVyIGZvcm0ge1xuICBtYXJnaW4tdG9wOiAzMHB4OyB9XG5cbi5wYWdlLXNlY3Rpb24gLmNvbnRhY3QtZm9ybS1ob2xkZXIgZm9ybSB7XG4gIG1hcmdpbi10b3A6IDYwcHg7IH1cblxuLm5ld3NsZXR0ZXItZm9ybS1ob2xkZXIsXG4ucGFnZS1zZWN0aW9uIC5jb250YWN0LWZvcm0taG9sZGVyIHtcbiAgcGFkZGluZzogMzZweCAzMHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5uZXdzbGV0dGVyLWZvcm0taG9sZGVyLFxuICAgIC5wYWdlLXNlY3Rpb24gLmNvbnRhY3QtZm9ybS1ob2xkZXIge1xuICAgICAgcGFkZGluZzogNjBweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAubmV3c2xldHRlci1mb3JtLWhvbGRlcixcbiAgICAucGFnZS1zZWN0aW9uIC5jb250YWN0LWZvcm0taG9sZGVyIHtcbiAgICAgIHBhZGRpbmc6IDkwcHg7IH0gfVxuICAubmV3c2xldHRlci1mb3JtLWhvbGRlciAuZW50cnktY29udGVudCxcbiAgLnBhZ2Utc2VjdGlvbiAuY29udGFjdC1mb3JtLWhvbGRlciAuZW50cnktY29udGVudCB7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gIC5uZXdzbGV0dGVyLWZvcm0taG9sZGVyIC5wYWdlLXNlY3Rpb24taGVhZGVyLFxuICAucGFnZS1zZWN0aW9uIC5jb250YWN0LWZvcm0taG9sZGVyIC5wYWdlLXNlY3Rpb24taGVhZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAubmV3c2xldHRlci1mb3JtLWhvbGRlciAucGFnZS1zZWN0aW9uLWhlYWRlcixcbiAgICAgIC5wYWdlLXNlY3Rpb24gLmNvbnRhY3QtZm9ybS1ob2xkZXIgLnBhZ2Utc2VjdGlvbi1oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0NXB4OyB9IH1cbiAgLm5ld3NsZXR0ZXItZm9ybS1ob2xkZXIgLnBhZ2Utc2VjdGlvbi1oZWFkZXIgaDEsXG4gIC5wYWdlLXNlY3Rpb24gLmNvbnRhY3QtZm9ybS1ob2xkZXIgLnBhZ2Utc2VjdGlvbi1oZWFkZXIgaDEge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5uZXdzbGV0dGVyLWZvcm0taG9sZGVyIC5wYWdlLXNlY3Rpb24taGVhZGVyIGgxLFxuICAgICAgLnBhZ2Utc2VjdGlvbiAuY29udGFjdC1mb3JtLWhvbGRlciAucGFnZS1zZWN0aW9uLWhlYWRlciBoMSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG5cbi5uZXdzbGV0dGVyLWZvcm0taG9sZGVyIHtcbiAgbWFyZ2luLXRvcDogOTBweDsgfVxuXG4ucG9zdHMtb3ZlcnZpZXcgLmNhdGVnb3J5LXRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAuZW50cnktY29udGVudCB7XG4gICAgLyogYXQgdGhpcyBsYXJnZXIgc2l6ZSwgd2UgY2FuIHN0YXJ0IHRvIGFsaWduIGltYWdlcyAqLyB9XG4gICAgLmVudHJ5LWNvbnRlbnQgLmFsaWdubGVmdCwgLmVudHJ5LWNvbnRlbnQgaW1nLmFsaWdubGVmdCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuNWVtO1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuZW50cnktY29udGVudCAuYWxpZ25yaWdodCwgLmVudHJ5LWNvbnRlbnQgaW1nLmFsaWducmlnaHQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEuNWVtO1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgLmVudHJ5LWNvbnRlbnQgLmFsaWduY2VudGVyLCAuZW50cnktY29udGVudCBpbWcuYWxpZ25jZW50ZXIge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC8qIGVuZCAuZW50cnktY29udGVudCAqLyB9XG5cbiNtY19lbWJlZF9zaWdudXAgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgLyogQ2hyb21lLCBGaXJlZm94LCBPcGVyYSwgU2FmYXJpIDEwLjErICovXG4gIGNvbG9yOiAjNWM2YjgwO1xuICBvcGFjaXR5OiAxO1xuICAvKiBGaXJlZm94ICovIH1cblxuI21jX2VtYmVkX3NpZ251cCBpbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAvKiBJbnRlcm5ldCBFeHBsb3JlciAxMC0xMSAqL1xuICBjb2xvcjogIzVjNmI4MDsgfVxuXG4jbWNfZW1iZWRfc2lnbnVwIGlucHV0OjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAvKiBNaWNyb3NvZnQgRWRnZSAqL1xuICBjb2xvcjogIzVjNmI4MDsgfVxuXG4uZm9vdGVyLW5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5mb290ZXItbmF2IGEsXG4gIC5mb290ZXItbmF2IGE6YWN0aXZlIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBtYXJnaW46IDAgMTVweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAuZm9vdGVyLW5hdiBhOmhvdmVyLFxuICAgIC5mb290ZXItbmF2IGE6YWN0aXZlOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG5cbi5mb290ZXItdG9wIHtcbiAgcGFkZGluZzogNjBweCAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAuZm9vdGVyLXRvcCB7XG4gICAgICBwYWRkaW5nOiA5MHB4IDA7IH1cbiAgICAgIC5mb290ZXItdG9wIC53cmFwIHtcbiAgICAgICAgcGFkZGluZzogMCAzNnB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5mb290ZXItdG9wIHtcbiAgICAgIHBhZGRpbmc6IDkwcHggMzBweDsgfSB9XG4gIC5mb290ZXItdG9wIGgzIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDEuOGVtO1xuICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtZmFtaWx5OiBtb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG4gIC5mb290ZXItdG9wIHVsLmZvb3Rlci1saW5rcyB7XG4gICAgcGFkZGluZy10b3A6IDVweDsgfVxuICAgIC5mb290ZXItdG9wIHVsLmZvb3Rlci1saW5rcyBhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBmb250LXNpemU6IDEuNWVtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgLmZvb3Rlci10b3AgdWwuZm9vdGVyLWxpbmtzIGEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMmVtOyB9IH1cbiAgICAgIC5mb290ZXItdG9wIHVsLmZvb3Rlci1saW5rcyBhOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAuZm9vdGVyLXRvcCB1bC5mb290ZXItbGlua3MgbGkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAuZm9vdGVyLXRvcCAjbWNfZW1iZWRfc2lnbnVwIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4OyB9XG4gICAgLmZvb3Rlci10b3AgI21jX2VtYmVkX3NpZ251cCBpbnB1dCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIC5mb290ZXItdG9wIC5vdXItcHJvamVjdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmZvb3Rlci10b3AgLm91ci1wcm9qZWN0cyBsaSBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwNXB4O1xuICAgICAgaGVpZ2h0OiA2NnB4O1xuICAgICAgbWFyZ2luOiAwIDE4cHggMTBweCAwO1xuICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZS5zdmcpO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAgICAgLmZvb3Rlci10b3AgLm91ci1wcm9qZWN0cyBsaSBhLm9wZW4taGVhcnRzLXNwYWNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE4cHggLTI5MnB4OyB9XG4gICAgICAuZm9vdGVyLXRvcCAub3VyLXByb2plY3RzIGxpIGEub3Blbi1tdXNpYy1zY2hvb2wge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQycHggLTI5MnB4OyB9XG4gICAgICAuZm9vdGVyLXRvcCAub3VyLXByb2plY3RzIGxpIGEub3Blbi1sYW5ndWFnZSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yNDhweCAtMjkycHg7IH1cbiAgICAgIC5mb290ZXItdG9wIC5vdXItcHJvamVjdHMgbGkgYS5jb21tdW5pdHkge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMThweCAtMzc2cHg7IH1cbiAgICAgIC5mb290ZXItdG9wIC5vdXItcHJvamVjdHMgbGkgYS5vcGVuLWtpdGNoZW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTM2cHggLTM3M3B4OyB9XG4gICAgICAuZm9vdGVyLXRvcCAub3VyLXByb2plY3RzIGxpIGEub3Blbi1tdXNpYy1sYWIge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQ4cHggLTM3M3B4OyB9XG5cbi5mb290ZXItYm90dG9tIHtcbiAgcGFkZGluZzogMzBweCAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5mb290ZXItYm90dG9tIHtcbiAgICAgIHBhZGRpbmc6IDE1cHggMDsgfSB9XG4gIC5mb290ZXItYm90dG9tIHAuYWRkcmVzcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMTBweCAwIDAgMDsgfVxuICAgIC5mb290ZXItYm90dG9tIHAuYWRkcmVzcyBhLFxuICAgIC5mb290ZXItYm90dG9tIHAuYWRkcmVzcyBhOnZpc2l0ZWQge1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgICAuZm9vdGVyLWJvdHRvbSBwLmFkZHJlc3MgYTpob3ZlcixcbiAgICAgIC5mb290ZXItYm90dG9tIHAuYWRkcmVzcyBhOnZpc2l0ZWQ6aG92ZXIge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbiNpbm5lci1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgI2lubmVyLWhlYWRlciAuaGFtYnVyZ2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjAwMjsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWhvbWUgLmhlcm8taXRlbSBoMSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1ob21lIC5pZnJhbWUtaG9sZGVyIHtcbiAgcGFkZGluZzogMzBweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWhvbWUgLmlmcmFtZS1ob2xkZXIge1xuICAgICAgcGFkZGluZzogNDVweDsgfSB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtaG9tZSAuaWZyYW1lLWhvbGRlciAudmlkZW8taG9sZGVyIHtcbiAgICBtYXJnaW4tdG9wOiA0NXB4OyB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ob21lIC5pZnJhbWUtaG9sZGVyIC52aWRlby1ob2xkZXI6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuXG4ucGFnZS1zZWN0aW9uLnBhZ2Utc2VjdGlvbi1pbnRybyB7XG4gIHBhZGRpbmc6IDYwcHggMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAucGFnZS1zZWN0aW9uLnBhZ2Utc2VjdGlvbi1pbnRybyB7XG4gICAgICBwYWRkaW5nOiA5MHB4IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLnBhZ2Utc2VjdGlvbi5wYWdlLXNlY3Rpb24taW50cm8ge1xuICAgICAgcGFkZGluZzogMTIwcHggMDsgfSB9XG4gIC5wYWdlLXNlY3Rpb24ucGFnZS1zZWN0aW9uLWludHJvIC5lbnRyeS1jb250ZW50IHAsXG4gIC5wYWdlLXNlY3Rpb24ucGFnZS1zZWN0aW9uLWludHJvIC5lbnRyeS1jb250ZW50IGxpIHtcbiAgICBmb250LXdlaWdodDogNDAwOyB9XG4gIC5wYWdlLXNlY3Rpb24ucGFnZS1zZWN0aW9uLWludHJvIC5sb2dvIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICAgIHBhZGRpbmctbGVmdDogMzBweDsgfVxuICAgIC5wYWdlLXNlY3Rpb24ucGFnZS1zZWN0aW9uLWludHJvIC5sb2dvIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMjQwcHg7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgLnBhZ2Utc2VjdGlvbi5wYWdlLXNlY3Rpb24taW50cm8gLmxvZ28gaW1nIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDM2MHB4OyB9IH1cblxuLnBhZ2Utc2VjdGlvbi5wYWdlLXNlY3Rpb24tZG9uYXRpb24ge1xuICBwYWRkaW5nOiA2MHB4IDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnBhZ2Utc2VjdGlvbi5wYWdlLXNlY3Rpb24tZG9uYXRpb24ge1xuICAgICAgcGFkZGluZzogOTBweCAwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5wYWdlLXNlY3Rpb24ucGFnZS1zZWN0aW9uLWRvbmF0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDEyMHB4IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgLnBhZ2Utc2VjdGlvbi5wYWdlLXNlY3Rpb24tZG9uYXRpb24ge1xuICAgICAgcGFkZGluZzogMTUwcHggMDsgfSB9XG4gIC5wYWdlLXNlY3Rpb24ucGFnZS1zZWN0aW9uLWRvbmF0aW9uIC5wYWdlLXNlY3Rpb24taGVhZGVyIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAucGFnZS1zZWN0aW9uLnBhZ2Utc2VjdGlvbi1kb25hdGlvbiAucGFnZS1zZWN0aW9uLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDAgOTBweDsgfSB9XG4gICAgLnBhZ2Utc2VjdGlvbi5wYWdlLXNlY3Rpb24tZG9uYXRpb24gLnBhZ2Utc2VjdGlvbi1oZWFkZXIgaDEge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5wYWdlLXNlY3Rpb24ucGFnZS1zZWN0aW9uLWRvbmF0aW9uIC5wYWdlLXNlY3Rpb24taGVhZGVyIC5zdWJiZXIgcCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5wYWdlLXNlY3Rpb24ucGFnZS1zZWN0aW9uLWRvbmF0aW9uIC5idXR0b24taG9sZGVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAucGFnZS1zZWN0aW9uLnBhZ2Utc2VjdGlvbi1kb25hdGlvbiAuYnV0dG9uLWhvbGRlciB7XG4gICAgICAgIHBhZGRpbmc6IDAgNjBweDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgLnBhZ2Utc2VjdGlvbi5wYWdlLXNlY3Rpb24tZG9uYXRpb24gLmJ1dHRvbi1ob2xkZXIge1xuICAgICAgICBwYWRkaW5nOiAwIDE4MHB4OyB9IH1cblxuLmhpZ2hsaWdodC1ob2xkZXIgLnBpY3R1cmVfaG9sZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy1ib3R0b206IDc1JTtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5oaWdobGlnaHQtaG9sZGVyIC5waWN0dXJlX2hvbGRlciAucGljdHVyZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7IH1cbiAgLmhpZ2hsaWdodC1ob2xkZXIgLnBpY3R1cmVfaG9sZGVyIC5tZXRhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBjb2xvcjogI2ZjM2IzZDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDMwcHggMzBweCA5MHB4IDMwcHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjE0cyBlYXNlO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5oaWdobGlnaHQtaG9sZGVyIC5waWN0dXJlX2hvbGRlciAubWV0YSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICAuaGlnaGxpZ2h0LWhvbGRlciAucGljdHVyZV9ob2xkZXIgLm1ldGEgaDMge1xuICAgICAgY29sb3I6ICNmYzNiM2Q7XG4gICAgICBmb250LWZhbWlseTogbW9udHNlcnJhdCwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXNpemU6IDJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAgIC5oaWdobGlnaHQtaG9sZGVyIC5waWN0dXJlX2hvbGRlciAubWV0YSBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMS40ZW07IH1cbiAgICAuaGlnaGxpZ2h0LWhvbGRlciAucGljdHVyZV9ob2xkZXIgLm1ldGEgLnJlYWQtbW9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDIwcHg7XG4gICAgICByaWdodDogMjBweDsgfVxuICAuaGlnaGxpZ2h0LWhvbGRlciAucGljdHVyZV9ob2xkZXI6aG92ZXIgLm1ldGEge1xuICAgIG9wYWNpdHk6IDE7IH1cblxuLmhpZ2hsaWdodC1ob2xkZXIgaDMge1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtZmFtaWx5OiBtb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLm9wcG9ydHVuaXRpZXMgLm9wcG9ydHVuaXR5IHtcbiAgcGFkZGluZzogMzZweDtcbiAgY29sb3I6IHdoaXRlO1xuICB0cmFuc2l0aW9uOiBhbGwgLjE0cyBlYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5vcHBvcnR1bml0aWVzIC5vcHBvcnR1bml0eSB7XG4gICAgICBwYWRkaW5nOiAzNnB4IDQ4cHg7IH0gfVxuICAub3Bwb3J0dW5pdGllcyAub3Bwb3J0dW5pdHkgaDEge1xuICAgIGZvbnQtZmFtaWx5OiBtb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIC5vcHBvcnR1bml0aWVzIC5vcHBvcnR1bml0eSBwIHtcbiAgICBmb250LXNpemU6IDEuNmVtOyB9XG4gIC5vcHBvcnR1bml0aWVzIC5vcHBvcnR1bml0eSBhOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLm9wcG9ydHVuaXRpZXMgLm9wcG9ydHVuaXR5IGE6aG92ZXIgLm9wcG9ydHVuaXR5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjVkZTU7IH1cbiAgICAub3Bwb3J0dW5pdGllcyAub3Bwb3J0dW5pdHkgYTpob3ZlciAucmVhZC1tb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmZmY7XG4gICAgICBib3JkZXItdG9wOiAzcHggc29saWQgI2ZmZjtcbiAgICAgIGNvbG9yOiAjMGY1ZGU1OyB9XG4gICAgICAub3Bwb3J0dW5pdGllcyAub3Bwb3J0dW5pdHkgYTpob3ZlciAucmVhZC1tb3JlOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZmZmO1xuICAgICAgICBib3JkZXItdG9wOiAzcHggc29saWQgI2ZmZjsgfVxuICAub3Bwb3J0dW5pdGllcyAub3Bwb3J0dW5pdHkgLnJlYWQtbW9yZSB7XG4gICAgbWFyZ2luLXRvcDogMzBweDsgfVxuXG4ub3Bwb3J0dW5pdGllcyAuYnV0dG9uLWhvbGRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tdG9wOiA5MHB4OyB9XG5cbi5uZXdzbGV0dGVyLWhvbGRlciB7XG4gIHBhZGRpbmc6IDMwcHg7XG4gIG1hcmdpbi1ib3R0b206IDQ1cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLm5ld3NsZXR0ZXItaG9sZGVyIHtcbiAgICAgIHBhZGRpbmc6IDMwcHggNDVweDsgfSB9XG4gIC5uZXdzbGV0dGVyLWhvbGRlciBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAgIC5uZXdzbGV0dGVyLWhvbGRlciBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgY29sb3I6ICNmYzNiM2Q7IH1cbiAgLm5ld3NsZXR0ZXItaG9sZGVyIC5yZXNwb25zZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiAxMnB4IDA7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDE0cHg7IH1cbiAgICAubmV3c2xldHRlci1ob2xkZXIgLnJlc3BvbnNlIGEsXG4gICAgLm5ld3NsZXR0ZXItaG9sZGVyIC5yZXNwb25zZSBhOmhvdmVyLFxuICAgIC5uZXdzbGV0dGVyLWhvbGRlciAucmVzcG9uc2UgYTp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLm5ld3NsZXR0ZXItaG9sZGVyIC5lbnRyeS1jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5uZXdzbGV0dGVyLWhvbGRlciAuZW50cnktY29udGVudCAubWMtZmllbGQtZ3JvdXAge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5tb2RhbC10eXBlLWdpdmUgLnVrLW1vZGFsLWRpYWxvZy5vcHBvcnR1bml0eS1tb2RhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjVkZTU7IH1cblxuLm1vZGFsLXR5cGUtcmVjZWl2ZSAudWstbW9kYWwtZGlhbG9nLm9wcG9ydHVuaXR5LW1vZGFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhYjM0NzsgfVxuXG4ucGFnZS1zZWN0aW9uLWF3YXJkcyB7XG4gIG1hcmdpbi1ib3R0b206IDYwcHg7IH1cbiAgLnBhZ2Utc2VjdGlvbi1hd2FyZHMgbGkge1xuICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnBhZ2Utc2VjdGlvbi1hd2FyZHMgLmF3YXJkIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDAgNzVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAucGFnZS1zZWN0aW9uLWF3YXJkcyAuYXdhcmQ6YmVmb3JlLCAucGFnZS1zZWN0aW9uLWF3YXJkcyAuYXdhcmQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHdpZHRoOiA0NXB4O1xuICAgICAgaGVpZ2h0OiA5MHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAycHg7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZS5zdmcpO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAgIC5wYWdlLXNlY3Rpb24tYXdhcmRzIC5hd2FyZDpiZWZvcmUge1xuICAgICAgbGVmdDogMTVweDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yM3B4IC01NjBweDsgfVxuICAgIC5wYWdlLXNlY3Rpb24tYXdhcmRzIC5hd2FyZDphZnRlciB7XG4gICAgICByaWdodDogMTVweDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yMjZweCAtNTYwcHg7IH1cbiAgICAucGFnZS1zZWN0aW9uLWF3YXJkcyAuYXdhcmQgaDEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtc2l6ZTogMS42ZW07IH1cbiAgICAucGFnZS1zZWN0aW9uLWF3YXJkcyAuYXdhcmQgaDIge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgbWFyZ2luOiAzcHggMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmb250LWZhbWlseTogbW9udHNlcnJhdCwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXNpemU6IDIuNGVtOyB9XG4gICAgLnBhZ2Utc2VjdGlvbi1hd2FyZHMgLmF3YXJkIHAueWVhciB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZm9udC1mYW1pbHk6IG1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC1zaXplOiAxLjZlbTsgfVxuXG4udWstbW9kYWwtZGlhbG9nLm9wcG9ydHVuaXR5LW1vZGFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ODFhYTtcbiAgcGFkZGluZzogNDVweDtcbiAgd2lkdGg6IDkwMHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC51ay1tb2RhbC1kaWFsb2cub3Bwb3J0dW5pdHktbW9kYWwge1xuICAgICAgcGFkZGluZzogOTBweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAudWstbW9kYWwtZGlhbG9nLm9wcG9ydHVuaXR5LW1vZGFsIHtcbiAgICAgIHBhZGRpbmc6IDEyMHB4OyB9IH1cbiAgLnVrLW1vZGFsLWRpYWxvZy5vcHBvcnR1bml0eS1tb2RhbCAucGFnZS1zZWN0aW9uLWhlYWRlciBwLnN1YmJlciB7XG4gICAgZm9udC1mYW1pbHk6IG1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMCAwIDI0cHggMDsgfVxuICAudWstbW9kYWwtZGlhbG9nLm9wcG9ydHVuaXR5LW1vZGFsIGgxIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1zaXplOiAyLjdlbTtcbiAgICBtYXJnaW46IDAgMCAyNHB4IDA7XG4gICAgZm9udC1mYW1pbHk6IHBsYXlmYWlyLWRpc3BsYXksIHNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAudWstbW9kYWwtZGlhbG9nLm9wcG9ydHVuaXR5LW1vZGFsIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAzLjZlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgLnVrLW1vZGFsLWRpYWxvZy5vcHBvcnR1bml0eS1tb2RhbCBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNC44ZW07IH0gfVxuICAudWstbW9kYWwtZGlhbG9nLm9wcG9ydHVuaXR5LW1vZGFsIHAge1xuICAgIGZvbnQtZmFtaWx5OiBtb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDEuNmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTsgfVxuICAgIC51ay1tb2RhbC1kaWFsb2cub3Bwb3J0dW5pdHktbW9kYWwgcDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnVrLW1vZGFsLWRpYWxvZy5vcHBvcnR1bml0eS1tb2RhbCBwLFxuICAudWstbW9kYWwtZGlhbG9nLm9wcG9ydHVuaXR5LW1vZGFsIGgxIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktb3VyLWNvbW11bml0eSAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ODFhYTsgfVxuXG4uc2luZ2xlLXBvc3QgI21haW4gYXJ0aWNsZS5jYXRlZ29yeS1vdXItY29tbXVuaXR5IGEsIC5zaW5nbGUtcG9zdCAjbWFpbiBhcnRpY2xlLmNhdGVnb3J5LW91ci1jb21tdW5pdHkgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICNlODgxYWE7IH1cblxuLnNpbmdsZS1wb3N0IC5wb3N0cy1vdmVydmlldyAucGFnZS1zZWN0aW9uLmNhdC1vdXItY29tbXVuaXR5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ODFhYTsgfVxuXG4uYXJjaGl2ZS5jYXRlZ29yeS1vdXItY29tbXVuaXR5ICNtYWluLFxuLmFyY2hpdmUuY2F0ZWdvcnktb3VyLWNvbW11bml0eSAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ODFhYTsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5wYWdlLXNlY3Rpb24ub3VyLWNvbW11bml0eSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlODgxYWE7IH1cblxuLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktd2hhdC13ZS1kbyAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTsgfVxuXG4uc2luZ2xlLXBvc3QgI21haW4gYXJ0aWNsZS5jYXRlZ29yeS13aGF0LXdlLWRvIGEsIC5zaW5nbGUtcG9zdCAjbWFpbiBhcnRpY2xlLmNhdGVnb3J5LXdoYXQtd2UtZG8gYTp2aXNpdGVkIHtcbiAgY29sb3I6ICMwZjVkZTU7IH1cblxuLnNpbmdsZS1wb3N0IC5wb3N0cy1vdmVydmlldyAucGFnZS1zZWN0aW9uLmNhdC13aGF0LXdlLWRvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTsgfVxuXG4uYXJjaGl2ZS5jYXRlZ29yeS13aGF0LXdlLWRvICNtYWluLFxuLmFyY2hpdmUuY2F0ZWdvcnktd2hhdC13ZS1kbyAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5wYWdlLXNlY3Rpb24ud2hhdC13ZS1kbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjVkZTU7IH1cblxuLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktc29jaWV0eSAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhYjM0NzsgfVxuXG4uc2luZ2xlLXBvc3QgI21haW4gYXJ0aWNsZS5jYXRlZ29yeS1zb2NpZXR5IGEsIC5zaW5nbGUtcG9zdCAjbWFpbiBhcnRpY2xlLmNhdGVnb3J5LXNvY2lldHkgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICMxYWIzNDc7IH1cblxuLnNpbmdsZS1wb3N0IC5wb3N0cy1vdmVydmlldyAucGFnZS1zZWN0aW9uLmNhdC1zb2NpZXR5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhYjM0NzsgfVxuXG4uYXJjaGl2ZS5jYXRlZ29yeS1zb2NpZXR5ICNtYWluLFxuLmFyY2hpdmUuY2F0ZWdvcnktc29jaWV0eSAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhYjM0NzsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5wYWdlLXNlY3Rpb24uc29jaWV0eSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYWIzNDc7IH1cblxuLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktbWVudGFsLWhlYWx0aC13aXRoLWVlZC1iZS1lZWQgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGE2Mjk7IH1cblxuLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktbWVudGFsLWhlYWx0aC13aXRoLWVlZC1iZS1lZWQgYSwgLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktbWVudGFsLWhlYWx0aC13aXRoLWVlZC1iZS1lZWQgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICNmZGE2Mjk7IH1cblxuLnNpbmdsZS1wb3N0IC5wb3N0cy1vdmVydmlldyAucGFnZS1zZWN0aW9uLmNhdC1tZW50YWwtaGVhbHRoLXdpdGgtZWVkLWJlLWVlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGE2Mjk7IH1cblxuLmFyY2hpdmUuY2F0ZWdvcnktbWVudGFsLWhlYWx0aC13aXRoLWVlZC1iZS1lZWQgI21haW4sXG4uYXJjaGl2ZS5jYXRlZ29yeS1tZW50YWwtaGVhbHRoLXdpdGgtZWVkLWJlLWVlZCAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkYTYyOTsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5wYWdlLXNlY3Rpb24ubWVudGFsLWhlYWx0aC13aXRoLWVlZC1iZS1lZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRhNjI5OyB9XG5cbi5zaW5nbGUtcG9zdCAjbWFpbiBhcnRpY2xlLmNhdGVnb3J5LW1pZ3JhdGlvbi1tYXR0ZXJzIC5oZXJvLXBhbmVsIC5oZXJvLWl0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjQ4MGU1OyB9XG5cbi5zaW5nbGUtcG9zdCAjbWFpbiBhcnRpY2xlLmNhdGVnb3J5LW1pZ3JhdGlvbi1tYXR0ZXJzIGEsIC5zaW5nbGUtcG9zdCAjbWFpbiBhcnRpY2xlLmNhdGVnb3J5LW1pZ3JhdGlvbi1tYXR0ZXJzIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjYjQ4MGU1OyB9XG5cbi5zaW5nbGUtcG9zdCAucG9zdHMtb3ZlcnZpZXcgLnBhZ2Utc2VjdGlvbi5jYXQtbWlncmF0aW9uLW1hdHRlcnMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjQ4MGU1OyB9XG5cbi5hcmNoaXZlLmNhdGVnb3J5LW1pZ3JhdGlvbi1tYXR0ZXJzICNtYWluLFxuLmFyY2hpdmUuY2F0ZWdvcnktbWlncmF0aW9uLW1hdHRlcnMgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiNDgwZTU7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1tYWdhemluZSAucGFnZS1zZWN0aW9uLm1pZ3JhdGlvbi1tYXR0ZXJzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I0ODBlNTsgfVxuXG4uc2luZ2xlLXBvc3QgI21haW4gYXJ0aWNsZS5jYXRlZ29yeS1vcGluaW9uIC5oZXJvLXBhbmVsIC5oZXJvLWl0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmMzYjNkOyB9XG5cbi5zaW5nbGUtcG9zdCAjbWFpbiBhcnRpY2xlLmNhdGVnb3J5LW9waW5pb24gYSwgLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktb3BpbmlvbiBhOnZpc2l0ZWQge1xuICBjb2xvcjogI2ZjM2IzZDsgfVxuXG4uc2luZ2xlLXBvc3QgLnBvc3RzLW92ZXJ2aWV3IC5wYWdlLXNlY3Rpb24uY2F0LW9waW5pb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmMzYjNkOyB9XG5cbi5hcmNoaXZlLmNhdGVnb3J5LW9waW5pb24gI21haW4sXG4uYXJjaGl2ZS5jYXRlZ29yeS1vcGluaW9uIC5oZXJvLXBhbmVsIC5oZXJvLWl0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmMzYjNkOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtbWFnYXppbmUgLnBhZ2Utc2VjdGlvbi5vcGluaW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjM2IzZDsgfVxuXG4uc2luZ2xlLXBvc3QgI21haW4gYXJ0aWNsZS5jYXRlZ29yeS1nbG9iYWwta2l0Y2hlbiAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTsgfVxuXG4uc2luZ2xlLXBvc3QgI21haW4gYXJ0aWNsZS5jYXRlZ29yeS1nbG9iYWwta2l0Y2hlbiBhLCAuc2luZ2xlLXBvc3QgI21haW4gYXJ0aWNsZS5jYXRlZ29yeS1nbG9iYWwta2l0Y2hlbiBhOnZpc2l0ZWQge1xuICBjb2xvcjogIzBmNWRlNTsgfVxuXG4uc2luZ2xlLXBvc3QgLnBvc3RzLW92ZXJ2aWV3IC5wYWdlLXNlY3Rpb24uY2F0LWdsb2JhbC1raXRjaGVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTsgfVxuXG4uYXJjaGl2ZS5jYXRlZ29yeS1nbG9iYWwta2l0Y2hlbiAjbWFpbixcbi5hcmNoaXZlLmNhdGVnb3J5LWdsb2JhbC1raXRjaGVuIC5oZXJvLXBhbmVsIC5oZXJvLWl0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGY1ZGU1OyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtbWFnYXppbmUgLnBhZ2Utc2VjdGlvbi5nbG9iYWwta2l0Y2hlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjVkZTU7IH1cblxuLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktY29tbXVuaXR5LW5ld3MgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlODgxYWE7IH1cblxuLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktY29tbXVuaXR5LW5ld3MgYSwgLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktY29tbXVuaXR5LW5ld3MgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICNlODgxYWE7IH1cblxuLnNpbmdsZS1wb3N0IC5wb3N0cy1vdmVydmlldyAucGFnZS1zZWN0aW9uLmNhdC1jb21tdW5pdHktbmV3cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlODgxYWE7IH1cblxuLmFyY2hpdmUuY2F0ZWdvcnktY29tbXVuaXR5LW5ld3MgI21haW4sXG4uYXJjaGl2ZS5jYXRlZ29yeS1jb21tdW5pdHktbmV3cyAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ODFhYTsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5wYWdlLXNlY3Rpb24uY29tbXVuaXR5LW5ld3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTg4MWFhOyB9XG5cbi5zaW5nbGUtcG9zdCAjbWFpbiBhcnRpY2xlLmNhdGVnb3J5LW91ci1jb21tdW5pdHkgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlODgxYWE7IH1cblxuLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktb3VyLWNvbW11bml0eSBhLCAuc2luZ2xlLXBvc3QgI21haW4gYXJ0aWNsZS5jYXRlZ29yeS1vdXItY29tbXVuaXR5IGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjZTg4MWFhOyB9XG5cbi5zaW5nbGUtcG9zdCAucG9zdHMtb3ZlcnZpZXcgLnBhZ2Utc2VjdGlvbi5jYXQtb3VyLWNvbW11bml0eSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlODgxYWE7IH1cblxuLmFyY2hpdmUuY2F0ZWdvcnktb3VyLWNvbW11bml0eSAjbWFpbixcbi5hcmNoaXZlLmNhdGVnb3J5LW91ci1jb21tdW5pdHkgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlODgxYWE7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1tYWdhemluZSAucGFnZS1zZWN0aW9uLm91ci1jb21tdW5pdHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTg4MWFhOyB9XG5cbi5zaW5nbGUtcG9zdCAjbWFpbiBhcnRpY2xlLmNhdGVnb3J5LW91ci1wcm9qZWN0cyAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTsgfVxuXG4uc2luZ2xlLXBvc3QgI21haW4gYXJ0aWNsZS5jYXRlZ29yeS1vdXItcHJvamVjdHMgYSwgLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktb3VyLXByb2plY3RzIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjMGY1ZGU1OyB9XG5cbi5zaW5nbGUtcG9zdCAucG9zdHMtb3ZlcnZpZXcgLnBhZ2Utc2VjdGlvbi5jYXQtb3VyLXByb2plY3RzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTsgfVxuXG4uYXJjaGl2ZS5jYXRlZ29yeS1vdXItcHJvamVjdHMgI21haW4sXG4uYXJjaGl2ZS5jYXRlZ29yeS1vdXItcHJvamVjdHMgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjVkZTU7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1tYWdhemluZSAucGFnZS1zZWN0aW9uLm91ci1wcm9qZWN0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjVkZTU7IH1cblxuLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktb3BpbmlvbiAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhYjM0NzsgfVxuXG4uc2luZ2xlLXBvc3QgI21haW4gYXJ0aWNsZS5jYXRlZ29yeS1vcGluaW9uIGEsIC5zaW5nbGUtcG9zdCAjbWFpbiBhcnRpY2xlLmNhdGVnb3J5LW9waW5pb24gYTp2aXNpdGVkIHtcbiAgY29sb3I6ICMxYWIzNDc7IH1cblxuLnNpbmdsZS1wb3N0IC5wb3N0cy1vdmVydmlldyAucGFnZS1zZWN0aW9uLmNhdC1vcGluaW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhYjM0NzsgfVxuXG4uYXJjaGl2ZS5jYXRlZ29yeS1vcGluaW9uICNtYWluLFxuLmFyY2hpdmUuY2F0ZWdvcnktb3BpbmlvbiAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhYjM0NzsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5wYWdlLXNlY3Rpb24ub3BpbmlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYWIzNDc7IH1cblxuLnNpbmdsZS1wb3N0ICNtYWluIGFydGljbGUuY2F0ZWdvcnktZnJvbS10aGUtdGVhbSAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkYTYyOTsgfVxuXG4uc2luZ2xlLXBvc3QgI21haW4gYXJ0aWNsZS5jYXRlZ29yeS1mcm9tLXRoZS10ZWFtIGEsIC5zaW5nbGUtcG9zdCAjbWFpbiBhcnRpY2xlLmNhdGVnb3J5LWZyb20tdGhlLXRlYW0gYTp2aXNpdGVkIHtcbiAgY29sb3I6ICNmZGE2Mjk7IH1cblxuLnNpbmdsZS1wb3N0IC5wb3N0cy1vdmVydmlldyAucGFnZS1zZWN0aW9uLmNhdC1mcm9tLXRoZS10ZWFtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkYTYyOTsgfVxuXG4uYXJjaGl2ZS5jYXRlZ29yeS1mcm9tLXRoZS10ZWFtICNtYWluLFxuLmFyY2hpdmUuY2F0ZWdvcnktZnJvbS10aGUtdGVhbSAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkYTYyOTsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5wYWdlLXNlY3Rpb24uZnJvbS10aGUtdGVhbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGE2Mjk7IH1cblxuLmJnLXdoaXRlIC5lbnRyeS1jb250ZW50IHAge1xuICBjb2xvcjogd2hpdGU7IH1cbiAgLmJnLXdoaXRlIC5lbnRyeS1jb250ZW50IHAgZW0sIC5iZy13aGl0ZSAuZW50cnktY29udGVudCBwIHN0cm9uZywgLmJnLXdoaXRlIC5lbnRyeS1jb250ZW50IHAgaSB7XG4gICAgY29sb3I6IHdoaXRlOyB9XG5cbi5zaW5nbGUtcHJvamVjdHMgI21haW4uY29sb3Itd2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIC5zaW5nbGUtcHJvamVjdHMgI21haW4uY29sb3Itd2hpdGUgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4uYmctd2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB0cmFuc2l0aW9uOiBhbGwgLjE0cyBlYXNlOyB9XG5cbmEuYmctd2hpdGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyOyB9XG5cbi51ay1tb2RhbC5iZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuLnBhZ2Utc2VjdGlvbi5iZy13aGl0ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uYmctYmxhY2sgLmVudHJ5LWNvbnRlbnQgcCB7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuICAuYmctYmxhY2sgLmVudHJ5LWNvbnRlbnQgcCBlbSwgLmJnLWJsYWNrIC5lbnRyeS1jb250ZW50IHAgc3Ryb25nLCAuYmctYmxhY2sgLmVudHJ5LWNvbnRlbnQgcCBpIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuLnNpbmdsZS1wcm9qZWN0cyAjbWFpbi5jb2xvci1ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IH1cbiAgLnNpbmdsZS1wcm9qZWN0cyAjbWFpbi5jb2xvci1ibGFjayAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyB9XG5cbi5iZy1ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIHRyYW5zaXRpb246IGFsbCAuMTRzIGVhc2U7IH1cblxuYS5iZy1ibGFjazpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyB9XG5cbi51ay1tb2RhbC5iZy1ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7IH1cblxuLnBhZ2Utc2VjdGlvbi5iZy1ibGFjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uYmctcGluayAuZW50cnktY29udGVudCBwIHtcbiAgY29sb3I6IHdoaXRlOyB9XG4gIC5iZy1waW5rIC5lbnRyeS1jb250ZW50IHAgZW0sIC5iZy1waW5rIC5lbnRyeS1jb250ZW50IHAgc3Ryb25nLCAuYmctcGluayAuZW50cnktY29udGVudCBwIGkge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuXG4uc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLXBpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTg4MWFhOyB9XG4gIC5zaW5nbGUtcHJvamVjdHMgI21haW4uY29sb3ItcGluayAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTg4MWFhOyB9XG5cbi5iZy1waW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ODFhYTtcbiAgdHJhbnNpdGlvbjogYWxsIC4xNHMgZWFzZTsgfVxuXG5hLmJnLXBpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQ2YjliOyB9XG5cbi51ay1tb2RhbC5iZy1waW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ODFhYTsgfVxuXG4ucGFnZS1zZWN0aW9uLmJnLXBpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmJnLWJsdWUgLmVudHJ5LWNvbnRlbnQgcCB7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuICAuYmctYmx1ZSAuZW50cnktY29udGVudCBwIGVtLCAuYmctYmx1ZSAuZW50cnktY29udGVudCBwIHN0cm9uZywgLmJnLWJsdWUgLmVudHJ5LWNvbnRlbnQgcCBpIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuLnNpbmdsZS1wcm9qZWN0cyAjbWFpbi5jb2xvci1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTsgfVxuICAuc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLWJsdWUgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTsgfVxuXG4uYmctYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjVkZTU7XG4gIHRyYW5zaXRpb246IGFsbCAuMTRzIGVhc2U7IH1cblxuYS5iZy1ibHVlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBkNTNjZDsgfVxuXG4udWstbW9kYWwuYmctYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjVkZTU7IH1cblxuLnBhZ2Utc2VjdGlvbi5iZy1ibHVlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5iZy1ncmVlbiAuZW50cnktY29udGVudCBwIHtcbiAgY29sb3I6IHdoaXRlOyB9XG4gIC5iZy1ncmVlbiAuZW50cnktY29udGVudCBwIGVtLCAuYmctZ3JlZW4gLmVudHJ5LWNvbnRlbnQgcCBzdHJvbmcsIC5iZy1ncmVlbiAuZW50cnktY29udGVudCBwIGkge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuXG4uc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhYjM0NzsgfVxuICAuc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLWdyZWVuIC5oZXJvLXBhbmVsIC5oZXJvLWl0ZW0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxYWIzNDc7IH1cblxuLmJnLWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhYjM0NztcbiAgdHJhbnNpdGlvbjogYWxsIC4xNHMgZWFzZTsgfVxuXG5hLmJnLWdyZWVuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3OWQzZTsgfVxuXG4udWstbW9kYWwuYmctZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWFiMzQ3OyB9XG5cbi5wYWdlLXNlY3Rpb24uYmctZ3JlZW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmJnLW9yYW5nZSAuZW50cnktY29udGVudCBwIHtcbiAgY29sb3I6IHdoaXRlOyB9XG4gIC5iZy1vcmFuZ2UgLmVudHJ5LWNvbnRlbnQgcCBlbSwgLmJnLW9yYW5nZSAuZW50cnktY29udGVudCBwIHN0cm9uZywgLmJnLW9yYW5nZSAuZW50cnktY29udGVudCBwIGkge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuXG4uc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLW9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGE2Mjk7IH1cbiAgLnNpbmdsZS1wcm9qZWN0cyAjbWFpbi5jb2xvci1vcmFuZ2UgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZkYTYyOTsgfVxuXG4uYmctb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkYTYyOTtcbiAgdHJhbnNpdGlvbjogYWxsIC4xNHMgZWFzZTsgfVxuXG5hLmJnLW9yYW5nZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZDliMTA7IH1cblxuLnVrLW1vZGFsLmJnLW9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGE2Mjk7IH1cblxuLnBhZ2Utc2VjdGlvbi5iZy1vcmFuZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmJnLXZpb2xldCAuZW50cnktY29udGVudCBwIHtcbiAgY29sb3I6IHdoaXRlOyB9XG4gIC5iZy12aW9sZXQgLmVudHJ5LWNvbnRlbnQgcCBlbSwgLmJnLXZpb2xldCAuZW50cnktY29udGVudCBwIHN0cm9uZywgLmJnLXZpb2xldCAuZW50cnktY29udGVudCBwIGkge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuXG4uc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLXZpb2xldCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiNDgwZTU7IH1cbiAgLnNpbmdsZS1wcm9qZWN0cyAjbWFpbi5jb2xvci12aW9sZXQgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2I0ODBlNTsgfVxuXG4uYmctdmlvbGV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I0ODBlNTtcbiAgdHJhbnNpdGlvbjogYWxsIC4xNHMgZWFzZTsgfVxuXG5hLmJnLXZpb2xldDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhODZiZTE7IH1cblxuLnVrLW1vZGFsLmJnLXZpb2xldCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiNDgwZTU7IH1cblxuLnBhZ2Utc2VjdGlvbi5iZy12aW9sZXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmJnLXJlZCAuZW50cnktY29udGVudCBwIHtcbiAgY29sb3I6IHdoaXRlOyB9XG4gIC5iZy1yZWQgLmVudHJ5LWNvbnRlbnQgcCBlbSwgLmJnLXJlZCAuZW50cnktY29udGVudCBwIHN0cm9uZywgLmJnLXJlZCAuZW50cnktY29udGVudCBwIGkge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuXG4uc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLXJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYzNiM2Q7IH1cbiAgLnNpbmdsZS1wcm9qZWN0cyAjbWFpbi5jb2xvci1yZWQgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjM2IzZDsgfVxuXG4uYmctcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjM2IzZDtcbiAgdHJhbnNpdGlvbjogYWxsIC4xNHMgZWFzZTsgfVxuXG5hLmJnLXJlZDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYzIyMjQ7IH1cblxuLnVrLW1vZGFsLmJnLXJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYzNiM2Q7IH1cblxuLnBhZ2Utc2VjdGlvbi5iZy1yZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnNpbmdsZS1wcm9qZWN0cyAjbWFpbi5jb2xvci1ibGFjayAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTsgfVxuXG4uZm9vdGVyLWJvdHRvbS5iZy12aW9sZXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnBhZ2UtdGVtcGxhdGUgI21jX2VtYmVkX3NpZ251cCAucm93LWhvbGRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICAucGFnZS10ZW1wbGF0ZSAjbWNfZW1iZWRfc2lnbnVwIC5yb3ctaG9sZGVyIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi10b3A6IDE1cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUgI21jX2VtYmVkX3NpZ251cCAucm93LWhvbGRlciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9IH1cblxuLnNwaW5uZXIge1xuICBhbmltYXRpb246IHJvdGF0ZSAycyBsaW5lYXIgaW5maW5pdGU7XG4gIHotaW5kZXg6IDI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMjVweCAwIDAgLTI1cHg7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7IH1cbiAgLnNwaW5uZXIgLnBhdGgge1xuICAgIHN0cm9rZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY2KTtcbiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gICAgYW5pbWF0aW9uOiBkYXNoIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH1cblxuQGtleWZyYW1lcyByb3RhdGUge1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cblxuQGtleWZyYW1lcyBkYXNoIHtcbiAgMCUge1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDE1MDtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDsgfVxuICA1MCUge1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDkwLCAxNTA7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0zNTsgfVxuICAxMDAlIHtcbiAgICBzdHJva2UtZGFzaGFycmF5OiA5MCwgMTUwO1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTI0OyB9IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb25hdGUtMjAyMiBoZWFkZXIuaGVhZGVyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZS0yMDIyIC53cmFwIHtcbiAgbWF4LXdpZHRoOiAxMzYwcHg7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb25hdGUtMjAyMiAucGFnZS1zZWN0aW9uLnBhZ2Utc2VjdGlvbi1pbnRybyAubG9nbyB7XG4gIHBhZGRpbmc6IDAgMCAwIDA7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb25hdGUtMjAyMiAucGFnZS1zZWN0aW9uLWludHJvLmJnLXdoaXRlIC5lbnRyeS1jb250ZW50IHVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlLTIwMjIgLnBhZ2Utc2VjdGlvbi1pbnRyby5iZy13aGl0ZSAuZW50cnktY29udGVudCB1bCBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4OyB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb25hdGUtMjAyMiAucGFnZS1zZWN0aW9uLWludHJvLmJnLXdoaXRlIC5lbnRyeS1jb250ZW50IHVsIGxpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxMXB4O1xuICAgICAgbGVmdDogMDsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZS0yMDIyIC5oZXJvLXBhbmVsIC5sb2dvLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb25hdGUgLmhlcm8tcGFuZWwgLmxvZ28ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlLTIwMjIgLnBhZ2Utc2VjdGlvbi1pbnRyby5iZy13aGl0ZSAudWstZ3JpZCxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlIC5wYWdlLXNlY3Rpb24taW50cm8uYmctd2hpdGUgLnVrLWdyaWQge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb25hdGUtMjAyMiAucGFnZS1zZWN0aW9uLWludHJvLmJnLXdoaXRlIC51ay1ncmlkLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlIC5wYWdlLXNlY3Rpb24taW50cm8uYmctd2hpdGUgLnVrLWdyaWQge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlLTIwMjIgLnBhZ2Utc2VjdGlvbi1pbnRyby5iZy13aGl0ZSAuZW50cnktY29udGVudCBoMixcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlIC5wYWdlLXNlY3Rpb24taW50cm8uYmctd2hpdGUgLmVudHJ5LWNvbnRlbnQgaDIge1xuICBjb2xvcjogI2ZjM2IzZDsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZS0yMDIyIC5wYWdlLXNlY3Rpb24uYmctdmlvbGV0IGgyLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb25hdGUgLnBhZ2Utc2VjdGlvbi5iZy12aW9sZXQgaDIge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlLTIwMjIgLnBhZ2Utc2VjdGlvbi5iZy12aW9sZXQgaDIsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb25hdGUgLnBhZ2Utc2VjdGlvbi5iZy12aW9sZXQgaDIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNDVweDsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlLTIwMjIgLnBhZ2Utc2VjdGlvbiAucGFnZS1zZWN0aW9uLWhlYWRlciBoMSxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlIC5wYWdlLXNlY3Rpb24gLnBhZ2Utc2VjdGlvbi1oZWFkZXIgaDEge1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlLTIwMjIgLnZpZGVvLWhvbGRlcixcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlIC52aWRlby1ob2xkZXIge1xuICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlLTIwMjIgLnZpZGVvLWhvbGRlciBwOmxhc3QtY2hpbGQsXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlIC52aWRlby1ob2xkZXIgcDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlLTIwMjIgLnZpZGVvLWhvbGRlciBwOmxhc3QtY2hpbGQsXG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZSAudmlkZW8taG9sZGVyIHA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlLTIwMjIgLnZpZGVvLWhvbGRlciBwOmxhc3QtY2hpbGQsXG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZSAudmlkZW8taG9sZGVyIHA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZS0yMDIyIC5pZnJhbWUtaG9sZGVyLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb25hdGUgLmlmcmFtZS1ob2xkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gIG1hcmdpbjogNjBweCAwIDAgMDsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZS0yMDIyIC5pZnJhbWUtaG9sZGVyIGlmcmFtZSxcbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb25hdGUgLmlmcmFtZS1ob2xkZXIgaWZyYW1lIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZS0yMDIyIC5hY2NvdW50LWluZm8sXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZSAuYWNjb3VudC1pbmZvIHtcbiAgcGFkZGluZzogMCAwIDkwcHggMDsgfVxuXG4uaGVyby1wYW5lbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmhlcm8tcGFuZWwge1xuICAgICAgaGVpZ2h0OiA0ODBweDsgfSB9XG4gIC5oZXJvLXBhbmVsIC51ay1zbGlkZXNob3ctaXRlbXMge1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGY1ZGU1OyB9XG4gICAgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSAuaW1nLWhvbGRlciB7XG4gICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwOyB9XG4gICAgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSAud3JhcCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAzOyB9XG4gICAgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSBoMSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZm9udC1mYW1pbHk6IHBsYXlmYWlyLWRpc3BsYXksIHNlcmlmO1xuICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBmb250LXNpemU6IDNlbTtcbiAgICAgIHBhZGRpbmc6IDYwcHggMCAwIDMwcHg7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgICAuaGVyby1wYW5lbCAuaGVyby1pdGVtIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDZlbTtcbiAgICAgICAgICBwYWRkaW5nOiAxMjBweCAwIDAgNDVweDsgfSB9XG4gIC5oZXJvLXBhbmVsIC51ay1zbGlkZXNob3ctbmF2IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAzMHB4O1xuICAgIHJpZ2h0OiAzMHB4OyB9XG4gIC5oZXJvLXBhbmVsIC5sb2dvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAzMHB4O1xuICAgIGxlZnQ6IDM2cHg7IH1cbiAgICAuaGVyby1wYW5lbCAubG9nbyBpbWcge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IDkwcHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgIC5oZXJvLXBhbmVsIC5sb2dvIHtcbiAgICAgICAgbGVmdDogNDVweDsgfVxuICAgICAgICAuaGVyby1wYW5lbCAubG9nbyBpbWcge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGhlaWdodDogMTIwcHg7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgLmhlcm8tcGFuZWwgLmxvZ28ge1xuICAgICAgICB0b3A6IDc1cHg7IH1cbiAgICAgICAgLmhlcm8tcGFuZWwgLmxvZ28gaW1nIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBoZWlnaHQ6IDE1MHB4OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICAuaGVyby1wYW5lbCAubG9nbyB7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA5MHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtOTVweDsgfVxuICAgICAgICAuaGVyby1wYW5lbCAubG9nbyBpbWcge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGhlaWdodDogMTkwcHg7IH0gfVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5OQVZJR0FUSU9OIFNUWUxFU1xuKioqKioqKioqKioqKioqKioqKioqL1xuLypcbmFsbCBuYXZzIGhhdmUgYSAubmF2IGNsYXNzIGFwcGxpZWQgdmlhXG50aGUgd3BfbWVudSBmdW5jdGlvbjsgdGhpcyBpcyBzbyB3ZSBjYW5cbmVhc2lseSB3cml0ZSBvbmUgZ3JvdXAgb2Ygc3R5bGVzIGZvclxudGhlIG5hdnMgb24gdGhlIHNpdGUgc28gb3VyIGNzcyBpcyBjbGVhbmVyXG5hbmQgbW9yZSBzY2FsYWJsZS5cbiovXG4uaGFtYnVyZ2VyLWJveCB7XG4gIG1hcmdpbi10b3A6IDFweDsgfVxuXG4ubWFpbi1uYXYtdG9wIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLm1haW4tbmF2LXRvcCAubmF2IGxpIGEge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07IH1cbiAgLm1haW4tbmF2LXRvcCAuaGFtYnVyZ2VyIHtcbiAgICBwYWRkaW5nOiAxMHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5tYWluLW5hdi10b3Age1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAubWFpbi1uYXYtdG9wIG5hdi5zb2NpYWwtbWVkaWEge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAubWFpbi1uYXYtdG9wIG5hdi5zb2NpYWwtbWVkaWEge1xuICAgICAgICByaWdodDogOXB4OyB9IH1cbiAgICAubWFpbi1uYXYtdG9wIG5hdi5zb2NpYWwtbWVkaWEgLm5hdi1zb2NpYWwge1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG5cbm5hdi5zb2NpYWwtbWVkaWEgLm5hdi1zb2NpYWwgbGkgYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3ByaXRlLnN2Zyk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG5uYXYuc29jaWFsLW1lZGlhIC5uYXYtc29jaWFsIGxpLnNvY2lhbC15b3V0dWJlIGEge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTJweCAtMTAzcHg7IH1cblxubmF2LnNvY2lhbC1tZWRpYSAubmF2LXNvY2lhbCBsaS5zb2NpYWwtdHdpdHRlciBhIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTc2cHggLTEwM3B4OyB9XG5cbm5hdi5zb2NpYWwtbWVkaWEgLm5hdi1zb2NpYWwgbGkuc29jaWFsLWluc3RhZ3JhbSBhIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOXB4IC0xMDNweDsgfVxuXG5uYXYuc29jaWFsLW1lZGlhIC5uYXYtc29jaWFsIGxpLnNvY2lhbC1mYWNlYm9vayBhIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ2cHggLTEwM3B4OyB9XG5cbm5hdi5zb2NpYWwtbWVkaWEgLm5hdi1zb2NpYWwgbGkuc29jaWFsLWxpbmtlZGluIGEge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQycHggLTEwM3B4OyB9XG5cbi5tYWluLW5hdi1ib3R0b20ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGY1ZGU1OyB9XG4gIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaSBhIHtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIG1hcmdpbjogMCAxMnB4OyB9XG5cbmhlYWRlci5oZWFkZXIgLndyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuI2hvbWUtbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBmb250LXNpemU6IDEuMmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiAwLjc1ZW07XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IHdoaXRlO1xuICB0cmFuc2l0aW9uOiBhbGwgLjE0cyBlYXNlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjQ4MGU1OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNob21lLWxpbmsge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDsgfSB9XG5cbmJvZHkuaG9tZSAjaG9tZS1saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ODFhYTsgfVxuXG4ubWFpbi1uYXYtdG9wIC5uYXYsXG4ubWFpbi1uYXYtYm90dG9tIC5uYXYge1xuICBib3JkZXItYm90dG9tOiAwO1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAvKiBlbmQgLm1lbnUgbGkgKi8gfVxuICAubWFpbi1uYXYtdG9wIC5uYXYgbGksXG4gIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8qXG4gICAgICAgIHNvIHlvdSByZWFsbHkgaGF2ZSB0byByZXRoaW5rIHlvdXIgZHJvcGRvd25zIGZvciBtb2JpbGUuXG4gICAgICAgIHlvdSBkb24ndCB3YW50IHRvIGhhdmUgaXQgZXhwYW5kIHRvbyBtdWNoIGJlY2F1c2UgdGhlXG4gICAgICAgIHNjcmVlbiBpcyBzbyBzbWFsbC4gSG93IHlvdSBtYW5hZ2UgeW91ciBtZW51IHNob3VsZFxuICAgICAgICBkZXBlbmQgb24gdGhlIHByb2plY3QuIEhlcmUncyBzb21lIGdyZWF0IGluZm8gb24gaXQ6XG4gICAgICAgIGh0dHA6Ly93d3cuYWxpc3RhcGFydC5jb20vYXJ0aWNsZXMvb3JnYW5pemluZy1tb2JpbGUvXG4gICAgICAgICovIH1cbiAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGkgYSxcbiAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGkgYTp2aXNpdGVkLFxuICAgIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaSBhLFxuICAgIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaSBhOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDAuNzVlbTtcbiAgICAgIG1hcmdpbjogMCA2cHg7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjE0cyBlYXNlO1xuICAgICAgZm9udC1zaXplOiAxLjRlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGk6aG92ZXIgYSxcbiAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGk6Zm9jdXMgYSxcbiAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGk6aG92ZXIgYSxcbiAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGk6Zm9jdXMgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTg4MWFhO1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgLm1haW4tbmF2LXRvcCAubmF2IGxpLmhpZ2hsaWdodCBhLFxuICAgIC5tYWluLW5hdi10b3AgLm5hdiBsaS5oaWdobGlnaHQgYTp2aXNpdGVkLFxuICAgIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaS5oaWdobGlnaHQgYSxcbiAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkuaGlnaGxpZ2h0IGE6dmlzaXRlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmMzYjNkO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGZvbnQtc2l6ZTogMS42ZW07IH1cbiAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGkgdWwuc3ViLW1lbnUgbGkgYSxcbiAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGkgdWwuY2hpbGRyZW4gbGkgYSxcbiAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkgdWwuc3ViLW1lbnUgbGkgYSxcbiAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkgdWwuY2hpbGRyZW4gbGkgYSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5tYWluLW5hdi10b3AgLm5hdixcbiAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIC8qIGVuZCAubWVudSB1bCBsaSAqLyB9XG4gICAgICAubWFpbi1uYXYtdG9wIC5uYXYgdWwsXG4gICAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgdWwge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGksXG4gICAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC8qXG4gICAgICAgICAgcGxhbiB5b3VyIG1lbnVzIGFuZCBkcm9wLWRvd25zIHdpc2VseS5cbiAgICAgICAgICAqL1xuICAgICAgICAvKiBzaG93aW5nIHN1Yi1tZW51cyAqLyB9XG4gICAgICAgIC5tYWluLW5hdi10b3AgLm5hdiBsaSBhLFxuICAgICAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkgYSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgIHlvdSBjYW4gdXNlIGhvdmVyIHN0eWxlcyBoZXJlIGV2ZW4gdGhvdWdoIHRoaXMgc2l6ZVxuICAgICAgICAgICAgICAgIGhhcyB0aGUgcG9zc2liaWxpdHkgb2YgYmVpbmcgYSBtb2JpbGUgZGV2aWNlLlxuICAgICAgICAgICAgICAgICovIH1cbiAgICAgICAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGkgYTpob3ZlciwgLm1haW4tbmF2LXRvcCAubmF2IGxpIGE6Zm9jdXMsXG4gICAgICAgICAgLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpIGE6aG92ZXIsXG4gICAgICAgICAgLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpIGE6Zm9jdXMge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAgIC5tYWluLW5hdi10b3AgLm5hdiBsaSB1bC5zdWItbWVudSxcbiAgICAgICAgLm1haW4tbmF2LXRvcCAubmF2IGxpIHVsLmNoaWxkcmVuLFxuICAgICAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkgdWwuc3ViLW1lbnUsXG4gICAgICAgIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaSB1bC5jaGlsZHJlbiB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgei1pbmRleDogODk5OTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMTJweDsgfVxuICAgICAgICAgIC5tYWluLW5hdi10b3AgLm5hdiBsaSB1bC5zdWItbWVudSBsaSxcbiAgICAgICAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGkgdWwuY2hpbGRyZW4gbGksXG4gICAgICAgICAgLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpIHVsLnN1Yi1tZW51IGxpLFxuICAgICAgICAgIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaSB1bC5jaGlsZHJlbiBsaSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgaWYgeW91IG5lZWQgdG8gZ28gZGVlcGVyLCBnbyBudXRzXG4gICAgICAgICAgICAgIGp1c3QgcmVtZW1iZXIgZGVlcGVyIG1lbnVzIHN1Y2tcbiAgICAgICAgICAgICAgZm9yIHVzYWJpbGl0eS4gaywgYmFpLlxuICAgICAgICAgICAgICAqLyB9XG4gICAgICAgICAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGkgdWwuc3ViLW1lbnUgbGkgYSxcbiAgICAgICAgICAgIC5tYWluLW5hdi10b3AgLm5hdiBsaSB1bC5zdWItbWVudSBsaSBhOmFjdGl2ZSxcbiAgICAgICAgICAgIC5tYWluLW5hdi10b3AgLm5hdiBsaSB1bC5jaGlsZHJlbiBsaSBhLFxuICAgICAgICAgICAgLm1haW4tbmF2LXRvcCAubmF2IGxpIHVsLmNoaWxkcmVuIGxpIGE6YWN0aXZlLFxuICAgICAgICAgICAgLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpIHVsLnN1Yi1tZW51IGxpIGEsXG4gICAgICAgICAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkgdWwuc3ViLW1lbnUgbGkgYTphY3RpdmUsXG4gICAgICAgICAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkgdWwuY2hpbGRyZW4gbGkgYSxcbiAgICAgICAgICAgIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaSB1bC5jaGlsZHJlbiBsaSBhOmFjdGl2ZSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlODgxYWE7XG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgd2lkdGg6IDIyMHB4O1xuICAgICAgICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICAgICAgIC5tYWluLW5hdi10b3AgLm5hdiBsaSB1bC5zdWItbWVudSBsaS5jdXJyZW50LW1lbnUtaXRlbSBhLFxuICAgICAgICAgICAgLm1haW4tbmF2LXRvcCAubmF2IGxpIHVsLnN1Yi1tZW51IGxpLmN1cnJlbnQtbWVudS1pdGVtIGE6YWN0aXZlLCAubWFpbi1uYXYtdG9wIC5uYXYgbGkgdWwuc3ViLW1lbnUgbGkuY3VycmVudF9wYWdlX2l0ZW0gYSxcbiAgICAgICAgICAgIC5tYWluLW5hdi10b3AgLm5hdiBsaSB1bC5zdWItbWVudSBsaS5jdXJyZW50X3BhZ2VfaXRlbSBhOmFjdGl2ZSxcbiAgICAgICAgICAgIC5tYWluLW5hdi10b3AgLm5hdiBsaSB1bC5jaGlsZHJlbiBsaS5jdXJyZW50LW1lbnUtaXRlbSBhLFxuICAgICAgICAgICAgLm1haW4tbmF2LXRvcCAubmF2IGxpIHVsLmNoaWxkcmVuIGxpLmN1cnJlbnQtbWVudS1pdGVtIGE6YWN0aXZlLFxuICAgICAgICAgICAgLm1haW4tbmF2LXRvcCAubmF2IGxpIHVsLmNoaWxkcmVuIGxpLmN1cnJlbnRfcGFnZV9pdGVtIGEsXG4gICAgICAgICAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGkgdWwuY2hpbGRyZW4gbGkuY3VycmVudF9wYWdlX2l0ZW0gYTphY3RpdmUsXG4gICAgICAgICAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkgdWwuc3ViLW1lbnUgbGkuY3VycmVudC1tZW51LWl0ZW0gYSxcbiAgICAgICAgICAgIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaSB1bC5zdWItbWVudSBsaS5jdXJyZW50LW1lbnUtaXRlbSBhOmFjdGl2ZSxcbiAgICAgICAgICAgIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaSB1bC5zdWItbWVudSBsaS5jdXJyZW50X3BhZ2VfaXRlbSBhLFxuICAgICAgICAgICAgLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpIHVsLnN1Yi1tZW51IGxpLmN1cnJlbnRfcGFnZV9pdGVtIGE6YWN0aXZlLFxuICAgICAgICAgICAgLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpIHVsLmNoaWxkcmVuIGxpLmN1cnJlbnQtbWVudS1pdGVtIGEsXG4gICAgICAgICAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkgdWwuY2hpbGRyZW4gbGkuY3VycmVudC1tZW51LWl0ZW0gYTphY3RpdmUsXG4gICAgICAgICAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkgdWwuY2hpbGRyZW4gbGkuY3VycmVudF9wYWdlX2l0ZW0gYSxcbiAgICAgICAgICAgIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaSB1bC5jaGlsZHJlbiBsaS5jdXJyZW50X3BhZ2VfaXRlbSBhOmFjdGl2ZSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYzNiM2Q7IH1cbiAgICAgICAgICAgIC5tYWluLW5hdi10b3AgLm5hdiBsaSB1bC5zdWItbWVudSBsaTpob3ZlciBhLFxuICAgICAgICAgICAgLm1haW4tbmF2LXRvcCAubmF2IGxpIHVsLnN1Yi1tZW51IGxpOmZvY3VzIGEsXG4gICAgICAgICAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGkgdWwuY2hpbGRyZW4gbGk6aG92ZXIgYSxcbiAgICAgICAgICAgIC5tYWluLW5hdi10b3AgLm5hdiBsaSB1bC5jaGlsZHJlbiBsaTpmb2N1cyBhLFxuICAgICAgICAgICAgLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpIHVsLnN1Yi1tZW51IGxpOmhvdmVyIGEsXG4gICAgICAgICAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkgdWwuc3ViLW1lbnUgbGk6Zm9jdXMgYSxcbiAgICAgICAgICAgIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaSB1bC5jaGlsZHJlbiBsaTpob3ZlciBhLFxuICAgICAgICAgICAgLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpIHVsLmNoaWxkcmVuIGxpOmZvY3VzIGEge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmMzYjNkO1xuICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAgICAgICAgIC5tYWluLW5hdi10b3AgLm5hdiBsaSB1bC5zdWItbWVudSBsaTpsYXN0LWNoaWxkIGEsXG4gICAgICAgICAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGkgdWwuY2hpbGRyZW4gbGk6bGFzdC1jaGlsZCBhLFxuICAgICAgICAgICAgLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpIHVsLnN1Yi1tZW51IGxpOmxhc3QtY2hpbGQgYSxcbiAgICAgICAgICAgIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaSB1bC5jaGlsZHJlbiBsaTpsYXN0LWNoaWxkIGEge1xuICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gICAgICAgICAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGkgdWwuc3ViLW1lbnUgbGkgdWwsXG4gICAgICAgICAgICAubWFpbi1uYXYtdG9wIC5uYXYgbGkgdWwuY2hpbGRyZW4gbGkgdWwsXG4gICAgICAgICAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkgdWwuc3ViLW1lbnUgbGkgdWwsXG4gICAgICAgICAgICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkgdWwuY2hpbGRyZW4gbGkgdWwge1xuICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgIGxlZnQ6IDEwMCU7IH1cbiAgICAgICAgLm1haW4tbmF2LXRvcCAubmF2IGxpOmhvdmVyID4gdWwsXG4gICAgICAgIC5tYWluLW5hdi1ib3R0b20gLm5hdiBsaTpob3ZlciA+IHVsIHtcbiAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfSB9XG5cbi8qIGVuZCAubmF2ICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpIHVsLnN1Yi1tZW51LFxuICAubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkgdWwuY2hpbGRyZW4ge1xuICAgIHBhZGRpbmctbGVmdDogNnB4OyB9IH1cblxuYm9keS5zaW5nbGUtcG9zdCAubWFpbi1uYXYtdG9wIC5uYXYgbGkjbWVudS1pdGVtLTEzOTQ1IGEsXG4ubWFpbi1uYXYtdG9wIC5uYXYgbGkuY3VycmVudC1tZW51LWFuY2VzdG9yIGEsXG4ubWFpbi1uYXYtdG9wIC5uYXYgbGkuY3VycmVudC1tZW51LXBhcmVudCBhLFxuLm1haW4tbmF2LXRvcCAubmF2IGxpLmN1cnJlbnQtbWVudS1pdGVtIGEsXG4ubWFpbi1uYXYtdG9wIC5uYXYgbGkuY3VycmVudF9wYWdlX2l0ZW0gYSxcbi5tYWluLW5hdi10b3AgLm5hdiBsaS5jdXJyZW50X3BhZ2VfYW5jZXN0b3IgYSxcbmJvZHkuc2luZ2xlLXBvc3QgLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpI21lbnUtaXRlbS0xMzk0NSBhLFxuLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpLmN1cnJlbnQtbWVudS1hbmNlc3RvciBhLFxuLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpLmN1cnJlbnQtbWVudS1wYXJlbnQgYSxcbi5tYWluLW5hdi1ib3R0b20gLm5hdiBsaS5jdXJyZW50LW1lbnUtaXRlbSBhLFxuLm1haW4tbmF2LWJvdHRvbSAubmF2IGxpLmN1cnJlbnRfcGFnZV9pdGVtIGEsXG4ubWFpbi1uYXYtYm90dG9tIC5uYXYgbGkuY3VycmVudF9wYWdlX2FuY2VzdG9yIGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTg4MWFhOyB9XG5cbi5uYXYgbGkuY3VycmVudC1tZW51LWFuY2VzdG9yIC5jdXJyZW50LW1lbnUtaXRlbSBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjM2IzZDsgfVxuXG4jbW9iaWxlLW1lbnUtbW9kYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGY1ZGU1OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNtb2JpbGUtbWVudS1tb2RhbCAubWVudS1ob2xkZXIge1xuICAgICAgd2lkdGg6IDgwJTsgfSB9XG4gICNtb2JpbGUtbWVudS1tb2RhbCAudWstbW9kYWwtZGlhbG9nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGY1ZGU1O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgcGFkZGluZzogMCAzMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgICNtb2JpbGUtbWVudS1tb2RhbCAudWstbW9kYWwtZGlhbG9nIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfSB9XG4gICAgI21vYmlsZS1tZW51LW1vZGFsIC51ay1tb2RhbC1kaWFsb2cgLmxvZ28gaW1nIHtcbiAgICAgIG1heC13aWR0aDogMzAwcHg7IH1cbiAgICAjbW9iaWxlLW1lbnUtbW9kYWwgLnVrLW1vZGFsLWRpYWxvZyAubWVudS1ob2xkZXIge1xuICAgICAgbWFyZ2luLXRvcDogOTBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDkwcHg7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgICAjbW9iaWxlLW1lbnUtbW9kYWwgLnVrLW1vZGFsLWRpYWxvZyAubWVudS1ob2xkZXIge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDEyMHB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1MHB4OyB9IH1cbiAgICAjbW9iaWxlLW1lbnUtbW9kYWwgLnVrLW1vZGFsLWRpYWxvZyAuc3ViLW1lbnUge1xuICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7IH1cbiAgICAjbW9iaWxlLW1lbnUtbW9kYWwgLnVrLW1vZGFsLWRpYWxvZyAuc3ViLW1lbnUtb3BlbiAuc3ViLW1lbnUge1xuICAgICAgbWF4LWhlaWdodDogMjAwMHB4O1xuICAgICAgcGFkZGluZzogMTVweCAwIDMwcHggMDsgfVxuICAgICNtb2JpbGUtbWVudS1tb2RhbCAudWstbW9kYWwtZGlhbG9nIC5uYXYge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgI21vYmlsZS1tZW51LW1vZGFsIC51ay1tb2RhbC1kaWFsb2cgLm5hdiBsaSBhIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zaXplOiAyLjRlbTtcbiAgICAgICAgbWFyZ2luOiA2MHB4IDAgMzBweCAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgI21vYmlsZS1tZW51LW1vZGFsIC51ay1tb2RhbC1kaWFsb2cgLm5hdiBsaSBhIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMy42ZW07IH0gfVxuICAgICAgI21vYmlsZS1tZW51LW1vZGFsIC51ay1tb2RhbC1kaWFsb2cgLm5hdiBsaSBsaSBhIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgICNtb2JpbGUtbWVudS1tb2RhbCAudWstbW9kYWwtZGlhbG9nIC5uYXYgbGkgbGkgYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDJlbTsgfSB9XG4gICAgI21vYmlsZS1tZW51LW1vZGFsIC51ay1tb2RhbC1kaWFsb2cgbmF2LnNvY2lhbC1tZWRpYSAubmF2IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAxMHB4O1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogMjRweDsgfVxuICAgICAgI21vYmlsZS1tZW51LW1vZGFsIC51ay1tb2RhbC1kaWFsb2cgbmF2LnNvY2lhbC1tZWRpYSAubmF2IGEge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgICAjbW9iaWxlLW1lbnUtbW9kYWwgLnVrLW1vZGFsLWRpYWxvZyBuYXYuc29jaWFsLW1lZGlhIC5uYXYge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuTEFOR1VBR0UgU1dJVENIRVJcbioqKioqKioqKioqKioqKioqKioqKi9cbiNpbm5lci1oZWFkZXIgbmF2Lmxhbmd1YWdlcyB1bCBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAjaW5uZXItaGVhZGVyIG5hdi5sYW5ndWFnZXMgdWwgbGkgc3BhbixcbiAgI2lubmVyLWhlYWRlciBuYXYubGFuZ3VhZ2VzIHVsIGxpIGEge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICBjb2xvcjogIzM5MzkzOTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMHB4IDhweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzkzOTM5O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYWxsIC4xNHMgZWFzZTsgfVxuICAjaW5uZXItaGVhZGVyIG5hdi5sYW5ndWFnZXMgdWwgbGkuYWN0aXZlIHNwYW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDFkNGY7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLWNvbG9yOiAjZjAxZDRmOyB9XG4gICNpbm5lci1oZWFkZXIgbmF2Lmxhbmd1YWdlcyB1bCBsaSBhOmhvdmVyIHtcbiAgICBjb2xvcjogI2YwMWQ0ZjtcbiAgICBib3JkZXItY29sb3I6ICNmMDFkNGY7IH1cbiAgI2lubmVyLWhlYWRlciBuYXYubGFuZ3VhZ2VzIHVsIGxpOmxhc3QtY2hpbGQgc3BhbixcbiAgI2lubmVyLWhlYWRlciBuYXYubGFuZ3VhZ2VzIHVsIGxpOmxhc3QtY2hpbGQgYSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5jYXRlZ29yeS1kZXNjcmlwdGlvbiBwIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LWZhbWlseTogbW9udHNlcnJhdCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBhcnRuZXJzIC5oZXJvLWl0ZW0gaDEsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWRvd25sb2FkcyAuaGVyby1pdGVtIGgxLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1tZWRpYSAuaGVyby1pdGVtIGgxLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS10ZWFtIC5oZXJvLWl0ZW0gaDEsXG4ucGFnZS10ZW1wbGF0ZS1kZWZhdWx0IC5oZXJvLWl0ZW0gaDEsXG4uZXJyb3I0MDQgLmhlcm8taXRlbSBoMSxcbi5hcmNoaXZlIC5oZXJvLWl0ZW0gaDEsXG4uc2luZ2xlLXByb2plY3RzIC5oZXJvLWl0ZW0gaDEsXG4uc2luZ2xlLXBvc3QgLmhlcm8taXRlbSBoMSxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlIC5oZXJvLWl0ZW0gaDEsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5oZXJvLWl0ZW0gaDEsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLmhlcm8taXRlbSBoMSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuaGVyby1wYW5lbCxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtZG93bmxvYWRzIC5oZXJvLXBhbmVsLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1tZWRpYSAuaGVyby1wYW5lbCxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuaGVyby1wYW5lbCxcbi5wYWdlLXRlbXBsYXRlLWRlZmF1bHQgLmhlcm8tcGFuZWwsXG4uZXJyb3I0MDQgLmhlcm8tcGFuZWwsXG4uYXJjaGl2ZSAuaGVyby1wYW5lbCxcbi5zaW5nbGUtcHJvamVjdHMgLmhlcm8tcGFuZWwsXG4uc2luZ2xlLXBvc3QgLmhlcm8tcGFuZWwsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZSAuaGVyby1wYW5lbCxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtbWFnYXppbmUgLmhlcm8tcGFuZWwsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLmhlcm8tcGFuZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjQ4MGU1OyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGFydG5lcnMgLmhlcm8tcGFuZWwgLmxvZ28gaW1nLFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvd25sb2FkcyAuaGVyby1wYW5lbCAubG9nbyBpbWcsXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtbWVkaWEgLmhlcm8tcGFuZWwgLmxvZ28gaW1nLFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLXRlYW0gLmhlcm8tcGFuZWwgLmxvZ28gaW1nLFxuICAucGFnZS10ZW1wbGF0ZS1kZWZhdWx0IC5oZXJvLXBhbmVsIC5sb2dvIGltZyxcbiAgLmVycm9yNDA0IC5oZXJvLXBhbmVsIC5sb2dvIGltZyxcbiAgLmFyY2hpdmUgLmhlcm8tcGFuZWwgLmxvZ28gaW1nLFxuICAuc2luZ2xlLXByb2plY3RzIC5oZXJvLXBhbmVsIC5sb2dvIGltZyxcbiAgLnNpbmdsZS1wb3N0IC5oZXJvLXBhbmVsIC5sb2dvIGltZyxcbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb25hdGUgLmhlcm8tcGFuZWwgLmxvZ28gaW1nLFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5oZXJvLXBhbmVsIC5sb2dvIGltZyxcbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5oZXJvLXBhbmVsIC5sb2dvIGltZyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBhcnRuZXJzIC5oZXJvLXBhbmVsIC5oZXJvLWl0ZW0sXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG93bmxvYWRzIC5oZXJvLXBhbmVsIC5oZXJvLWl0ZW0sXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtbWVkaWEgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSxcbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS10ZWFtIC5oZXJvLXBhbmVsIC5oZXJvLWl0ZW0sXG4gIC5wYWdlLXRlbXBsYXRlLWRlZmF1bHQgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSxcbiAgLmVycm9yNDA0IC5oZXJvLXBhbmVsIC5oZXJvLWl0ZW0sXG4gIC5hcmNoaXZlIC5oZXJvLXBhbmVsIC5oZXJvLWl0ZW0sXG4gIC5zaW5nbGUtcHJvamVjdHMgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSxcbiAgLnNpbmdsZS1wb3N0IC5oZXJvLXBhbmVsIC5oZXJvLWl0ZW0sXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlIC5oZXJvLXBhbmVsIC5oZXJvLWl0ZW0sXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtbWFnYXppbmUgLmhlcm8tcGFuZWwgLmhlcm8taXRlbSxcbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5oZXJvLXBhbmVsIC5oZXJvLWl0ZW0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNiNDgwZTU7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuaGVyby13cmFwcGVyLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb3dubG9hZHMgLmhlcm8td3JhcHBlcixcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtbWVkaWEgLmhlcm8td3JhcHBlcixcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuaGVyby13cmFwcGVyLFxuLnBhZ2UtdGVtcGxhdGUtZGVmYXVsdCAuaGVyby13cmFwcGVyLFxuLmVycm9yNDA0IC5oZXJvLXdyYXBwZXIsXG4uYXJjaGl2ZSAuaGVyby13cmFwcGVyLFxuLnNpbmdsZS1wcm9qZWN0cyAuaGVyby13cmFwcGVyLFxuLnNpbmdsZS1wb3N0IC5oZXJvLXdyYXBwZXIsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZSAuaGVyby13cmFwcGVyLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1tYWdhemluZSAuaGVyby13cmFwcGVyLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5oZXJvLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG93bmxvYWRzIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyxcbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1tZWRpYSAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gIC5wYWdlLXRlbXBsYXRlLWRlZmF1bHQgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAuZXJyb3I0MDQgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAuYXJjaGl2ZSAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gIC5zaW5nbGUtcHJvamVjdHMgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAuc2luZ2xlLXBvc3QgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZSAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtbWFnYXppbmUgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLmhlcm8td3JhcHBlciAudGl0bGVzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAzNnB4O1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMCAzNnB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBhcnRuZXJzIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyxcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG93bmxvYWRzIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyxcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtbWVkaWEgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS10ZWFtIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyxcbiAgICAgIC5wYWdlLXRlbXBsYXRlLWRlZmF1bHQgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAgICAgLmVycm9yNDA0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyxcbiAgICAgIC5hcmNoaXZlIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyxcbiAgICAgIC5zaW5nbGUtcHJvamVjdHMgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAgICAgLnNpbmdsZS1wb3N0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyxcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyxcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtbWFnYXppbmUgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyB7XG4gICAgICAgIHRvcDogNjBweDtcbiAgICAgICAgbGVmdDogMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvd25sb2FkcyAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLW1lZGlhIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyxcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gICAgICAucGFnZS10ZW1wbGF0ZS1kZWZhdWx0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyxcbiAgICAgIC5lcnJvcjQwNCAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gICAgICAuYXJjaGl2ZSAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gICAgICAuc2luZ2xlLXByb2plY3RzIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyxcbiAgICAgIC5zaW5nbGUtcG9zdCAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZSAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyxcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAuaGVyby13cmFwcGVyIC50aXRsZXMge1xuICAgICAgICBwYWRkaW5nOiAwIDkwcHg7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGFydG5lcnMgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb3dubG9hZHMgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1tZWRpYSAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXRlYW0gLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAgICAgLnBhZ2UtdGVtcGxhdGUtZGVmYXVsdCAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gICAgICAuZXJyb3I0MDQgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAgICAgLmFyY2hpdmUgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAgICAgLnNpbmdsZS1wcm9qZWN0cyAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gICAgICAuc2luZ2xlLXBvc3QgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb25hdGUgLmhlcm8td3JhcHBlciAudGl0bGVzLFxuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1tYWdhemluZSAuaGVyby13cmFwcGVyIC50aXRsZXMsXG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLmhlcm8td3JhcHBlciAudGl0bGVzIHtcbiAgICAgICAgd2lkdGg6IDYwJTsgfSB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb3dubG9hZHMgLmhlcm8td3JhcHBlciAudGl0bGVzIGgxLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtbWVkaWEgLmhlcm8td3JhcHBlciAudGl0bGVzIGgxLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4gICAgLnBhZ2UtdGVtcGxhdGUtZGVmYXVsdCAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4gICAgLmVycm9yNDA0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbiAgICAuYXJjaGl2ZSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4gICAgLnNpbmdsZS1wcm9qZWN0cyAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4gICAgLnNpbmdsZS1wb3N0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1tYWdhemluZSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSB7XG4gICAgICBmb250LWZhbWlseTogcGxheWZhaXItZGlzcGxheSwgc2VyaWY7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb3dubG9hZHMgLmhlcm8td3JhcHBlciAudGl0bGVzIGgyLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtbWVkaWEgLmhlcm8td3JhcHBlciAudGl0bGVzIGgyLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnBhZ2UtdGVtcGxhdGUtZGVmYXVsdCAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLmVycm9yNDA0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbiAgICAuYXJjaGl2ZSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnNpbmdsZS1wcm9qZWN0cyAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnNpbmdsZS1wb3N0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1tYWdhemluZSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMiB7XG4gICAgICBmb250LWZhbWlseTogbW9udHNlcnJhdCwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBjb2xvcjogd2hpdGU7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuaGVyby13cmFwcGVyIC5sb2dvLXdoaXRlLFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvd25sb2FkcyAuaGVyby13cmFwcGVyIC5sb2dvLXdoaXRlLFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLW1lZGlhIC5oZXJvLXdyYXBwZXIgLmxvZ28td2hpdGUsXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuaGVyby13cmFwcGVyIC5sb2dvLXdoaXRlLFxuICAucGFnZS10ZW1wbGF0ZS1kZWZhdWx0IC5oZXJvLXdyYXBwZXIgLmxvZ28td2hpdGUsXG4gIC5lcnJvcjQwNCAuaGVyby13cmFwcGVyIC5sb2dvLXdoaXRlLFxuICAuYXJjaGl2ZSAuaGVyby13cmFwcGVyIC5sb2dvLXdoaXRlLFxuICAuc2luZ2xlLXByb2plY3RzIC5oZXJvLXdyYXBwZXIgLmxvZ28td2hpdGUsXG4gIC5zaW5nbGUtcG9zdCAuaGVyby13cmFwcGVyIC5sb2dvLXdoaXRlLFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZSAuaGVyby13cmFwcGVyIC5sb2dvLXdoaXRlLFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5oZXJvLXdyYXBwZXIgLmxvZ28td2hpdGUsXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAuaGVyby13cmFwcGVyIC5sb2dvLXdoaXRlIHtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDYwcHg7XG4gICAgcmlnaHQ6IDYwcHg7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWRvd25sb2FkcyAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLW1lZGlhIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4ucGFnZS10ZW1wbGF0ZS1kZWZhdWx0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbi5lcnJvcjQwNCAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4uYXJjaGl2ZSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4uc2luZ2xlLXByb2plY3RzIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbi5zaW5nbGUtcG9zdCAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEge1xuICBmb250LXNpemU6IDNlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBhcnRuZXJzIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvd25sb2FkcyAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1tZWRpYSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS10ZWFtIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbiAgICAucGFnZS10ZW1wbGF0ZS1kZWZhdWx0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbiAgICAuZXJyb3I0MDQgLmhlcm8td3JhcHBlciAudGl0bGVzIGgxLFxuICAgIC5hcmNoaXZlIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbiAgICAuc2luZ2xlLXByb2plY3RzIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbiAgICAuc2luZ2xlLXBvc3QgLmhlcm8td3JhcHBlciAudGl0bGVzIGgxLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLmhlcm8td3JhcHBlciAudGl0bGVzIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogNmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGFydG5lcnMgLmhlcm8td3JhcHBlciAudGl0bGVzIGgxLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG93bmxvYWRzIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLW1lZGlhIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSxcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXRlYW0gLmhlcm8td3JhcHBlciAudGl0bGVzIGgxLFxuICAgIC5wYWdlLXRlbXBsYXRlLWRlZmF1bHQgLmhlcm8td3JhcHBlciAudGl0bGVzIGgxLFxuICAgIC5lcnJvcjQwNCAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4gICAgLmFyY2hpdmUgLmhlcm8td3JhcHBlciAudGl0bGVzIGgxLFxuICAgIC5zaW5nbGUtcHJvamVjdHMgLmhlcm8td3JhcHBlciAudGl0bGVzIGgxLFxuICAgIC5zaW5nbGUtcG9zdCAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb25hdGUgLmhlcm8td3JhcHBlciAudGl0bGVzIGgxLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtbWFnYXppbmUgLmhlcm8td3JhcHBlciAudGl0bGVzIGgxLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtY29udGFjdCAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEge1xuICAgICAgZm9udC1zaXplOiA5ZW07IH0gfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBhcnRuZXJzIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtZG93bmxvYWRzIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtbWVkaWEgLmhlcm8td3JhcHBlciAudGl0bGVzIGgyLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS10ZWFtIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbi5wYWdlLXRlbXBsYXRlLWRlZmF1bHQgLmhlcm8td3JhcHBlciAudGl0bGVzIGgyLFxuLmVycm9yNDA0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbi5hcmNoaXZlIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbi5zaW5nbGUtcHJvamVjdHMgLmhlcm8td3JhcHBlciAudGl0bGVzIGgyLFxuLnNpbmdsZS1wb3N0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtbWFnYXppbmUgLmhlcm8td3JhcHBlciAudGl0bGVzIGgyLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMiB7XG4gIGZvbnQtc2l6ZTogMi40ZW07XG4gIG1hcmdpbjogMTVweCAwIDAgMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBhcnRuZXJzIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvd25sb2FkcyAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1tZWRpYSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS10ZWFtIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbiAgICAucGFnZS10ZW1wbGF0ZS1kZWZhdWx0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbiAgICAuZXJyb3I0MDQgLmhlcm8td3JhcHBlciAudGl0bGVzIGgyLFxuICAgIC5hcmNoaXZlIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbiAgICAuc2luZ2xlLXByb2plY3RzIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbiAgICAuc2luZ2xlLXBvc3QgLmhlcm8td3JhcHBlciAudGl0bGVzIGgyLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG9uYXRlIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLW1hZ2F6aW5lIC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWNvbnRhY3QgLmhlcm8td3JhcHBlciAudGl0bGVzIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogNC4yZW07XG4gICAgICBtYXJnaW46IDIxcHggMCAwIDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb3dubG9hZHMgLmhlcm8td3JhcHBlciAudGl0bGVzIGgyLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtbWVkaWEgLmhlcm8td3JhcHBlciAudGl0bGVzIGgyLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnBhZ2UtdGVtcGxhdGUtZGVmYXVsdCAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLmVycm9yNDA0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbiAgICAuYXJjaGl2ZSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnNpbmdsZS1wcm9qZWN0cyAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnNpbmdsZS1wb3N0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMixcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvbmF0ZSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1tYWdhemluZSAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1jb250YWN0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMiB7XG4gICAgICBmb250LXNpemU6IDQuOGVtOyB9IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuaGVyby1wYW5lbCxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuaGVyby1wYW5lbCxcbi5wYWdlLXRlbXBsYXRlLWRlZmF1bHQgLmhlcm8tcGFuZWwsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWRvd25sb2FkcyAuaGVyby1wYW5lbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjVkZTU7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuaGVyby1wYW5lbCAuaGVyby1pdGVtLFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLXRlYW0gLmhlcm8tcGFuZWwgLmhlcm8taXRlbSxcbiAgLnBhZ2UtdGVtcGxhdGUtZGVmYXVsdCAuaGVyby1wYW5lbCAuaGVyby1pdGVtLFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvd25sb2FkcyAuaGVyby1wYW5lbCAuaGVyby1pdGVtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGY1ZGU1OyB9XG5cbi5zaW5nbGUtcHJvamVjdHMgLmhlcm8td3JhcHBlciAudGl0bGVzIGgxLFxuLnNpbmdsZS1wb3N0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSB7XG4gIGZvbnQtc2l6ZTogMy42ZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnNpbmdsZS1wcm9qZWN0cyAuaGVyby13cmFwcGVyIC50aXRsZXMgaDEsXG4gICAgLnNpbmdsZS1wb3N0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMSB7XG4gICAgICBmb250LXNpemU6IDZlbTsgfSB9XG5cbi5zaW5nbGUtcHJvamVjdHMgLmhlcm8td3JhcHBlciAudGl0bGVzIGgyLFxuLnNpbmdsZS1wb3N0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMiB7XG4gIGZvbnQtc2l6ZTogMS44ZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnNpbmdsZS1wcm9qZWN0cyAuaGVyby13cmFwcGVyIC50aXRsZXMgaDIsXG4gICAgLnNpbmdsZS1wb3N0IC5oZXJvLXdyYXBwZXIgLnRpdGxlcyBoMiB7XG4gICAgICBmb250LXNpemU6IDMuNmVtOyB9IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1tYWdhemluZSAucGFnZS1zZWN0aW9uIHtcbiAgcGFkZGluZy10b3A6IDYwcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1tYWdhemluZSAucGFnZS1zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmctdG9wOiA5MHB4OyB9IH1cblxuLnNpbmdsZS1wb3N0ICNtYWluIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cblxuLnNpbmdsZS1wb3N0IC5wb3N0cy1vdmVydmlldyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiNDgwZTU7IH1cbiAgLnNpbmdsZS1wb3N0IC5wb3N0cy1vdmVydmlldyBoMSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtZmFtaWx5OiBwbGF5ZmFpci1kaXNwbGF5LCBzZXJpZjtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXNpemU6IDNlbTtcbiAgICBwYWRkaW5nOiAwIDQ1cHg7IH1cbiAgICAuc2luZ2xlLXBvc3QgLnBvc3RzLW92ZXJ2aWV3IGgxIGEge1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAuc2luZ2xlLXBvc3QgLnBvc3RzLW92ZXJ2aWV3IGgxIHtcbiAgICAgICAgZm9udC1zaXplOiA2ZW07XG4gICAgICAgIHBhZGRpbmc6IDAgOTBweDsgfSB9XG5cbi5zaW5nbGUtcG9zdCAubWFpbi1jb250ZW50IHtcbiAgcGFkZGluZzogMzBweCAwIDkwcHggMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAuc2luZ2xlLXBvc3QgLm1haW4tY29udGVudCB7XG4gICAgICBwYWRkaW5nOiA2MHB4IDAgMTUwcHggMDsgfSB9XG5cbi5zaW5nbGUtcG9zdCAuZW50cnktY29udGVudCBoMSB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cblxuLmVudHJ5LWNvbnRlbnQgLmFydGljbGUtaW50cm8gcCB7XG4gIGZvbnQtc2l6ZTogMS44ZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmVudHJ5LWNvbnRlbnQgLmFydGljbGUtaW50cm8gcCB7XG4gICAgICBmb250LXNpemU6IDIuNGVtOyB9IH1cblxuLnNpbmdsZS1wb3N0IC5hcnRpY2xlLWludHJvIHtcbiAgbWFyZ2luLWJvdHRvbTogNDVweDsgfVxuXG4uaW50cm8taW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNpbmdsZS1wcm9qZWN0cyAuc2xpZGVzaG93LWhvbGRlcixcbi5zaW5nbGUtcHJvamVjdHMgLmZ1bGxfYXJ0aWNsZSB7XG4gIG1hcmdpbjogNjBweCAwIDAgMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLnNpbmdsZS1wcm9qZWN0cyAuc2xpZGVzaG93LWhvbGRlcixcbiAgICAuc2luZ2xlLXByb2plY3RzIC5mdWxsX2FydGljbGUge1xuICAgICAgbWFyZ2luOiAxMjBweCAwIDAgMDsgfSB9XG5cbi5zaW5nbGUtcHJvamVjdHMgLmFydGljbGUtaW50cm8gLmVudHJ5LWNvbnRlbnQge1xuICBwYWRkaW5nOiA0NXB4IDMwcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5zaW5nbGUtcHJvamVjdHMgLmFydGljbGUtaW50cm8gLmVudHJ5LWNvbnRlbnQge1xuICAgICAgcGFkZGluZzogNDVweCAxNXB4IDAgNjBweDsgfSB9XG5cbi5zaW5nbGUtcHJvamVjdHMgLmVudHJ5LWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7IH1cbiAgLnNpbmdsZS1wcm9qZWN0cyAuZW50cnktY29udGVudCBoMSB7XG4gICAgcGFkZGluZzogMCAyNSUgMCAwOyB9XG5cbi5zaW5nbGUtcHJvamVjdHMgLnNsaWRlc2hvdy1ob2xkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uc2luZ2xlLXByb2plY3RzIC5tYWluLWNvbnRlbnQge1xuICBwYWRkaW5nLWJvdHRvbTogOTBweDsgfVxuXG4uc2luZ2xlLXByb2plY3RzIC5wYXJ0bmVycyB7XG4gIG1hcmdpbi10b3A6IDkwcHg7IH1cblxuLnNpbmdsZS1wcm9qZWN0cyAucGFydG5lciAucGljdHVyZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDgwJSBhdXRvO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuXG4ubWVtYmVyLXN3aXRjaGVyLW5hdiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxLjhlbTtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxNXB4IDMwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLm1lbWJlci1zd2l0Y2hlci1uYXYgYTpob3ZlciwgLm1lbWJlci1zd2l0Y2hlci1uYXYgYTp2aXNpdGVkIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS10ZWFtIC5tZW1iZXItc3dpdGNoZXItY29udGVudCBoMSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6IHBsYXlmYWlyLWRpc3BsYXksIHNlcmlmO1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMy42ZW07XG4gIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tYm90dG9tOiA0NXB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAubWVtYmVyLXN3aXRjaGVyLWNvbnRlbnQgaDEge1xuICAgICAgZm9udC1zaXplOiA0LjhlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAubWVtYmVyLXN3aXRjaGVyLWNvbnRlbnQgaDEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS10ZWFtIC5tZW1iZXItc3dpdGNoZXItY29udGVudCAuZW50cnktY29udGVudCBwIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAubWVtYmVycy1vdmVydmlldyB7XG4gIG1hcmdpbjogNDVweCAwOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuYm9hcmQtbWVtYmVyIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAzMHB4IDAgNjBweCAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuYm9hcmQtbWVtYmVyIHtcbiAgICAgIHBhZGRpbmc6IDAgMTVweDsgfSB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuYm9hcmQtbWVtYmVyIC5mZWF0dXJlZC1pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiA3NSU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzBkNTNjZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLXRlYW0gLmJvYXJkLW1lbWJlciBoMSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtZmFtaWx5OiBwbGF5ZmFpci1kaXNwbGF5LCBzZXJpZjtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXNpemU6IDMuNmVtO1xuICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbjogMThweCAwO1xuICAgIGZvbnQtc2l6ZTogMi43ZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuYm9hcmQtbWVtYmVyIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiA0LjhlbTsgfSB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuYm9hcmQtbWVtYmVyIC5jb3VudHJ5LFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLXRlYW0gLmJvYXJkLW1lbWJlciAuZnVuY3Rpb24ge1xuICAgIGZvbnQtc2l6ZTogMS44ZW07XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAudWstbW9kYWwtZGlhbG9nIHtcbiAgcGFkZGluZy10b3A6IDQ2cHg7IH1cblxuLnRlc3RpbW9uaWFsLXBvcHVwIC51ay1tb2RhbC1kaWFsb2csXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBhcnRuZXJzIC51ay1tb2RhbC1kaWFsb2csXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXRlYW0gLnVrLW1vZGFsLWRpYWxvZyB7XG4gIHdpZHRoOiA4MTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4udGVzdGltb25pYWwtcG9wdXAgaDIuZnVuY3Rpb24ge1xuICBmb250LXNpemU6IDIuNGVtOyB9XG4gIC50ZXN0aW1vbmlhbC1wb3B1cCBoMi5mdW5jdGlvbiBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAxNXB4OyB9XG4gIC50ZXN0aW1vbmlhbC1wb3B1cCBoMi5mdW5jdGlvbiBpIHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuI3Rlc3RpbW9uaWFscyAuYm9hcmQtbWVtYmVyLWRldGFpbCAuZmVhdHVyZWQtaW1hZ2UsXG4udGVzdGltb25pYWwtcG9wdXAgLmJvYXJkLW1lbWJlci1kZXRhaWwgLmZlYXR1cmVkLWltYWdlLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuYm9hcmQtbWVtYmVyLWRldGFpbCAuZmVhdHVyZWQtaW1hZ2UsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXRlYW0gLmJvYXJkLW1lbWJlci1kZXRhaWwgLmZlYXR1cmVkLWltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiA2Ni42NiU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZDUzY2Q7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgbWFyZ2luLWJvdHRvbTogNDVweDsgfVxuXG4jdGVzdGltb25pYWxzIC5ib2FyZC1tZW1iZXItZGV0YWlsIGgxLFxuLnRlc3RpbW9uaWFsLXBvcHVwIC5ib2FyZC1tZW1iZXItZGV0YWlsIGgxLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuYm9hcmQtbWVtYmVyLWRldGFpbCBoMSxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuYm9hcmQtbWVtYmVyLWRldGFpbCBoMSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6IHBsYXlmYWlyLWRpc3BsYXksIHNlcmlmO1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMy42ZW07XG4gIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICN0ZXN0aW1vbmlhbHMgLmJvYXJkLW1lbWJlci1kZXRhaWwgaDEsXG4gICAgLnRlc3RpbW9uaWFsLXBvcHVwIC5ib2FyZC1tZW1iZXItZGV0YWlsIGgxLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGFydG5lcnMgLmJvYXJkLW1lbWJlci1kZXRhaWwgaDEsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS10ZWFtIC5ib2FyZC1tZW1iZXItZGV0YWlsIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogNC44ZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjdGVzdGltb25pYWxzIC5ib2FyZC1tZW1iZXItZGV0YWlsIGgxLFxuICAgIC50ZXN0aW1vbmlhbC1wb3B1cCAuYm9hcmQtbWVtYmVyLWRldGFpbCBoMSxcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBhcnRuZXJzIC5ib2FyZC1tZW1iZXItZGV0YWlsIGgxLFxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuYm9hcmQtbWVtYmVyLWRldGFpbCBoMSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0NXB4OyB9IH1cblxuI3Rlc3RpbW9uaWFscyAuYm9hcmQtbWVtYmVyLWRldGFpbC5wYXJ0bmVyc2hpcC1kZXRhaWwgLmludHJvIHAsXG4udGVzdGltb25pYWwtcG9wdXAgLmJvYXJkLW1lbWJlci1kZXRhaWwucGFydG5lcnNoaXAtZGV0YWlsIC5pbnRybyBwLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuYm9hcmQtbWVtYmVyLWRldGFpbC5wYXJ0bmVyc2hpcC1kZXRhaWwgLmludHJvIHAsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXRlYW0gLmJvYXJkLW1lbWJlci1kZXRhaWwucGFydG5lcnNoaXAtZGV0YWlsIC5pbnRybyBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuICAjdGVzdGltb25pYWxzIC5ib2FyZC1tZW1iZXItZGV0YWlsLnBhcnRuZXJzaGlwLWRldGFpbCAuaW50cm8gcDpsYXN0LWNoaWxkLFxuICAudGVzdGltb25pYWwtcG9wdXAgLmJvYXJkLW1lbWJlci1kZXRhaWwucGFydG5lcnNoaXAtZGV0YWlsIC5pbnRybyBwOmxhc3QtY2hpbGQsXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtcGFydG5lcnMgLmJvYXJkLW1lbWJlci1kZXRhaWwucGFydG5lcnNoaXAtZGV0YWlsIC5pbnRybyBwOmxhc3QtY2hpbGQsXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuYm9hcmQtbWVtYmVyLWRldGFpbC5wYXJ0bmVyc2hpcC1kZXRhaWwgLmludHJvIHA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4jdGVzdGltb25pYWxzIC5ib2FyZC1tZW1iZXItZGV0YWlsIC5pbnRybyxcbi50ZXN0aW1vbmlhbC1wb3B1cCAuYm9hcmQtbWVtYmVyLWRldGFpbCAuaW50cm8sXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBhcnRuZXJzIC5ib2FyZC1tZW1iZXItZGV0YWlsIC5pbnRybyxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuYm9hcmQtbWVtYmVyLWRldGFpbCAuaW50cm8ge1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMi40ZW07XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI3Rlc3RpbW9uaWFscyAuYm9hcmQtbWVtYmVyLWRldGFpbCAuaW50cm8sXG4gICAgLnRlc3RpbW9uaWFsLXBvcHVwIC5ib2FyZC1tZW1iZXItZGV0YWlsIC5pbnRybyxcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBhcnRuZXJzIC5ib2FyZC1tZW1iZXItZGV0YWlsIC5pbnRybyxcbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLXRlYW0gLmJvYXJkLW1lbWJlci1kZXRhaWwgLmludHJvIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7IH0gfVxuICAjdGVzdGltb25pYWxzIC5ib2FyZC1tZW1iZXItZGV0YWlsIC5pbnRybyBwIGEsXG4gICN0ZXN0aW1vbmlhbHMgLmJvYXJkLW1lbWJlci1kZXRhaWwgLmludHJvIHAgYTp2aXNpdGVkLFxuICAudGVzdGltb25pYWwtcG9wdXAgLmJvYXJkLW1lbWJlci1kZXRhaWwgLmludHJvIHAgYSxcbiAgLnRlc3RpbW9uaWFsLXBvcHVwIC5ib2FyZC1tZW1iZXItZGV0YWlsIC5pbnRybyBwIGE6dmlzaXRlZCxcbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuYm9hcmQtbWVtYmVyLWRldGFpbCAuaW50cm8gcCBhLFxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLXBhcnRuZXJzIC5ib2FyZC1tZW1iZXItZGV0YWlsIC5pbnRybyBwIGE6dmlzaXRlZCxcbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS10ZWFtIC5ib2FyZC1tZW1iZXItZGV0YWlsIC5pbnRybyBwIGEsXG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuYm9hcmQtbWVtYmVyLWRldGFpbCAuaW50cm8gcCBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4jdGVzdGltb25pYWxzIC5ib2FyZC1tZW1iZXItZGV0YWlsIC5lbWFpbCxcbi50ZXN0aW1vbmlhbC1wb3B1cCAuYm9hcmQtbWVtYmVyLWRldGFpbCAuZW1haWwsXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLXBhcnRuZXJzIC5ib2FyZC1tZW1iZXItZGV0YWlsIC5lbWFpbCxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuYm9hcmQtbWVtYmVyLWRldGFpbCAuZW1haWwge1xuICBtYXJnaW4tdG9wOiA5cHg7IH1cblxuI3Rlc3RpbW9uaWFscyAuYm9hcmQtbWVtYmVyLWRldGFpbCAuZW1haWwgYSxcbiN0ZXN0aW1vbmlhbHMgLmJvYXJkLW1lbWJlci1kZXRhaWwgLmVtYWlsIGE6dmlzaXRlZCxcbi50ZXN0aW1vbmlhbC1wb3B1cCAuYm9hcmQtbWVtYmVyLWRldGFpbCAuZW1haWwgYSxcbi50ZXN0aW1vbmlhbC1wb3B1cCAuYm9hcmQtbWVtYmVyLWRldGFpbCAuZW1haWwgYTp2aXNpdGVkLFxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1wYXJ0bmVycyAuYm9hcmQtbWVtYmVyLWRldGFpbCAuZW1haWwgYSxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGFydG5lcnMgLmJvYXJkLW1lbWJlci1kZXRhaWwgLmVtYWlsIGE6dmlzaXRlZCxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuYm9hcmQtbWVtYmVyLWRldGFpbCAuZW1haWwgYSxcbi5wYWdlLXRlbXBsYXRlLXBhZ2UtdGVhbSAuYm9hcmQtbWVtYmVyLWRldGFpbCAuZW1haWwgYTp2aXNpdGVkIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LWZhbWlseTogbW9udHNlcnJhdCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4jdGVzdGltb25pYWxzIC5ib2FyZC1tZW1iZXItZGV0YWlsIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9XG4gICN0ZXN0aW1vbmlhbHMgLmJvYXJkLW1lbWJlci1kZXRhaWwgaDEge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgI3Rlc3RpbW9uaWFscyAuYm9hcmQtbWVtYmVyLWRldGFpbCBoMSxcbiAgI3Rlc3RpbW9uaWFscyAuYm9hcmQtbWVtYmVyLWRldGFpbCAuZmVhdHVyZWQtaW1hZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDIxcHg7IH1cbiAgI3Rlc3RpbW9uaWFscyAuYm9hcmQtbWVtYmVyLWRldGFpbCAuZXhjZXJwdCBwIHtcbiAgICBmb250LWZhbWlseTogbW9udHNlcnJhdCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDEuNmVtO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAjdGVzdGltb25pYWxzIC5ib2FyZC1tZW1iZXItZGV0YWlsIC5leGNlcnB0IHAge1xuICAgICAgICBmb250LXNpemU6IDJlbTsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGFydG5lcnMgLmJvYXJkLW1lbWJlci1kZXRhaWwgLmZlYXR1cmVkLWltYWdlIHtcbiAgYmFja2dyb3VuZC1zaXplOiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuXG4uc2xpZGVyLW5hdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnNsaWRlci1uYXZlciB7XG4gICAgICB3aWR0aDogNDRweDtcbiAgICAgIGhlaWdodDogNDRweDsgfSB9XG5cbi5zbGlkZXNob3ctaG9sZGVyIC51ay1zbGlkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5zbGlkZXNob3ctaG9sZGVyIC51ay1zbGlkZXIgLmdzYnRiLWltYWdlLWhvbGRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiA3NSU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzBmNWRlNTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuc2xpZGVzaG93LWhvbGRlciAudWstc2xpZGVyIC51ay1zbGlkZXItbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBtYXJnaW4tdG9wOiAzMHB4OyB9XG4gIC5zbGlkZXNob3ctaG9sZGVyIC51ay1zbGlkZXIgLnVrLWRvdG5hdiA+ICogPiAqIHtcbiAgICBib3JkZXItY29sb3I6IHdoaXRlO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDsgfVxuICAuc2xpZGVzaG93LWhvbGRlciAudWstc2xpZGVyIC51ay1kb3RuYXYgPiAudWstYWN0aXZlID4gKiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cblxubWFpbi5jb2xvci13aGl0ZSAuc2xpZGVzaG93LWhvbGRlciAudWstc2xpZGVyIC51ay1kb3RuYXYgPiAqID4gKiB7XG4gIGJvcmRlci1jb2xvcjogI2ZjM2IzZDtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDsgfVxuXG5tYWluLmNvbG9yLXdoaXRlIC5zbGlkZXNob3ctaG9sZGVyIC51ay1zbGlkZXIgLnVrLWRvdG5hdiA+IC51ay1hY3RpdmUgPiAqIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjM2IzZDsgfVxuXG4uYXJjaGl2ZSAjbWFpbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG5cbi5hcmNoaXZlIC5ncmlkLWhvbGRlciB7XG4gIHBhZGRpbmc6IDYwcHggMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmFyY2hpdmUgLmdyaWQtaG9sZGVyIHtcbiAgICAgIHBhZGRpbmc6IDE1MHB4IDA7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG93bmxvYWRzIC5kb3dubG9hZHMtaG9sZGVyIGxpIHtcbiAgICBwYWRkaW5nOiAwIDMwcHggMzBweCAzMHB4OyB9IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1kb3dubG9hZHMgLmRvd25sb2Fkcy1ob2xkZXIgYS5maWxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjM2IzZDtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAzMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAuMTRzIGVhc2U7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG93bmxvYWRzIC5kb3dubG9hZHMtaG9sZGVyIGEuZmlsZSB7XG4gICAgICBwYWRkaW5nOiA2MHB4IDMwcHg7IH0gfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvd25sb2FkcyAuZG93bmxvYWRzLWhvbGRlciBhLmZpbGU6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNiNDgwZTU7IH1cbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWRvd25sb2FkcyAuZG93bmxvYWRzLWhvbGRlciBhLmZpbGU6aG92ZXIgLmJ0biB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmMzYjNkOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG93bmxvYWRzIC5kb3dubG9hZHMtaG9sZGVyIGEuZmlsZSAuZmlsZW5hbWUge1xuICAgIGZvbnQtZmFtaWx5OiBtb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMS42ZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG93bmxvYWRzIC5kb3dubG9hZHMtaG9sZGVyIGEuZmlsZSAuZmlsZW5hbWUge1xuICAgICAgICBmb250LXNpemU6IDJlbTsgfSB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG93bmxvYWRzIC5kb3dubG9hZHMtaG9sZGVyIGEuZmlsZSAuYnRuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjQ4MGU1O1xuICAgIGZvbnQtZmFtaWx5OiBtb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgcGFkZGluZzogMTVweCAzMHB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAuMTRzIGVhc2U7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZG93bmxvYWRzIC5kb3dubG9hZHMtaG9sZGVyIGEuZmlsZSAuYnRuIHtcbiAgICAgICAgZm9udC1zaXplOiAyZW07IH0gfVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLW1lZGlhIC5tZWRpYS1pbWFnZS1ob2xkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy1ib3R0b206IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLW1lZGlhIC5tZWRpYS1pbWFnZS1ob2xkZXIgYSxcbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1tZWRpYSAubWVkaWEtaW1hZ2UtaG9sZGVyIHNwYW4ge1xuICAgIHdpZHRoOiA5MCU7XG4gICAgaGVpZ2h0OiA5MCU7XG4gICAgbGVmdDogNSU7XG4gICAgdG9wOiA1JTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtbWVkaWEgLm1lZGlhLWltYWdlcyB7XG4gIG1hcmdpbi10b3A6IDYwcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtbWVkaWEgLm1lZGlhLWltYWdlcyB7XG4gICAgICBtYXJnaW4tdG9wOiAxNTBweDsgfSB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtbWVkaWEgLmJnLWltYWdlLWhvbGRlciB7XG4gIGJhY2tncm91bmQ6ICNmYzNiM2Q7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQ4MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1tZWRpYSAuYmctaW1hZ2UtaG9sZGVyIC5iZy1pbWFnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7IH1cblxuLnBhcnRuZXJzLWhvbGRlci51ay1ncmlkLWxhcmdlIHtcbiAgbWFyZ2luLXRvcDogMTIwcHg7IH1cblxuLnBhcnRuZXJzLWhvbGRlciBoMi5jYXQtdGl0bGUge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgbWFyZ2luOiA3NXB4IDAgNDVweCAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5wYXJ0bmVycy1ob2xkZXIgLmluZm8taG9sZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA4MCUgYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cblxuLnBhcnRuZXJzLWhvbGRlciAucGFydG5lci1pbmZvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5wYXJ0bmVycy1ob2xkZXIgLmNvbnRlbnQtaG9sZGVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYzNiM2Q7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnBhcnRuZXJzLWhvbGRlciAuY29udGVudC1ob2xkZXIgcCBzdHJvbmcsXG4gIC5wYXJ0bmVycy1ob2xkZXIgLmNvbnRlbnQtaG9sZGVyIGgyLFxuICAucGFydG5lcnMtaG9sZGVyIC5jb250ZW50LWhvbGRlciBoMyB7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLnBhcnRuZXJzLWhvbGRlciAuY29udGVudC1ob2xkZXIgcCB7XG4gICAgZm9udC1zaXplOiAxLjZlbTsgfVxuICAucGFydG5lcnMtaG9sZGVyIC5jb250ZW50LWhvbGRlciBoMyB7XG4gICAgbWFyZ2luLXRvcDogMTVweDsgfVxuICAucGFydG5lcnMtaG9sZGVyIC5jb250ZW50LWhvbGRlciAuc3ViX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGFydG5lcnMgLndheXMtaG9sZGVyIGgxIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiA5MHB4OyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGFydG5lcnMgLndheXMtaG9sZGVyIGgzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbi5wYWdlLXRlbXBsYXRlLXBhZ2UtcGFydG5lcnMgLndheXMtaG9sZGVyIC5pbWFnZS1ob2xkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDEwMCU7XG4gIGhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I0ODBlNTsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWV2ZW50cy1waHAgLm1lbWJlci1zd2l0Y2hlci1uYXYge1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNjBweDsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWV2ZW50cy1waHAgLnR5cGUtZXZlbnRzLWhvbGRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIC50eXBlLWV2ZW50cyB7XG4gICAgcGFkZGluZzogMzBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIC50eXBlLWV2ZW50cyB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH0gfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWV2ZW50cy1waHAgLnNpbmdsZS1ldmVudC1ob2xkZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiAxNDQwcHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZXZlbnRzLXBocCAuc2luZ2xlLWV2ZW50LWhvbGRlciB7XG4gICAgICAgIHBhZGRpbmc6IDAgNDVweDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIC5zaW5nbGUtZXZlbnQtaG9sZGVyIHtcbiAgICAgICAgcGFkZGluZzogMCA5MHB4OyB9XG4gICAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZXZlbnRzLXBocCAuc2luZ2xlLWV2ZW50LWhvbGRlci5uby1wYWRkaW5nIHtcbiAgICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWV2ZW50cy1waHAgLnNpbmdsZS1ldmVudC1ob2xkZXIgLndyYXAge1xuICAgICAgcGFkZGluZzogMCAzNnB4OyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIC5zaW5nbGUtZXZlbnQtaG9sZGVyIC53cmFwIHtcbiAgICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIC5ldmVudC1kZXNjcmlwdGlvbi1ob2xkZXIge1xuICAgIHBhZGRpbmc6IDQ1cHggMDsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWV2ZW50cy1waHAgI2V2ZW50c19vbXMgLnR5cGUtZXZlbnRzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWFiMzQ3OyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZXZlbnRzLXBocCAjZXZlbnRzX3NwcmFjaGNhZmUgLnR5cGUtZXZlbnRzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGY1ZGU1OyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZXZlbnRzLXBocCAjZXZlbnRzX29wZW5fa2l0Y2hlbiAudHlwZS1ldmVudHMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZGE2Mjk7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwICNldmVudHNfb2FzIC50eXBlLWV2ZW50cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjM2IzZDsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWV2ZW50cy1waHAgI2V2ZW50c19nZW5lcmFsIC50eXBlLWV2ZW50cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U4ODFhYTsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWV2ZW50cy1waHAgLnR5cGUtZXZlbnRzIHtcbiAgICBwYWRkaW5nOiA0NXB4OyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZXZlbnRzLXBocCAjc2luZ2xlX2FydGljbGUgLnNwaW5uZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIC5zaW5nbGUtZXZlbnQgLnVrLWdyaWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIC5zaW5nbGUtZXZlbnQgLnVrLWdyaWQge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwICNzaW5nbGVfYXJ0aWNsZS5sb2FkaW5nIHtcbiAgICBtaW4taGVpZ2h0OiA1NDBweDsgfVxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZXZlbnRzLXBocCAjc2luZ2xlX2FydGljbGUubG9hZGluZyAuc3Bpbm5lciB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWV2ZW50cy1waHAgLmRhdGUtaG9sZGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICAucGFnZS10ZW1wbGF0ZS1wYWdlLWV2ZW50cy1waHAgLmRhdGUtaG9sZGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgZmxleC1iYXNpczogMTAwcHg7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7IH0gfVxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZXZlbnRzLXBocCAuZGF0ZS1ob2xkZXIgLnllYXIsXG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIC5kYXRlLWhvbGRlciAuZGF5bmFtZSB7XG4gICAgICBmb250LWZhbWlseTogbW9udHNlcnJhdCwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXNpemU6IDEuNmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIC5kYXRlLWhvbGRlciAuZGF0ZSB7XG4gICAgICBmb250LWZhbWlseTogbW9udHNlcnJhdCwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXNpemU6IDIuNGVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG4gIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZXZlbnRzLXBocCAuYXZhdGFyIHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgaGVpZ2h0OiAxNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjVkZTU7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIC5hdmF0YXItaG9sZGVyIHtcbiAgICBtYXJnaW46IDE1cHggMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZXZlbnRzLXBocCAuYXZhdGFyLWhvbGRlciB7XG4gICAgICAgIG1hcmdpbjogMCAzMHB4OyB9IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIC5yZWFkLW1vcmUge1xuICAgIG1hcmdpbi10b3A6IDQ1cHg7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIHAuZGF0ZSB7XG4gICAgZm9udC1zaXplOiAxLjZlbTsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWV2ZW50cy1waHAgLnNsaWRlci1uYXZlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0yMnB4OyB9XG4gICAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1ldmVudHMtcGhwIC5zbGlkZXItbmF2ZXIudWstc2xpZGVuYXYtcHJldmlvdXMge1xuICAgICAgbGVmdDogMDsgfVxuICAgIC5wYWdlLXRlbXBsYXRlLXBhZ2UtZXZlbnRzLXBocCAuc2xpZGVyLW5hdmVyLnVrLXNsaWRlbmF2LW5leHQge1xuICAgICAgcmlnaHQ6IDA7IH1cblxuLmV2ZW50LWRlc2NyaXB0aW9uLWhvbGRlciAuZXZlbnRzX2J1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBtYXJnaW4tYm90dG9tOiA0NXB4OyB9XG5cbmJvZHkubWVudS1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7IH1cbiAgYm9keS5tZW51LW9wZW4gI21vYmlsZS1tZW51IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgYm9keS5tZW51LW9wZW4gI21vYmlsZS1tZW51IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuI21vYmlsZS1tZW51IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDIwMDA7XG4gIGhlaWdodDogMTAwdmg7XG4gIG1heC1oZWlnaHQ6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjM2IzZDsgfVxuICAjbW9iaWxlLW1lbnUgLm5hdi1ob2xkZXIge1xuICAgIHBhZGRpbmc6IDI0MHB4IDE1cHg7IH1cbiAgI21vYmlsZS1tZW51IC5wYWRkZXIge1xuICAgIHdpZHRoOiA2NiU7XG4gICAgYmFja2dyb3VuZDogIzBmNWRlNTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG5cbiNtb2JpbGUtbWVudSBuYXYubGFuZ3VhZ2VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDI0cHg7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnBhZ2UtdGVtcGxhdGUtcGFnZS1pbmZvZ3JhcGhpYyAucGFnZS1zZWN0aW9uIHtcbiAgcGFkZGluZzogMDsgfVxuICAucGFnZS10ZW1wbGF0ZS1wYWdlLWluZm9ncmFwaGljIC5wYWdlLXNlY3Rpb24gLndyYXAge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLnBhZ2UtdGVtcGxhdGUtcGFnZS1pbmZvZ3JhcGhpYyAucGFnZS1zZWN0aW9uIGltZyB7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cblxuLnBhZ2Utc2VjdGlvbiB7XG4gIHBhZGRpbmc6IDYwcHggMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAucGFnZS1zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDkwcHggMDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAucGFnZS1zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDEyMHB4IDAgOTBweCAwOyB9IH1cbiAgLnBhZ2Utc2VjdGlvbiAucGFnZS1zZWN0aW9uLWhlYWRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDVweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgLnBhZ2Utc2VjdGlvbiAucGFnZS1zZWN0aW9uLWhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwNXB4OyB9IH1cbiAgICAucGFnZS1zZWN0aW9uIC5wYWdlLXNlY3Rpb24taGVhZGVyIC5zdWJiZXIge1xuICAgICAgbWFyZ2luLXRvcDogMzBweDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIC5wYWdlLXNlY3Rpb24gLnBhZ2Utc2VjdGlvbi1oZWFkZXIgLnN1YmJlciB7XG4gICAgICAgICAgcGFkZGluZzogMCA0NXB4OyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgLnBhZ2Utc2VjdGlvbiAucGFnZS1zZWN0aW9uLWhlYWRlciAuc3ViYmVyIHtcbiAgICAgICAgICBwYWRkaW5nOiAwIDkwcHg7IH0gfVxuICAgICAgLnBhZ2Utc2VjdGlvbiAucGFnZS1zZWN0aW9uLWhlYWRlciAuc3ViYmVyIHAge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyZW07IH1cbiAgICAgICAgLnBhZ2Utc2VjdGlvbiAucGFnZS1zZWN0aW9uLWhlYWRlciAuc3ViYmVyIHAgYSxcbiAgICAgICAgLnBhZ2Utc2VjdGlvbiAucGFnZS1zZWN0aW9uLWhlYWRlciAuc3ViYmVyIHAgYTp2aXNpdGVkIHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAgICAgICAucGFnZS1zZWN0aW9uIC5wYWdlLXNlY3Rpb24taGVhZGVyIC5zdWJiZXIgcCBhOmhvdmVyLFxuICAgICAgICAgIC5wYWdlLXNlY3Rpb24gLnBhZ2Utc2VjdGlvbi1oZWFkZXIgLnN1YmJlciBwIGE6dmlzaXRlZDpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAucGFnZS1zZWN0aW9uIC5wYWdlLXNlY3Rpb24taGVhZGVyIGgxIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LWZhbWlseTogcGxheWZhaXItZGlzcGxheSwgc2VyaWY7XG4gICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgZm9udC1zaXplOiAyLjdlbTsgfVxuICAgICAgLnBhZ2Utc2VjdGlvbiAucGFnZS1zZWN0aW9uLWhlYWRlciBoMSBhIHtcbiAgICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgLnBhZ2Utc2VjdGlvbiAucGFnZS1zZWN0aW9uLWhlYWRlciBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAzLjZlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgLnBhZ2Utc2VjdGlvbiAucGFnZS1zZWN0aW9uLWhlYWRlciBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiA0LjVlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDQ1cHg7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgICAucGFnZS1zZWN0aW9uIC5wYWdlLXNlY3Rpb24taGVhZGVyIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDZlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDkwcHg7IH0gfVxuICAgIC5wYWdlLXNlY3Rpb24gLnBhZ2Utc2VjdGlvbi1oZWFkZXIuc2ltcGxlLXZlcnNpb24gaDEge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLnBhZ2Utc2VjdGlvbiBoMiB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LWZhbWlseTogcGxheWZhaXItZGlzcGxheSwgc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC1zaXplOiAzLjZlbTtcbiAgICBtYXJnaW46IDAgMCAxNXB4IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5wYWdlLXNlY3Rpb24gaDIge1xuICAgICAgICBmb250LXNpemU6IDQuOGVtOyB9IH1cbiAgLnBhZ2Utc2VjdGlvbiBoMyB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtZmFtaWx5OiBwbGF5ZmFpci1kaXNwbGF5LCBzZXJpZjtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXNpemU6IDIuN2VtO1xuICAgIG1hcmdpbjogMCAwIDE1cHggMDsgfVxuICAucGFnZS1zZWN0aW9uLmJnLXdoaXRlIGgxIHtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuXG4uYmctZ3JleSAuZW50cnktY29udGVudCxcbi5iZy13aGl0ZSAuZW50cnktY29udGVudCxcbi5zaW5nbGUtcHJvamVjdHMgI21haW4uY29sb3Itd2hpdGUgLmVudHJ5LWNvbnRlbnQsXG4uc2luZ2xlLXBvc3QgLmVudHJ5LWNvbnRlbnQge1xuICBjb2xvcjogIzAwMDAwMDsgfVxuICAuYmctZ3JleSAuZW50cnktY29udGVudCBwIGEsXG4gIC5iZy1ncmV5IC5lbnRyeS1jb250ZW50IHAgYTp2aXNpdGVkLFxuICAuYmctZ3JleSAuZW50cnktY29udGVudCBwIGE6YWN0aXZlLFxuICAuYmctZ3JleSAuZW50cnktY29udGVudCBwIGE6aG92ZXIsXG4gIC5iZy1ncmV5IC5lbnRyeS1jb250ZW50IHAsXG4gIC5iZy1ncmV5IC5lbnRyeS1jb250ZW50IGxpLFxuICAuYmctZ3JleSAuZW50cnktY29udGVudCBoMSxcbiAgLmJnLWdyZXkgLmVudHJ5LWNvbnRlbnQgaDIsXG4gIC5iZy1ncmV5IC5lbnRyeS1jb250ZW50IGgzLFxuICAuYmctZ3JleSAuZW50cnktY29udGVudCBoNCxcbiAgLmJnLWdyZXkgLmVudHJ5LWNvbnRlbnQgaDUsXG4gIC5iZy1ncmV5IC5lbnRyeS1jb250ZW50IGg2LFxuICAuYmctd2hpdGUgLmVudHJ5LWNvbnRlbnQgcCBhLFxuICAuYmctd2hpdGUgLmVudHJ5LWNvbnRlbnQgcCBhOnZpc2l0ZWQsXG4gIC5iZy13aGl0ZSAuZW50cnktY29udGVudCBwIGE6YWN0aXZlLFxuICAuYmctd2hpdGUgLmVudHJ5LWNvbnRlbnQgcCBhOmhvdmVyLFxuICAuYmctd2hpdGUgLmVudHJ5LWNvbnRlbnQgcCxcbiAgLmJnLXdoaXRlIC5lbnRyeS1jb250ZW50IGxpLFxuICAuYmctd2hpdGUgLmVudHJ5LWNvbnRlbnQgaDEsXG4gIC5iZy13aGl0ZSAuZW50cnktY29udGVudCBoMixcbiAgLmJnLXdoaXRlIC5lbnRyeS1jb250ZW50IGgzLFxuICAuYmctd2hpdGUgLmVudHJ5LWNvbnRlbnQgaDQsXG4gIC5iZy13aGl0ZSAuZW50cnktY29udGVudCBoNSxcbiAgLmJnLXdoaXRlIC5lbnRyeS1jb250ZW50IGg2LFxuICAuc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLXdoaXRlIC5lbnRyeS1jb250ZW50IHAgYSxcbiAgLnNpbmdsZS1wcm9qZWN0cyAjbWFpbi5jb2xvci13aGl0ZSAuZW50cnktY29udGVudCBwIGE6dmlzaXRlZCxcbiAgLnNpbmdsZS1wcm9qZWN0cyAjbWFpbi5jb2xvci13aGl0ZSAuZW50cnktY29udGVudCBwIGE6YWN0aXZlLFxuICAuc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLXdoaXRlIC5lbnRyeS1jb250ZW50IHAgYTpob3ZlcixcbiAgLnNpbmdsZS1wcm9qZWN0cyAjbWFpbi5jb2xvci13aGl0ZSAuZW50cnktY29udGVudCBwLFxuICAuc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLXdoaXRlIC5lbnRyeS1jb250ZW50IGxpLFxuICAuc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLXdoaXRlIC5lbnRyeS1jb250ZW50IGgxLFxuICAuc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLXdoaXRlIC5lbnRyeS1jb250ZW50IGgyLFxuICAuc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLXdoaXRlIC5lbnRyeS1jb250ZW50IGgzLFxuICAuc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLXdoaXRlIC5lbnRyeS1jb250ZW50IGg0LFxuICAuc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLXdoaXRlIC5lbnRyeS1jb250ZW50IGg1LFxuICAuc2luZ2xlLXByb2plY3RzICNtYWluLmNvbG9yLXdoaXRlIC5lbnRyeS1jb250ZW50IGg2LFxuICAuc2luZ2xlLXBvc3QgLmVudHJ5LWNvbnRlbnQgcCBhLFxuICAuc2luZ2xlLXBvc3QgLmVudHJ5LWNvbnRlbnQgcCBhOnZpc2l0ZWQsXG4gIC5zaW5nbGUtcG9zdCAuZW50cnktY29udGVudCBwIGE6YWN0aXZlLFxuICAuc2luZ2xlLXBvc3QgLmVudHJ5LWNvbnRlbnQgcCBhOmhvdmVyLFxuICAuc2luZ2xlLXBvc3QgLmVudHJ5LWNvbnRlbnQgcCxcbiAgLnNpbmdsZS1wb3N0IC5lbnRyeS1jb250ZW50IGxpLFxuICAuc2luZ2xlLXBvc3QgLmVudHJ5LWNvbnRlbnQgaDEsXG4gIC5zaW5nbGUtcG9zdCAuZW50cnktY29udGVudCBoMixcbiAgLnNpbmdsZS1wb3N0IC5lbnRyeS1jb250ZW50IGgzLFxuICAuc2luZ2xlLXBvc3QgLmVudHJ5LWNvbnRlbnQgaDQsXG4gIC5zaW5nbGUtcG9zdCAuZW50cnktY29udGVudCBoNSxcbiAgLnNpbmdsZS1wb3N0IC5lbnRyeS1jb250ZW50IGg2IHtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuXG4uZW50cnktY29udGVudCB7XG4gIHBhZGRpbmc6IDA7XG4gIGNvbG9yOiAjZmZmO1xuICAvKlxuICBpbWFnZSBhbGlnbm1lbnQgb24gYSBzY3JlZW4gdGhpcyBzaXplIG1heSBiZVxuICBhIGJpdCBkaWZmaWN1bHQuIEl0J3Mgc2V0IHRvIHN0YXJ0IGFsaWduaW5nXG4gIGFuZCBmbG9hdGluZyBpbWFnZXMgYXQgdGhlIG5leHQgYnJlYWtwb2ludCxcbiAgYnV0IGl0J3MgdXAgdG8geW91LiBGZWVsIGZyZWUgdG8gY2hhbmdlIGl0IHVwLlxuICAqLyB9XG4gIC5lbnRyeS1jb250ZW50IHAsXG4gIC5lbnRyeS1jb250ZW50IGxpLFxuICAuZW50cnktY29udGVudCBoMSxcbiAgLmVudHJ5LWNvbnRlbnQgaDIsXG4gIC5lbnRyeS1jb250ZW50IGgzLFxuICAuZW50cnktY29udGVudCBoNCxcbiAgLmVudHJ5LWNvbnRlbnQgaDUsXG4gIC5lbnRyeS1jb250ZW50IGg2IHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuZW50cnktY29udGVudCBhLFxuICAuZW50cnktY29udGVudCBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgIC5lbnRyeS1jb250ZW50IGEucmVhZC1tb3JlLFxuICAgIC5lbnRyeS1jb250ZW50IGE6dmlzaXRlZC5yZWFkLW1vcmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmVudHJ5LWNvbnRlbnQgYTpob3ZlcixcbiAgICAuZW50cnktY29udGVudCBhOnZpc2l0ZWQ6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5lbnRyeS1jb250ZW50IHAge1xuICAgIGZvbnQtZmFtaWx5OiBtb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgbWFyZ2luOiAwIDAgMS41ZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5lbnRyeS1jb250ZW50IHAge1xuICAgICAgICBmb250LXNpemU6IDJlbTsgfSB9XG4gICAgLmVudHJ5LWNvbnRlbnQgcDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmVudHJ5LWNvbnRlbnQgbGkge1xuICAgIGZvbnQtZmFtaWx5OiBtb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgLmVudHJ5LWNvbnRlbnQgbGkge1xuICAgICAgICBmb250LXNpemU6IDJlbTsgfSB9XG4gICAgLmVudHJ5LWNvbnRlbnQgbGk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTBweDtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgIHRvcDogMTBweDtcbiAgICAgIGxlZnQ6IDBweDsgfVxuICAuZW50cnktY29udGVudCBoMSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LWZhbWlseTogcGxheWZhaXItZGlzcGxheSwgc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC1zaXplOiAzLjZlbTtcbiAgICBtYXJnaW46IDEyMHB4IDAgMTVweCAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuZW50cnktY29udGVudCBoMTpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgLmVudHJ5LWNvbnRlbnQgaDEgYSB7XG4gICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgIC5lbnRyeS1jb250ZW50IGgxIHtcbiAgICAgICAgZm9udC1zaXplOiA0LjJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAuZW50cnktY29udGVudCBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNmVtO1xuICAgICAgICBtYXJnaW46IDEyMHB4IDAgNDVweCAwOyB9IH1cbiAgLmVudHJ5LWNvbnRlbnQgaDIge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1mYW1pbHk6IG1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAyLjRlbTtcbiAgICBtYXJnaW46IDYwcHggMCAzMHB4IDA7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgLmVudHJ5LWNvbnRlbnQgaDIge1xuICAgICAgICBmb250LXNpemU6IDMuNmVtOyB9IH1cbiAgICAuZW50cnktY29udGVudCBoMjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5lbnRyeS1jb250ZW50IHVsLCAuZW50cnktY29udGVudCBvbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogM2VtOyB9XG4gIC5lbnRyeS1jb250ZW50IGlmcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmVudHJ5LWNvbnRlbnQgdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlYWVkZjI7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07IH1cbiAgICAuZW50cnktY29udGVudCB0YWJsZSBjYXB0aW9uIHtcbiAgICAgIG1hcmdpbjogMCAwIDdweDtcbiAgICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgICAgY29sb3I6ICM5ZmE2YjQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsgfVxuICAuZW50cnktY29udGVudCB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYWVkZjI7IH1cbiAgICAuZW50cnktY29udGVudCB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTsgfVxuICAuZW50cnktY29udGVudCB0ZCB7XG4gICAgcGFkZGluZzogN3B4O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlYWVkZjI7IH1cbiAgICAuZW50cnktY29udGVudCB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAuZW50cnktY29udGVudCB0aCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VhZWRmMjtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZWFlZGYyOyB9XG4gICAgLmVudHJ5LWNvbnRlbnQgdGg6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgLmVudHJ5LWNvbnRlbnQgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgMS41ZW0gMC43NWVtO1xuICAgIHBhZGRpbmc6IDAgMCAwIDAuNzVlbTtcbiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMwZjVkZTU7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGNvbG9yOiAjOWZhNmI0OyB9XG4gIC5lbnRyeS1jb250ZW50IGRkIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIGNvbG9yOiAjNzg3ODc4O1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtOyB9XG4gIC5lbnRyeS1jb250ZW50IGltZyB7XG4gICAgbWFyZ2luOiAzMHB4IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAuZW50cnktY29udGVudCAud3AtYmxvY2staW1hZ2U6Zmlyc3QtY2hpbGQgaW1nIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5lbnRyeS1jb250ZW50IC5zaXplLWF1dG8sXG4gIC5lbnRyeS1jb250ZW50IC5zaXplLWZ1bGwsXG4gIC5lbnRyeS1jb250ZW50IC5zaXplLWxhcmdlLFxuICAuZW50cnktY29udGVudCAuc2l6ZS1tZWRpdW0sXG4gIC5lbnRyeS1jb250ZW50IC5zaXplLXRodW1ibmFpbCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAuZW50cnktY29udGVudCBwcmUge1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgY29sb3I6ICNmOGY5ZmE7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgICBwYWRkaW5nOiAxLjVlbTtcbiAgICBtYXJnaW46IDAgMCAxLjVlbTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgLmVudHJ5LWNvbnRlbnQge1xuICAgICAgLyogYXQgdGhpcyBsYXJnZXIgc2l6ZSwgd2UgY2FuIHN0YXJ0IHRvIGFsaWduIGltYWdlcyAqLyB9XG4gICAgICAuZW50cnktY29udGVudCAuYWxpZ25sZWZ0LCAuZW50cnktY29udGVudCBpbWcuYWxpZ25sZWZ0IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjVlbTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBmbG9hdDogbGVmdDsgfVxuICAgICAgLmVudHJ5LWNvbnRlbnQgLmFsaWducmlnaHQsIC5lbnRyeS1jb250ZW50IGltZy5hbGlnbnJpZ2h0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuNWVtO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIGZsb2F0OiByaWdodDsgfVxuICAgICAgLmVudHJ5LWNvbnRlbnQgLmFsaWduY2VudGVyLCAuZW50cnktY29udGVudCBpbWcuYWxpZ25jZW50ZXIge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY2xlYXI6IGJvdGg7IH0gfVxuXG4vKiBlbmQgLmVudHJ5LWNvbnRlbnQgKi9cbi8qKioqKioqKioqKioqKioqKioqKipcblJFVElOQSAoMnggUkVTT0xVVElPTiBERVZJQ0VTKVxuVGhpcyBhcHBsaWVzIHRvIHRoZSByZXRpbmEgaVBob25lICg0cykgYW5kIGlQYWQgKDIsMykgYWxvbmcgd2l0aFxub3RoZXIgZGlzcGxheXMgd2l0aCBhIDJ4IHJlc29sdXRpb24uIFlvdSBjYW4gYWxzbyBjcmVhdGUgYSBtZWRpYVxucXVlcnkgZm9yIHJldGluYSBBTkQgYSBjZXJ0YWluIHNpemUgaWYgeW91IHdhbnQuIEdvIE51dHMuXG4qKioqKioqKioqKioqKioqKioqKiovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSkge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5TaXRlIE5hbWU6IFxuQXV0aG9yOiBcblxuU3R5bGVzaGVldDogUmV0aW5hIFNjcmVlbnMgJiBEZXZpY2VzIFN0eWxlc2hlZXRcblxuV2hlbiBoYW5kbGluZyByZXRpbmEgc2NyZWVucyB5b3UgbmVlZCB0byBtYWtlIGFkanVzdG1lbnRzLCBlc3BlY2lhbGx5XG5pZiB5b3UncmUgbm90IHVzaW5nIGZvbnQgaWNvbnMuIEhlcmUgeW91IGNhbiBhZGQgdGhlbSBpbiBvbmUgbmVhdFxucGxhY2UuXG5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgLyogXG5cbkVYQU1QTEUgXG5MZXQncyBzYXkgeW91IGhhdmUgYW4gaW1hZ2UgYW5kIHlvdSBuZWVkIHRvIG1ha2Ugc3VyZSBpdCBsb29rcyBva1xub24gcmV0aW5hIHNjcmVlbnMuIExldCdzIHNheSB3ZSBoYXZlIGFuIGljb24gd2hpY2ggZGltZW5zaW9uIGFyZVxuMjRweCB4IDI0cHguIEluIHlvdXIgcmVndWxhciBzdHlsZXNoZWV0cywgaXQgd291bGQgbG9vayBzb21ldGhpbmdcbmxpa2UgdGhpczpcblxuLmljb24ge1xuXHR3aWR0aDogMjRweDtcblx0aGVpZ2h0OiAyNHB4O1xuXHRiYWNrZ3JvdW5kOiB1cmwoaW1nL3Rlc3QucG5nKSBuby1yZXBlYXQ7XG59XG5cbkZvciByZXRpbmEgc2NyZWVucywgd2UgaGF2ZSB0byBtYWtlIHNvbWUgYWRqdXN0bWVudHMsIHNvIHRoYXQgaW1hZ2VcbmRvZXNuJ3QgbG9vayBibHVycnkuIFNvLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBpbWFnZSBhYm92ZSBhbmQgdGhlXG5kaW1lbnNpb25zLCB0aGlzIGlzIHdoYXQgd2Ugd291bGQgcHV0IGluIG91ciByZXRpbmEgc3R5bGVzaGVldDpcblxuLmljb24ge1xuXHRiYWNrZ3JvdW5kOiB1cmwoaW1nL3Rlc3RAMngucG5nKSBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZTogMjRweCAyNHB4O1xufVxuXG5TbywgeW91IHdvdWxkIGNyZWF0ZSB0aGUgc2FtZSBpY29uLCBidXQgYXQgZG91YmxlIHRoZSByZXNvbHV0aW9uLCBtZWFuaW5nIFxuaXQgd291bGQgYmUgNDhweCB4IDQ4cHguIFlvdSdkIG5hbWUgaXQgdGhlIHNhbWUsIGJ1dCB3aXRoIGEgQDJ4IGF0IHRoZSBlbmRcbih0aGlzIGlzIHByZXR0eSBzdGFuZGFyZCBwcmFjdGljZSkuIFNldCB0aGUgYmFja2dyb3VuZCBpbWFnZSBzbyBpdCBtYXRjaGVzXG50aGUgb3JpZ2luYWwgZGltZW5zaW9ucyBhbmQgeW91IGFyZSBnb29kIHRvIGdvLiBcblxuKi8gfVxuXG4vKioqKioqKioqKioqKioqKioqKioqXG5QUklOVCBTVFlMRVNIRUVUXG5GZWVsIGZyZWUgdG8gY3VzdG9taXplIHRoaXMuIFJlbWVtYmVyIHRvIGFkZCB0aGluZ3MgdGhhdCB3b24ndCBtYWtlXG5zZW5zZSB0byBwcmludCBhdCB0aGUgYm90dG9tLiBUaGluZ3MgbGlrZSBuYXYsIGFkcywgYW5kIGZvcm1zIHNob3VsZFxuYmUgc2V0IHRvIGRpc3BsYXkgbm9uZS5cbioqKioqKioqKioqKioqKioqKioqKi9cbkBtZWRpYSBwcmludCB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblNpdGUgTmFtZTpcbkF1dGhvcjpcblxuU3R5bGVzaGVldDogUHJpbnQgU3R5bGVzaGVldFxuXG5UaGlzIGlzIHRoZSBwcmludCBzdHlsZXNoZWV0LiBUaGVyZSdzIHByb2JhYmx5IG5vdCBhIGxvdFxub2YgcmVhc29ucyB0byBlZGl0IHRoaXMgc3R5bGVzaGVldC4gSWYgeW91IHdhbnQgdG9cbnRob3VnaCwgZ28gZm9yIGl0LlxuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICoge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBmaWx0ZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtbXMtZmlsdGVyOiBub25lICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICBjb2xvcjogIzQ0NCAhaW1wb3J0YW50O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgYTphZnRlciwgYTp2aXNpdGVkOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG4gICAgYSBhYmJyW3RpdGxlXTphZnRlciwgYTp2aXNpdGVkIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuICAuaXIgYTphZnRlcixcbiAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyLFxuICBhW2hyZWZePVwiI1wiXTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgQHBhZ2Uge1xuICAgIG1hcmdpbjogMC41Y207IH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMzsgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG4gIC5zaWRlYmFyLFxuICAucGFnZS1uYXZpZ2F0aW9uLFxuICAud3AtcHJldi1uZXh0LFxuICAucmVzcG9uZC1mb3JtLFxuICBuYXYge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4vKiMgc291cmNlTWFwcGluZ1VSTD1zdHlsZS5jc3MubWFwICovIixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbF19 */