
@import url("https://fonts.googleapis.com/css?family=Roboto:400,700");
@import url("https://fonts.googleapis.com/css?family=Lato:400,700");
@import url("https://fonts.googleapis.com/icon?family=Material+Icons");
/* ==========================================================================
   INUITCSS
   ========================================================================== */
/**
 * inuitcss, by @csswizardry
 *
 * github.com/inuitcss | inuitcss.com
 */
/**
 * This is an example inuitcss manifest file. DO NOT MODIFY THIS FILE DIRECTLY.
 * Instead, copy and paste it into your own CSS directory and make additions,
 * extensions, and modifications there.
 */
/**
 * CONTENTS
 *
 * SETTINGS
 * Config...............Project-level configuration and feature switches.
 * Core.................inuitcss’ core and setup settings.
 * Global...............Project-wide variables and settings.
 *
 * TOOLS
 * Font-size............A mixin which guarantees baseline-friendly line-heights.
 * Clearfix.............Micro clearfix mixin.
 * Hidden...............Mixin for hiding elements.
 * Sass MQ..............inuitcss’ default media query manager.
 *
 * GENERIC
 * Box-sizing...........Better default `box-sizing`.
 * Normalize.css........A level playing field using @necolas’ Normalize.css.
 * Reset................A tiny reset to complement Normalize.css.
 * Shared...............Sensibly and tersely share some global commonalities
 *                      (particularly useful when managing vertical rhythm).
 *
 * ELEMENTS
 * Page.................Set up our document’s default `font-size` and
 *                      `line-height`.
 * Headings.............Very minimal (i.e. only font-size information) for
 *                      headings 1 through 6.
 * Images...............Base image styles.
 * Tables...............Simple table styles.
 *
 * OBJECTS
 * Wrapper..............Page constraint object.
 * Layout...............Generic layout module.
 * Media................Image- and text-like content side by side. The
 *                      poster-child of OOCSS.
 * Flag.................Table-layout-based advancement on the Media object.
 * List-bare............Lists with no bullets or indents.
 * List-inline..........A list whose items all site in a line.
 * Box..................Simple boxing abstraction.
 * Block................Image-on-top-of-text object.
 * Ratio................A container for maintaining aspect ratio of content.
 * Crop.................Provide a cropping context for media (images, etc.).
 * Table................Classes for manipulating `table`s.
 * Pack.................Pack items into available horizontal space.
 *
 * COMPONENTS
 * Buttons..............An example button component, and how it fits into the
 *                      inuitcss framework.
 *
 * UTILITIES
 * Clearfix.............Bind our clearfix onto a utility class.
 * Widths...............Simple width helper classes.
 * Headings.............Reassigning our heading styles to helper classes.
 * Spacings.............Nudge bits of the DOM around with these spacing
 *                      classes.
 * Responsive-Spacings..Enhances the function of normal spacings for
 *                      responsive usage.
 * Print................Reset-like styles taken from the HTML5 Boilerplate.
 * Hide.................Helper classes to hide content
 */
/* ==========================================================================
   #BOX-SIZING
   ========================================================================== */
/**
 * More sensible default box-sizing:
 * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
 */
html {
  box-sizing: border-box;
}

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

/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -ms-text-size-adjust: 100%; /* 2 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0;
}

/**
 * Add the correct display in IE 9-.
 */
article,
aside,
footer,
header,
nav,
section {
  display: block;
}

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

em {
  text-decoration: underline;
}

/* Grouping content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */
figcaption,
figure,
main { /* 1 */
  display: block;
}

/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 40px;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent; /* 1 */
  -webkit-text-decoration-skip: objects; /* 2 */
}

/**
 * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}

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

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

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

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

/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000;
}

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

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

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

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

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

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

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

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

/**
 * Until we have a design recipe for focus states
 * remove the generic focus outline
 */
input:focus {
  outline: none;
}

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

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

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

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

/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
}

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

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

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

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

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

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

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 */
details,
menu {
  display: block;
}

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

/* Scripting
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
canvas {
  display: inline-block;
}

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

/* Hidden
   ========================================================================== */
/**
 * Add the correct display in IE 10-.
 */
[hidden] {
  display: none;
}

/* ==========================================================================
   #RESET
   ========================================================================== */
/**
 * A very simple reset that sits on top of Normalize.css.
 */
body,
h1, h2, h3, h4, h5, h6,
blockquote, p, pre,
dl, dd, ol, ul,
figure,
hr,
fieldset, legend {
  margin: 0;
  padding: 0;
}

/**
 * Remove trailing margins from nested lists.
 */
li > ol,
li > ul {
  margin-bottom: 0;
}

/**
 * Remove default table spacing.
 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/**
 * 1. Reset Chrome and Firefox behaviour which sets a `min-width: min-content;`
 *    on fieldsets.
 */
fieldset {
  min-width: 0; /* [1] */
  border: 0;
}

/* ==========================================================================
   #SHARED
   ========================================================================== */
/**
 * Shared declarations for certain elements.
 */
/**
 * Always declare margins in the same direction:
 * csswizardry.com/2012/06/single-direction-margin-declarations
 */
address,
h1, h2, h3, h4, h5, h6,
blockquote, p, pre,
dl, ol, ul,
figure,
hr,
table,
fieldset {
  margin-bottom: 24px;
}

/**
 * Consistent indentation for lists.
 */
dd, ol, ul {
  margin-left: 24px;
}

/* ==========================================================================
   #PAGE
   ========================================================================== */
/**
 * Simple page-level setup.
 *
 * 1. Set the default `font-size` and `line-height` for the entire project,
 *    sourced from our default variables. The `font-size` is calculated to exist
 *    in ems, the `line-height` is calculated to exist unitlessly.
 * 2. Force scrollbars to always be visible to prevent awkward ‘jumps’ when
 *    navigating between pages that do/do not have enough content to produce
 *    scrollbars naturally.
 * 3. Ensure the page always fills at least the entire height of the viewport.
 */
html {
  font-size: 1em; /* [1] */
  line-height: 1.5; /* [1] */
  overflow-y: scroll; /* [2] */
  min-height: 100%; /* [3] */
}

/* ==========================================================================
   #HEADINGS
   ========================================================================== */
/**
 * Simple default styles for headings 1 through 6. Anything more opinionated
 * than simple font-size changes should likely be applied via classes (see:
 * http://csswizardry.com/2016/02/managing-typography-on-large-apps/).
 */
h1 {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1.2857142857;
  color: rgba(0, 0, 0, 0.84);
}

h2 {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 1.2857142857;
}

h3 {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 1.5;
  color: rgba(0, 0, 0, 0.84);
}

h4 {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.3333333333;
}

h5 {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 1.3333333333;
}

h6 {
  font-size: 16px;
  font-size: 1rem;
  line-height: 1.5;
}

/* ==========================================================================
   #IMAGES
   ========================================================================== */
/**
 * 1. Fluid images for responsive purposes.
 * 2. Offset `alt` text from surrounding copy.
 * 3. Setting `vertical-align` removes the whitespace that appears under `img`
 *    elements when they are dropped into a page as-is. Safer alternative to
 *    using `display: block;`.
 */
img {
  max-width: 100%; /* [1] */
  font-style: italic; /* [2] */
  vertical-align: middle; /* [3] */
}

/**
 * If a `width` and/or `height` attribute has been explicitly defined, let’s
 * not make the image fluid.
 */
img[width],
img[height] {
  max-width: none;
}

/* ==========================================================================
   #TABLES
   ========================================================================== */
/**
 * 1. Ensure tables fill up as much space as possible.
 */
table {
  width: 100%; /* [1] */
}

/* ==========================================================================
   #WRAPPER
   ========================================================================== */
/**
 * Page-level constraining and wrapping elements.
 */
.o-wrapper {
  margin-right: auto;
  margin-left: auto;
}
.o-wrapper:after {
  content: "" !important;
  display: block !important;
  clear: both !important;
}
@media (min-width: 46.25em) {
  .o-wrapper {
    max-width: 1200px;
    padding-right: 24px;
    padding-left: 24px;
  }
}

.nav-wrapper, .footer-wrapper {
  margin-right: auto;
  margin-left: auto;
  padding-right: 24px;
  padding-left: 24px;
  max-width: 1200px;
}
.nav-wrapper:after, .footer-wrapper:after {
  content: "" !important;
  display: block !important;
  clear: both !important;
}

/* ==========================================================================
   #LAYOUT
   ========================================================================== */
/**
 * Grid-like layout system.
 *
 * The layout object provides us with a column-style layout system. This file
 * contains the basic structural elements, but classes should be complemented
 * with width utilities, for example:
 *
 *   <div class="o-layout">
 *     <div class="o-layout__item  u-1/2">
 *     </div>
 *     <div class="o-layout__item  u-1/2">
 *     </div>
 *   </div>
 *
 * The above will create a two-column structure in which each column will
 * fluidly fill half of the width of the parent. We can have more complex
 * systems:
 *
 *   <div class="o-layout">
 *     <div class="o-layout__item  u-1/1  u-1/3@medium">
 *     </div>
 *     <div class="o-layout__item  u-1/2  u-1/3@medium">
 *     </div>
 *     <div class="o-layout__item  u-1/2  u-1/3@medium">
 *     </div>
 *   </div>
 *
 * The above will create a system in which the first item will be 100% width
 * until we enter our medium breakpoint, when it will become 33.333% width. The
 * second and third items will be 50% of their parent, until they also become
 * 33.333% width at the medium breakpoint.
 *
 * We can also manipulate entire layout systems by adding a series of modifiers
 * to the `.o-layout` block. For example:
 *
 *   <div class="o-layout  o-layout--reverse">
 *
 * This will reverse the displayed order of the system so that it runs in the
 * opposite order to our source, effectively flipping the system over.
 *
 *   <div class="o-layout  o-layout--[right|center]">
 *
 * This will cause the system to fill up from either the centre or the right
 * hand side. Default behaviour is to fill up the layout system from the left.
 *
 * There are plenty more options available to us: explore them below.
 */
/* Default/mandatory classes
   ========================================================================== */
/**
 * 1. Allows us to use the layout object on any type of element.
 * 2. We need to defensively reset any box-model properties.
 * 3. Use the negative margin trick for multi-row grids:
 *    http://csswizardry.com/2011/08/building-better-grid-systems/
 */
.o-layout {
  display: block; /* [1] */
  margin: 0; /* [2] */
  padding: 0; /* [2] */
  list-style: none; /* [1] */
  margin-left: -24px; /* [3] */
  font-size: 0;
}

/**
 * 1. Required in order to combine fluid widths with fixed gutters.
 * 2. Allows us to manipulate grids vertically, with text-level properties,
 *    etc.
 * 3. Default item alignment is with the tops of each other, like most
 *    traditional grid/layout systems.
 * 4. By default, all layout items are full-width (mobile first).
 * 5. Gutters provided by left padding:
 *    http://csswizardry.com/2011/08/building-better-grid-systems/
 * 6. Fallback for old IEs not supporting `rem` values.
 */
.o-layout__item {
  box-sizing: border-box; /* [1] */
  display: inline-block; /* [2] */
  vertical-align: top; /* [3] */
  width: 100%; /* [4] */
  padding-left: 24px; /* [5] */
  font-size: 16px; /* [6] */
  font-size: 1rem;
}

/* Gutter size modifiers
   ========================================================================== */
.o-layout--flush {
  margin-left: 0;
}
.o-layout--flush > .o-layout__item {
  padding-left: 0;
}

.o-layout--tiny {
  margin-left: -6px;
}
.o-layout--tiny > .o-layout__item {
  padding-left: 6px;
}

.o-layout--small {
  margin-left: -12px;
}
.o-layout--small > .o-layout__item {
  padding-left: 12px;
}

.o-layout--large {
  margin-left: -48px;
}
.o-layout--large > .o-layout__item {
  padding-left: 48px;
}

.o-layout--huge {
  margin-left: -96px;
}
.o-layout--huge > .o-layout__item {
  padding-left: 96px;
}

/* Vertical alignment modifiers
   ========================================================================== */
/**
 * Align all grid items to the middles of each other.
 */
.o-layout--middle > .o-layout__item {
  vertical-align: middle;
}

/**
 * Align all grid items to the bottoms of each other.
 */
.o-layout--bottom > .o-layout__item {
  vertical-align: bottom;
}

/**
 * Stretch all grid items of each row to have an equal-height.
 * Please be aware that this modifier class doesn’t take any effect in IE9 and
 * below and other older browsers due to the lack of `display: flex` support.
 */
.o-layout--stretch {
  display: flex;
  flex-wrap: wrap;
}
.o-layout--stretch > .o-layout__item {
  display: flex;
}
.o-layout--stretch.o-layout--center {
  justify-content: center;
}
.o-layout--stretch.o-layout--right {
  justify-content: flex-end;
}
.o-layout--stretch.o-layout--left {
  justify-content: flex-start;
}

/* Fill order modifiers
   ========================================================================== */
/**
 * Fill up the layout system from the centre.
 */
.o-layout--center {
  text-align: center;
}
.o-layout--center > .o-layout__item {
  text-align: left;
}

/**
 * Fill up the layout system from the right-hand side.
 */
.o-layout--right {
  text-align: right;
}
.o-layout--right > .o-layout__item {
  text-align: left;
}

/**
 * Fill up the layout system from the left-hand side. This will likely only be
 * needed when using in conjunction with `.o-layout--reverse`.
 */
.o-layout--left {
  text-align: left;
}
.o-layout--left > .o-layout__item {
  text-align: left;
}

/**
 * Reverse the rendered order of the grid system.
 */
.o-layout--reverse {
  direction: rtl;
}
.o-layout--reverse > .o-layout__item {
  direction: ltr;
}

/* Auto-widths modifier
   ========================================================================== */
/**
 * Cause layout items to take up a non-explicit amount of width.
 */
.o-layout--auto > .o-layout__item {
  width: auto;
}

/* ==========================================================================
   #MEDIA
   ========================================================================== */
/**
 * Place any image- and text-like content side-by-side, as per:
 * http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code
 */
.o-media {
  display: block;
}
.o-media:after {
  content: "" !important;
  display: block !important;
  clear: both !important;
}

.o-media__img {
  float: left;
  margin-right: 24px;
}
.o-media__img > img {
  display: block;
}

.o-media__body {
  overflow: hidden;
  display: block;
}
.o-media__body,
.o-media__body > :last-child {
  margin-bottom: 0;
}

/* Size variants
   ========================================================================== */
/**
 * Modify the amount of space between our image and our text. We also have
 * reversible options for all available sizes.
 */
.o-media--flush > .o-media__img {
  margin-right: 0;
  margin-left: 0;
}

.o-media--tiny > .o-media__img {
  margin-right: 6px;
}
.o-media--tiny.o-media--reverse > .o-media__img {
  margin-right: 0;
  margin-left: 6px;
}

.o-media--small > .o-media__img {
  margin-right: 12px;
}
.o-media--small.o-media--reverse > .o-media__img {
  margin-right: 0;
  margin-left: 12px;
}

.o-media--large > .o-media__img {
  margin-right: 48px;
}
.o-media--large.o-media--reverse > .o-media__img {
  margin-right: 0;
  margin-left: 48px;
}

.o-media--huge > .o-media__img {
  margin-right: 96px;
}
.o-media--huge.o-media--reverse > .o-media__img {
  margin-right: 0;
  margin-left: 96px;
}

/* Reversed media objects
   ========================================================================== */
.o-media--reverse > .o-media__img {
  float: right;
  margin-right: 0;
  margin-left: 24px;
}

/* ==========================================================================
   #FLAG
   ========================================================================== */
/**
 * The flag object is a design pattern similar to the media object, however it
 * utilises `display: table[-cell];` to give us control over the vertical
 * alignments of the text and image.
 *
 * http://csswizardry.com/2013/05/the-flag-object/
 *
 * 1. Allows us to control vertical alignments.
 * 2. Force the object to be the full width of its parent. Combined with [1],
 *    this makes the object behave in a quasi-`display: block;` manner.
 * 3. Reset inherited `border-spacing` declarations.
 */
.o-flag {
  display: table; /* [1] */
  width: 100%; /* [2] */
  border-spacing: 0; /* [3] */
}

/**
 * Items within a flag object. There should only ever be one of each.
 *
 * 1. Default to aligning content to their middles.
 */
.o-flag__img,
.o-flag__body {
  display: table-cell;
  vertical-align: middle; /* [1] */
}

/**
 * Flag images have a space between them and the body of the object.
 *
 * 1. Force `.flag__img` to take up as little space as possible:
 *    https://pixelsvsbytes.com/2012/02/this-css-layout-grid-is-no-holy-grail/
 */
.o-flag__img {
  width: 1px; /* [1] */
  padding-right: 24px;
  /**
   * 1. Fixes problem with images disappearing.
   *
   *    The direct child selector '>' needs to remain in order for nested flag
   *    objects to not inherit their parent’s formatting. In case the image tag
   *    is wrapped into another tag, e.g. an anchor for linking reasons, it will
   *    disappear. In that case try wrapping the whole o-flag__img object into
   *    an anchor tag.
   *
   *    E.g.:
   *
   *      <a href="/">
   *        <div class="o-flag__img">
   *          <img src="./link/to/image.jpg" alt="image alt text">
   *        </div>
   *      </a>
   */
}
.o-flag__img > img {
  max-width: none; /* [1] */
}

/**
 * The container for the main content of the flag object.
 *
 * 1. Forces the `.flag__body` to take up all remaining space.
 */
.o-flag__body {
  width: auto; /* [1] */
}
.o-flag__body,
.o-flag__body > :last-child {
  margin-bottom: 0;
}

/* Size variants
   ========================================================================== */
.o-flag--flush > .o-flag__img {
  padding-right: 0;
  padding-left: 0;
}

.o-flag--tiny > .o-flag__img {
  padding-right: 6px;
}
.o-flag--tiny.o-flag--reverse > .o-flag__img {
  padding-right: 0;
  padding-left: 6px;
}

.o-flag--small > .o-flag__img {
  padding-right: 12px;
}
.o-flag--small.o-flag--reverse > .o-flag__img {
  padding-right: 0;
  padding-left: 12px;
}

.o-flag--large > .o-flag__img {
  padding-right: 48px;
}
.o-flag--large.o-flag--reverse > .o-flag__img {
  padding-right: 0;
  padding-left: 48px;
}

.o-flag--huge > .o-flag__img {
  padding-right: 96px;
}
.o-flag--huge.o-flag--reverse > .o-flag__img {
  padding-right: 0;
  padding-left: 96px;
}

/* Reversed flag
   ========================================================================== */
/**
 * 1. Swap the rendered direction of the object…
 * 2. …and reset it.
 * 3. Reassign margins to the correct sides.
 */
.o-flag--reverse {
  direction: rtl; /* [1] */
}
.o-flag--reverse > .o-flag__img,
.o-flag--reverse > .o-flag__body {
  direction: ltr; /* [2] */
}
.o-flag--reverse > .o-flag__img {
  padding-right: 0; /* [3] */
  padding-left: 24px; /* [3] */
}

/* Alignment variants
   ========================================================================== */
/**
 * Vertically align the image- and body-content differently. Defaults to middle.
 */
.o-flag--top > .o-flag__img,
.o-flag--top > .o-flag__body {
  vertical-align: top;
}

.o-flag--bottom > .o-flag__img,
.o-flag--bottom > .o-flag__body {
  vertical-align: bottom;
}

/* ==========================================================================
   #LIST-BARE
   ========================================================================== */
/**
 * Strip list-like appearance from lists by removing their bullets and any
 * indentation.
 *
 * Note: Declaring the item class might not be necessary everywhere,
 * but is for example in <dl> lists for the <dd> children.
 */
.o-list-bare {
  list-style: none;
  margin-left: 0;
}

.o-list-bare__item {
  margin-left: 0;
}

/* ==========================================================================
   #LIST-INLINE
   ========================================================================== */
/**
 * The list-inline object simply displays a list of items in one line.
 */
.o-list-inline {
  margin-left: 0;
  list-style: none;
}

.o-list-inline__item {
  display: inline-block;
}

/* ==========================================================================
   #BOX
   ========================================================================== */
/**
 * The box object simply boxes off content. Extend with cosmetic styles in the
 * Components layer.
 *
 * 1. So we can apply the `.o-box` class to naturally-inline elements.
 */
.o-box {
  display: block; /* [1] */
  padding: 24px;
}
.o-box:after {
  content: "" !important;
  display: block !important;
  clear: both !important;
}
.o-box > :last-child {
  margin-bottom: 0;
}

/* Size variants
   ========================================================================== */
.o-box--flush {
  padding: 0;
}

.o-box--tiny {
  padding: 6px;
}

.o-box--small {
  padding: 12px;
}

.o-box--large {
  padding: 48px;
}

.o-box--huge {
  padding: 96px;
}

/* ==========================================================================
   #BLOCK
   ========================================================================== */
/**
 * Stacked image-with-text object. A simple abstraction to cover a very commonly
 * occurring design pattern.
 */
.o-block {
  display: block;
  text-align: center;
}

.o-block__img {
  margin-bottom: 24px;
  /* Size variants
     ====================================================================== */
}
.o-block--flush > .o-block__img {
  margin-bottom: 0;
}
.o-block--tiny > .o-block__img {
  margin-bottom: 6px;
}
.o-block--small > .o-block__img {
  margin-bottom: 12px;
}
.o-block--large > .o-block__img {
  margin-bottom: 48px;
}
.o-block--huge > .o-block__img {
  margin-bottom: 96px;
}

.o-block__body {
  display: block;
}

/* Alignment variants
   ========================================================================== */
.o-block--right {
  text-align: right;
}

.o-block--left {
  text-align: left;
}

/* ==========================================================================
   #RATIO
   ========================================================================== */
/**
 * Create ratio-bound content blocks, to keep media (e.g. images, videos) in
 * their correct aspect ratios.
 *
 * http://alistapart.com/article/creating-intrinsic-ratios-for-video
 *
 * 1. Default is a 1:1 ratio (i.e. a perfect square).
 */
.o-ratio {
  position: relative;
  display: block;
}
.o-ratio:before {
  content: "";
  display: block;
  width: 100%;
  padding-bottom: 100%; /* [1] */
}

.o-ratio__content,
.o-ratio > iframe,
.o-ratio > embed,
.o-ratio > object {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

/* Ratio variants.
   ========================================================================== */
/**
 * Generate a series of ratio classes to be used like so:
 *
 *   <div class="o-ratio  o-ratio--golden-ratio">
 *
 */
.o-ratio--2\:1:before {
  padding-bottom: 50%;
}

.o-ratio--4\:3:before {
  padding-bottom: 75%;
}

.o-ratio--16\:9:before {
  padding-bottom: 56.25%;
}

/* Contain modifier.
   ========================================================================== */
/**
 * Only works with image content.
 * Contains the image to the boundaries, without cropping or stretching it.
 */
.o-ratio--img-contain > .o-ratio__content:before {
  height: auto;
  margin: auto;
  max-height: 100%;
  max-width: 100%;
  width: auto;
}

/* ==========================================================================
   #CROP
   ========================================================================== */
/**
 * Provide a cropping container in order to display media (usually images)
 * cropped to certain ratios.
 *
 * 1. Set up a positioning context in which the image can sit.
 * 2. This is the crucial part: where the cropping happens.
 */
.o-crop {
  position: relative; /* [1] */
  display: block;
  overflow: hidden; /* [2] */
}

/**
 * Apply this class to the content (usually `img`) that needs cropping.
 *
 * 1. Image’s default positioning is top-left in the cropping box.
 * 2. Make sure the media doesn’t stop itself too soon.
 */
.o-crop__content {
  position: absolute;
  top: 0; /* [1] */
  left: 0; /* [1] */
  max-width: none; /* [2] */
}

/**
 * We can position the media in different locations within the cropping area.
 */
.o-crop__content--left-top {
  left: 0;
}

.o-crop__content--left-center {
  top: 50%;
  transform: translateY(-50%);
}

.o-crop__content--left-bottom {
  top: auto;
  bottom: 0;
}

.o-crop__content--right-top {
  right: 0;
  left: auto;
}

.o-crop__content--right-center {
  top: 50%;
  right: 0;
  left: auto;
  transform: translateY(-50%);
}

.o-crop__content--right-bottom {
  top: auto;
  right: 0;
  bottom: 0;
  left: auto;
}

.o-crop__content--center-top {
  left: 50%;
  transform: translateX(-50%);
}

.o-crop__content--center,
.o-crop__content--center-center {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.o-crop__content--center-bottom {
  top: auto;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

/* Crop-ratio variants
   ========================================================================== */
/**
 * Generate a series of crop classes to be used like so:
 *
 *   <div class="o-crop  o-crop--golden-ratio">
 *
 */
.o-crop--2\:1 {
  padding-bottom: 50%;
}

.o-crop--4\:3 {
  padding-bottom: 75%;
}

.o-crop--16\:9 {
  padding-bottom: 56.25%;
}

/* Fill modifier
   ========================================================================== */
/**
 * Content stretches to fill it's container while maintaining aspect-ratio.
 */
.o-crop--fill > .o-crop__content {
  min-height: 100%;
  min-width: 100%;
}

/* ==========================================================================
   #TABLE
   ========================================================================== */
/**
 * A simple object for manipulating the structure of HTML `table`s.
 */
.o-table {
  width: 100%;
}

/* Equal-width table cells
   ========================================================================== */
/**
 * `table-layout: fixed` forces all cells within a table to occupy the same
 * width as each other. This also has performance benefits: because the browser
 * does not need to (re)calculate cell dimensions based on content it discovers,
 * the table can be rendered very quickly. Further reading:
 * https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout#Values
 */
.o-table--fixed {
  table-layout: fixed;
}

/* Size variants
   ========================================================================== */
.o-table--tiny th,
.o-table--tiny td {
  padding: 6px;
}

.o-table--small th,
.o-table--small td {
  padding: 12px;
  font-weight: 400;
}

.o-table--large th,
.o-table--large td {
  padding: 48px;
}

.o-table--huge th,
.o-table--huge td {
  padding: 96px;
}

/* ==========================================================================
   #PACK
   ========================================================================== */
/**
 * The pack object simply causes any number of elements pack up horizontally to
 * automatically fill an equal, fluid width of their parent.
 *
 * 1. Fill all available space.
 * 2. Remove any leftover styling from lists.
 * 3. Cause children to be automatically equally sized.
 */
.o-pack {
  width: 100%; /* [1] */
  margin-left: 0; /* [2] */
  display: table;
  table-layout: fixed; /* [3] */
}

/**
 * 1. Cause children to adopt table-like structure.
 * 2. Default item alignment is with the tops of each other.
 */
.o-pack__item {
  display: table-cell; /* [1] */
  vertical-align: top; /* [2] */
  /* Vertical alignment variants
     ====================================================================== */
}
.o-pack--middle > .o-pack__item {
  vertical-align: middle;
}
.o-pack--bottom > .o-pack__item {
  vertical-align: bottom;
}

/* Unequal-width items
   ========================================================================== */
.o-pack--auto {
  table-layout: auto;
}

/* Size variants
   ========================================================================== */
.o-pack--tiny {
  border-spacing: 6px;
}

.o-pack--small {
  border-spacing: 12px;
}

.o-pack--default {
  border-spacing: 24px;
}

.o-pack--large {
  border-spacing: 48px;
}

.o-pack--huge {
  border-spacing: 96px;
}

/* Reversed order packs
   ========================================================================== */
.o-pack--reverse {
  direction: rtl;
}
.o-pack--reverse > .o-pack__item {
  direction: ltr;
}

/* ==========================================================================
   #CLEARFIX
   ========================================================================== */
/**
 * Attach our clearfix mixin to a utility class.
 */
.u-clearfix:after {
  content: "" !important;
  display: block !important;
  clear: both !important;
}

/* ==========================================================================
   #WIDTHS
   ========================================================================== */
/**
 * inuitcss generates a series of utility classes that give a fluid width to
 * whichever element they’re applied, e.g.:
 *
 *   <img src="" alt="" class="u-1/2" />
 *
 * These classes are most commonly used in conjunction with our layout system,
 * e.g.:
 *
 *   <div class="o-layout__item  u-1/2">
 *
 * By default, inuitcss will also generate responsive variants of each of these
 * classes by using your Sass MQ configuration, e.g.:
 *
 *   <div class="o-layout__item  u-1/1  u-1/2@tablet  u-1/3@desktop">
 *
 * Optionally, inuitcss can generate offset classes which can push and pull
 * elements left and right by a specified amount, e.g.:
 *
 *   <div class="o-layout__item  u-2/3  u-pull-1/3">
 *
 * This is useful for making very granular changes to the rendered order of
 * items in a layout.
 *
 * N.B. This option is turned off by default.
 */
/**
 * A series of width helper classes that you can use to size things like grid
 * systems. Classes take a fraction-like format (e.g. `.u-2/3`). Use these in
 * your markup:
 *
 * <div class="u-7/12">
 *
 * The following will generate widths helper classes based on the fractions
 * defined in the `$inuit-fractions` list.
 */
.u-1\/1 {
  width: 100% !important;
}

.u-1\/2 {
  width: 50% !important;
}

.u-2\/2 {
  width: 100% !important;
}

.u-1\/3 {
  width: 33.3333333333% !important;
}

.u-2\/3 {
  width: 66.6666666667% !important;
}

.u-3\/3 {
  width: 100% !important;
}

.u-1\/4 {
  width: 25% !important;
}

.u-2\/4 {
  width: 50% !important;
}

.u-3\/4 {
  width: 75% !important;
}

.u-4\/4 {
  width: 100% !important;
}

.u-1\/5 {
  width: 20% !important;
}

.u-2\/5 {
  width: 40% !important;
}

.u-3\/5 {
  width: 60% !important;
}

.u-4\/5 {
  width: 80% !important;
}

.u-5\/5 {
  width: 100% !important;
}

/**
 * If we’re using Sass-MQ, automatically generate grid system(s) for each of our
 * defined breakpoints, and give them a Responsive Suffix, e.g.:
 *
 * <div class="u-3/12@mobile">
 */
@media (min-width: 20em) {
  .u-1\/1\@mobile {
    width: 100% !important;
  }
  .u-1\/2\@mobile {
    width: 50% !important;
  }
  .u-2\/2\@mobile {
    width: 100% !important;
  }
  .u-1\/3\@mobile {
    width: 33.3333333333% !important;
  }
  .u-2\/3\@mobile {
    width: 66.6666666667% !important;
  }
  .u-3\/3\@mobile {
    width: 100% !important;
  }
  .u-1\/4\@mobile {
    width: 25% !important;
  }
  .u-2\/4\@mobile {
    width: 50% !important;
  }
  .u-3\/4\@mobile {
    width: 75% !important;
  }
  .u-4\/4\@mobile {
    width: 100% !important;
  }
  .u-1\/5\@mobile {
    width: 20% !important;
  }
  .u-2\/5\@mobile {
    width: 40% !important;
  }
  .u-3\/5\@mobile {
    width: 60% !important;
  }
  .u-4\/5\@mobile {
    width: 80% !important;
  }
  .u-5\/5\@mobile {
    width: 100% !important;
  }
}
@media (min-width: 46.25em) {
  .u-1\/1\@tablet {
    width: 100% !important;
  }
  .u-1\/2\@tablet {
    width: 50% !important;
  }
  .u-2\/2\@tablet {
    width: 100% !important;
  }
  .u-1\/3\@tablet {
    width: 33.3333333333% !important;
  }
  .u-2\/3\@tablet {
    width: 66.6666666667% !important;
  }
  .u-3\/3\@tablet {
    width: 100% !important;
  }
  .u-1\/4\@tablet {
    width: 25% !important;
  }
  .u-2\/4\@tablet {
    width: 50% !important;
  }
  .u-3\/4\@tablet {
    width: 75% !important;
  }
  .u-4\/4\@tablet {
    width: 100% !important;
  }
  .u-1\/5\@tablet {
    width: 20% !important;
  }
  .u-2\/5\@tablet {
    width: 40% !important;
  }
  .u-3\/5\@tablet {
    width: 60% !important;
  }
  .u-4\/5\@tablet {
    width: 80% !important;
  }
  .u-5\/5\@tablet {
    width: 100% !important;
  }
}
@media (min-width: 61.25em) {
  .u-1\/1\@desktop {
    width: 100% !important;
  }
  .u-1\/2\@desktop {
    width: 50% !important;
  }
  .u-2\/2\@desktop {
    width: 100% !important;
  }
  .u-1\/3\@desktop {
    width: 33.3333333333% !important;
  }
  .u-2\/3\@desktop {
    width: 66.6666666667% !important;
  }
  .u-3\/3\@desktop {
    width: 100% !important;
  }
  .u-1\/4\@desktop {
    width: 25% !important;
  }
  .u-2\/4\@desktop {
    width: 50% !important;
  }
  .u-3\/4\@desktop {
    width: 75% !important;
  }
  .u-4\/4\@desktop {
    width: 100% !important;
  }
  .u-1\/5\@desktop {
    width: 20% !important;
  }
  .u-2\/5\@desktop {
    width: 40% !important;
  }
  .u-3\/5\@desktop {
    width: 60% !important;
  }
  .u-4\/5\@desktop {
    width: 80% !important;
  }
  .u-5\/5\@desktop {
    width: 100% !important;
  }
}
@media (min-width: 81.25em) {
  .u-1\/1\@wide {
    width: 100% !important;
  }
  .u-1\/2\@wide {
    width: 50% !important;
  }
  .u-2\/2\@wide {
    width: 100% !important;
  }
  .u-1\/3\@wide {
    width: 33.3333333333% !important;
  }
  .u-2\/3\@wide {
    width: 66.6666666667% !important;
  }
  .u-3\/3\@wide {
    width: 100% !important;
  }
  .u-1\/4\@wide {
    width: 25% !important;
  }
  .u-2\/4\@wide {
    width: 50% !important;
  }
  .u-3\/4\@wide {
    width: 75% !important;
  }
  .u-4\/4\@wide {
    width: 100% !important;
  }
  .u-1\/5\@wide {
    width: 20% !important;
  }
  .u-2\/5\@wide {
    width: 40% !important;
  }
  .u-3\/5\@wide {
    width: 60% !important;
  }
  .u-4\/5\@wide {
    width: 80% !important;
  }
  .u-5\/5\@wide {
    width: 100% !important;
  }
}
/* ==========================================================================
   #HEADINGS
   ========================================================================== */
/**
 * Redefine all of our basic heading styles against utility classes so as to
 * allow for double stranded heading hierarchy, e.g. we semantically need an H2,
 * but we want it to be sized like an H1:
 *
 *   <h2 class="u-h1"></h2>
 *
 */
.u-h1 {
  font-size: 36px !important;
  font-size: 2.25rem !important;
  line-height: 1.1666666667 !important;
}

.u-h2 {
  font-size: 28px !important;
  font-size: 1.75rem !important;
  line-height: 1.2857142857 !important;
}

.u-h3 {
  font-size: 24px !important;
  font-size: 1.5rem !important;
  line-height: 1.25 !important;
}

.u-h4 {
  font-size: 20px !important;
  font-size: 1.25rem !important;
  line-height: 1.5 !important;
}

.u-h5 {
  font-size: 18px !important;
  font-size: 1.125rem !important;
  line-height: 1.3333333333 !important;
}

.u-h6 {
  font-size: 16px !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
}

/* ==========================================================================
   #SPACINGS
   ========================================================================== */
/**
 * Utility classes to put specific spacing values onto elements. The below loop
 * will generate us a suite of classes like:
 *
 *   .u-margin-top {}
 *   .u-padding-left-large {}
 *   .u-margin-right-small {}
 *   .u-padding {}
 *   .u-padding-right-none {}
 *   .u-padding-horizontal {}
 *   .u-padding-vertical-small {}
 */
.u-padding {
  padding: 24px !important;
}

.u-padding-tiny {
  padding: 6px !important;
}

.u-padding-small {
  padding: 12px !important;
}

.u-padding-large {
  padding: 48px !important;
}

.u-padding-huge {
  padding: 96px !important;
}

.u-padding-none {
  padding: 0 !important;
}

.u-padding-top {
  padding-top: 24px !important;
}

.u-padding-top-tiny {
  padding-top: 6px !important;
}

.u-padding-top-small {
  padding-top: 12px !important;
}

.u-padding-top-large {
  padding-top: 48px !important;
}

.u-padding-top-huge {
  padding-top: 96px !important;
}

.u-padding-top-none {
  padding-top: 0 !important;
}

.u-padding-right {
  padding-right: 24px !important;
}

.u-padding-right-tiny {
  padding-right: 6px !important;
}

.u-padding-right-small {
  padding-right: 12px !important;
}

.u-padding-right-large {
  padding-right: 48px !important;
}

.u-padding-right-huge {
  padding-right: 96px !important;
}

.u-padding-right-none {
  padding-right: 0 !important;
}

.u-padding-bottom {
  padding-bottom: 24px !important;
}

.u-padding-bottom-tiny {
  padding-bottom: 6px !important;
}

.u-padding-bottom-small {
  padding-bottom: 12px !important;
}

.u-padding-bottom-large {
  padding-bottom: 48px !important;
}

.u-padding-bottom-huge {
  padding-bottom: 96px !important;
}

.u-padding-bottom-none {
  padding-bottom: 0 !important;
}

.u-padding-left {
  padding-left: 24px !important;
}

.u-padding-left-tiny {
  padding-left: 6px !important;
}

.u-padding-left-small {
  padding-left: 12px !important;
}

.u-padding-left-large {
  padding-left: 48px !important;
}

.u-padding-left-huge {
  padding-left: 96px !important;
}

.u-padding-left-none {
  padding-left: 0 !important;
}

.u-padding-horizontal {
  padding-left: 24px !important;
  padding-right: 24px !important;
}

.u-padding-horizontal-tiny {
  padding-left: 6px !important;
  padding-right: 6px !important;
}

.u-padding-horizontal-small {
  padding-left: 12px !important;
  padding-right: 12px !important;
}

.u-padding-horizontal-large {
  padding-left: 48px !important;
  padding-right: 48px !important;
}

.u-padding-horizontal-huge {
  padding-left: 96px !important;
  padding-right: 96px !important;
}

.u-padding-horizontal-none {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.u-padding-vertical {
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}

.u-padding-vertical-tiny {
  padding-top: 6px !important;
  padding-bottom: 6px !important;
}

.u-padding-vertical-small {
  padding-top: 12px !important;
  padding-bottom: 12px !important;
}

.u-padding-vertical-large {
  padding-top: 48px !important;
  padding-bottom: 48px !important;
}

.u-padding-vertical-huge {
  padding-top: 96px !important;
  padding-bottom: 96px !important;
}

.u-padding-vertical-none {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.u-margin {
  margin: 24px !important;
}

.u-margin-tiny {
  margin: 6px !important;
}

.u-margin-small {
  margin: 12px !important;
}

.u-margin-large {
  margin: 48px !important;
}

.u-margin-huge {
  margin: 96px !important;
}

.u-margin-none {
  margin: 0 !important;
}

.u-margin-top {
  margin-top: 24px !important;
}

.u-margin-top-tiny {
  margin-top: 6px !important;
}

.u-margin-top-small {
  margin-top: 12px !important;
}

.u-margin-top-large {
  margin-top: 48px !important;
}

.u-margin-top-huge {
  margin-top: 96px !important;
}

.u-margin-top-none {
  margin-top: 0 !important;
}

.u-margin-right {
  margin-right: 24px !important;
}

.u-margin-right-tiny {
  margin-right: 6px !important;
}

.u-margin-right-small {
  margin-right: 12px !important;
}

.u-margin-right-large {
  margin-right: 48px !important;
}

.u-margin-right-huge {
  margin-right: 96px !important;
}

.u-margin-right-none {
  margin-right: 0 !important;
}

.u-margin-bottom {
  margin-bottom: 24px !important;
}

.u-margin-bottom-tiny {
  margin-bottom: 6px !important;
}

.u-margin-bottom-small {
  margin-bottom: 12px !important;
}

.u-margin-bottom-large {
  margin-bottom: 48px !important;
}

.u-margin-bottom-huge {
  margin-bottom: 96px !important;
}

.u-margin-bottom-none {
  margin-bottom: 0 !important;
}

.u-margin-left {
  margin-left: 24px !important;
}

.u-margin-left-tiny {
  margin-left: 6px !important;
}

.u-margin-left-small {
  margin-left: 12px !important;
}

.u-margin-left-large {
  margin-left: 48px !important;
}

.u-margin-left-huge {
  margin-left: 96px !important;
}

.u-margin-left-none {
  margin-left: 0 !important;
}

.u-margin-horizontal {
  margin-left: 24px !important;
  margin-right: 24px !important;
}

.u-margin-horizontal-tiny {
  margin-left: 6px !important;
  margin-right: 6px !important;
}

.u-margin-horizontal-small {
  margin-left: 12px !important;
  margin-right: 12px !important;
}

.u-margin-horizontal-large {
  margin-left: 48px !important;
  margin-right: 48px !important;
}

.u-margin-horizontal-huge {
  margin-left: 96px !important;
  margin-right: 96px !important;
}

.u-margin-horizontal-none {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.u-margin-vertical {
  margin-top: 24px !important;
  margin-bottom: 24px !important;
}

.u-margin-vertical-tiny {
  margin-top: 6px !important;
  margin-bottom: 6px !important;
}

.u-margin-vertical-small {
  margin-top: 12px !important;
  margin-bottom: 12px !important;
}

.u-margin-vertical-large {
  margin-top: 48px !important;
  margin-bottom: 48px !important;
}

.u-margin-vertical-huge {
  margin-top: 96px !important;
  margin-bottom: 96px !important;
}

.u-margin-vertical-none {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ==========================================================================
   #RESPONSIVE-SPACINGS
   ========================================================================== */
/**
 * Utility classes enhancing the normal spacing classes by adding responsiveness
 * to them. By default, there are not responsive spacings defined. You can
 * generate responsive spacings by adding entries to the following three Sass
 * maps, e.g.:
 *
 *   $inuit-responsive-spacing-directions: (
 *     null: null,
 *     "-bottom": "-bottom",
 *   );
 *
 *   $inuit-responsive-spacing-properties: (
 *     "margin": "margin",
 *   );
 *
 *   $inuit-responsive-spacing-sizes: (
 *     "-small": $inuit-global-spacing-unit-small,
 *   );
 *
 * This would bring us the following classes:
 *
 *   .u-margin-small@mobile {}
 *   .u-margin-small@tablet {}
 *   .u-margin-small@desktop {}
 *   .u-margin-small@wide {}
 *   .u-margin-bottom-small@mobile {}
 *   .u-margin-bottom-small@tablet {}
 *   .u-margin-bottom-small@desktop {}
 *   .u-margin-bottom-small@wide {}
 *
 * You can change the generated CSS classes by further extending the Sass maps.
 * If you want every ‘normal’ spacing (those from `utilities.spacings`) also as
 * a responsive version, you can just mirror the ‘normal’ spacings:
 *
 *   $inuit-responsive-spacing-directions: $inuit-spacing-directions !default;
 *
 *   $inuit-responsive-spacing-properties: $inuit-spacing-properties !default;
 *
 *   $inuit-responsive-spacing-sizes: $inuit-spacing-sizes !default;
 *
 * BUT BE AWARE: This can generate a huge chunk of extra CSS, depending on the
 * amount of breakpoints you defined. So please check your CSS’ output and
 * filesize!
 */
/* stylelint-disable max-nesting-depth */
@media (min-width: 20em) {
  .u-padding-tiny\@mobile {
    padding: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-tiny\@tablet {
    padding: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-tiny\@desktop {
    padding: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-tiny\@wide {
    padding: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-small\@mobile {
    padding: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-small\@tablet {
    padding: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-small\@desktop {
    padding: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-small\@wide {
    padding: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-large\@mobile {
    padding: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-large\@tablet {
    padding: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-large\@desktop {
    padding: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-large\@wide {
    padding: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-huge\@mobile {
    padding: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-huge\@tablet {
    padding: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-huge\@desktop {
    padding: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-huge\@wide {
    padding: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-none\@mobile {
    padding: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-none\@tablet {
    padding: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-none\@desktop {
    padding: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-none\@wide {
    padding: 0 !important;
  }
}
@media (min-width: 20em) {
  .u-padding-top-tiny\@mobile {
    padding-top: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-top-tiny\@tablet {
    padding-top: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-top-tiny\@desktop {
    padding-top: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-top-tiny\@wide {
    padding-top: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-top-small\@mobile {
    padding-top: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-top-small\@tablet {
    padding-top: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-top-small\@desktop {
    padding-top: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-top-small\@wide {
    padding-top: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-top-large\@mobile {
    padding-top: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-top-large\@tablet {
    padding-top: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-top-large\@desktop {
    padding-top: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-top-large\@wide {
    padding-top: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-top-huge\@mobile {
    padding-top: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-top-huge\@tablet {
    padding-top: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-top-huge\@desktop {
    padding-top: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-top-huge\@wide {
    padding-top: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-top-none\@mobile {
    padding-top: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-top-none\@tablet {
    padding-top: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-top-none\@desktop {
    padding-top: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-top-none\@wide {
    padding-top: 0 !important;
  }
}
@media (min-width: 20em) {
  .u-padding-right-tiny\@mobile {
    padding-right: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-right-tiny\@tablet {
    padding-right: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-right-tiny\@desktop {
    padding-right: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-right-tiny\@wide {
    padding-right: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-right-small\@mobile {
    padding-right: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-right-small\@tablet {
    padding-right: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-right-small\@desktop {
    padding-right: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-right-small\@wide {
    padding-right: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-right-large\@mobile {
    padding-right: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-right-large\@tablet {
    padding-right: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-right-large\@desktop {
    padding-right: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-right-large\@wide {
    padding-right: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-right-huge\@mobile {
    padding-right: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-right-huge\@tablet {
    padding-right: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-right-huge\@desktop {
    padding-right: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-right-huge\@wide {
    padding-right: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-right-none\@mobile {
    padding-right: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-right-none\@tablet {
    padding-right: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-right-none\@desktop {
    padding-right: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-right-none\@wide {
    padding-right: 0 !important;
  }
}
@media (min-width: 20em) {
  .u-padding-bottom-tiny\@mobile {
    padding-bottom: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-bottom-tiny\@tablet {
    padding-bottom: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-bottom-tiny\@desktop {
    padding-bottom: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-bottom-tiny\@wide {
    padding-bottom: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-bottom-small\@mobile {
    padding-bottom: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-bottom-small\@tablet {
    padding-bottom: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-bottom-small\@desktop {
    padding-bottom: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-bottom-small\@wide {
    padding-bottom: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-bottom-large\@mobile {
    padding-bottom: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-bottom-large\@tablet {
    padding-bottom: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-bottom-large\@desktop {
    padding-bottom: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-bottom-large\@wide {
    padding-bottom: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-bottom-huge\@mobile {
    padding-bottom: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-bottom-huge\@tablet {
    padding-bottom: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-bottom-huge\@desktop {
    padding-bottom: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-bottom-huge\@wide {
    padding-bottom: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-bottom-none\@mobile {
    padding-bottom: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-bottom-none\@tablet {
    padding-bottom: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-bottom-none\@desktop {
    padding-bottom: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-bottom-none\@wide {
    padding-bottom: 0 !important;
  }
}
@media (min-width: 20em) {
  .u-padding-left-tiny\@mobile {
    padding-left: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-left-tiny\@tablet {
    padding-left: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-left-tiny\@desktop {
    padding-left: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-left-tiny\@wide {
    padding-left: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-left-small\@mobile {
    padding-left: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-left-small\@tablet {
    padding-left: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-left-small\@desktop {
    padding-left: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-left-small\@wide {
    padding-left: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-left-large\@mobile {
    padding-left: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-left-large\@tablet {
    padding-left: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-left-large\@desktop {
    padding-left: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-left-large\@wide {
    padding-left: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-left-huge\@mobile {
    padding-left: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-left-huge\@tablet {
    padding-left: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-left-huge\@desktop {
    padding-left: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-left-huge\@wide {
    padding-left: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-left-none\@mobile {
    padding-left: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-left-none\@tablet {
    padding-left: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-left-none\@desktop {
    padding-left: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-left-none\@wide {
    padding-left: 0 !important;
  }
}
@media (min-width: 20em) {
  .u-padding-horizontal-tiny\@mobile {
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-horizontal-tiny\@tablet {
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-horizontal-tiny\@desktop {
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-horizontal-tiny\@wide {
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-horizontal-small\@mobile {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-horizontal-small\@tablet {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-horizontal-small\@desktop {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-horizontal-small\@wide {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-horizontal-large\@mobile {
    padding-left: 48px !important;
    padding-right: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-horizontal-large\@tablet {
    padding-left: 48px !important;
    padding-right: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-horizontal-large\@desktop {
    padding-left: 48px !important;
    padding-right: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-horizontal-large\@wide {
    padding-left: 48px !important;
    padding-right: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-horizontal-huge\@mobile {
    padding-left: 96px !important;
    padding-right: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-horizontal-huge\@tablet {
    padding-left: 96px !important;
    padding-right: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-horizontal-huge\@desktop {
    padding-left: 96px !important;
    padding-right: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-horizontal-huge\@wide {
    padding-left: 96px !important;
    padding-right: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-horizontal-none\@mobile {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-horizontal-none\@tablet {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-horizontal-none\@desktop {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-horizontal-none\@wide {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
@media (min-width: 20em) {
  .u-padding-vertical-tiny\@mobile {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-vertical-tiny\@tablet {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-vertical-tiny\@desktop {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-vertical-tiny\@wide {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-vertical-small\@mobile {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-vertical-small\@tablet {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-vertical-small\@desktop {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-vertical-small\@wide {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-vertical-large\@mobile {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-vertical-large\@tablet {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-vertical-large\@desktop {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-vertical-large\@wide {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-vertical-huge\@mobile {
    padding-top: 96px !important;
    padding-bottom: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-vertical-huge\@tablet {
    padding-top: 96px !important;
    padding-bottom: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-vertical-huge\@desktop {
    padding-top: 96px !important;
    padding-bottom: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-vertical-huge\@wide {
    padding-top: 96px !important;
    padding-bottom: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-padding-vertical-none\@mobile {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-padding-vertical-none\@tablet {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-padding-vertical-none\@desktop {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-padding-vertical-none\@wide {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
@media (min-width: 20em) {
  .u-margin-tiny\@mobile {
    margin: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-tiny\@tablet {
    margin: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-tiny\@desktop {
    margin: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-tiny\@wide {
    margin: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-small\@mobile {
    margin: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-small\@tablet {
    margin: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-small\@desktop {
    margin: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-small\@wide {
    margin: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-large\@mobile {
    margin: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-large\@tablet {
    margin: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-large\@desktop {
    margin: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-large\@wide {
    margin: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-huge\@mobile {
    margin: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-huge\@tablet {
    margin: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-huge\@desktop {
    margin: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-huge\@wide {
    margin: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-none\@mobile {
    margin: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-none\@tablet {
    margin: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-none\@desktop {
    margin: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-none\@wide {
    margin: 0 !important;
  }
}
@media (min-width: 20em) {
  .u-margin-top-tiny\@mobile {
    margin-top: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-top-tiny\@tablet {
    margin-top: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-top-tiny\@desktop {
    margin-top: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-top-tiny\@wide {
    margin-top: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-top-small\@mobile {
    margin-top: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-top-small\@tablet {
    margin-top: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-top-small\@desktop {
    margin-top: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-top-small\@wide {
    margin-top: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-top-large\@mobile {
    margin-top: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-top-large\@tablet {
    margin-top: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-top-large\@desktop {
    margin-top: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-top-large\@wide {
    margin-top: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-top-huge\@mobile {
    margin-top: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-top-huge\@tablet {
    margin-top: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-top-huge\@desktop {
    margin-top: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-top-huge\@wide {
    margin-top: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-top-none\@mobile {
    margin-top: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-top-none\@tablet {
    margin-top: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-top-none\@desktop {
    margin-top: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-top-none\@wide {
    margin-top: 0 !important;
  }
}
@media (min-width: 20em) {
  .u-margin-right-tiny\@mobile {
    margin-right: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-right-tiny\@tablet {
    margin-right: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-right-tiny\@desktop {
    margin-right: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-right-tiny\@wide {
    margin-right: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-right-small\@mobile {
    margin-right: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-right-small\@tablet {
    margin-right: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-right-small\@desktop {
    margin-right: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-right-small\@wide {
    margin-right: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-right-large\@mobile {
    margin-right: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-right-large\@tablet {
    margin-right: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-right-large\@desktop {
    margin-right: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-right-large\@wide {
    margin-right: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-right-huge\@mobile {
    margin-right: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-right-huge\@tablet {
    margin-right: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-right-huge\@desktop {
    margin-right: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-right-huge\@wide {
    margin-right: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-right-none\@mobile {
    margin-right: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-right-none\@tablet {
    margin-right: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-right-none\@desktop {
    margin-right: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-right-none\@wide {
    margin-right: 0 !important;
  }
}
@media (min-width: 20em) {
  .u-margin-bottom-tiny\@mobile {
    margin-bottom: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-bottom-tiny\@tablet {
    margin-bottom: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-bottom-tiny\@desktop {
    margin-bottom: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-bottom-tiny\@wide {
    margin-bottom: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-bottom-small\@mobile {
    margin-bottom: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-bottom-small\@tablet {
    margin-bottom: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-bottom-small\@desktop {
    margin-bottom: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-bottom-small\@wide {
    margin-bottom: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-bottom-large\@mobile {
    margin-bottom: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-bottom-large\@tablet {
    margin-bottom: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-bottom-large\@desktop {
    margin-bottom: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-bottom-large\@wide {
    margin-bottom: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-bottom-huge\@mobile {
    margin-bottom: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-bottom-huge\@tablet {
    margin-bottom: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-bottom-huge\@desktop {
    margin-bottom: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-bottom-huge\@wide {
    margin-bottom: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-bottom-none\@mobile {
    margin-bottom: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-bottom-none\@tablet {
    margin-bottom: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-bottom-none\@desktop {
    margin-bottom: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-bottom-none\@wide {
    margin-bottom: 0 !important;
  }
}
@media (min-width: 20em) {
  .u-margin-left-tiny\@mobile {
    margin-left: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-left-tiny\@tablet {
    margin-left: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-left-tiny\@desktop {
    margin-left: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-left-tiny\@wide {
    margin-left: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-left-small\@mobile {
    margin-left: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-left-small\@tablet {
    margin-left: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-left-small\@desktop {
    margin-left: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-left-small\@wide {
    margin-left: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-left-large\@mobile {
    margin-left: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-left-large\@tablet {
    margin-left: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-left-large\@desktop {
    margin-left: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-left-large\@wide {
    margin-left: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-left-huge\@mobile {
    margin-left: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-left-huge\@tablet {
    margin-left: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-left-huge\@desktop {
    margin-left: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-left-huge\@wide {
    margin-left: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-left-none\@mobile {
    margin-left: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-left-none\@tablet {
    margin-left: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-left-none\@desktop {
    margin-left: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-left-none\@wide {
    margin-left: 0 !important;
  }
}
@media (min-width: 20em) {
  .u-margin-horizontal-tiny\@mobile {
    margin-left: 6px !important;
    margin-right: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-horizontal-tiny\@tablet {
    margin-left: 6px !important;
    margin-right: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-horizontal-tiny\@desktop {
    margin-left: 6px !important;
    margin-right: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-horizontal-tiny\@wide {
    margin-left: 6px !important;
    margin-right: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-horizontal-small\@mobile {
    margin-left: 12px !important;
    margin-right: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-horizontal-small\@tablet {
    margin-left: 12px !important;
    margin-right: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-horizontal-small\@desktop {
    margin-left: 12px !important;
    margin-right: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-horizontal-small\@wide {
    margin-left: 12px !important;
    margin-right: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-horizontal-large\@mobile {
    margin-left: 48px !important;
    margin-right: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-horizontal-large\@tablet {
    margin-left: 48px !important;
    margin-right: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-horizontal-large\@desktop {
    margin-left: 48px !important;
    margin-right: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-horizontal-large\@wide {
    margin-left: 48px !important;
    margin-right: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-horizontal-huge\@mobile {
    margin-left: 96px !important;
    margin-right: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-horizontal-huge\@tablet {
    margin-left: 96px !important;
    margin-right: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-horizontal-huge\@desktop {
    margin-left: 96px !important;
    margin-right: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-horizontal-huge\@wide {
    margin-left: 96px !important;
    margin-right: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-horizontal-none\@mobile {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-horizontal-none\@tablet {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-horizontal-none\@desktop {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-horizontal-none\@wide {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
@media (min-width: 20em) {
  .u-margin-vertical-tiny\@mobile {
    margin-top: 6px !important;
    margin-bottom: 6px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-vertical-tiny\@tablet {
    margin-top: 6px !important;
    margin-bottom: 6px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-vertical-tiny\@desktop {
    margin-top: 6px !important;
    margin-bottom: 6px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-vertical-tiny\@wide {
    margin-top: 6px !important;
    margin-bottom: 6px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-vertical-small\@mobile {
    margin-top: 12px !important;
    margin-bottom: 12px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-vertical-small\@tablet {
    margin-top: 12px !important;
    margin-bottom: 12px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-vertical-small\@desktop {
    margin-top: 12px !important;
    margin-bottom: 12px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-vertical-small\@wide {
    margin-top: 12px !important;
    margin-bottom: 12px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-vertical-large\@mobile {
    margin-top: 48px !important;
    margin-bottom: 48px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-vertical-large\@tablet {
    margin-top: 48px !important;
    margin-bottom: 48px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-vertical-large\@desktop {
    margin-top: 48px !important;
    margin-bottom: 48px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-vertical-large\@wide {
    margin-top: 48px !important;
    margin-bottom: 48px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-vertical-huge\@mobile {
    margin-top: 96px !important;
    margin-bottom: 96px !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-vertical-huge\@tablet {
    margin-top: 96px !important;
    margin-bottom: 96px !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-vertical-huge\@desktop {
    margin-top: 96px !important;
    margin-bottom: 96px !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-vertical-huge\@wide {
    margin-top: 96px !important;
    margin-bottom: 96px !important;
  }
}
@media (min-width: 20em) {
  .u-margin-vertical-none\@mobile {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
@media (min-width: 46.25em) {
  .u-margin-vertical-none\@tablet {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
@media (min-width: 61.25em) {
  .u-margin-vertical-none\@desktop {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
@media (min-width: 81.25em) {
  .u-margin-vertical-none\@wide {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
/* stylelint-enable max-nesting-depth */
/* ==========================================================================
   #PRINT
   ========================================================================== */
/**
 * Very crude, reset-like styles taken from the HTML5 Boilerplate:
 * https://github.com/h5bp/html5-boilerplate/blob/5.3.0/dist/doc/css.md#print-styles
 * https://github.com/h5bp/html5-boilerplate/blob/master/dist/css/main.css#L205-L282
 */
@media print {
  /**
   * 1. Black prints faster: http://www.sanbeiji.com/archives/953
   */
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important; /* [1] */
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  /**
   * Don’t show links that are fragment identifiers, or use the `javascript:`
   * pseudo protocol.
   */
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  /**
   * Printing Tables: http://css-discuss.incutio.com/wiki/Printing_Tables
   */
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
}
/* ==========================================================================
   #HIDE
   ========================================================================== */
/**
 * Hide only visually, but have it available for screen readers:
 * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 */
.u-hidden-visually {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}

/**
 * Hide visually and from screen readers.
 */
.u-hidden {
  display: none !important;
}

/* ==========================================================================
   #BUTTONS
   ========================================================================== */
/**
 * This is an example component. Extend inuitcss by building your own components
 * that make up your UI. Component classes are prefixed with a `c-`.
 */
/**
 * 1. Allow us to style box model properties.
 * 2. Line different sized buttons up a little nicer.
 * 3. Make buttons inherit font styles (often necessary when styling `input`s as
 *    buttons).
 * 4. Reset/normalize some styles.
 * 5. Force all button-styled elements to appear clickable.
 */
.c-btn {
  display: inline-block; /* [1] */
  vertical-align: middle; /* [2] */
  font: inherit; /* [3] */
  text-align: center; /* [4] */
  margin: 0; /* [4] */
  cursor: pointer; /* [5] */
  padding: 12px 24px;
  transition: all 300ms ease-in-out;
  border-radius: 3px;
  border: none;
}

/* Style variants
   ========================================================================== */
.c-btn--primary {
  background-color: #4a8ec2;
}
.c-btn--primary, .c-btn--primary:hover, .c-btn--primary:active, .c-btn--primary:focus {
  text-decoration: none; /* [4] */
  color: #fff;
}
.c-btn--primary:hover, .c-btn--primary:focus {
  background-color: #3774a2;
}

.c-btn--secondary {
  background-color: #2f4054;
}
.c-btn--secondary, .c-btn--secondary:hover, .c-btn--secondary:active, .c-btn--secondary:focus {
  text-decoration: none;
  color: #fff;
}
.c-btn--secondary:hover, .c-btn--secondary:focus {
  background-color: #1d2733;
}

.c-btn--tertiary {
  background-color: #fff;
  color: #4a8ec2;
}
.c-btn--tertiary, .c-btn--tertiary:hover, .c-btn--tertiary:active, .c-btn--tertiary:focus {
  text-decoration: none;
  color: #4a8ec2;
}
.c-btn--tertiary:hover, .c-btn--tertiary:focus {
  color: #3774a2;
}

.c-btn--danger {
  color: white;
}
.c-btn--danger, .c-btn--danger:hover, .c-btn--danger:active, .c-btn--danger:focus {
  background-color: #FF101F;
  text-decoration: none;
  color: white;
}
.c-btn--danger:hover, .c-btn--danger:focus {
  background-color: #8C0911;
  color: white;
}

/* Size variants
   ========================================================================== */
.c-btn--small {
  padding: 6px 12px;
}

.c-btn--large {
  padding: 24px 48px;
}

/* Ghost buttons
   ========================================================================== */
/**
 * Ghost buttons have see-through backgrounds and are bordered.
 */
.e-shared-links a {
  width: 100%;
  font-size: 14px;
  text-align: center;
  padding: 11px 23px;
}
.e-shared-links a, .e-shared-links a:hover, .e-shared-links a:active, .e-shared-links a:focus {
  background: none;
}

.c-btn--ghost {
  border: 1px solid currentColor;
  padding: 11px 23px;
}
.c-btn--ghost, .c-btn--ghost:hover, .c-btn--ghost:active, .c-btn--ghost:focus {
  background: none;
}
.c-btn--ghost.c-btn--small {
  padding: 5px 11px;
}
.c-btn--ghost.c-btn--large {
  padding: 23px 47px;
}
.c-btn--ghost.c-btn--primary {
  color: #4a8ec2;
}
.c-btn--ghost.c-btn--primary:hover, .c-btn--ghost.c-btn--primary:focus {
  color: #3774a2;
}
.c-btn--ghost.c-btn--secondary {
  color: #2f4054;
}
.c-btn--ghost.c-btn--secondary:hover, .c-btn--ghost.c-btn--secondary:focus {
  color: #1d2733;
}
.c-btn--ghost.c-btn--tertiary {
  color: #fff;
}
.c-btn--ghost.c-btn--tertiary:hover, .c-btn--ghost.c-btn--tertiary:focus {
  color: #fff;
}

.c-btn--icon {
  display: inline-flex;
}

.c-btn--wide {
  width: 100%;
}

.input--default, select {
  height: 48px;
  border-radius: 3px;
  border: solid 1px #e4e4e4;
  background: #efefef;
  box-shadow: none;
  padding-right: 8px;
  padding-left: 8px;
  min-width: 260px;
  font-size: 18px;
}
.input--default::-moz-placeholder, select::-moz-placeholder {
  font-size: 18px;
}
.input--default::placeholder, select::placeholder {
  font-size: 18px;
}
.input--default::focus, select::focus {
  outline: solid 2px rgba(101, 187, 255, 0.4196078431);
  outline-color: rgba(101, 187, 255, 0.42);
  outline-style: solid;
  outline-width: 2px;
  border-radius: 4px;
}

.input--sign-in {
  border: none;
  background: #efefef;
  min-width: 100%;
}

select {
  min-width: 360px;
}

/*
.assignment-index--grid {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
*/
c-grid {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
c-grid:after {
  content: "";
  flex: 1 1 100%;
  max-width: 32%;
}

c-row {
  display: flex;
  flex-direction: column;
}

/*
.assignment-index--card {
    border: solid 1px #e4e4e4;
    border-radius: $global-radius;
    box-shadow: 1px 1px 4px #e4e4e4;
    background: white;
    width: 32%;
}
*/
c-card {
  border: solid 1px #e4e4e4;
  border-radius: 3px;
  box-shadow: 1px 1px 4px #e4e4e4;
  background: white;
  width: 32%;
}

c-card--wide {
  border: solid 1px #e4e4e4;
  border-radius: 3px;
  box-shadow: 1px 1px 4px #e4e4e4;
  background: white;
  width: 100%;
}

.framed-qa {
  margin-top: 1.4em;
  border-top: solid 1px #e4e4e4;
}

.material-icons.md-18 {
  font-size: 18px;
}

.material-icons.md-24 {
  font-size: 24px;
}

.material-icons.md-36 {
  font-size: 36px;
}

.material-icons.md-48 {
  font-size: 48px;
}

.material-icons-grey {
  color: rgba(0, 0, 0, 0.54);
}

nav {
  color: #008cbf;
  width: 100%;
  height: 80px;
  line-height: 80px;
  border-bottom: 1px solid rgb(228, 228, 228);
}
nav a {
  color: #008cbf;
}
nav .nav-wrapper {
  position: relative;
  height: 100%;
}
nav .brand-logo {
  position: absolute;
  color: #008cbf;
  display: inline-block;
  font-size: 1.2rem;
  padding: 0;
  text-decoration: none;
}
@media (min-width: 46.25em) {
  nav .brand-logo {
    font-size: 2.1rem;
  }
}
nav .nav-title {
  display: inline-block;
  font-size: 32px;
  padding: 28px 0;
}
nav ul {
  margin: 0;
}
nav ul.right {
  float: right;
}
nav ul li {
  margin-top: 0.1rem;
  transition: background-color 0.1s;
  float: left;
  padding: 0;
  text-transform: uppercase;
}
@media (min-width: 46.25em) {
  nav ul li {
    margin-top: auto;
  }
}
nav ul a {
  transition: background-color 0.3s;
  font-size: 0.86rem;
  padding: 0 4px;
  color: #008cbf;
  display: block;
  cursor: pointer;
  text-decoration: none;
}
@media (min-width: 46.25em) {
  nav ul a {
    font-size: 1rem;
    padding: 0 15px;
  }
}
nav ul a.active {
  background-color: #f5fcff;
  border-bottom: solid 1px #008cbf;
}
nav ul a:hover {
  background-color: #f5fcff;
  border-bottom: solid 1px #008cbf;
}
nav.left {
  float: left;
}

footer {
  background-color: #008cbf;
}

.c-footer-text--color {
  color: white;
}

.c-footer-container {
  display: flex;
  flex-direction: column;
  text-align: center;
}

.c-footer-list {
  flex: 1 1 auto;
  color: white;
  margin-left: 0px;
}

.c-footer-links {
  color: white;
  text-decoration: none;
}

.c-landingpage {
  border-radius: 3px;
  border: 1px solid #e4e4e4;
  box-shadow: 1px 1px 4px #e4e4e4;
}
@media (min-width: 46.25em) {
  .c-landingpage {
    display: flex;
    flex-direction: row;
    max-width: 1200px;
  }
}

.c-landingpage-welcome-left {
  display: flex;
  flex: 3;
  background-color: #008cbf;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.c-landingpage-welcome-left h1, .c-landingpage-welcome-left h3 {
  color: white;
}

.c-landingpage-welcome-right {
  flex: 2;
}
.o-label--remember {
  font-size: 14px;
}

.e-shared-links {
  width: 100%;
  font-size: 14px;
  text-align: center;
}

a {
  color: #008cbf;
  text-decoration: none;
}

.c-link--cancel, .c-link--delete {
  color: #585858;
}

.questionarie-header-container {
  display: block;
}

.questionnaire-guide {
  display: flex;
  align-items: center;
  background-color: #f1f3f4;
  border-radius: 3px;
}

span.question-number-count {
  border-bottom: 2px solid #009dc9;
}

span.question-number-total {
  border-bottom: 2px solid #009dc9;
}

c-card--info {
  border: solid 1px #f1f3f4;
  border-radius: 3px;
  box-shadow: none;
  background: #f1f3f4;
  width: 32%;
}

.c-view--forgot-password {
  display: flex;
  border-radius: 3px;
  border: 1px solid #e4e4e4;
  box-shadow: 1px 1px 4px #e4e4e4;
}

.c-view--forgot-password-left {
  flex: 3;
  background-color: #008cbf;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.c-view--forgot-password-left h2, .c-view--forgot-password-left p, .c-view--forgot-password-left strong {
  color: white;
}

.c-view--forgot-password-right {
  flex: 2;
}

/*
Displaying notifications, we don't distinguish between notifications and alerts
triggered from  <%= notice %> and  <%= alert %> 
*/
#notifications-container {
  display: block;
  position: fixed;
  z-index: 10000;
  top: 64px;
}

.c-notifications--notice, .c-notifications--alert {
  width: auto;
  position: relative;
  max-width: 100%;
  height: auto;
  line-height: 1.5em;
  background: #585858;
  color: white;
  padding: 10px 25px;
  font-size: 1.1rem;
  font-weight: 400;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: all 300ms ease-in-out;
  border-radius: 9999px;
}

/*
*  Mobile user will only be eposed to:
*  - Login/out
*  - Reset password
*  - daily submits
*  - View graph
*/
.hide-for-mobile {
  display: none;
}
@media (min-width: 46.25em) {
  .hide-for-mobile {
    display: block;
  }
}

* {
  font-family: "Roboto Condensed", sans-serif;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
}

body {
  font-size: 1.25em;
}

.wide {
  width: 100%;
}

.column-questions {
  display: flex;
  flex-direction: column;
}

.row-questions {
  display: flex;
  line-height: 30px;
  margin: 16px 4px 16px 4px;
}

.column-questions-keys {
  min-height: 40px;
  min-width: 32px;
  line-height: 40px;
}

.column-questions-response {
  min-height: 40px;
  min-width: 70%;
  line-height: 40px;
}

.column-questions-radio-buttons {
  min-height: 40px;
  min-width: 10%;
  line-height: 40px;
}

/* Typography*/
h3 {
  text-decoration: underline;
}

.column-questions-response:after {
  content: "";
  display: block;
  border-bottom: solid 1px rgba(0, 0, 0, 0.2);
  margin: 0 -20px 0 -32px;
}

.login-box--foo {
  margin-top: 10vh;
}

.c-theme-border--light {
  color: rgba(0, 0, 0, 0.15);
}

.response-selected {
  border: solid black 1px;
  padding: 5px;
  border-radius: 100%;
}

input:focus {
  outline: solid 2px rgba(101, 187, 255, 0.4196078431);
  border-radius: 4px;
}

.c-view--forgot-password-left p a {
  color: white;
  text-decoration-line: underline;
}

.nav-wrapper a img {
  max-height: 64px;
}

.c-landingpage p a {
  color: white;
}

th, td {
  border: solid black 1px;
}

input[type=radio] {
  width: 24px;
  height: 24px;
}

#chart_lines {
  margin-top: -24px;
}

.measurements-graph h3 {
  margin-top: 32px;
}

@media print {
  .hide-on-print {
    display: none;
  }
}

@media screen {
  .hide-on-screen {
    display: none;
  }
}

@media print {
  header, footer, #console {
    display: none;
  }
}

@media screen {
  .question-with-response {
    padding-bottom: 32px;
  }
}

.bar-0 {
  position: relative;
  min-height: 15px;
  background-image: linear-gradient(to right, green, yellow, red);
  width: 240px;
}

.bar-0 .reading {
  width: 4px;
  background-color: black;
  min-height: 15px;
}

@media print {
  * {
    font-size: small !important;
  }
  h2 {
    font-size: 16pt !important;
    line-height: 16pt !important;
    margin-top: 16pt !important;
  }
  h3 {
    font-size: 12pt !important;
    line-height: 12pt !important;
    margin-bottom: 2pt !important;
  }
  .u-margin-top-large {
    margin-top: 8pt !important;
  }
  .question-with-response {
    padding-bottom: 8pt !important;
  }
}
.invalid-input {
  border: 2px solid red;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUFDaEIscUVBQXFFO0FBQ3JFLG1FQUFtRTtBQUNuRSxzRUFBc0U7QUFDdEU7OytFQUUrRTtBQUMvRTs7OztFQUlFO0FBQ0Y7Ozs7RUFJRTtBQUNGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBMERFO0FBQ0Y7OytFQUUrRTtBQUMvRTs7O0VBR0U7QUFDRjtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQSwyRUFBMkU7QUFDM0U7K0VBQytFO0FBQy9FOzs7O0VBSUU7QUFDRjtFQUNFLGlCQUFpQixFQUFFLE1BQU07RUFDekIsMEJBQTBCLEVBQUUsTUFBTTtFQUNsQyw4QkFBOEIsRUFBRSxNQUFNO0FBQ3hDOztBQUVBOytFQUMrRTtBQUMvRTs7RUFFRTtBQUNGO0VBQ0UsU0FBUztBQUNYOztBQUVBOztFQUVFO0FBQ0Y7Ozs7OztFQU1FLGNBQWM7QUFDaEI7O0FBRUE7OztFQUdFO0FBQ0Y7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBOytFQUMrRTtBQUMvRTs7O0VBR0U7QUFDRjs7T0FFTyxNQUFNO0VBQ1gsY0FBYztBQUNoQjs7QUFFQTs7RUFFRTtBQUNGO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBOzs7RUFHRTtBQUNGO0VBQ0UsdUJBQXVCLEVBQUUsTUFBTTtFQUMvQixTQUFTLEVBQUUsTUFBTTtFQUNqQixpQkFBaUIsRUFBRSxNQUFNO0FBQzNCOztBQUVBOzs7RUFHRTtBQUNGO0VBQ0UsaUNBQWlDLEVBQUUsTUFBTTtFQUN6QyxjQUFjLEVBQUUsTUFBTTtBQUN4Qjs7QUFFQTsrRUFDK0U7QUFDL0U7OztFQUdFO0FBQ0Y7RUFDRSw2QkFBNkIsRUFBRSxNQUFNO0VBQ3JDLHFDQUFxQyxFQUFFLE1BQU07QUFD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QkFBcUI7RUFDdkI7QUFDRjtBQUNBO0VBQ0U7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSx5QkFBeUI7RUFDM0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSx5QkFBeUI7RUFDM0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSx5QkFBeUI7RUFDM0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSx5QkFBeUI7RUFDM0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwrQkFBK0I7RUFDakM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwrQkFBK0I7RUFDakM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwrQkFBK0I7RUFDakM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwrQkFBK0I7RUFDakM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwrQkFBK0I7RUFDakM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwrQkFBK0I7RUFDakM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwrQkFBK0I7RUFDakM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwrQkFBK0I7RUFDakM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwrQkFBK0I7RUFDakM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwrQkFBK0I7RUFDakM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwrQkFBK0I7RUFDakM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwrQkFBK0I7RUFDakM7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSwwQkFBMEI7RUFDNUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSwwQkFBMEI7RUFDNUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSwwQkFBMEI7RUFDNUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSwwQkFBMEI7RUFDNUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7SUFDNUIsNkJBQTZCO0VBQy9CO0FB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QTtFQUNFO0lBQ0Usc0JBQXNCO0VBQ3hCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usc0JBQXNCO0VBQ3hCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usc0JBQXNCO0VBQ3hCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usc0JBQXNCO0VBQ3hCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usb0JBQW9CO0VBQ3RCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usb0JBQW9CO0VBQ3RCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usb0JBQW9CO0VBQ3RCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usb0JBQW9CO0VBQ3RCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMEJBQTBCO0VBQzVCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMEJBQTBCO0VBQzVCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMEJBQTBCO0VBQzVCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMEJBQTBCO0VBQzVCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usd0JBQXdCO0VBQzFCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usd0JBQXdCO0VBQzFCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usd0JBQXdCO0VBQzFCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usd0JBQXdCO0VBQzFCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMEJBQTBCO0VBQzVCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMEJBQTBCO0VBQzVCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMEJBQTBCO0VBQzVCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMEJBQTBCO0VBQzVCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsOEJBQThCO0VBQ2hDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsOEJBQThCO0VBQ2hDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsOEJBQThCO0VBQ2hDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsOEJBQThCO0VBQ2hDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsOEJBQThCO0VBQ2hDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsOEJBQThCO0VBQ2hDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsOEJBQThCO0VBQ2hDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsOEJBQThCO0VBQ2hDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsOEJBQThCO0VBQ2hDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsOEJBQThCO0VBQ2hDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsOEJBQThCO0VBQ2hDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsOEJBQThCO0VBQ2hDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UseUJBQXlCO0VBQzNCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UseUJBQXlCO0VBQzNCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UseUJBQXlCO0VBQzNCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UseUJBQXlCO0VBQzNCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0lBQzNCLDRCQUE0QjtFQUM5QjtBQUNGO0FBQ0E7RUFDRTtJQUNFLDJCQUEyQjtJQUMzQiw0QkFBNEI7RUFDOUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSwyQkFBMkI7SUFDM0IsNEJBQTRCO0VBQzlCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0lBQzNCLDRCQUE0QjtFQUM5QjtBQUNGO0FBQ0E7RUFDRTtJQUNFLDRCQUE0QjtJQUM1Qiw2QkFBNkI7RUFDL0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSw0QkFBNEI7SUFDNUIsNkJBQTZCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsNEJBQTRCO0lBQzVC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Q1osbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usb0RBQW9EO0VBQ3BELGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFlBQVk7RUFDWiwrQkFBK0I7QUFDakM7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLGFBQWE7RUFDZjtBQUNGOztBQUVBO0VBQ0U7SUFDRSxvQkFBb0I7RUFDdEI7QUFDRjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsK0RBQStEO0VBQy9ELFlBQVk7QUFDZDs7QUFFQTtFQUNFLFVBQVU7RUFDVix1QkFBdUI7RUFDdkIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0U7SUFDRSwyQkFBMkI7RUFDN0I7RUFDQTtJQUNFLDBCQUEwQjtJQUMxQiw0QkFBNEI7SUFDNUIsMkJBQTJCO0VBQzdCO0VBQ0E7SUFDRSwwQkFBMEI7SUFDMUIsNEJBQTRCO0lBQzVCLDZCQUE2QjtFQUMvQjtFQUNBO0lBQ0UsMEJBQTBCO0VBQzVCO0VBQ0E7SUFDRSw4QkFBOEI7RUFDaEM7QUFDRjtBQUNBO0VBQ0UscUJBQXFCO0FBQ3ZCIiwiZmlsZSI6ImFwcGxpY2F0aW9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzo0MDAsNzAwXCIpO1xuQGltcG9ydCB1cmwoXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9TGF0bzo0MDAsNzAwXCIpO1xuQGltcG9ydCB1cmwoXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2ljb24/ZmFtaWx5PU1hdGVyaWFsK0ljb25zXCIpO1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIElOVUlUQ1NTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBpbnVpdGNzcywgYnkgQGNzc3dpemFyZHJ5XG4gKlxuICogZ2l0aHViLmNvbS9pbnVpdGNzcyB8IGludWl0Y3NzLmNvbVxuICovXG4vKipcbiAqIFRoaXMgaXMgYW4gZXhhbXBsZSBpbnVpdGNzcyBtYW5pZmVzdCBmaWxlLiBETyBOT1QgTU9ESUZZIFRISVMgRklMRSBESVJFQ1RMWS5cbiAqIEluc3RlYWQsIGNvcHkgYW5kIHBhc3RlIGl0IGludG8geW91ciBvd24gQ1NTIGRpcmVjdG9yeSBhbmQgbWFrZSBhZGRpdGlvbnMsXG4gKiBleHRlbnNpb25zLCBhbmQgbW9kaWZpY2F0aW9ucyB0aGVyZS5cbiAqL1xuLyoqXG4gKiBDT05URU5UU1xuICpcbiAqIFNFVFRJTkdTXG4gKiBDb25maWcuLi4uLi4uLi4uLi4uLi5Qcm9qZWN0LWxldmVsIGNvbmZpZ3VyYXRpb24gYW5kIGZlYXR1cmUgc3dpdGNoZXMuXG4gKiBDb3JlLi4uLi4uLi4uLi4uLi4uLi5pbnVpdGNzc+KAmSBjb3JlIGFuZCBzZXR1cCBzZXR0aW5ncy5cbiAqIEdsb2JhbC4uLi4uLi4uLi4uLi4uLlByb2plY3Qtd2lkZSB2YXJpYWJsZXMgYW5kIHNldHRpbmdzLlxuICpcbiAqIFRPT0xTXG4gKiBGb250LXNpemUuLi4uLi4uLi4uLi5BIG1peGluIHdoaWNoIGd1YXJhbnRlZXMgYmFzZWxpbmUtZnJpZW5kbHkgbGluZS1oZWlnaHRzLlxuICogQ2xlYXJmaXguLi4uLi4uLi4uLi4uTWljcm8gY2xlYXJmaXggbWl4aW4uXG4gKiBIaWRkZW4uLi4uLi4uLi4uLi4uLi5NaXhpbiBmb3IgaGlkaW5nIGVsZW1lbnRzLlxuICogU2FzcyBNUS4uLi4uLi4uLi4uLi4uaW51aXRjc3PigJkgZGVmYXVsdCBtZWRpYSBxdWVyeSBtYW5hZ2VyLlxuICpcbiAqIEdFTkVSSUNcbiAqIEJveC1zaXppbmcuLi4uLi4uLi4uLkJldHRlciBkZWZhdWx0IGBib3gtc2l6aW5nYC5cbiAqIE5vcm1hbGl6ZS5jc3MuLi4uLi4uLkEgbGV2ZWwgcGxheWluZyBmaWVsZCB1c2luZyBAbmVjb2xhc+KAmSBOb3JtYWxpemUuY3NzLlxuICogUmVzZXQuLi4uLi4uLi4uLi4uLi4uQSB0aW55IHJlc2V0IHRvIGNvbXBsZW1lbnQgTm9ybWFsaXplLmNzcy5cbiAqIFNoYXJlZC4uLi4uLi4uLi4uLi4uLlNlbnNpYmx5IGFuZCB0ZXJzZWx5IHNoYXJlIHNvbWUgZ2xvYmFsIGNvbW1vbmFsaXRpZXNcbiAqICAgICAgICAgICAgICAgICAgICAgIChwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gbWFuYWdpbmcgdmVydGljYWwgcmh5dGhtKS5cbiAqXG4gKiBFTEVNRU5UU1xuICogUGFnZS4uLi4uLi4uLi4uLi4uLi4uU2V0IHVwIG91ciBkb2N1bWVudOKAmXMgZGVmYXVsdCBgZm9udC1zaXplYCBhbmRcbiAqICAgICAgICAgICAgICAgICAgICAgIGBsaW5lLWhlaWdodGAuXG4gKiBIZWFkaW5ncy4uLi4uLi4uLi4uLi5WZXJ5IG1pbmltYWwgKGkuZS4gb25seSBmb250LXNpemUgaW5mb3JtYXRpb24pIGZvclxuICogICAgICAgICAgICAgICAgICAgICAgaGVhZGluZ3MgMSB0aHJvdWdoIDYuXG4gKiBJbWFnZXMuLi4uLi4uLi4uLi4uLi5CYXNlIGltYWdlIHN0eWxlcy5cbiAqIFRhYmxlcy4uLi4uLi4uLi4uLi4uLlNpbXBsZSB0YWJsZSBzdHlsZXMuXG4gKlxuICogT0JKRUNUU1xuICogV3JhcHBlci4uLi4uLi4uLi4uLi4uUGFnZSBjb25zdHJhaW50IG9iamVjdC5cbiAqIExheW91dC4uLi4uLi4uLi4uLi4uLkdlbmVyaWMgbGF5b3V0IG1vZHVsZS5cbiAqIE1lZGlhLi4uLi4uLi4uLi4uLi4uLkltYWdlLSBhbmQgdGV4dC1saWtlIGNvbnRlbnQgc2lkZSBieSBzaWRlLiBUaGVcbiAqICAgICAgICAgICAgICAgICAgICAgIHBvc3Rlci1jaGlsZCBvZiBPT0NTUy5cbiAqIEZsYWcuLi4uLi4uLi4uLi4uLi4uLlRhYmxlLWxheW91dC1iYXNlZCBhZHZhbmNlbWVudCBvbiB0aGUgTWVkaWEgb2JqZWN0LlxuICogTGlzdC1iYXJlLi4uLi4uLi4uLi4uTGlzdHMgd2l0aCBubyBidWxsZXRzIG9yIGluZGVudHMuXG4gKiBMaXN0LWlubGluZS4uLi4uLi4uLi5BIGxpc3Qgd2hvc2UgaXRlbXMgYWxsIHNpdGUgaW4gYSBsaW5lLlxuICogQm94Li4uLi4uLi4uLi4uLi4uLi4uU2ltcGxlIGJveGluZyBhYnN0cmFjdGlvbi5cbiAqIEJsb2NrLi4uLi4uLi4uLi4uLi4uLkltYWdlLW9uLXRvcC1vZi10ZXh0IG9iamVjdC5cbiAqIFJhdGlvLi4uLi4uLi4uLi4uLi4uLkEgY29udGFpbmVyIGZvciBtYWludGFpbmluZyBhc3BlY3QgcmF0aW8gb2YgY29udGVudC5cbiAqIENyb3AuLi4uLi4uLi4uLi4uLi4uLlByb3ZpZGUgYSBjcm9wcGluZyBjb250ZXh0IGZvciBtZWRpYSAoaW1hZ2VzLCBldGMuKS5cbiAqIFRhYmxlLi4uLi4uLi4uLi4uLi4uLkNsYXNzZXMgZm9yIG1hbmlwdWxhdGluZyBgdGFibGVgcy5cbiAqIFBhY2suLi4uLi4uLi4uLi4uLi4uLlBhY2sgaXRlbXMgaW50byBhdmFpbGFibGUgaG9yaXpvbnRhbCBzcGFjZS5cbiAqXG4gKiBDT01QT05FTlRTXG4gKiBCdXR0b25zLi4uLi4uLi4uLi4uLi5BbiBleGFtcGxlIGJ1dHRvbiBjb21wb25lbnQsIGFuZCBob3cgaXQgZml0cyBpbnRvIHRoZVxuICogICAgICAgICAgICAgICAgICAgICAgaW51aXRjc3MgZnJhbWV3b3JrLlxuICpcbiAqIFVUSUxJVElFU1xuICogQ2xlYXJmaXguLi4uLi4uLi4uLi4uQmluZCBvdXIgY2xlYXJmaXggb250byBhIHV0aWxpdHkgY2xhc3MuXG4gKiBXaWR0aHMuLi4uLi4uLi4uLi4uLi5TaW1wbGUgd2lkdGggaGVscGVyIGNsYXNzZXMuXG4gKiBIZWFkaW5ncy4uLi4uLi4uLi4uLi5SZWFzc2lnbmluZyBvdXIgaGVhZGluZyBzdHlsZXMgdG8gaGVscGVyIGNsYXNzZXMuXG4gKiBTcGFjaW5ncy4uLi4uLi4uLi4uLi5OdWRnZSBiaXRzIG9mIHRoZSBET00gYXJvdW5kIHdpdGggdGhlc2Ugc3BhY2luZ1xuICogICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5cbiAqIFJlc3BvbnNpdmUtU3BhY2luZ3MuLkVuaGFuY2VzIHRoZSBmdW5jdGlvbiBvZiBub3JtYWwgc3BhY2luZ3MgZm9yXG4gKiAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaXZlIHVzYWdlLlxuICogUHJpbnQuLi4uLi4uLi4uLi4uLi4uUmVzZXQtbGlrZSBzdHlsZXMgdGFrZW4gZnJvbSB0aGUgSFRNTDUgQm9pbGVycGxhdGUuXG4gKiBIaWRlLi4uLi4uLi4uLi4uLi4uLi5IZWxwZXIgY2xhc3NlcyB0byBoaWRlIGNvbnRlbnRcbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNCT1gtU0laSU5HXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBNb3JlIHNlbnNpYmxlIGRlZmF1bHQgYm94LXNpemluZzpcbiAqIGNzcy10cmlja3MuY29tL2luaGVyaXRpbmctYm94LXNpemluZy1wcm9iYWJseS1zbGlnaHRseS1iZXR0ZXItYmVzdC1wcmFjdGljZVxuICovXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG4vKiEgbm9ybWFsaXplLmNzcyB2Ny4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbmVtIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5tYWluIHsgLyogMSAqL1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctIGFuZCBGaXJlZm94IDM5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKipcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogVW50aWwgd2UgaGF2ZSBhIGRlc2lnbiByZWNpcGUgZm9yIGZvY3VzIHN0YXRlc1xuICogcmVtb3ZlIHRoZSBnZW5lcmljIGZvY3VzIG91dGxpbmVcbiAqL1xuaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaHRtbCBbdHlwZT1idXR0b25dLFxuW3R5cGU9cmVzZXRdLFxuW3R5cGU9c3VibWl0XSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9YnV0dG9uXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXJlc2V0XTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1idXR0b25dOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9cmVzZXRdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9c3VibWl0XTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gKi9cblt0eXBlPWNoZWNrYm94XSxcblt0eXBlPXJhZGlvXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuW3R5cGU9c2VhcmNoXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuW3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcblt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gKi9cbmRldGFpbHMsXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIFNjcmlwdGluZ1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBIaWRkZW5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1JFU0VUXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBIHZlcnkgc2ltcGxlIHJlc2V0IHRoYXQgc2l0cyBvbiB0b3Agb2YgTm9ybWFsaXplLmNzcy5cbiAqL1xuYm9keSxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG5ibG9ja3F1b3RlLCBwLCBwcmUsXG5kbCwgZGQsIG9sLCB1bCxcbmZpZ3VyZSxcbmhyLFxuZmllbGRzZXQsIGxlZ2VuZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdHJhaWxpbmcgbWFyZ2lucyBmcm9tIG5lc3RlZCBsaXN0cy5cbiAqL1xubGkgPiBvbCxcbmxpID4gdWwge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHRhYmxlIHNwYWNpbmcuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbi8qKlxuICogMS4gUmVzZXQgQ2hyb21lIGFuZCBGaXJlZm94IGJlaGF2aW91ciB3aGljaCBzZXRzIGEgYG1pbi13aWR0aDogbWluLWNvbnRlbnQ7YFxuICogICAgb24gZmllbGRzZXRzLlxuICovXG5maWVsZHNldCB7XG4gIG1pbi13aWR0aDogMDsgLyogWzFdICovXG4gIGJvcmRlcjogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNTSEFSRURcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFNoYXJlZCBkZWNsYXJhdGlvbnMgZm9yIGNlcnRhaW4gZWxlbWVudHMuXG4gKi9cbi8qKlxuICogQWx3YXlzIGRlY2xhcmUgbWFyZ2lucyBpbiB0aGUgc2FtZSBkaXJlY3Rpb246XG4gKiBjc3N3aXphcmRyeS5jb20vMjAxMi8wNi9zaW5nbGUtZGlyZWN0aW9uLW1hcmdpbi1kZWNsYXJhdGlvbnNcbiAqL1xuYWRkcmVzcyxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG5ibG9ja3F1b3RlLCBwLCBwcmUsXG5kbCwgb2wsIHVsLFxuZmlndXJlLFxuaHIsXG50YWJsZSxcbmZpZWxkc2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cblxuLyoqXG4gKiBDb25zaXN0ZW50IGluZGVudGF0aW9uIGZvciBsaXN0cy5cbiAqL1xuZGQsIG9sLCB1bCB7XG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1BBR0VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFNpbXBsZSBwYWdlLWxldmVsIHNldHVwLlxuICpcbiAqIDEuIFNldCB0aGUgZGVmYXVsdCBgZm9udC1zaXplYCBhbmQgYGxpbmUtaGVpZ2h0YCBmb3IgdGhlIGVudGlyZSBwcm9qZWN0LFxuICogICAgc291cmNlZCBmcm9tIG91ciBkZWZhdWx0IHZhcmlhYmxlcy4gVGhlIGBmb250LXNpemVgIGlzIGNhbGN1bGF0ZWQgdG8gZXhpc3RcbiAqICAgIGluIGVtcywgdGhlIGBsaW5lLWhlaWdodGAgaXMgY2FsY3VsYXRlZCB0byBleGlzdCB1bml0bGVzc2x5LlxuICogMi4gRm9yY2Ugc2Nyb2xsYmFycyB0byBhbHdheXMgYmUgdmlzaWJsZSB0byBwcmV2ZW50IGF3a3dhcmQg4oCYanVtcHPigJkgd2hlblxuICogICAgbmF2aWdhdGluZyBiZXR3ZWVuIHBhZ2VzIHRoYXQgZG8vZG8gbm90IGhhdmUgZW5vdWdoIGNvbnRlbnQgdG8gcHJvZHVjZVxuICogICAgc2Nyb2xsYmFycyBuYXR1cmFsbHkuXG4gKiAzLiBFbnN1cmUgdGhlIHBhZ2UgYWx3YXlzIGZpbGxzIGF0IGxlYXN0IHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydC5cbiAqL1xuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMWVtOyAvKiBbMV0gKi9cbiAgbGluZS1oZWlnaHQ6IDEuNTsgLyogWzFdICovXG4gIG92ZXJmbG93LXk6IHNjcm9sbDsgLyogWzJdICovXG4gIG1pbi1oZWlnaHQ6IDEwMCU7IC8qIFszXSAqL1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI0hFQURJTkdTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBTaW1wbGUgZGVmYXVsdCBzdHlsZXMgZm9yIGhlYWRpbmdzIDEgdGhyb3VnaCA2LiBBbnl0aGluZyBtb3JlIG9waW5pb25hdGVkXG4gKiB0aGFuIHNpbXBsZSBmb250LXNpemUgY2hhbmdlcyBzaG91bGQgbGlrZWx5IGJlIGFwcGxpZWQgdmlhIGNsYXNzZXMgKHNlZTpcbiAqIGh0dHA6Ly9jc3N3aXphcmRyeS5jb20vMjAxNi8wMi9tYW5hZ2luZy10eXBvZ3JhcGh5LW9uLWxhcmdlLWFwcHMvKS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjg1NzE0Mjg1NztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NCk7XG59XG5cbmgyIHtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBmb250LXNpemU6IDEuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI4NTcxNDI4NTc7XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODQpO1xufVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMzMzMztcbn1cblxuaDUge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzMzMzM7XG59XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjSU1BR0VTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBGbHVpZCBpbWFnZXMgZm9yIHJlc3BvbnNpdmUgcHVycG9zZXMuXG4gKiAyLiBPZmZzZXQgYGFsdGAgdGV4dCBmcm9tIHN1cnJvdW5kaW5nIGNvcHkuXG4gKiAzLiBTZXR0aW5nIGB2ZXJ0aWNhbC1hbGlnbmAgcmVtb3ZlcyB0aGUgd2hpdGVzcGFjZSB0aGF0IGFwcGVhcnMgdW5kZXIgYGltZ2BcbiAqICAgIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgZHJvcHBlZCBpbnRvIGEgcGFnZSBhcy1pcy4gU2FmZXIgYWx0ZXJuYXRpdmUgdG9cbiAqICAgIHVzaW5nIGBkaXNwbGF5OiBibG9jaztgLlxuICovXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIFsxXSAqL1xuICBmb250LXN0eWxlOiBpdGFsaWM7IC8qIFsyXSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiBbM10gKi9cbn1cblxuLyoqXG4gKiBJZiBhIGB3aWR0aGAgYW5kL29yIGBoZWlnaHRgIGF0dHJpYnV0ZSBoYXMgYmVlbiBleHBsaWNpdGx5IGRlZmluZWQsIGxldOKAmXNcbiAqIG5vdCBtYWtlIHRoZSBpbWFnZSBmbHVpZC5cbiAqL1xuaW1nW3dpZHRoXSxcbmltZ1toZWlnaHRdIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1RBQkxFU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gRW5zdXJlIHRhYmxlcyBmaWxsIHVwIGFzIG11Y2ggc3BhY2UgYXMgcG9zc2libGUuXG4gKi9cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7IC8qIFsxXSAqL1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1dSQVBQRVJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFBhZ2UtbGV2ZWwgY29uc3RyYWluaW5nIGFuZCB3cmFwcGluZyBlbGVtZW50cy5cbiAqL1xuLm8td3JhcHBlciB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG4uby13cmFwcGVyOmFmdGVyIHtcbiAgY29udGVudDogXCJcIiAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBjbGVhcjogYm90aCAhaW1wb3J0YW50O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLm8td3JhcHBlciB7XG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gIH1cbn1cblxuLm5hdi13cmFwcGVyLCAuZm9vdGVyLXdyYXBwZXIge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gIG1heC13aWR0aDogMTIwMHB4O1xufVxuLm5hdi13cmFwcGVyOmFmdGVyLCAuZm9vdGVyLXdyYXBwZXI6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIGNsZWFyOiBib3RoICFpbXBvcnRhbnQ7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjTEFZT1VUXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBHcmlkLWxpa2UgbGF5b3V0IHN5c3RlbS5cbiAqXG4gKiBUaGUgbGF5b3V0IG9iamVjdCBwcm92aWRlcyB1cyB3aXRoIGEgY29sdW1uLXN0eWxlIGxheW91dCBzeXN0ZW0uIFRoaXMgZmlsZVxuICogY29udGFpbnMgdGhlIGJhc2ljIHN0cnVjdHVyYWwgZWxlbWVudHMsIGJ1dCBjbGFzc2VzIHNob3VsZCBiZSBjb21wbGVtZW50ZWRcbiAqIHdpdGggd2lkdGggdXRpbGl0aWVzLCBmb3IgZXhhbXBsZTpcbiAqXG4gKiAgIDxkaXYgY2xhc3M9XCJvLWxheW91dFwiPlxuICogICAgIDxkaXYgY2xhc3M9XCJvLWxheW91dF9faXRlbSAgdS0xLzJcIj5cbiAqICAgICA8L2Rpdj5cbiAqICAgICA8ZGl2IGNsYXNzPVwiby1sYXlvdXRfX2l0ZW0gIHUtMS8yXCI+XG4gKiAgICAgPC9kaXY+XG4gKiAgIDwvZGl2PlxuICpcbiAqIFRoZSBhYm92ZSB3aWxsIGNyZWF0ZSBhIHR3by1jb2x1bW4gc3RydWN0dXJlIGluIHdoaWNoIGVhY2ggY29sdW1uIHdpbGxcbiAqIGZsdWlkbHkgZmlsbCBoYWxmIG9mIHRoZSB3aWR0aCBvZiB0aGUgcGFyZW50LiBXZSBjYW4gaGF2ZSBtb3JlIGNvbXBsZXhcbiAqIHN5c3RlbXM6XG4gKlxuICogICA8ZGl2IGNsYXNzPVwiby1sYXlvdXRcIj5cbiAqICAgICA8ZGl2IGNsYXNzPVwiby1sYXlvdXRfX2l0ZW0gIHUtMS8xICB1LTEvM0BtZWRpdW1cIj5cbiAqICAgICA8L2Rpdj5cbiAqICAgICA8ZGl2IGNsYXNzPVwiby1sYXlvdXRfX2l0ZW0gIHUtMS8yICB1LTEvM0BtZWRpdW1cIj5cbiAqICAgICA8L2Rpdj5cbiAqICAgICA8ZGl2IGNsYXNzPVwiby1sYXlvdXRfX2l0ZW0gIHUtMS8yICB1LTEvM0BtZWRpdW1cIj5cbiAqICAgICA8L2Rpdj5cbiAqICAgPC9kaXY+XG4gKlxuICogVGhlIGFib3ZlIHdpbGwgY3JlYXRlIGEgc3lzdGVtIGluIHdoaWNoIHRoZSBmaXJzdCBpdGVtIHdpbGwgYmUgMTAwJSB3aWR0aFxuICogdW50aWwgd2UgZW50ZXIgb3VyIG1lZGl1bSBicmVha3BvaW50LCB3aGVuIGl0IHdpbGwgYmVjb21lIDMzLjMzMyUgd2lkdGguIFRoZVxuICogc2Vjb25kIGFuZCB0aGlyZCBpdGVtcyB3aWxsIGJlIDUwJSBvZiB0aGVpciBwYXJlbnQsIHVudGlsIHRoZXkgYWxzbyBiZWNvbWVcbiAqIDMzLjMzMyUgd2lkdGggYXQgdGhlIG1lZGl1bSBicmVha3BvaW50LlxuICpcbiAqIFdlIGNhbiBhbHNvIG1hbmlwdWxhdGUgZW50aXJlIGxheW91dCBzeXN0ZW1zIGJ5IGFkZGluZyBhIHNlcmllcyBvZiBtb2RpZmllcnNcbiAqIHRvIHRoZSBgLm8tbGF5b3V0YCBibG9jay4gRm9yIGV4YW1wbGU6XG4gKlxuICogICA8ZGl2IGNsYXNzPVwiby1sYXlvdXQgIG8tbGF5b3V0LS1yZXZlcnNlXCI+XG4gKlxuICogVGhpcyB3aWxsIHJldmVyc2UgdGhlIGRpc3BsYXllZCBvcmRlciBvZiB0aGUgc3lzdGVtIHNvIHRoYXQgaXQgcnVucyBpbiB0aGVcbiAqIG9wcG9zaXRlIG9yZGVyIHRvIG91ciBzb3VyY2UsIGVmZmVjdGl2ZWx5IGZsaXBwaW5nIHRoZSBzeXN0ZW0gb3Zlci5cbiAqXG4gKiAgIDxkaXYgY2xhc3M9XCJvLWxheW91dCAgby1sYXlvdXQtLVtyaWdodHxjZW50ZXJdXCI+XG4gKlxuICogVGhpcyB3aWxsIGNhdXNlIHRoZSBzeXN0ZW0gdG8gZmlsbCB1cCBmcm9tIGVpdGhlciB0aGUgY2VudHJlIG9yIHRoZSByaWdodFxuICogaGFuZCBzaWRlLiBEZWZhdWx0IGJlaGF2aW91ciBpcyB0byBmaWxsIHVwIHRoZSBsYXlvdXQgc3lzdGVtIGZyb20gdGhlIGxlZnQuXG4gKlxuICogVGhlcmUgYXJlIHBsZW50eSBtb3JlIG9wdGlvbnMgYXZhaWxhYmxlIHRvIHVzOiBleHBsb3JlIHRoZW0gYmVsb3cuXG4gKi9cbi8qIERlZmF1bHQvbWFuZGF0b3J5IGNsYXNzZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIEFsbG93cyB1cyB0byB1c2UgdGhlIGxheW91dCBvYmplY3Qgb24gYW55IHR5cGUgb2YgZWxlbWVudC5cbiAqIDIuIFdlIG5lZWQgdG8gZGVmZW5zaXZlbHkgcmVzZXQgYW55IGJveC1tb2RlbCBwcm9wZXJ0aWVzLlxuICogMy4gVXNlIHRoZSBuZWdhdGl2ZSBtYXJnaW4gdHJpY2sgZm9yIG11bHRpLXJvdyBncmlkczpcbiAqICAgIGh0dHA6Ly9jc3N3aXphcmRyeS5jb20vMjAxMS8wOC9idWlsZGluZy1iZXR0ZXItZ3JpZC1zeXN0ZW1zL1xuICovXG4uby1sYXlvdXQge1xuICBkaXNwbGF5OiBibG9jazsgLyogWzFdICovXG4gIG1hcmdpbjogMDsgLyogWzJdICovXG4gIHBhZGRpbmc6IDA7IC8qIFsyXSAqL1xuICBsaXN0LXN0eWxlOiBub25lOyAvKiBbMV0gKi9cbiAgbWFyZ2luLWxlZnQ6IC0yNHB4OyAvKiBbM10gKi9cbiAgZm9udC1zaXplOiAwO1xufVxuXG4vKipcbiAqIDEuIFJlcXVpcmVkIGluIG9yZGVyIHRvIGNvbWJpbmUgZmx1aWQgd2lkdGhzIHdpdGggZml4ZWQgZ3V0dGVycy5cbiAqIDIuIEFsbG93cyB1cyB0byBtYW5pcHVsYXRlIGdyaWRzIHZlcnRpY2FsbHksIHdpdGggdGV4dC1sZXZlbCBwcm9wZXJ0aWVzLFxuICogICAgZXRjLlxuICogMy4gRGVmYXVsdCBpdGVtIGFsaWdubWVudCBpcyB3aXRoIHRoZSB0b3BzIG9mIGVhY2ggb3RoZXIsIGxpa2UgbW9zdFxuICogICAgdHJhZGl0aW9uYWwgZ3JpZC9sYXlvdXQgc3lzdGVtcy5cbiAqIDQuIEJ5IGRlZmF1bHQsIGFsbCBsYXlvdXQgaXRlbXMgYXJlIGZ1bGwtd2lkdGggKG1vYmlsZSBmaXJzdCkuXG4gKiA1LiBHdXR0ZXJzIHByb3ZpZGVkIGJ5IGxlZnQgcGFkZGluZzpcbiAqICAgIGh0dHA6Ly9jc3N3aXphcmRyeS5jb20vMjAxMS8wOC9idWlsZGluZy1iZXR0ZXItZ3JpZC1zeXN0ZW1zL1xuICogNi4gRmFsbGJhY2sgZm9yIG9sZCBJRXMgbm90IHN1cHBvcnRpbmcgYHJlbWAgdmFsdWVzLlxuICovXG4uby1sYXlvdXRfX2l0ZW0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiBbMV0gKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiBbMl0gKi9cbiAgdmVydGljYWwtYWxpZ246IHRvcDsgLyogWzNdICovXG4gIHdpZHRoOiAxMDAlOyAvKiBbNF0gKi9cbiAgcGFkZGluZy1sZWZ0OiAyNHB4OyAvKiBbNV0gKi9cbiAgZm9udC1zaXplOiAxNnB4OyAvKiBbNl0gKi9cbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4vKiBHdXR0ZXIgc2l6ZSBtb2RpZmllcnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uby1sYXlvdXQtLWZsdXNoIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4uby1sYXlvdXQtLWZsdXNoID4gLm8tbGF5b3V0X19pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uby1sYXlvdXQtLXRpbnkge1xuICBtYXJnaW4tbGVmdDogLTZweDtcbn1cbi5vLWxheW91dC0tdGlueSA+IC5vLWxheW91dF9faXRlbSB7XG4gIHBhZGRpbmctbGVmdDogNnB4O1xufVxuXG4uby1sYXlvdXQtLXNtYWxsIHtcbiAgbWFyZ2luLWxlZnQ6IC0xMnB4O1xufVxuLm8tbGF5b3V0LS1zbWFsbCA+IC5vLWxheW91dF9faXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMTJweDtcbn1cblxuLm8tbGF5b3V0LS1sYXJnZSB7XG4gIG1hcmdpbi1sZWZ0OiAtNDhweDtcbn1cbi5vLWxheW91dC0tbGFyZ2UgPiAuby1sYXlvdXRfX2l0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG59XG5cbi5vLWxheW91dC0taHVnZSB7XG4gIG1hcmdpbi1sZWZ0OiAtOTZweDtcbn1cbi5vLWxheW91dC0taHVnZSA+IC5vLWxheW91dF9faXRlbSB7XG4gIHBhZGRpbmctbGVmdDogOTZweDtcbn1cblxuLyogVmVydGljYWwgYWxpZ25tZW50IG1vZGlmaWVyc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWxpZ24gYWxsIGdyaWQgaXRlbXMgdG8gdGhlIG1pZGRsZXMgb2YgZWFjaCBvdGhlci5cbiAqL1xuLm8tbGF5b3V0LS1taWRkbGUgPiAuby1sYXlvdXRfX2l0ZW0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKipcbiAqIEFsaWduIGFsbCBncmlkIGl0ZW1zIHRvIHRoZSBib3R0b21zIG9mIGVhY2ggb3RoZXIuXG4gKi9cbi5vLWxheW91dC0tYm90dG9tID4gLm8tbGF5b3V0X19pdGVtIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLyoqXG4gKiBTdHJldGNoIGFsbCBncmlkIGl0ZW1zIG9mIGVhY2ggcm93IHRvIGhhdmUgYW4gZXF1YWwtaGVpZ2h0LlxuICogUGxlYXNlIGJlIGF3YXJlIHRoYXQgdGhpcyBtb2RpZmllciBjbGFzcyBkb2VzbuKAmXQgdGFrZSBhbnkgZWZmZWN0IGluIElFOSBhbmRcbiAqIGJlbG93IGFuZCBvdGhlciBvbGRlciBicm93c2VycyBkdWUgdG8gdGhlIGxhY2sgb2YgYGRpc3BsYXk6IGZsZXhgIHN1cHBvcnQuXG4gKi9cbi5vLWxheW91dC0tc3RyZXRjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5vLWxheW91dC0tc3RyZXRjaCA+IC5vLWxheW91dF9faXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uby1sYXlvdXQtLXN0cmV0Y2guby1sYXlvdXQtLWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLm8tbGF5b3V0LS1zdHJldGNoLm8tbGF5b3V0LS1yaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4uby1sYXlvdXQtLXN0cmV0Y2guby1sYXlvdXQtLWxlZnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi8qIEZpbGwgb3JkZXIgbW9kaWZpZXJzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBGaWxsIHVwIHRoZSBsYXlvdXQgc3lzdGVtIGZyb20gdGhlIGNlbnRyZS5cbiAqL1xuLm8tbGF5b3V0LS1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uby1sYXlvdXQtLWNlbnRlciA+IC5vLWxheW91dF9faXRlbSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi8qKlxuICogRmlsbCB1cCB0aGUgbGF5b3V0IHN5c3RlbSBmcm9tIHRoZSByaWdodC1oYW5kIHNpZGUuXG4gKi9cbi5vLWxheW91dC0tcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5vLWxheW91dC0tcmlnaHQgPiAuby1sYXlvdXRfX2l0ZW0ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4vKipcbiAqIEZpbGwgdXAgdGhlIGxheW91dCBzeXN0ZW0gZnJvbSB0aGUgbGVmdC1oYW5kIHNpZGUuIFRoaXMgd2lsbCBsaWtlbHkgb25seSBiZVxuICogbmVlZGVkIHdoZW4gdXNpbmcgaW4gY29uanVuY3Rpb24gd2l0aCBgLm8tbGF5b3V0LS1yZXZlcnNlYC5cbiAqL1xuLm8tbGF5b3V0LS1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5vLWxheW91dC0tbGVmdCA+IC5vLWxheW91dF9faXRlbSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi8qKlxuICogUmV2ZXJzZSB0aGUgcmVuZGVyZWQgb3JkZXIgb2YgdGhlIGdyaWQgc3lzdGVtLlxuICovXG4uby1sYXlvdXQtLXJldmVyc2Uge1xuICBkaXJlY3Rpb246IHJ0bDtcbn1cbi5vLWxheW91dC0tcmV2ZXJzZSA+IC5vLWxheW91dF9faXRlbSB7XG4gIGRpcmVjdGlvbjogbHRyO1xufVxuXG4vKiBBdXRvLXdpZHRocyBtb2RpZmllclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQ2F1c2UgbGF5b3V0IGl0ZW1zIHRvIHRha2UgdXAgYSBub24tZXhwbGljaXQgYW1vdW50IG9mIHdpZHRoLlxuICovXG4uby1sYXlvdXQtLWF1dG8gPiAuby1sYXlvdXRfX2l0ZW0ge1xuICB3aWR0aDogYXV0bztcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNNRURJQVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUGxhY2UgYW55IGltYWdlLSBhbmQgdGV4dC1saWtlIGNvbnRlbnQgc2lkZS1ieS1zaWRlLCBhcyBwZXI6XG4gKiBodHRwOi8vd3d3LnN0dWJib3JuZWxsYS5vcmcvY29udGVudC8yMDEwLzA2LzI1L3RoZS1tZWRpYS1vYmplY3Qtc2F2ZXMtaHVuZHJlZHMtb2YtbGluZXMtb2YtY29kZVxuICovXG4uby1tZWRpYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm8tbWVkaWE6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIGNsZWFyOiBib3RoICFpbXBvcnRhbnQ7XG59XG5cbi5vLW1lZGlhX19pbWcge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xufVxuLm8tbWVkaWFfX2ltZyA+IGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uby1tZWRpYV9fYm9keSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm8tbWVkaWFfX2JvZHksXG4uby1tZWRpYV9fYm9keSA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyogU2l6ZSB2YXJpYW50c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogTW9kaWZ5IHRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiBvdXIgaW1hZ2UgYW5kIG91ciB0ZXh0LiBXZSBhbHNvIGhhdmVcbiAqIHJldmVyc2libGUgb3B0aW9ucyBmb3IgYWxsIGF2YWlsYWJsZSBzaXplcy5cbiAqL1xuLm8tbWVkaWEtLWZsdXNoID4gLm8tbWVkaWFfX2ltZyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5vLW1lZGlhLS10aW55ID4gLm8tbWVkaWFfX2ltZyB7XG4gIG1hcmdpbi1yaWdodDogNnB4O1xufVxuLm8tbWVkaWEtLXRpbnkuby1tZWRpYS0tcmV2ZXJzZSA+IC5vLW1lZGlhX19pbWcge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG59XG5cbi5vLW1lZGlhLS1zbWFsbCA+IC5vLW1lZGlhX19pbWcge1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG59XG4uby1tZWRpYS0tc21hbGwuby1tZWRpYS0tcmV2ZXJzZSA+IC5vLW1lZGlhX19pbWcge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xufVxuXG4uby1tZWRpYS0tbGFyZ2UgPiAuby1tZWRpYV9faW1nIHtcbiAgbWFyZ2luLXJpZ2h0OiA0OHB4O1xufVxuLm8tbWVkaWEtLWxhcmdlLm8tbWVkaWEtLXJldmVyc2UgPiAuby1tZWRpYV9faW1nIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogNDhweDtcbn1cblxuLm8tbWVkaWEtLWh1Z2UgPiAuby1tZWRpYV9faW1nIHtcbiAgbWFyZ2luLXJpZ2h0OiA5NnB4O1xufVxuLm8tbWVkaWEtLWh1Z2Uuby1tZWRpYS0tcmV2ZXJzZSA+IC5vLW1lZGlhX19pbWcge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiA5NnB4O1xufVxuXG4vKiBSZXZlcnNlZCBtZWRpYSBvYmplY3RzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm8tbWVkaWEtLXJldmVyc2UgPiAuby1tZWRpYV9faW1nIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI0ZMQUdcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFRoZSBmbGFnIG9iamVjdCBpcyBhIGRlc2lnbiBwYXR0ZXJuIHNpbWlsYXIgdG8gdGhlIG1lZGlhIG9iamVjdCwgaG93ZXZlciBpdFxuICogdXRpbGlzZXMgYGRpc3BsYXk6IHRhYmxlWy1jZWxsXTtgIHRvIGdpdmUgdXMgY29udHJvbCBvdmVyIHRoZSB2ZXJ0aWNhbFxuICogYWxpZ25tZW50cyBvZiB0aGUgdGV4dCBhbmQgaW1hZ2UuXG4gKlxuICogaHR0cDovL2Nzc3dpemFyZHJ5LmNvbS8yMDEzLzA1L3RoZS1mbGFnLW9iamVjdC9cbiAqXG4gKiAxLiBBbGxvd3MgdXMgdG8gY29udHJvbCB2ZXJ0aWNhbCBhbGlnbm1lbnRzLlxuICogMi4gRm9yY2UgdGhlIG9iamVjdCB0byBiZSB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgcGFyZW50LiBDb21iaW5lZCB3aXRoIFsxXSxcbiAqICAgIHRoaXMgbWFrZXMgdGhlIG9iamVjdCBiZWhhdmUgaW4gYSBxdWFzaS1gZGlzcGxheTogYmxvY2s7YCBtYW5uZXIuXG4gKiAzLiBSZXNldCBpbmhlcml0ZWQgYGJvcmRlci1zcGFjaW5nYCBkZWNsYXJhdGlvbnMuXG4gKi9cbi5vLWZsYWcge1xuICBkaXNwbGF5OiB0YWJsZTsgLyogWzFdICovXG4gIHdpZHRoOiAxMDAlOyAvKiBbMl0gKi9cbiAgYm9yZGVyLXNwYWNpbmc6IDA7IC8qIFszXSAqL1xufVxuXG4vKipcbiAqIEl0ZW1zIHdpdGhpbiBhIGZsYWcgb2JqZWN0LiBUaGVyZSBzaG91bGQgb25seSBldmVyIGJlIG9uZSBvZiBlYWNoLlxuICpcbiAqIDEuIERlZmF1bHQgdG8gYWxpZ25pbmcgY29udGVudCB0byB0aGVpciBtaWRkbGVzLlxuICovXG4uby1mbGFnX19pbWcsXG4uby1mbGFnX19ib2R5IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogWzFdICovXG59XG5cbi8qKlxuICogRmxhZyBpbWFnZXMgaGF2ZSBhIHNwYWNlIGJldHdlZW4gdGhlbSBhbmQgdGhlIGJvZHkgb2YgdGhlIG9iamVjdC5cbiAqXG4gKiAxLiBGb3JjZSBgLmZsYWdfX2ltZ2AgdG8gdGFrZSB1cCBhcyBsaXR0bGUgc3BhY2UgYXMgcG9zc2libGU6XG4gKiAgICBodHRwczovL3BpeGVsc3ZzYnl0ZXMuY29tLzIwMTIvMDIvdGhpcy1jc3MtbGF5b3V0LWdyaWQtaXMtbm8taG9seS1ncmFpbC9cbiAqL1xuLm8tZmxhZ19faW1nIHtcbiAgd2lkdGg6IDFweDsgLyogWzFdICovXG4gIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG4gIC8qKlxuICAgKiAxLiBGaXhlcyBwcm9ibGVtIHdpdGggaW1hZ2VzIGRpc2FwcGVhcmluZy5cbiAgICpcbiAgICogICAgVGhlIGRpcmVjdCBjaGlsZCBzZWxlY3RvciAnPicgbmVlZHMgdG8gcmVtYWluIGluIG9yZGVyIGZvciBuZXN0ZWQgZmxhZ1xuICAgKiAgICBvYmplY3RzIHRvIG5vdCBpbmhlcml0IHRoZWlyIHBhcmVudOKAmXMgZm9ybWF0dGluZy4gSW4gY2FzZSB0aGUgaW1hZ2UgdGFnXG4gICAqICAgIGlzIHdyYXBwZWQgaW50byBhbm90aGVyIHRhZywgZS5nLiBhbiBhbmNob3IgZm9yIGxpbmtpbmcgcmVhc29ucywgaXQgd2lsbFxuICAgKiAgICBkaXNhcHBlYXIuIEluIHRoYXQgY2FzZSB0cnkgd3JhcHBpbmcgdGhlIHdob2xlIG8tZmxhZ19faW1nIG9iamVjdCBpbnRvXG4gICAqICAgIGFuIGFuY2hvciB0YWcuXG4gICAqXG4gICAqICAgIEUuZy46XG4gICAqXG4gICAqICAgICAgPGEgaHJlZj1cIi9cIj5cbiAgICogICAgICAgIDxkaXYgY2xhc3M9XCJvLWZsYWdfX2ltZ1wiPlxuICAgKiAgICAgICAgICA8aW1nIHNyYz1cIi4vbGluay90by9pbWFnZS5qcGdcIiBhbHQ9XCJpbWFnZSBhbHQgdGV4dFwiPlxuICAgKiAgICAgICAgPC9kaXY+XG4gICAqICAgICAgPC9hPlxuICAgKi9cbn1cbi5vLWZsYWdfX2ltZyA+IGltZyB7XG4gIG1heC13aWR0aDogbm9uZTsgLyogWzFdICovXG59XG5cbi8qKlxuICogVGhlIGNvbnRhaW5lciBmb3IgdGhlIG1haW4gY29udGVudCBvZiB0aGUgZmxhZyBvYmplY3QuXG4gKlxuICogMS4gRm9yY2VzIHRoZSBgLmZsYWdfX2JvZHlgIHRvIHRha2UgdXAgYWxsIHJlbWFpbmluZyBzcGFjZS5cbiAqL1xuLm8tZmxhZ19fYm9keSB7XG4gIHdpZHRoOiBhdXRvOyAvKiBbMV0gKi9cbn1cbi5vLWZsYWdfX2JvZHksXG4uby1mbGFnX19ib2R5ID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKiBTaXplIHZhcmlhbnRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm8tZmxhZy0tZmx1c2ggPiAuby1mbGFnX19pbWcge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5vLWZsYWctLXRpbnkgPiAuby1mbGFnX19pbWcge1xuICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG59XG4uby1mbGFnLS10aW55Lm8tZmxhZy0tcmV2ZXJzZSA+IC5vLWZsYWdfX2ltZyB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogNnB4O1xufVxuXG4uby1mbGFnLS1zbWFsbCA+IC5vLWZsYWdfX2ltZyB7XG4gIHBhZGRpbmctcmlnaHQ6IDEycHg7XG59XG4uby1mbGFnLS1zbWFsbC5vLWZsYWctLXJldmVyc2UgPiAuby1mbGFnX19pbWcge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG59XG5cbi5vLWZsYWctLWxhcmdlID4gLm8tZmxhZ19faW1nIHtcbiAgcGFkZGluZy1yaWdodDogNDhweDtcbn1cbi5vLWZsYWctLWxhcmdlLm8tZmxhZy0tcmV2ZXJzZSA+IC5vLWZsYWdfX2ltZyB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogNDhweDtcbn1cblxuLm8tZmxhZy0taHVnZSA+IC5vLWZsYWdfX2ltZyB7XG4gIHBhZGRpbmctcmlnaHQ6IDk2cHg7XG59XG4uby1mbGFnLS1odWdlLm8tZmxhZy0tcmV2ZXJzZSA+IC5vLWZsYWdfX2ltZyB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogOTZweDtcbn1cblxuLyogUmV2ZXJzZWQgZmxhZ1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gU3dhcCB0aGUgcmVuZGVyZWQgZGlyZWN0aW9uIG9mIHRoZSBvYmplY3TigKZcbiAqIDIuIOKApmFuZCByZXNldCBpdC5cbiAqIDMuIFJlYXNzaWduIG1hcmdpbnMgdG8gdGhlIGNvcnJlY3Qgc2lkZXMuXG4gKi9cbi5vLWZsYWctLXJldmVyc2Uge1xuICBkaXJlY3Rpb246IHJ0bDsgLyogWzFdICovXG59XG4uby1mbGFnLS1yZXZlcnNlID4gLm8tZmxhZ19faW1nLFxuLm8tZmxhZy0tcmV2ZXJzZSA+IC5vLWZsYWdfX2JvZHkge1xuICBkaXJlY3Rpb246IGx0cjsgLyogWzJdICovXG59XG4uby1mbGFnLS1yZXZlcnNlID4gLm8tZmxhZ19faW1nIHtcbiAgcGFkZGluZy1yaWdodDogMDsgLyogWzNdICovXG4gIHBhZGRpbmctbGVmdDogMjRweDsgLyogWzNdICovXG59XG5cbi8qIEFsaWdubWVudCB2YXJpYW50c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogVmVydGljYWxseSBhbGlnbiB0aGUgaW1hZ2UtIGFuZCBib2R5LWNvbnRlbnQgZGlmZmVyZW50bHkuIERlZmF1bHRzIHRvIG1pZGRsZS5cbiAqL1xuLm8tZmxhZy0tdG9wID4gLm8tZmxhZ19faW1nLFxuLm8tZmxhZy0tdG9wID4gLm8tZmxhZ19fYm9keSB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5vLWZsYWctLWJvdHRvbSA+IC5vLWZsYWdfX2ltZyxcbi5vLWZsYWctLWJvdHRvbSA+IC5vLWZsYWdfX2JvZHkge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI0xJU1QtQkFSRVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogU3RyaXAgbGlzdC1saWtlIGFwcGVhcmFuY2UgZnJvbSBsaXN0cyBieSByZW1vdmluZyB0aGVpciBidWxsZXRzIGFuZCBhbnlcbiAqIGluZGVudGF0aW9uLlxuICpcbiAqIE5vdGU6IERlY2xhcmluZyB0aGUgaXRlbSBjbGFzcyBtaWdodCBub3QgYmUgbmVjZXNzYXJ5IGV2ZXJ5d2hlcmUsXG4gKiBidXQgaXMgZm9yIGV4YW1wbGUgaW4gPGRsPiBsaXN0cyBmb3IgdGhlIDxkZD4gY2hpbGRyZW4uXG4gKi9cbi5vLWxpc3QtYmFyZSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uby1saXN0LWJhcmVfX2l0ZW0ge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNMSVNULUlOTElORVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogVGhlIGxpc3QtaW5saW5lIG9iamVjdCBzaW1wbHkgZGlzcGxheXMgYSBsaXN0IG9mIGl0ZW1zIGluIG9uZSBsaW5lLlxuICovXG4uby1saXN0LWlubGluZSB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uby1saXN0LWlubGluZV9faXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNCT1hcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFRoZSBib3ggb2JqZWN0IHNpbXBseSBib3hlcyBvZmYgY29udGVudC4gRXh0ZW5kIHdpdGggY29zbWV0aWMgc3R5bGVzIGluIHRoZVxuICogQ29tcG9uZW50cyBsYXllci5cbiAqXG4gKiAxLiBTbyB3ZSBjYW4gYXBwbHkgdGhlIGAuby1ib3hgIGNsYXNzIHRvIG5hdHVyYWxseS1pbmxpbmUgZWxlbWVudHMuXG4gKi9cbi5vLWJveCB7XG4gIGRpc3BsYXk6IGJsb2NrOyAvKiBbMV0gKi9cbiAgcGFkZGluZzogMjRweDtcbn1cbi5vLWJveDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCIgIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgY2xlYXI6IGJvdGggIWltcG9ydGFudDtcbn1cbi5vLWJveCA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyogU2l6ZSB2YXJpYW50c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5vLWJveC0tZmx1c2gge1xuICBwYWRkaW5nOiAwO1xufVxuXG4uby1ib3gtLXRpbnkge1xuICBwYWRkaW5nOiA2cHg7XG59XG5cbi5vLWJveC0tc21hbGwge1xuICBwYWRkaW5nOiAxMnB4O1xufVxuXG4uby1ib3gtLWxhcmdlIHtcbiAgcGFkZGluZzogNDhweDtcbn1cblxuLm8tYm94LS1odWdlIHtcbiAgcGFkZGluZzogOTZweDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNCTE9DS1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogU3RhY2tlZCBpbWFnZS13aXRoLXRleHQgb2JqZWN0LiBBIHNpbXBsZSBhYnN0cmFjdGlvbiB0byBjb3ZlciBhIHZlcnkgY29tbW9ubHlcbiAqIG9jY3VycmluZyBkZXNpZ24gcGF0dGVybi5cbiAqL1xuLm8tYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uby1ibG9ja19faW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgLyogU2l6ZSB2YXJpYW50c1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG59XG4uby1ibG9jay0tZmx1c2ggPiAuby1ibG9ja19faW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5vLWJsb2NrLS10aW55ID4gLm8tYmxvY2tfX2ltZyB7XG4gIG1hcmdpbi1ib3R0b206IDZweDtcbn1cbi5vLWJsb2NrLS1zbWFsbCA+IC5vLWJsb2NrX19pbWcge1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuLm8tYmxvY2stLWxhcmdlID4gLm8tYmxvY2tfX2ltZyB7XG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7XG59XG4uby1ibG9jay0taHVnZSA+IC5vLWJsb2NrX19pbWcge1xuICBtYXJnaW4tYm90dG9tOiA5NnB4O1xufVxuXG4uby1ibG9ja19fYm9keSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBBbGlnbm1lbnQgdmFyaWFudHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uby1ibG9jay0tcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm8tYmxvY2stLWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1JBVElPXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBDcmVhdGUgcmF0aW8tYm91bmQgY29udGVudCBibG9ja3MsIHRvIGtlZXAgbWVkaWEgKGUuZy4gaW1hZ2VzLCB2aWRlb3MpIGluXG4gKiB0aGVpciBjb3JyZWN0IGFzcGVjdCByYXRpb3MuXG4gKlxuICogaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvY3JlYXRpbmctaW50cmluc2ljLXJhdGlvcy1mb3ItdmlkZW9cbiAqXG4gKiAxLiBEZWZhdWx0IGlzIGEgMToxIHJhdGlvIChpLmUuIGEgcGVyZmVjdCBzcXVhcmUpLlxuICovXG4uby1yYXRpbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uby1yYXRpbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAxMDAlOyAvKiBbMV0gKi9cbn1cblxuLm8tcmF0aW9fX2NvbnRlbnQsXG4uby1yYXRpbyA+IGlmcmFtZSxcbi5vLXJhdGlvID4gZW1iZWQsXG4uby1yYXRpbyA+IG9iamVjdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8qIFJhdGlvIHZhcmlhbnRzLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogR2VuZXJhdGUgYSBzZXJpZXMgb2YgcmF0aW8gY2xhc3NlcyB0byBiZSB1c2VkIGxpa2Ugc286XG4gKlxuICogICA8ZGl2IGNsYXNzPVwiby1yYXRpbyAgby1yYXRpby0tZ29sZGVuLXJhdGlvXCI+XG4gKlxuICovXG4uby1yYXRpby0tMlxcOjE6YmVmb3JlIHtcbiAgcGFkZGluZy1ib3R0b206IDUwJTtcbn1cblxuLm8tcmF0aW8tLTRcXDozOmJlZm9yZSB7XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG59XG5cbi5vLXJhdGlvLS0xNlxcOjk6YmVmb3JlIHtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbn1cblxuLyogQ29udGFpbiBtb2RpZmllci5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIE9ubHkgd29ya3Mgd2l0aCBpbWFnZSBjb250ZW50LlxuICogQ29udGFpbnMgdGhlIGltYWdlIHRvIHRoZSBib3VuZGFyaWVzLCB3aXRob3V0IGNyb3BwaW5nIG9yIHN0cmV0Y2hpbmcgaXQuXG4gKi9cbi5vLXJhdGlvLS1pbWctY29udGFpbiA+IC5vLXJhdGlvX19jb250ZW50OmJlZm9yZSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI0NST1BcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFByb3ZpZGUgYSBjcm9wcGluZyBjb250YWluZXIgaW4gb3JkZXIgdG8gZGlzcGxheSBtZWRpYSAodXN1YWxseSBpbWFnZXMpXG4gKiBjcm9wcGVkIHRvIGNlcnRhaW4gcmF0aW9zLlxuICpcbiAqIDEuIFNldCB1cCBhIHBvc2l0aW9uaW5nIGNvbnRleHQgaW4gd2hpY2ggdGhlIGltYWdlIGNhbiBzaXQuXG4gKiAyLiBUaGlzIGlzIHRoZSBjcnVjaWFsIHBhcnQ6IHdoZXJlIHRoZSBjcm9wcGluZyBoYXBwZW5zLlxuICovXG4uby1jcm9wIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBbMV0gKi9cbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47IC8qIFsyXSAqL1xufVxuXG4vKipcbiAqIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGhlIGNvbnRlbnQgKHVzdWFsbHkgYGltZ2ApIHRoYXQgbmVlZHMgY3JvcHBpbmcuXG4gKlxuICogMS4gSW1hZ2XigJlzIGRlZmF1bHQgcG9zaXRpb25pbmcgaXMgdG9wLWxlZnQgaW4gdGhlIGNyb3BwaW5nIGJveC5cbiAqIDIuIE1ha2Ugc3VyZSB0aGUgbWVkaWEgZG9lc27igJl0IHN0b3AgaXRzZWxmIHRvbyBzb29uLlxuICovXG4uby1jcm9wX19jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7IC8qIFsxXSAqL1xuICBsZWZ0OiAwOyAvKiBbMV0gKi9cbiAgbWF4LXdpZHRoOiBub25lOyAvKiBbMl0gKi9cbn1cblxuLyoqXG4gKiBXZSBjYW4gcG9zaXRpb24gdGhlIG1lZGlhIGluIGRpZmZlcmVudCBsb2NhdGlvbnMgd2l0aGluIHRoZSBjcm9wcGluZyBhcmVhLlxuICovXG4uby1jcm9wX19jb250ZW50LS1sZWZ0LXRvcCB7XG4gIGxlZnQ6IDA7XG59XG5cbi5vLWNyb3BfX2NvbnRlbnQtLWxlZnQtY2VudGVyIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLm8tY3JvcF9fY29udGVudC0tbGVmdC1ib3R0b20ge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMDtcbn1cblxuLm8tY3JvcF9fY29udGVudC0tcmlnaHQtdG9wIHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5vLWNyb3BfX2NvbnRlbnQtLXJpZ2h0LWNlbnRlciB7XG4gIHRvcDogNTAlO1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4uby1jcm9wX19jb250ZW50LS1yaWdodC1ib3R0b20ge1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5vLWNyb3BfX2NvbnRlbnQtLWNlbnRlci10b3Age1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLm8tY3JvcF9fY29udGVudC0tY2VudGVyLFxuLm8tY3JvcF9fY29udGVudC0tY2VudGVyLWNlbnRlciB7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4uby1jcm9wX19jb250ZW50LS1jZW50ZXItYm90dG9tIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vKiBDcm9wLXJhdGlvIHZhcmlhbnRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBHZW5lcmF0ZSBhIHNlcmllcyBvZiBjcm9wIGNsYXNzZXMgdG8gYmUgdXNlZCBsaWtlIHNvOlxuICpcbiAqICAgPGRpdiBjbGFzcz1cIm8tY3JvcCAgby1jcm9wLS1nb2xkZW4tcmF0aW9cIj5cbiAqXG4gKi9cbi5vLWNyb3AtLTJcXDoxIHtcbiAgcGFkZGluZy1ib3R0b206IDUwJTtcbn1cblxuLm8tY3JvcC0tNFxcOjMge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xufVxuXG4uby1jcm9wLS0xNlxcOjkge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuXG4vKiBGaWxsIG1vZGlmaWVyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBDb250ZW50IHN0cmV0Y2hlcyB0byBmaWxsIGl0J3MgY29udGFpbmVyIHdoaWxlIG1haW50YWluaW5nIGFzcGVjdC1yYXRpby5cbiAqL1xuLm8tY3JvcC0tZmlsbCA+IC5vLWNyb3BfX2NvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBtaW4td2lkdGg6IDEwMCU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjVEFCTEVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEEgc2ltcGxlIG9iamVjdCBmb3IgbWFuaXB1bGF0aW5nIHRoZSBzdHJ1Y3R1cmUgb2YgSFRNTCBgdGFibGVgcy5cbiAqL1xuLm8tdGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLyogRXF1YWwtd2lkdGggdGFibGUgY2VsbHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIGB0YWJsZS1sYXlvdXQ6IGZpeGVkYCBmb3JjZXMgYWxsIGNlbGxzIHdpdGhpbiBhIHRhYmxlIHRvIG9jY3VweSB0aGUgc2FtZVxuICogd2lkdGggYXMgZWFjaCBvdGhlci4gVGhpcyBhbHNvIGhhcyBwZXJmb3JtYW5jZSBiZW5lZml0czogYmVjYXVzZSB0aGUgYnJvd3NlclxuICogZG9lcyBub3QgbmVlZCB0byAocmUpY2FsY3VsYXRlIGNlbGwgZGltZW5zaW9ucyBiYXNlZCBvbiBjb250ZW50IGl0IGRpc2NvdmVycyxcbiAqIHRoZSB0YWJsZSBjYW4gYmUgcmVuZGVyZWQgdmVyeSBxdWlja2x5LiBGdXJ0aGVyIHJlYWRpbmc6XG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvdGFibGUtbGF5b3V0I1ZhbHVlc1xuICovXG4uby10YWJsZS0tZml4ZWQge1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuXG4vKiBTaXplIHZhcmlhbnRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm8tdGFibGUtLXRpbnkgdGgsXG4uby10YWJsZS0tdGlueSB0ZCB7XG4gIHBhZGRpbmc6IDZweDtcbn1cblxuLm8tdGFibGUtLXNtYWxsIHRoLFxuLm8tdGFibGUtLXNtYWxsIHRkIHtcbiAgcGFkZGluZzogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm8tdGFibGUtLWxhcmdlIHRoLFxuLm8tdGFibGUtLWxhcmdlIHRkIHtcbiAgcGFkZGluZzogNDhweDtcbn1cblxuLm8tdGFibGUtLWh1Z2UgdGgsXG4uby10YWJsZS0taHVnZSB0ZCB7XG4gIHBhZGRpbmc6IDk2cHg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjUEFDS1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogVGhlIHBhY2sgb2JqZWN0IHNpbXBseSBjYXVzZXMgYW55IG51bWJlciBvZiBlbGVtZW50cyBwYWNrIHVwIGhvcml6b250YWxseSB0b1xuICogYXV0b21hdGljYWxseSBmaWxsIGFuIGVxdWFsLCBmbHVpZCB3aWR0aCBvZiB0aGVpciBwYXJlbnQuXG4gKlxuICogMS4gRmlsbCBhbGwgYXZhaWxhYmxlIHNwYWNlLlxuICogMi4gUmVtb3ZlIGFueSBsZWZ0b3ZlciBzdHlsaW5nIGZyb20gbGlzdHMuXG4gKiAzLiBDYXVzZSBjaGlsZHJlbiB0byBiZSBhdXRvbWF0aWNhbGx5IGVxdWFsbHkgc2l6ZWQuXG4gKi9cbi5vLXBhY2sge1xuICB3aWR0aDogMTAwJTsgLyogWzFdICovXG4gIG1hcmdpbi1sZWZ0OiAwOyAvKiBbMl0gKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7IC8qIFszXSAqL1xufVxuXG4vKipcbiAqIDEuIENhdXNlIGNoaWxkcmVuIHRvIGFkb3B0IHRhYmxlLWxpa2Ugc3RydWN0dXJlLlxuICogMi4gRGVmYXVsdCBpdGVtIGFsaWdubWVudCBpcyB3aXRoIHRoZSB0b3BzIG9mIGVhY2ggb3RoZXIuXG4gKi9cbi5vLXBhY2tfX2l0ZW0ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsOyAvKiBbMV0gKi9cbiAgdmVydGljYWwtYWxpZ246IHRvcDsgLyogWzJdICovXG4gIC8qIFZlcnRpY2FsIGFsaWdubWVudCB2YXJpYW50c1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG59XG4uby1wYWNrLS1taWRkbGUgPiAuby1wYWNrX19pdGVtIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5vLXBhY2stLWJvdHRvbSA+IC5vLXBhY2tfX2l0ZW0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG4vKiBVbmVxdWFsLXdpZHRoIGl0ZW1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm8tcGFjay0tYXV0byB7XG4gIHRhYmxlLWxheW91dDogYXV0bztcbn1cblxuLyogU2l6ZSB2YXJpYW50c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5vLXBhY2stLXRpbnkge1xuICBib3JkZXItc3BhY2luZzogNnB4O1xufVxuXG4uby1wYWNrLS1zbWFsbCB7XG4gIGJvcmRlci1zcGFjaW5nOiAxMnB4O1xufVxuXG4uby1wYWNrLS1kZWZhdWx0IHtcbiAgYm9yZGVyLXNwYWNpbmc6IDI0cHg7XG59XG5cbi5vLXBhY2stLWxhcmdlIHtcbiAgYm9yZGVyLXNwYWNpbmc6IDQ4cHg7XG59XG5cbi5vLXBhY2stLWh1Z2Uge1xuICBib3JkZXItc3BhY2luZzogOTZweDtcbn1cblxuLyogUmV2ZXJzZWQgb3JkZXIgcGFja3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uby1wYWNrLS1yZXZlcnNlIHtcbiAgZGlyZWN0aW9uOiBydGw7XG59XG4uby1wYWNrLS1yZXZlcnNlID4gLm8tcGFja19faXRlbSB7XG4gIGRpcmVjdGlvbjogbHRyO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI0NMRUFSRklYXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBdHRhY2ggb3VyIGNsZWFyZml4IG1peGluIHRvIGEgdXRpbGl0eSBjbGFzcy5cbiAqL1xuLnUtY2xlYXJmaXg6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIGNsZWFyOiBib3RoICFpbXBvcnRhbnQ7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjV0lEVEhTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBpbnVpdGNzcyBnZW5lcmF0ZXMgYSBzZXJpZXMgb2YgdXRpbGl0eSBjbGFzc2VzIHRoYXQgZ2l2ZSBhIGZsdWlkIHdpZHRoIHRvXG4gKiB3aGljaGV2ZXIgZWxlbWVudCB0aGV54oCZcmUgYXBwbGllZCwgZS5nLjpcbiAqXG4gKiAgIDxpbWcgc3JjPVwiXCIgYWx0PVwiXCIgY2xhc3M9XCJ1LTEvMlwiIC8+XG4gKlxuICogVGhlc2UgY2xhc3NlcyBhcmUgbW9zdCBjb21tb25seSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggb3VyIGxheW91dCBzeXN0ZW0sXG4gKiBlLmcuOlxuICpcbiAqICAgPGRpdiBjbGFzcz1cIm8tbGF5b3V0X19pdGVtICB1LTEvMlwiPlxuICpcbiAqIEJ5IGRlZmF1bHQsIGludWl0Y3NzIHdpbGwgYWxzbyBnZW5lcmF0ZSByZXNwb25zaXZlIHZhcmlhbnRzIG9mIGVhY2ggb2YgdGhlc2VcbiAqIGNsYXNzZXMgYnkgdXNpbmcgeW91ciBTYXNzIE1RIGNvbmZpZ3VyYXRpb24sIGUuZy46XG4gKlxuICogICA8ZGl2IGNsYXNzPVwiby1sYXlvdXRfX2l0ZW0gIHUtMS8xICB1LTEvMkB0YWJsZXQgIHUtMS8zQGRlc2t0b3BcIj5cbiAqXG4gKiBPcHRpb25hbGx5LCBpbnVpdGNzcyBjYW4gZ2VuZXJhdGUgb2Zmc2V0IGNsYXNzZXMgd2hpY2ggY2FuIHB1c2ggYW5kIHB1bGxcbiAqIGVsZW1lbnRzIGxlZnQgYW5kIHJpZ2h0IGJ5IGEgc3BlY2lmaWVkIGFtb3VudCwgZS5nLjpcbiAqXG4gKiAgIDxkaXYgY2xhc3M9XCJvLWxheW91dF9faXRlbSAgdS0yLzMgIHUtcHVsbC0xLzNcIj5cbiAqXG4gKiBUaGlzIGlzIHVzZWZ1bCBmb3IgbWFraW5nIHZlcnkgZ3JhbnVsYXIgY2hhbmdlcyB0byB0aGUgcmVuZGVyZWQgb3JkZXIgb2ZcbiAqIGl0ZW1zIGluIGEgbGF5b3V0LlxuICpcbiAqIE4uQi4gVGhpcyBvcHRpb24gaXMgdHVybmVkIG9mZiBieSBkZWZhdWx0LlxuICovXG4vKipcbiAqIEEgc2VyaWVzIG9mIHdpZHRoIGhlbHBlciBjbGFzc2VzIHRoYXQgeW91IGNhbiB1c2UgdG8gc2l6ZSB0aGluZ3MgbGlrZSBncmlkXG4gKiBzeXN0ZW1zLiBDbGFzc2VzIHRha2UgYSBmcmFjdGlvbi1saWtlIGZvcm1hdCAoZS5nLiBgLnUtMi8zYCkuIFVzZSB0aGVzZSBpblxuICogeW91ciBtYXJrdXA6XG4gKlxuICogPGRpdiBjbGFzcz1cInUtNy8xMlwiPlxuICpcbiAqIFRoZSBmb2xsb3dpbmcgd2lsbCBnZW5lcmF0ZSB3aWR0aHMgaGVscGVyIGNsYXNzZXMgYmFzZWQgb24gdGhlIGZyYWN0aW9uc1xuICogZGVmaW5lZCBpbiB0aGUgYCRpbnVpdC1mcmFjdGlvbnNgIGxpc3QuXG4gKi9cbi51LTFcXC8xIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLnUtMVxcLzIge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi51LTJcXC8yIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLnUtMVxcLzMge1xuICB3aWR0aDogMzMuMzMzMzMzMzMzMyUgIWltcG9ydGFudDtcbn1cblxuLnUtMlxcLzMge1xuICB3aWR0aDogNjYuNjY2NjY2NjY2NyUgIWltcG9ydGFudDtcbn1cblxuLnUtM1xcLzMge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4udS0xXFwvNCB7XG4gIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbn1cblxuLnUtMlxcLzQge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi51LTNcXC80IHtcbiAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xufVxuXG4udS00XFwvNCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi51LTFcXC81IHtcbiAgd2lkdGg6IDIwJSAhaW1wb3J0YW50O1xufVxuXG4udS0yXFwvNSB7XG4gIHdpZHRoOiA0MCUgIWltcG9ydGFudDtcbn1cblxuLnUtM1xcLzUge1xuICB3aWR0aDogNjAlICFpbXBvcnRhbnQ7XG59XG5cbi51LTRcXC81IHtcbiAgd2lkdGg6IDgwJSAhaW1wb3J0YW50O1xufVxuXG4udS01XFwvNSB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi8qKlxuICogSWYgd2XigJlyZSB1c2luZyBTYXNzLU1RLCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGdyaWQgc3lzdGVtKHMpIGZvciBlYWNoIG9mIG91clxuICogZGVmaW5lZCBicmVha3BvaW50cywgYW5kIGdpdmUgdGhlbSBhIFJlc3BvbnNpdmUgU3VmZml4LCBlLmcuOlxuICpcbiAqIDxkaXYgY2xhc3M9XCJ1LTMvMTJAbW9iaWxlXCI+XG4gKi9cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LTFcXC8xXFxAbW9iaWxlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTFcXC8yXFxAbW9iaWxlIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtMlxcLzJcXEBtb2JpbGUge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtMVxcLzNcXEBtb2JpbGUge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTJcXC8zXFxAbW9iaWxlIHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjY2NyUgIWltcG9ydGFudDtcbiAgfVxuICAudS0zXFwvM1xcQG1vYmlsZSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudS0xXFwvNFxcQG1vYmlsZSB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTJcXC80XFxAbW9iaWxlIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtM1xcLzRcXEBtb2JpbGUge1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgfVxuICAudS00XFwvNFxcQG1vYmlsZSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudS0xXFwvNVxcQG1vYmlsZSB7XG4gICAgd2lkdGg6IDIwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTJcXC81XFxAbW9iaWxlIHtcbiAgICB3aWR0aDogNDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtM1xcLzVcXEBtb2JpbGUge1xuICAgIHdpZHRoOiA2MCUgIWltcG9ydGFudDtcbiAgfVxuICAudS00XFwvNVxcQG1vYmlsZSB7XG4gICAgd2lkdGg6IDgwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTVcXC81XFxAbW9iaWxlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS0xXFwvMVxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudS0xXFwvMlxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTJcXC8yXFxAdGFibGV0IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTFcXC8zXFxAdGFibGV0IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudS0yXFwvM1xcQHRhYmxldCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtM1xcLzNcXEB0YWJsZXQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtMVxcLzRcXEB0YWJsZXQge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudS0yXFwvNFxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTNcXC80XFxAdGFibGV0IHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtNFxcLzRcXEB0YWJsZXQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtMVxcLzVcXEB0YWJsZXQge1xuICAgIHdpZHRoOiAyMCUgIWltcG9ydGFudDtcbiAgfVxuICAudS0yXFwvNVxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDQwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTNcXC81XFxAdGFibGV0IHtcbiAgICB3aWR0aDogNjAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtNFxcLzVcXEB0YWJsZXQge1xuICAgIHdpZHRoOiA4MCUgIWltcG9ydGFudDtcbiAgfVxuICAudS01XFwvNVxcQHRhYmxldCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtMVxcLzFcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTFcXC8yXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTJcXC8yXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudS0xXFwvM1xcQGRlc2t0b3Age1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTJcXC8zXFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtM1xcLzNcXEBkZXNrdG9wIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTFcXC80XFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTJcXC80XFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTNcXC80XFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTRcXC80XFxAZGVza3RvcCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudS0xXFwvNVxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiAyMCUgIWltcG9ydGFudDtcbiAgfVxuICAudS0yXFwvNVxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiA0MCUgIWltcG9ydGFudDtcbiAgfVxuICAudS0zXFwvNVxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiA2MCUgIWltcG9ydGFudDtcbiAgfVxuICAudS00XFwvNVxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiA4MCUgIWltcG9ydGFudDtcbiAgfVxuICAudS01XFwvNVxcQGRlc2t0b3Age1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LTFcXC8xXFxAd2lkZSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudS0xXFwvMlxcQHdpZGUge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudS0yXFwvMlxcQHdpZGUge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtMVxcLzNcXEB3aWRlIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudS0yXFwvM1xcQHdpZGUge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JSAhaW1wb3J0YW50O1xuICB9XG4gIC51LTNcXC8zXFxAd2lkZSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudS0xXFwvNFxcQHdpZGUge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudS0yXFwvNFxcQHdpZGUge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudS0zXFwvNFxcQHdpZGUge1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgfVxuICAudS00XFwvNFxcQHdpZGUge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtMVxcLzVcXEB3aWRlIHtcbiAgICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtMlxcLzVcXEB3aWRlIHtcbiAgICB3aWR0aDogNDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtM1xcLzVcXEB3aWRlIHtcbiAgICB3aWR0aDogNjAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtNFxcLzVcXEB3aWRlIHtcbiAgICB3aWR0aDogODAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtNVxcLzVcXEB3aWRlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI0hFQURJTkdTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZWRlZmluZSBhbGwgb2Ygb3VyIGJhc2ljIGhlYWRpbmcgc3R5bGVzIGFnYWluc3QgdXRpbGl0eSBjbGFzc2VzIHNvIGFzIHRvXG4gKiBhbGxvdyBmb3IgZG91YmxlIHN0cmFuZGVkIGhlYWRpbmcgaGllcmFyY2h5LCBlLmcuIHdlIHNlbWFudGljYWxseSBuZWVkIGFuIEgyLFxuICogYnV0IHdlIHdhbnQgaXQgdG8gYmUgc2l6ZWQgbGlrZSBhbiBIMTpcbiAqXG4gKiAgIDxoMiBjbGFzcz1cInUtaDFcIj48L2gyPlxuICpcbiAqL1xuLnUtaDEge1xuICBmb250LXNpemU6IDM2cHggIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAyLjI1cmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjE2NjY2NjY2NjcgIWltcG9ydGFudDtcbn1cblxuLnUtaDIge1xuICBmb250LXNpemU6IDI4cHggIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjc1cmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjI4NTcxNDI4NTcgIWltcG9ydGFudDtcbn1cblxuLnUtaDMge1xuICBmb250LXNpemU6IDI0cHggIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuMjUgIWltcG9ydGFudDtcbn1cblxuLnUtaDQge1xuICBmb250LXNpemU6IDIwcHggIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjI1cmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjUgIWltcG9ydGFudDtcbn1cblxuLnUtaDUge1xuICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjEyNXJlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzMzMzMzICFpbXBvcnRhbnQ7XG59XG5cbi51LWg2IHtcbiAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS41ICFpbXBvcnRhbnQ7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjU1BBQ0lOR1NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFV0aWxpdHkgY2xhc3NlcyB0byBwdXQgc3BlY2lmaWMgc3BhY2luZyB2YWx1ZXMgb250byBlbGVtZW50cy4gVGhlIGJlbG93IGxvb3BcbiAqIHdpbGwgZ2VuZXJhdGUgdXMgYSBzdWl0ZSBvZiBjbGFzc2VzIGxpa2U6XG4gKlxuICogICAudS1tYXJnaW4tdG9wIHt9XG4gKiAgIC51LXBhZGRpbmctbGVmdC1sYXJnZSB7fVxuICogICAudS1tYXJnaW4tcmlnaHQtc21hbGwge31cbiAqICAgLnUtcGFkZGluZyB7fVxuICogICAudS1wYWRkaW5nLXJpZ2h0LW5vbmUge31cbiAqICAgLnUtcGFkZGluZy1ob3Jpem9udGFsIHt9XG4gKiAgIC51LXBhZGRpbmctdmVydGljYWwtc21hbGwge31cbiAqL1xuLnUtcGFkZGluZyB7XG4gIHBhZGRpbmc6IDI0cHggIWltcG9ydGFudDtcbn1cblxuLnUtcGFkZGluZy10aW55IHtcbiAgcGFkZGluZzogNnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctc21hbGwge1xuICBwYWRkaW5nOiAxMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctbGFyZ2Uge1xuICBwYWRkaW5nOiA0OHB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctaHVnZSB7XG4gIHBhZGRpbmc6IDk2cHggIWltcG9ydGFudDtcbn1cblxuLnUtcGFkZGluZy1ub25lIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4udS1wYWRkaW5nLXRvcCB7XG4gIHBhZGRpbmctdG9wOiAyNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctdG9wLXRpbnkge1xuICBwYWRkaW5nLXRvcDogNnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctdG9wLXNtYWxsIHtcbiAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDtcbn1cblxuLnUtcGFkZGluZy10b3AtbGFyZ2Uge1xuICBwYWRkaW5nLXRvcDogNDhweCAhaW1wb3J0YW50O1xufVxuXG4udS1wYWRkaW5nLXRvcC1odWdlIHtcbiAgcGFkZGluZy10b3A6IDk2cHggIWltcG9ydGFudDtcbn1cblxuLnUtcGFkZGluZy10b3Atbm9uZSB7XG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctcmlnaHQge1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctcmlnaHQtdGlueSB7XG4gIHBhZGRpbmctcmlnaHQ6IDZweCAhaW1wb3J0YW50O1xufVxuXG4udS1wYWRkaW5nLXJpZ2h0LXNtYWxsIHtcbiAgcGFkZGluZy1yaWdodDogMTJweCAhaW1wb3J0YW50O1xufVxuXG4udS1wYWRkaW5nLXJpZ2h0LWxhcmdlIHtcbiAgcGFkZGluZy1yaWdodDogNDhweCAhaW1wb3J0YW50O1xufVxuXG4udS1wYWRkaW5nLXJpZ2h0LWh1Z2Uge1xuICBwYWRkaW5nLXJpZ2h0OiA5NnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctcmlnaHQtbm9uZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLnUtcGFkZGluZy1ib3R0b20ge1xuICBwYWRkaW5nLWJvdHRvbTogMjRweCAhaW1wb3J0YW50O1xufVxuXG4udS1wYWRkaW5nLWJvdHRvbS10aW55IHtcbiAgcGFkZGluZy1ib3R0b206IDZweCAhaW1wb3J0YW50O1xufVxuXG4udS1wYWRkaW5nLWJvdHRvbS1zbWFsbCB7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctYm90dG9tLWxhcmdlIHtcbiAgcGFkZGluZy1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbn1cblxuLnUtcGFkZGluZy1ib3R0b20taHVnZSB7XG4gIHBhZGRpbmctYm90dG9tOiA5NnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctYm90dG9tLW5vbmUge1xuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4udS1wYWRkaW5nLWxlZnQge1xuICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDtcbn1cblxuLnUtcGFkZGluZy1sZWZ0LXRpbnkge1xuICBwYWRkaW5nLWxlZnQ6IDZweCAhaW1wb3J0YW50O1xufVxuXG4udS1wYWRkaW5nLWxlZnQtc21hbGwge1xuICBwYWRkaW5nLWxlZnQ6IDEycHggIWltcG9ydGFudDtcbn1cblxuLnUtcGFkZGluZy1sZWZ0LWxhcmdlIHtcbiAgcGFkZGluZy1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctbGVmdC1odWdlIHtcbiAgcGFkZGluZy1sZWZ0OiA5NnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctbGVmdC1ub25lIHtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctaG9yaXpvbnRhbCB7XG4gIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctaG9yaXpvbnRhbC10aW55IHtcbiAgcGFkZGluZy1sZWZ0OiA2cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogNnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctaG9yaXpvbnRhbC1zbWFsbCB7XG4gIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctaG9yaXpvbnRhbC1sYXJnZSB7XG4gIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctaG9yaXpvbnRhbC1odWdlIHtcbiAgcGFkZGluZy1sZWZ0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDk2cHggIWltcG9ydGFudDtcbn1cblxuLnUtcGFkZGluZy1ob3Jpem9udGFsLW5vbmUge1xuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4udS1wYWRkaW5nLXZlcnRpY2FsIHtcbiAgcGFkZGluZy10b3A6IDI0cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbn1cblxuLnUtcGFkZGluZy12ZXJ0aWNhbC10aW55IHtcbiAgcGFkZGluZy10b3A6IDZweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LXBhZGRpbmctdmVydGljYWwtc21hbGwge1xuICBwYWRkaW5nLXRvcDogMTJweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMTJweCAhaW1wb3J0YW50O1xufVxuXG4udS1wYWRkaW5nLXZlcnRpY2FsLWxhcmdlIHtcbiAgcGFkZGluZy10b3A6IDQ4cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbn1cblxuLnUtcGFkZGluZy12ZXJ0aWNhbC1odWdlIHtcbiAgcGFkZGluZy10b3A6IDk2cHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDk2cHggIWltcG9ydGFudDtcbn1cblxuLnUtcGFkZGluZy12ZXJ0aWNhbC1ub25lIHtcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luIHtcbiAgbWFyZ2luOiAyNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi10aW55IHtcbiAgbWFyZ2luOiA2cHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLXNtYWxsIHtcbiAgbWFyZ2luOiAxMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi1sYXJnZSB7XG4gIG1hcmdpbjogNDhweCAhaW1wb3J0YW50O1xufVxuXG4udS1tYXJnaW4taHVnZSB7XG4gIG1hcmdpbjogOTZweCAhaW1wb3J0YW50O1xufVxuXG4udS1tYXJnaW4tbm9uZSB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuXG4udS1tYXJnaW4tdG9wIHtcbiAgbWFyZ2luLXRvcDogMjRweCAhaW1wb3J0YW50O1xufVxuXG4udS1tYXJnaW4tdG9wLXRpbnkge1xuICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLXRvcC1zbWFsbCB7XG4gIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLXRvcC1sYXJnZSB7XG4gIG1hcmdpbi10b3A6IDQ4cHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLXRvcC1odWdlIHtcbiAgbWFyZ2luLXRvcDogOTZweCAhaW1wb3J0YW50O1xufVxuXG4udS1tYXJnaW4tdG9wLW5vbmUge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50O1xufVxuXG4udS1tYXJnaW4tcmlnaHQtdGlueSB7XG4gIG1hcmdpbi1yaWdodDogNnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi1yaWdodC1zbWFsbCB7XG4gIG1hcmdpbi1yaWdodDogMTJweCAhaW1wb3J0YW50O1xufVxuXG4udS1tYXJnaW4tcmlnaHQtbGFyZ2Uge1xuICBtYXJnaW4tcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLXJpZ2h0LWh1Z2Uge1xuICBtYXJnaW4tcmlnaHQ6IDk2cHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLXJpZ2h0LW5vbmUge1xuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLWJvdHRvbS10aW55IHtcbiAgbWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi1ib3R0b20tc21hbGwge1xuICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi1ib3R0b20tbGFyZ2Uge1xuICBtYXJnaW4tYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi1ib3R0b20taHVnZSB7XG4gIG1hcmdpbi1ib3R0b206IDk2cHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLWJvdHRvbS1ub25lIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4udS1tYXJnaW4tbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi1sZWZ0LXRpbnkge1xuICBtYXJnaW4tbGVmdDogNnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi1sZWZ0LXNtYWxsIHtcbiAgbWFyZ2luLWxlZnQ6IDEycHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLWxlZnQtbGFyZ2Uge1xuICBtYXJnaW4tbGVmdDogNDhweCAhaW1wb3J0YW50O1xufVxuXG4udS1tYXJnaW4tbGVmdC1odWdlIHtcbiAgbWFyZ2luLWxlZnQ6IDk2cHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLWxlZnQtbm9uZSB7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi1ob3Jpem9udGFsIHtcbiAgbWFyZ2luLWxlZnQ6IDI0cHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi1ob3Jpem9udGFsLXRpbnkge1xuICBtYXJnaW4tbGVmdDogNnB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogNnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi1ob3Jpem9udGFsLXNtYWxsIHtcbiAgbWFyZ2luLWxlZnQ6IDEycHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi1ob3Jpem9udGFsLWxhcmdlIHtcbiAgbWFyZ2luLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi1ob3Jpem9udGFsLWh1Z2Uge1xuICBtYXJnaW4tbGVmdDogOTZweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDk2cHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLWhvcml6b250YWwtbm9uZSB7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4udS1tYXJnaW4tdmVydGljYWwge1xuICBtYXJnaW4tdG9wOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDI0cHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLXZlcnRpY2FsLXRpbnkge1xuICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG59XG5cbi51LW1hcmdpbi12ZXJ0aWNhbC1zbWFsbCB7XG4gIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMTJweCAhaW1wb3J0YW50O1xufVxuXG4udS1tYXJnaW4tdmVydGljYWwtbGFyZ2Uge1xuICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLXZlcnRpY2FsLWh1Z2Uge1xuICBtYXJnaW4tdG9wOiA5NnB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDk2cHggIWltcG9ydGFudDtcbn1cblxuLnUtbWFyZ2luLXZlcnRpY2FsLW5vbmUge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICNSRVNQT05TSVZFLVNQQUNJTkdTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBVdGlsaXR5IGNsYXNzZXMgZW5oYW5jaW5nIHRoZSBub3JtYWwgc3BhY2luZyBjbGFzc2VzIGJ5IGFkZGluZyByZXNwb25zaXZlbmVzc1xuICogdG8gdGhlbS4gQnkgZGVmYXVsdCwgdGhlcmUgYXJlIG5vdCByZXNwb25zaXZlIHNwYWNpbmdzIGRlZmluZWQuIFlvdSBjYW5cbiAqIGdlbmVyYXRlIHJlc3BvbnNpdmUgc3BhY2luZ3MgYnkgYWRkaW5nIGVudHJpZXMgdG8gdGhlIGZvbGxvd2luZyB0aHJlZSBTYXNzXG4gKiBtYXBzLCBlLmcuOlxuICpcbiAqICAgJGludWl0LXJlc3BvbnNpdmUtc3BhY2luZy1kaXJlY3Rpb25zOiAoXG4gKiAgICAgbnVsbDogbnVsbCxcbiAqICAgICBcIi1ib3R0b21cIjogXCItYm90dG9tXCIsXG4gKiAgICk7XG4gKlxuICogICAkaW51aXQtcmVzcG9uc2l2ZS1zcGFjaW5nLXByb3BlcnRpZXM6IChcbiAqICAgICBcIm1hcmdpblwiOiBcIm1hcmdpblwiLFxuICogICApO1xuICpcbiAqICAgJGludWl0LXJlc3BvbnNpdmUtc3BhY2luZy1zaXplczogKFxuICogICAgIFwiLXNtYWxsXCI6ICRpbnVpdC1nbG9iYWwtc3BhY2luZy11bml0LXNtYWxsLFxuICogICApO1xuICpcbiAqIFRoaXMgd291bGQgYnJpbmcgdXMgdGhlIGZvbGxvd2luZyBjbGFzc2VzOlxuICpcbiAqICAgLnUtbWFyZ2luLXNtYWxsQG1vYmlsZSB7fVxuICogICAudS1tYXJnaW4tc21hbGxAdGFibGV0IHt9XG4gKiAgIC51LW1hcmdpbi1zbWFsbEBkZXNrdG9wIHt9XG4gKiAgIC51LW1hcmdpbi1zbWFsbEB3aWRlIHt9XG4gKiAgIC51LW1hcmdpbi1ib3R0b20tc21hbGxAbW9iaWxlIHt9XG4gKiAgIC51LW1hcmdpbi1ib3R0b20tc21hbGxAdGFibGV0IHt9XG4gKiAgIC51LW1hcmdpbi1ib3R0b20tc21hbGxAZGVza3RvcCB7fVxuICogICAudS1tYXJnaW4tYm90dG9tLXNtYWxsQHdpZGUge31cbiAqXG4gKiBZb3UgY2FuIGNoYW5nZSB0aGUgZ2VuZXJhdGVkIENTUyBjbGFzc2VzIGJ5IGZ1cnRoZXIgZXh0ZW5kaW5nIHRoZSBTYXNzIG1hcHMuXG4gKiBJZiB5b3Ugd2FudCBldmVyeSDigJhub3JtYWzigJkgc3BhY2luZyAodGhvc2UgZnJvbSBgdXRpbGl0aWVzLnNwYWNpbmdzYCkgYWxzbyBhc1xuICogYSByZXNwb25zaXZlIHZlcnNpb24sIHlvdSBjYW4ganVzdCBtaXJyb3IgdGhlIOKAmG5vcm1hbOKAmSBzcGFjaW5nczpcbiAqXG4gKiAgICRpbnVpdC1yZXNwb25zaXZlLXNwYWNpbmctZGlyZWN0aW9uczogJGludWl0LXNwYWNpbmctZGlyZWN0aW9ucyAhZGVmYXVsdDtcbiAqXG4gKiAgICRpbnVpdC1yZXNwb25zaXZlLXNwYWNpbmctcHJvcGVydGllczogJGludWl0LXNwYWNpbmctcHJvcGVydGllcyAhZGVmYXVsdDtcbiAqXG4gKiAgICRpbnVpdC1yZXNwb25zaXZlLXNwYWNpbmctc2l6ZXM6ICRpbnVpdC1zcGFjaW5nLXNpemVzICFkZWZhdWx0O1xuICpcbiAqIEJVVCBCRSBBV0FSRTogVGhpcyBjYW4gZ2VuZXJhdGUgYSBodWdlIGNodW5rIG9mIGV4dHJhIENTUywgZGVwZW5kaW5nIG9uIHRoZVxuICogYW1vdW50IG9mIGJyZWFrcG9pbnRzIHlvdSBkZWZpbmVkLiBTbyBwbGVhc2UgY2hlY2sgeW91ciBDU1PigJkgb3V0cHV0IGFuZFxuICogZmlsZXNpemUhXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1heC1uZXN0aW5nLWRlcHRoICovXG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1wYWRkaW5nLXRpbnlcXEBtb2JpbGUge1xuICAgIHBhZGRpbmc6IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1wYWRkaW5nLXRpbnlcXEB0YWJsZXQge1xuICAgIHBhZGRpbmc6IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLXRpbnlcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nOiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy10aW55XFxAd2lkZSB7XG4gICAgcGFkZGluZzogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LXBhZGRpbmctc21hbGxcXEBtb2JpbGUge1xuICAgIHBhZGRpbmc6IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1zbWFsbFxcQHRhYmxldCB7XG4gICAgcGFkZGluZzogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLXNtYWxsXFxAZGVza3RvcCB7XG4gICAgcGFkZGluZzogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1wYWRkaW5nLXNtYWxsXFxAd2lkZSB7XG4gICAgcGFkZGluZzogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1wYWRkaW5nLWxhcmdlXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LXBhZGRpbmctbGFyZ2VcXEB0YWJsZXQge1xuICAgIHBhZGRpbmc6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1sYXJnZVxcQGRlc2t0b3Age1xuICAgIHBhZGRpbmc6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1sYXJnZVxcQHdpZGUge1xuICAgIHBhZGRpbmc6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtcGFkZGluZy1odWdlXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nOiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LXBhZGRpbmctaHVnZVxcQHRhYmxldCB7XG4gICAgcGFkZGluZzogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLWh1Z2VcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nOiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctaHVnZVxcQHdpZGUge1xuICAgIHBhZGRpbmc6IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtcGFkZGluZy1ub25lXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LXBhZGRpbmctbm9uZVxcQHRhYmxldCB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLW5vbmVcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctbm9uZVxcQHdpZGUge1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtcGFkZGluZy10b3AtdGlueVxcQG1vYmlsZSB7XG4gICAgcGFkZGluZy10b3A6IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1wYWRkaW5nLXRvcC10aW55XFxAdGFibGV0IHtcbiAgICBwYWRkaW5nLXRvcDogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctdG9wLXRpbnlcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctdG9wLXRpbnlcXEB3aWRlIHtcbiAgICBwYWRkaW5nLXRvcDogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LXBhZGRpbmctdG9wLXNtYWxsXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nLXRvcDogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1wYWRkaW5nLXRvcC1zbWFsbFxcQHRhYmxldCB7XG4gICAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy10b3Atc21hbGxcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1wYWRkaW5nLXRvcC1zbWFsbFxcQHdpZGUge1xuICAgIHBhZGRpbmctdG9wOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LXBhZGRpbmctdG9wLWxhcmdlXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1wYWRkaW5nLXRvcC1sYXJnZVxcQHRhYmxldCB7XG4gICAgcGFkZGluZy10b3A6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy10b3AtbGFyZ2VcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1wYWRkaW5nLXRvcC1sYXJnZVxcQHdpZGUge1xuICAgIHBhZGRpbmctdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LXBhZGRpbmctdG9wLWh1Z2VcXEBtb2JpbGUge1xuICAgIHBhZGRpbmctdG9wOiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LXBhZGRpbmctdG9wLWh1Z2VcXEB0YWJsZXQge1xuICAgIHBhZGRpbmctdG9wOiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctdG9wLWh1Z2VcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1wYWRkaW5nLXRvcC1odWdlXFxAd2lkZSB7XG4gICAgcGFkZGluZy10b3A6IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtcGFkZGluZy10b3Atbm9uZVxcQG1vYmlsZSB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtcGFkZGluZy10b3Atbm9uZVxcQHRhYmxldCB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy10b3Atbm9uZVxcQGRlc2t0b3Age1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctdG9wLW5vbmVcXEB3aWRlIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1wYWRkaW5nLXJpZ2h0LXRpbnlcXEBtb2JpbGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1wYWRkaW5nLXJpZ2h0LXRpbnlcXEB0YWJsZXQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLXJpZ2h0LXRpbnlcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1yaWdodC10aW55XFxAd2lkZSB7XG4gICAgcGFkZGluZy1yaWdodDogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LXBhZGRpbmctcmlnaHQtc21hbGxcXEBtb2JpbGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1yaWdodC1zbWFsbFxcQHRhYmxldCB7XG4gICAgcGFkZGluZy1yaWdodDogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLXJpZ2h0LXNtYWxsXFxAZGVza3RvcCB7XG4gICAgcGFkZGluZy1yaWdodDogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1wYWRkaW5nLXJpZ2h0LXNtYWxsXFxAd2lkZSB7XG4gICAgcGFkZGluZy1yaWdodDogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1wYWRkaW5nLXJpZ2h0LWxhcmdlXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LXBhZGRpbmctcmlnaHQtbGFyZ2VcXEB0YWJsZXQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1yaWdodC1sYXJnZVxcQGRlc2t0b3Age1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1yaWdodC1sYXJnZVxcQHdpZGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtcGFkZGluZy1yaWdodC1odWdlXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LXBhZGRpbmctcmlnaHQtaHVnZVxcQHRhYmxldCB7XG4gICAgcGFkZGluZy1yaWdodDogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLXJpZ2h0LWh1Z2VcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctcmlnaHQtaHVnZVxcQHdpZGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtcGFkZGluZy1yaWdodC1ub25lXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LXBhZGRpbmctcmlnaHQtbm9uZVxcQHRhYmxldCB7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLXJpZ2h0LW5vbmVcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctcmlnaHQtbm9uZVxcQHdpZGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtcGFkZGluZy1ib3R0b20tdGlueVxcQG1vYmlsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1wYWRkaW5nLWJvdHRvbS10aW55XFxAdGFibGV0IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctYm90dG9tLXRpbnlcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctYm90dG9tLXRpbnlcXEB3aWRlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LXBhZGRpbmctYm90dG9tLXNtYWxsXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1wYWRkaW5nLWJvdHRvbS1zbWFsbFxcQHRhYmxldCB7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1ib3R0b20tc21hbGxcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1wYWRkaW5nLWJvdHRvbS1zbWFsbFxcQHdpZGUge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LXBhZGRpbmctYm90dG9tLWxhcmdlXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1wYWRkaW5nLWJvdHRvbS1sYXJnZVxcQHRhYmxldCB7XG4gICAgcGFkZGluZy1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1ib3R0b20tbGFyZ2VcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1wYWRkaW5nLWJvdHRvbS1sYXJnZVxcQHdpZGUge1xuICAgIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LXBhZGRpbmctYm90dG9tLWh1Z2VcXEBtb2JpbGUge1xuICAgIHBhZGRpbmctYm90dG9tOiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LXBhZGRpbmctYm90dG9tLWh1Z2VcXEB0YWJsZXQge1xuICAgIHBhZGRpbmctYm90dG9tOiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctYm90dG9tLWh1Z2VcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1wYWRkaW5nLWJvdHRvbS1odWdlXFxAd2lkZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtcGFkZGluZy1ib3R0b20tbm9uZVxcQG1vYmlsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1ib3R0b20tbm9uZVxcQHRhYmxldCB7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1ib3R0b20tbm9uZVxcQGRlc2t0b3Age1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctYm90dG9tLW5vbmVcXEB3aWRlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1wYWRkaW5nLWxlZnQtdGlueVxcQG1vYmlsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1sZWZ0LXRpbnlcXEB0YWJsZXQge1xuICAgIHBhZGRpbmctbGVmdDogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctbGVmdC10aW55XFxAZGVza3RvcCB7XG4gICAgcGFkZGluZy1sZWZ0OiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1sZWZ0LXRpbnlcXEB3aWRlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1wYWRkaW5nLWxlZnQtc21hbGxcXEBtb2JpbGUge1xuICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1wYWRkaW5nLWxlZnQtc21hbGxcXEB0YWJsZXQge1xuICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLWxlZnQtc21hbGxcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1sZWZ0LXNtYWxsXFxAd2lkZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LXBhZGRpbmctbGVmdC1sYXJnZVxcQG1vYmlsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LXBhZGRpbmctbGVmdC1sYXJnZVxcQHRhYmxldCB7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctbGVmdC1sYXJnZVxcQGRlc2t0b3Age1xuICAgIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1wYWRkaW5nLWxlZnQtbGFyZ2VcXEB3aWRlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtcGFkZGluZy1sZWZ0LWh1Z2VcXEBtb2JpbGUge1xuICAgIHBhZGRpbmctbGVmdDogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1wYWRkaW5nLWxlZnQtaHVnZVxcQHRhYmxldCB7XG4gICAgcGFkZGluZy1sZWZ0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctbGVmdC1odWdlXFxAZGVza3RvcCB7XG4gICAgcGFkZGluZy1sZWZ0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctbGVmdC1odWdlXFxAd2lkZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LXBhZGRpbmctbGVmdC1ub25lXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1sZWZ0LW5vbmVcXEB0YWJsZXQge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLWxlZnQtbm9uZVxcQGRlc2t0b3Age1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1wYWRkaW5nLWxlZnQtbm9uZVxcQHdpZGUge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1wYWRkaW5nLWhvcml6b250YWwtdGlueVxcQG1vYmlsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1ob3Jpem9udGFsLXRpbnlcXEB0YWJsZXQge1xuICAgIHBhZGRpbmctbGVmdDogNnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctaG9yaXpvbnRhbC10aW55XFxAZGVza3RvcCB7XG4gICAgcGFkZGluZy1sZWZ0OiA2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1ob3Jpem9udGFsLXRpbnlcXEB3aWRlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDZweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1wYWRkaW5nLWhvcml6b250YWwtc21hbGxcXEBtb2JpbGUge1xuICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1ob3Jpem9udGFsLXNtYWxsXFxAdGFibGV0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctaG9yaXpvbnRhbC1zbWFsbFxcQGRlc2t0b3Age1xuICAgIHBhZGRpbmctbGVmdDogMTJweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1ob3Jpem9udGFsLXNtYWxsXFxAd2lkZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1wYWRkaW5nLWhvcml6b250YWwtbGFyZ2VcXEBtb2JpbGUge1xuICAgIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1ob3Jpem9udGFsLWxhcmdlXFxAdGFibGV0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctaG9yaXpvbnRhbC1sYXJnZVxcQGRlc2t0b3Age1xuICAgIHBhZGRpbmctbGVmdDogNDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1ob3Jpem9udGFsLWxhcmdlXFxAd2lkZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1wYWRkaW5nLWhvcml6b250YWwtaHVnZVxcQG1vYmlsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1wYWRkaW5nLWhvcml6b250YWwtaHVnZVxcQHRhYmxldCB7XG4gICAgcGFkZGluZy1sZWZ0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLWhvcml6b250YWwtaHVnZVxcQGRlc2t0b3Age1xuICAgIHBhZGRpbmctbGVmdDogOTZweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy1ob3Jpem9udGFsLWh1Z2VcXEB3aWRlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDk2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LXBhZGRpbmctaG9yaXpvbnRhbC1ub25lXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LXBhZGRpbmctaG9yaXpvbnRhbC1ub25lXFxAdGFibGV0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctaG9yaXpvbnRhbC1ub25lXFxAZGVza3RvcCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1wYWRkaW5nLWhvcml6b250YWwtbm9uZVxcQHdpZGUge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtcGFkZGluZy12ZXJ0aWNhbC10aW55XFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nLXRvcDogNnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1wYWRkaW5nLXZlcnRpY2FsLXRpbnlcXEB0YWJsZXQge1xuICAgIHBhZGRpbmctdG9wOiA2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctdmVydGljYWwtdGlueVxcQGRlc2t0b3Age1xuICAgIHBhZGRpbmctdG9wOiA2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctdmVydGljYWwtdGlueVxcQHdpZGUge1xuICAgIHBhZGRpbmctdG9wOiA2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LXBhZGRpbmctdmVydGljYWwtc21hbGxcXEBtb2JpbGUge1xuICAgIHBhZGRpbmctdG9wOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtcGFkZGluZy12ZXJ0aWNhbC1zbWFsbFxcQHRhYmxldCB7XG4gICAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLXZlcnRpY2FsLXNtYWxsXFxAZGVza3RvcCB7XG4gICAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1wYWRkaW5nLXZlcnRpY2FsLXNtYWxsXFxAd2lkZSB7XG4gICAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1wYWRkaW5nLXZlcnRpY2FsLWxhcmdlXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LXBhZGRpbmctdmVydGljYWwtbGFyZ2VcXEB0YWJsZXQge1xuICAgIHBhZGRpbmctdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy12ZXJ0aWNhbC1sYXJnZVxcQGRlc2t0b3Age1xuICAgIHBhZGRpbmctdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtcGFkZGluZy12ZXJ0aWNhbC1sYXJnZVxcQHdpZGUge1xuICAgIHBhZGRpbmctdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtcGFkZGluZy12ZXJ0aWNhbC1odWdlXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nLXRvcDogOTZweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LXBhZGRpbmctdmVydGljYWwtaHVnZVxcQHRhYmxldCB7XG4gICAgcGFkZGluZy10b3A6IDk2cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLXZlcnRpY2FsLWh1Z2VcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogOTZweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctdmVydGljYWwtaHVnZVxcQHdpZGUge1xuICAgIHBhZGRpbmctdG9wOiA5NnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtcGFkZGluZy12ZXJ0aWNhbC1ub25lXFxAbW9iaWxlIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LXBhZGRpbmctdmVydGljYWwtbm9uZVxcQHRhYmxldCB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1wYWRkaW5nLXZlcnRpY2FsLW5vbmVcXEBkZXNrdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LXBhZGRpbmctdmVydGljYWwtbm9uZVxcQHdpZGUge1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtbWFyZ2luLXRpbnlcXEBtb2JpbGUge1xuICAgIG1hcmdpbjogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LW1hcmdpbi10aW55XFxAdGFibGV0IHtcbiAgICBtYXJnaW46IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1tYXJnaW4tdGlueVxcQGRlc2t0b3Age1xuICAgIG1hcmdpbjogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LW1hcmdpbi10aW55XFxAd2lkZSB7XG4gICAgbWFyZ2luOiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtbWFyZ2luLXNtYWxsXFxAbW9iaWxlIHtcbiAgICBtYXJnaW46IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXNtYWxsXFxAdGFibGV0IHtcbiAgICBtYXJnaW46IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXNtYWxsXFxAZGVza3RvcCB7XG4gICAgbWFyZ2luOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1zbWFsbFxcQHdpZGUge1xuICAgIG1hcmdpbjogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1tYXJnaW4tbGFyZ2VcXEBtb2JpbGUge1xuICAgIG1hcmdpbjogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1tYXJnaW4tbGFyZ2VcXEB0YWJsZXQge1xuICAgIG1hcmdpbjogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1tYXJnaW4tbGFyZ2VcXEBkZXNrdG9wIHtcbiAgICBtYXJnaW46IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWxhcmdlXFxAd2lkZSB7XG4gICAgbWFyZ2luOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LW1hcmdpbi1odWdlXFxAbW9iaWxlIHtcbiAgICBtYXJnaW46IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWh1Z2VcXEB0YWJsZXQge1xuICAgIG1hcmdpbjogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1tYXJnaW4taHVnZVxcQGRlc2t0b3Age1xuICAgIG1hcmdpbjogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1tYXJnaW4taHVnZVxcQHdpZGUge1xuICAgIG1hcmdpbjogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1tYXJnaW4tbm9uZVxcQG1vYmlsZSB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LW1hcmdpbi1ub25lXFxAdGFibGV0IHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLW5vbmVcXEBkZXNrdG9wIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLW5vbmVcXEB3aWRlIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtbWFyZ2luLXRvcC10aW55XFxAbW9iaWxlIHtcbiAgICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXRvcC10aW55XFxAdGFibGV0IHtcbiAgICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXRvcC10aW55XFxAZGVza3RvcCB7XG4gICAgbWFyZ2luLXRvcDogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LW1hcmdpbi10b3AtdGlueVxcQHdpZGUge1xuICAgIG1hcmdpbi10b3A6IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1tYXJnaW4tdG9wLXNtYWxsXFxAbW9iaWxlIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LW1hcmdpbi10b3Atc21hbGxcXEB0YWJsZXQge1xuICAgIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXRvcC1zbWFsbFxcQGRlc2t0b3Age1xuICAgIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXRvcC1zbWFsbFxcQHdpZGUge1xuICAgIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtbWFyZ2luLXRvcC1sYXJnZVxcQG1vYmlsZSB7XG4gICAgbWFyZ2luLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1tYXJnaW4tdG9wLWxhcmdlXFxAdGFibGV0IHtcbiAgICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LW1hcmdpbi10b3AtbGFyZ2VcXEBkZXNrdG9wIHtcbiAgICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LW1hcmdpbi10b3AtbGFyZ2VcXEB3aWRlIHtcbiAgICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LW1hcmdpbi10b3AtaHVnZVxcQG1vYmlsZSB7XG4gICAgbWFyZ2luLXRvcDogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1tYXJnaW4tdG9wLWh1Z2VcXEB0YWJsZXQge1xuICAgIG1hcmdpbi10b3A6IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXRvcC1odWdlXFxAZGVza3RvcCB7XG4gICAgbWFyZ2luLXRvcDogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1tYXJnaW4tdG9wLWh1Z2VcXEB3aWRlIHtcbiAgICBtYXJnaW4tdG9wOiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LW1hcmdpbi10b3Atbm9uZVxcQG1vYmlsZSB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1tYXJnaW4tdG9wLW5vbmVcXEB0YWJsZXQge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXRvcC1ub25lXFxAZGVza3RvcCB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1tYXJnaW4tdG9wLW5vbmVcXEB3aWRlIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LW1hcmdpbi1yaWdodC10aW55XFxAbW9iaWxlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1tYXJnaW4tcmlnaHQtdGlueVxcQHRhYmxldCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXJpZ2h0LXRpbnlcXEBkZXNrdG9wIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1tYXJnaW4tcmlnaHQtdGlueVxcQHdpZGUge1xuICAgIG1hcmdpbi1yaWdodDogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LW1hcmdpbi1yaWdodC1zbWFsbFxcQG1vYmlsZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LW1hcmdpbi1yaWdodC1zbWFsbFxcQHRhYmxldCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1yaWdodC1zbWFsbFxcQGRlc2t0b3Age1xuICAgIG1hcmdpbi1yaWdodDogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1tYXJnaW4tcmlnaHQtc21hbGxcXEB3aWRlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtbWFyZ2luLXJpZ2h0LWxhcmdlXFxAbW9iaWxlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXJpZ2h0LWxhcmdlXFxAdGFibGV0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXJpZ2h0LWxhcmdlXFxAZGVza3RvcCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1yaWdodC1sYXJnZVxcQHdpZGUge1xuICAgIG1hcmdpbi1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1tYXJnaW4tcmlnaHQtaHVnZVxcQG1vYmlsZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LW1hcmdpbi1yaWdodC1odWdlXFxAdGFibGV0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXJpZ2h0LWh1Z2VcXEBkZXNrdG9wIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXJpZ2h0LWh1Z2VcXEB3aWRlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtbWFyZ2luLXJpZ2h0LW5vbmVcXEBtb2JpbGUge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1tYXJnaW4tcmlnaHQtbm9uZVxcQHRhYmxldCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1yaWdodC1ub25lXFxAZGVza3RvcCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1yaWdodC1ub25lXFxAd2lkZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LW1hcmdpbi1ib3R0b20tdGlueVxcQG1vYmlsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LW1hcmdpbi1ib3R0b20tdGlueVxcQHRhYmxldCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1ib3R0b20tdGlueVxcQGRlc2t0b3Age1xuICAgIG1hcmdpbi1ib3R0b206IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1tYXJnaW4tYm90dG9tLXRpbnlcXEB3aWRlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtbWFyZ2luLWJvdHRvbS1zbWFsbFxcQG1vYmlsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1tYXJnaW4tYm90dG9tLXNtYWxsXFxAdGFibGV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1ib3R0b20tc21hbGxcXEBkZXNrdG9wIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1ib3R0b20tc21hbGxcXEB3aWRlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LW1hcmdpbi1ib3R0b20tbGFyZ2VcXEBtb2JpbGUge1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWJvdHRvbS1sYXJnZVxcQHRhYmxldCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1tYXJnaW4tYm90dG9tLWxhcmdlXFxAZGVza3RvcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1tYXJnaW4tYm90dG9tLWxhcmdlXFxAd2lkZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1tYXJnaW4tYm90dG9tLWh1Z2VcXEBtb2JpbGUge1xuICAgIG1hcmdpbi1ib3R0b206IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWJvdHRvbS1odWdlXFxAdGFibGV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1ib3R0b20taHVnZVxcQGRlc2t0b3Age1xuICAgIG1hcmdpbi1ib3R0b206IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWJvdHRvbS1odWdlXFxAd2lkZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1tYXJnaW4tYm90dG9tLW5vbmVcXEBtb2JpbGUge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWJvdHRvbS1ub25lXFxAdGFibGV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1ib3R0b20tbm9uZVxcQGRlc2t0b3Age1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWJvdHRvbS1ub25lXFxAd2lkZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1tYXJnaW4tbGVmdC10aW55XFxAbW9iaWxlIHtcbiAgICBtYXJnaW4tbGVmdDogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LW1hcmdpbi1sZWZ0LXRpbnlcXEB0YWJsZXQge1xuICAgIG1hcmdpbi1sZWZ0OiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWxlZnQtdGlueVxcQGRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWxlZnQtdGlueVxcQHdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtbWFyZ2luLWxlZnQtc21hbGxcXEBtb2JpbGUge1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LW1hcmdpbi1sZWZ0LXNtYWxsXFxAdGFibGV0IHtcbiAgICBtYXJnaW4tbGVmdDogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1tYXJnaW4tbGVmdC1zbWFsbFxcQGRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1sZWZ0LXNtYWxsXFxAd2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtbWFyZ2luLWxlZnQtbGFyZ2VcXEBtb2JpbGUge1xuICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LW1hcmdpbi1sZWZ0LWxhcmdlXFxAdGFibGV0IHtcbiAgICBtYXJnaW4tbGVmdDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1tYXJnaW4tbGVmdC1sYXJnZVxcQGRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1sZWZ0LWxhcmdlXFxAd2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtbWFyZ2luLWxlZnQtaHVnZVxcQG1vYmlsZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWxlZnQtaHVnZVxcQHRhYmxldCB7XG4gICAgbWFyZ2luLWxlZnQ6IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWxlZnQtaHVnZVxcQGRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1sZWZ0LWh1Z2VcXEB3aWRlIHtcbiAgICBtYXJnaW4tbGVmdDogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1tYXJnaW4tbGVmdC1ub25lXFxAbW9iaWxlIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1tYXJnaW4tbGVmdC1ub25lXFxAdGFibGV0IHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1tYXJnaW4tbGVmdC1ub25lXFxAZGVza3RvcCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWxlZnQtbm9uZVxcQHdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LW1hcmdpbi1ob3Jpem9udGFsLXRpbnlcXEBtb2JpbGUge1xuICAgIG1hcmdpbi1sZWZ0OiA2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1tYXJnaW4taG9yaXpvbnRhbC10aW55XFxAdGFibGV0IHtcbiAgICBtYXJnaW4tbGVmdDogNnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWhvcml6b250YWwtdGlueVxcQGRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiA2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1tYXJnaW4taG9yaXpvbnRhbC10aW55XFxAd2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDZweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LW1hcmdpbi1ob3Jpem9udGFsLXNtYWxsXFxAbW9iaWxlIHtcbiAgICBtYXJnaW4tbGVmdDogMTJweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1tYXJnaW4taG9yaXpvbnRhbC1zbWFsbFxcQHRhYmxldCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWhvcml6b250YWwtc21hbGxcXEBkZXNrdG9wIHtcbiAgICBtYXJnaW4tbGVmdDogMTJweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1tYXJnaW4taG9yaXpvbnRhbC1zbWFsbFxcQHdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LW1hcmdpbi1ob3Jpem9udGFsLWxhcmdlXFxAbW9iaWxlIHtcbiAgICBtYXJnaW4tbGVmdDogNDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1tYXJnaW4taG9yaXpvbnRhbC1sYXJnZVxcQHRhYmxldCB7XG4gICAgbWFyZ2luLWxlZnQ6IDQ4cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWhvcml6b250YWwtbGFyZ2VcXEBkZXNrdG9wIHtcbiAgICBtYXJnaW4tbGVmdDogNDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1tYXJnaW4taG9yaXpvbnRhbC1sYXJnZVxcQHdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA0OHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LW1hcmdpbi1ob3Jpem9udGFsLWh1Z2VcXEBtb2JpbGUge1xuICAgIG1hcmdpbi1sZWZ0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LW1hcmdpbi1ob3Jpem9udGFsLWh1Z2VcXEB0YWJsZXQge1xuICAgIG1hcmdpbi1sZWZ0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1ob3Jpem9udGFsLWh1Z2VcXEBkZXNrdG9wIHtcbiAgICBtYXJnaW4tbGVmdDogOTZweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1tYXJnaW4taG9yaXpvbnRhbC1odWdlXFxAd2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDk2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtbWFyZ2luLWhvcml6b250YWwtbm9uZVxcQG1vYmlsZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWhvcml6b250YWwtbm9uZVxcQHRhYmxldCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLWhvcml6b250YWwtbm9uZVxcQGRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LW1hcmdpbi1ob3Jpem9udGFsLW5vbmVcXEB3aWRlIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1tYXJnaW4tdmVydGljYWwtdGlueVxcQG1vYmlsZSB7XG4gICAgbWFyZ2luLXRvcDogNnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIC51LW1hcmdpbi12ZXJ0aWNhbC10aW55XFxAdGFibGV0IHtcbiAgICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXZlcnRpY2FsLXRpbnlcXEBkZXNrdG9wIHtcbiAgICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXZlcnRpY2FsLXRpbnlcXEB3aWRlIHtcbiAgICBtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIHtcbiAgLnUtbWFyZ2luLXZlcnRpY2FsLXNtYWxsXFxAbW9iaWxlIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDYuMjVlbSkge1xuICAudS1tYXJnaW4tdmVydGljYWwtc21hbGxcXEB0YWJsZXQge1xuICAgIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LW1hcmdpbi12ZXJ0aWNhbC1zbWFsbFxcQGRlc2t0b3Age1xuICAgIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA4MS4yNWVtKSB7XG4gIC51LW1hcmdpbi12ZXJ0aWNhbC1zbWFsbFxcQHdpZGUge1xuICAgIG1hcmdpbi10b3A6IDEycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAyMGVtKSB7XG4gIC51LW1hcmdpbi12ZXJ0aWNhbC1sYXJnZVxcQG1vYmlsZSB7XG4gICAgbWFyZ2luLXRvcDogNDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDQ4cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXZlcnRpY2FsLWxhcmdlXFxAdGFibGV0IHtcbiAgICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjEuMjVlbSkge1xuICAudS1tYXJnaW4tdmVydGljYWwtbGFyZ2VcXEBkZXNrdG9wIHtcbiAgICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogODEuMjVlbSkge1xuICAudS1tYXJnaW4tdmVydGljYWwtbGFyZ2VcXEB3aWRlIHtcbiAgICBtYXJnaW4tdG9wOiA0OHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNDhweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1tYXJnaW4tdmVydGljYWwtaHVnZVxcQG1vYmlsZSB7XG4gICAgbWFyZ2luLXRvcDogOTZweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXZlcnRpY2FsLWh1Z2VcXEB0YWJsZXQge1xuICAgIG1hcmdpbi10b3A6IDk2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA5NnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LW1hcmdpbi12ZXJ0aWNhbC1odWdlXFxAZGVza3RvcCB7XG4gICAgbWFyZ2luLXRvcDogOTZweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDk2cHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXZlcnRpY2FsLWh1Z2VcXEB3aWRlIHtcbiAgICBtYXJnaW4tdG9wOiA5NnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogOTZweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMjBlbSkge1xuICAudS1tYXJnaW4tdmVydGljYWwtbm9uZVxcQG1vYmlsZSB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXZlcnRpY2FsLW5vbmVcXEB0YWJsZXQge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MS4yNWVtKSB7XG4gIC51LW1hcmdpbi12ZXJ0aWNhbC1ub25lXFxAZGVza3RvcCB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDgxLjI1ZW0pIHtcbiAgLnUtbWFyZ2luLXZlcnRpY2FsLW5vbmVcXEB3aWRlIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlIG1heC1uZXN0aW5nLWRlcHRoICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI1BSSU5UXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBWZXJ5IGNydWRlLCByZXNldC1saWtlIHN0eWxlcyB0YWtlbiBmcm9tIHRoZSBIVE1MNSBCb2lsZXJwbGF0ZTpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvNS4zLjAvZGlzdC9kb2MvY3NzLm1kI3ByaW50LXN0eWxlc1xuICogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvZGlzdC9jc3MvbWFpbi5jc3MjTDIwNS1MMjgyXG4gKi9cbkBtZWRpYSBwcmludCB7XG4gIC8qKlxuICAgKiAxLiBCbGFjayBwcmludHMgZmFzdGVyOiBodHRwOi8vd3d3LnNhbmJlaWppLmNvbS9hcmNoaXZlcy85NTNcbiAgICovXG4gICosXG4gICo6YmVmb3JlLFxuICAqOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7IC8qIFsxXSAqL1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbiAgYVtocmVmXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XG4gIH1cbiAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjtcbiAgfVxuICAvKipcbiAgICogRG9u4oCZdCBzaG93IGxpbmtzIHRoYXQgYXJlIGZyYWdtZW50IGlkZW50aWZpZXJzLCBvciB1c2UgdGhlIGBqYXZhc2NyaXB0OmBcbiAgICogcHNldWRvIHByb3RvY29sLlxuICAgKi9cbiAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIC8qKlxuICAgKiBQcmludGluZyBUYWJsZXM6IGh0dHA6Ly9jc3MtZGlzY3Vzcy5pbmN1dGlvLmNvbS93aWtpL1ByaW50aW5nX1RhYmxlc1xuICAgKi9cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDtcbiAgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzO1xuICB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIH1cbn1cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAjSElERVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICovXG4udS1oaWRkZW4tdmlzdWFsbHkge1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50O1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSkgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAtMXB4ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qKlxuICogSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVycy5cbiAqL1xuLnUtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgI0JVVFRPTlNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFRoaXMgaXMgYW4gZXhhbXBsZSBjb21wb25lbnQuIEV4dGVuZCBpbnVpdGNzcyBieSBidWlsZGluZyB5b3VyIG93biBjb21wb25lbnRzXG4gKiB0aGF0IG1ha2UgdXAgeW91ciBVSS4gQ29tcG9uZW50IGNsYXNzZXMgYXJlIHByZWZpeGVkIHdpdGggYSBgYy1gLlxuICovXG4vKipcbiAqIDEuIEFsbG93IHVzIHRvIHN0eWxlIGJveCBtb2RlbCBwcm9wZXJ0aWVzLlxuICogMi4gTGluZSBkaWZmZXJlbnQgc2l6ZWQgYnV0dG9ucyB1cCBhIGxpdHRsZSBuaWNlci5cbiAqIDMuIE1ha2UgYnV0dG9ucyBpbmhlcml0IGZvbnQgc3R5bGVzIChvZnRlbiBuZWNlc3Nhcnkgd2hlbiBzdHlsaW5nIGBpbnB1dGBzIGFzXG4gKiAgICBidXR0b25zKS5cbiAqIDQuIFJlc2V0L25vcm1hbGl6ZSBzb21lIHN0eWxlcy5cbiAqIDUuIEZvcmNlIGFsbCBidXR0b24tc3R5bGVkIGVsZW1lbnRzIHRvIGFwcGVhciBjbGlja2FibGUuXG4gKi9cbi5jLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogWzFdICovXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIFsyXSAqL1xuICBmb250OiBpbmhlcml0OyAvKiBbM10gKi9cbiAgdGV4dC1hbGlnbjogY2VudGVyOyAvKiBbNF0gKi9cbiAgbWFyZ2luOiAwOyAvKiBbNF0gKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiBbNV0gKi9cbiAgcGFkZGluZzogMTJweCAyNHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1pbi1vdXQ7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4vKiBTdHlsZSB2YXJpYW50c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jLWJ0bi0tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0YThlYzI7XG59XG4uYy1idG4tLXByaW1hcnksIC5jLWJ0bi0tcHJpbWFyeTpob3ZlciwgLmMtYnRuLS1wcmltYXJ5OmFjdGl2ZSwgLmMtYnRuLS1wcmltYXJ5OmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyAvKiBbNF0gKi9cbiAgY29sb3I6ICNmZmY7XG59XG4uYy1idG4tLXByaW1hcnk6aG92ZXIsIC5jLWJ0bi0tcHJpbWFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzc0YTI7XG59XG5cbi5jLWJ0bi0tc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJmNDA1NDtcbn1cbi5jLWJ0bi0tc2Vjb25kYXJ5LCAuYy1idG4tLXNlY29uZGFyeTpob3ZlciwgLmMtYnRuLS1zZWNvbmRhcnk6YWN0aXZlLCAuYy1idG4tLXNlY29uZGFyeTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICNmZmY7XG59XG4uYy1idG4tLXNlY29uZGFyeTpob3ZlciwgLmMtYnRuLS1zZWNvbmRhcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWQyNzMzO1xufVxuXG4uYy1idG4tLXRlcnRpYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM0YThlYzI7XG59XG4uYy1idG4tLXRlcnRpYXJ5LCAuYy1idG4tLXRlcnRpYXJ5OmhvdmVyLCAuYy1idG4tLXRlcnRpYXJ5OmFjdGl2ZSwgLmMtYnRuLS10ZXJ0aWFyeTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICM0YThlYzI7XG59XG4uYy1idG4tLXRlcnRpYXJ5OmhvdmVyLCAuYy1idG4tLXRlcnRpYXJ5OmZvY3VzIHtcbiAgY29sb3I6ICMzNzc0YTI7XG59XG5cbi5jLWJ0bi0tZGFuZ2VyIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmMtYnRuLS1kYW5nZXIsIC5jLWJ0bi0tZGFuZ2VyOmhvdmVyLCAuYy1idG4tLWRhbmdlcjphY3RpdmUsIC5jLWJ0bi0tZGFuZ2VyOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGMTAxRjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogd2hpdGU7XG59XG4uYy1idG4tLWRhbmdlcjpob3ZlciwgLmMtYnRuLS1kYW5nZXI6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOEMwOTExO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi8qIFNpemUgdmFyaWFudHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uYy1idG4tLXNtYWxsIHtcbiAgcGFkZGluZzogNnB4IDEycHg7XG59XG5cbi5jLWJ0bi0tbGFyZ2Uge1xuICBwYWRkaW5nOiAyNHB4IDQ4cHg7XG59XG5cbi8qIEdob3N0IGJ1dHRvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEdob3N0IGJ1dHRvbnMgaGF2ZSBzZWUtdGhyb3VnaCBiYWNrZ3JvdW5kcyBhbmQgYXJlIGJvcmRlcmVkLlxuICovXG4uZS1zaGFyZWQtbGlua3MgYSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMTFweCAyM3B4O1xufVxuLmUtc2hhcmVkLWxpbmtzIGEsIC5lLXNoYXJlZC1saW5rcyBhOmhvdmVyLCAuZS1zaGFyZWQtbGlua3MgYTphY3RpdmUsIC5lLXNoYXJlZC1saW5rcyBhOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cblxuLmMtYnRuLS1naG9zdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgcGFkZGluZzogMTFweCAyM3B4O1xufVxuLmMtYnRuLS1naG9zdCwgLmMtYnRuLS1naG9zdDpob3ZlciwgLmMtYnRuLS1naG9zdDphY3RpdmUsIC5jLWJ0bi0tZ2hvc3Q6Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLmMtYnRuLS1naG9zdC5jLWJ0bi0tc21hbGwge1xuICBwYWRkaW5nOiA1cHggMTFweDtcbn1cbi5jLWJ0bi0tZ2hvc3QuYy1idG4tLWxhcmdlIHtcbiAgcGFkZGluZzogMjNweCA0N3B4O1xufVxuLmMtYnRuLS1naG9zdC5jLWJ0bi0tcHJpbWFyeSB7XG4gIGNvbG9yOiAjNGE4ZWMyO1xufVxuLmMtYnRuLS1naG9zdC5jLWJ0bi0tcHJpbWFyeTpob3ZlciwgLmMtYnRuLS1naG9zdC5jLWJ0bi0tcHJpbWFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjMzc3NGEyO1xufVxuLmMtYnRuLS1naG9zdC5jLWJ0bi0tc2Vjb25kYXJ5IHtcbiAgY29sb3I6ICMyZjQwNTQ7XG59XG4uYy1idG4tLWdob3N0LmMtYnRuLS1zZWNvbmRhcnk6aG92ZXIsIC5jLWJ0bi0tZ2hvc3QuYy1idG4tLXNlY29uZGFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjMWQyNzMzO1xufVxuLmMtYnRuLS1naG9zdC5jLWJ0bi0tdGVydGlhcnkge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5jLWJ0bi0tZ2hvc3QuYy1idG4tLXRlcnRpYXJ5OmhvdmVyLCAuYy1idG4tLWdob3N0LmMtYnRuLS10ZXJ0aWFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uYy1idG4tLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuLmMtYnRuLS13aWRlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5pbnB1dC0tZGVmYXVsdCwgc2VsZWN0IHtcbiAgaGVpZ2h0OiA0OHB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICNlNGU0ZTQ7XG4gIGJhY2tncm91bmQ6ICNlZmVmZWY7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIG1pbi13aWR0aDogMjYwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi5pbnB1dC0tZGVmYXVsdDo6cGxhY2Vob2xkZXIsIHNlbGVjdDo6cGxhY2Vob2xkZXIge1xuICBmb250LXNpemU6IDE4cHg7XG59XG4uaW5wdXQtLWRlZmF1bHQ6OmZvY3VzLCBzZWxlY3Q6OmZvY3VzIHtcbiAgb3V0bGluZTogc29saWQgMnB4IHJnYmEoMTAxLCAxODcsIDI1NSwgMC40MTk2MDc4NDMxKTtcbiAgb3V0bGluZS1jb2xvcjogcmdiYSgxMDEsIDE4NywgMjU1LCAwLjQyKTtcbiAgb3V0bGluZS1zdHlsZTogc29saWQ7XG4gIG91dGxpbmUtd2lkdGg6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4uaW5wdXQtLXNpZ24taW4ge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNlZmVmZWY7XG4gIG1pbi13aWR0aDogMTAwJTtcbn1cblxuc2VsZWN0IHtcbiAgbWluLXdpZHRoOiAzNjBweDtcbn1cblxuLypcbi5hc3NpZ25tZW50LWluZGV4LS1ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4qL1xuYy1ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5jLWdyaWQ6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBmbGV4OiAxIDEgMTAwJTtcbiAgbWF4LXdpZHRoOiAzMiU7XG59XG5cbmMtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLypcbi5hc3NpZ25tZW50LWluZGV4LS1jYXJkIHtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjZTRlNGU0O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJveC1zaGFkb3c6IDFweCAxcHggNHB4ICNlNGU0ZTQ7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgd2lkdGg6IDMyJTtcbn1cbiovXG5jLWNhcmQge1xuICBib3JkZXI6IHNvbGlkIDFweCAjZTRlNGU0O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggNHB4ICNlNGU0ZTQ7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICB3aWR0aDogMzIlO1xufVxuXG5jLWNhcmQtLXdpZGUge1xuICBib3JkZXI6IHNvbGlkIDFweCAjZTRlNGU0O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggNHB4ICNlNGU0ZTQ7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZyYW1lZC1xYSB7XG4gIG1hcmdpbi10b3A6IDEuNGVtO1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggI2U0ZTRlNDtcbn1cblxuLm1hdGVyaWFsLWljb25zLm1kLTE4IHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4ubWF0ZXJpYWwtaWNvbnMubWQtMjQge1xuICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5tYXRlcmlhbC1pY29ucy5tZC0zNiB7XG4gIGZvbnQtc2l6ZTogMzZweDtcbn1cblxuLm1hdGVyaWFsLWljb25zLm1kLTQ4IHtcbiAgZm9udC1zaXplOiA0OHB4O1xufVxuXG4ubWF0ZXJpYWwtaWNvbnMtZ3JleSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG5uYXYge1xuICBjb2xvcjogIzAwOGNiZjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogODBweDtcbiAgbGluZS1oZWlnaHQ6IDgwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IoMjI4LCAyMjgsIDIyOCk7XG59XG5uYXYgYSB7XG4gIGNvbG9yOiAjMDA4Y2JmO1xufVxubmF2IC5uYXYtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxubmF2IC5icmFuZC1sb2dvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogIzAwOGNiZjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgbmF2IC5icmFuZC1sb2dvIHtcbiAgICBmb250LXNpemU6IDIuMXJlbTtcbiAgfVxufVxubmF2IC5uYXYtdGl0bGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgcGFkZGluZzogMjhweCAwO1xufVxubmF2IHVsIHtcbiAgbWFyZ2luOiAwO1xufVxubmF2IHVsLnJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxubmF2IHVsIGxpIHtcbiAgbWFyZ2luLXRvcDogMC4xcmVtO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgbmF2IHVsIGxpIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICB9XG59XG5uYXYgdWwgYSB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcbiAgZm9udC1zaXplOiAwLjg2cmVtO1xuICBwYWRkaW5nOiAwIDRweDtcbiAgY29sb3I6ICMwMDhjYmY7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0Ni4yNWVtKSB7XG4gIG5hdiB1bCBhIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgcGFkZGluZzogMCAxNXB4O1xuICB9XG59XG5uYXYgdWwgYS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmY2ZmO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzAwOGNiZjtcbn1cbm5hdiB1bCBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZmNmZjtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMwMDhjYmY7XG59XG5uYXYubGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG5mb290ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4Y2JmO1xufVxuXG4uYy1mb290ZXItdGV4dC0tY29sb3Ige1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5jLWZvb3Rlci1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jLWZvb3Rlci1saXN0IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbn1cblxuLmMtZm9vdGVyLWxpbmtzIHtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5jLWxhbmRpbmdwYWdlIHtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU0O1xuICBib3gtc2hhZG93OiAxcHggMXB4IDRweCAjZTRlNGU0O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLmMtbGFuZGluZ3BhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgfVxufVxuXG4uYy1sYW5kaW5ncGFnZS13ZWxjb21lLWxlZnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4Y2JmO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5jLWxhbmRpbmdwYWdlLXdlbGNvbWUtbGVmdCBoMSwgLmMtbGFuZGluZ3BhZ2Utd2VsY29tZS1sZWZ0IGgzIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYy1sYW5kaW5ncGFnZS13ZWxjb21lLXJpZ2h0IHtcbiAgZmxleDogMjtcbn1cbi5vLWxhYmVsLS1yZW1lbWJlciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmUtc2hhcmVkLWxpbmtzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5hIHtcbiAgY29sb3I6ICMwMDhjYmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmMtbGluay0tY2FuY2VsLCAuYy1saW5rLS1kZWxldGUge1xuICBjb2xvcjogIzU4NTg1ODtcbn1cblxuLnF1ZXN0aW9uYXJpZS1oZWFkZXItY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5xdWVzdGlvbm5haXJlLWd1aWRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjNmNDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG5zcGFuLnF1ZXN0aW9uLW51bWJlci1jb3VudCB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMDA5ZGM5O1xufVxuXG5zcGFuLnF1ZXN0aW9uLW51bWJlci10b3RhbCB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMDA5ZGM5O1xufVxuXG5jLWNhcmQtLWluZm8ge1xuICBib3JkZXI6IHNvbGlkIDFweCAjZjFmM2Y0O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmMWYzZjQ7XG4gIHdpZHRoOiAzMiU7XG59XG5cbi5jLXZpZXctLWZvcmdvdC1wYXNzd29yZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U0ZTRlNDtcbiAgYm94LXNoYWRvdzogMXB4IDFweCA0cHggI2U0ZTRlNDtcbn1cblxuLmMtdmlldy0tZm9yZ290LXBhc3N3b3JkLWxlZnQge1xuICBmbGV4OiAzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4Y2JmO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5jLXZpZXctLWZvcmdvdC1wYXNzd29yZC1sZWZ0IGgyLCAuYy12aWV3LS1mb3Jnb3QtcGFzc3dvcmQtbGVmdCBwLCAuYy12aWV3LS1mb3Jnb3QtcGFzc3dvcmQtbGVmdCBzdHJvbmcge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5jLXZpZXctLWZvcmdvdC1wYXNzd29yZC1yaWdodCB7XG4gIGZsZXg6IDI7XG59XG5cbi8qXG5EaXNwbGF5aW5nIG5vdGlmaWNhdGlvbnMsIHdlIGRvbid0IGRpc3Rpbmd1aXNoIGJldHdlZW4gbm90aWZpY2F0aW9ucyBhbmQgYWxlcnRzXG50cmlnZ2VyZWQgZnJvbSAgPCU9IG5vdGljZSAlPiBhbmQgIDwlPSBhbGVydCAlPiBcbiovXG4jbm90aWZpY2F0aW9ucy1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDAwMDtcbiAgdG9wOiA2NHB4O1xufVxuXG4uYy1ub3RpZmljYXRpb25zLS1ub3RpY2UsIC5jLW5vdGlmaWNhdGlvbnMtLWFsZXJ0IHtcbiAgd2lkdGg6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgYmFja2dyb3VuZDogIzU4NTg1ODtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4IDI1cHg7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluLW91dDtcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xufVxuXG4vKlxuKiAgTW9iaWxlIHVzZXIgd2lsbCBvbmx5IGJlIGVwb3NlZCB0bzpcbiogIC0gTG9naW4vb3V0XG4qICAtIFJlc2V0IHBhc3N3b3JkXG4qICAtIGRhaWx5IHN1Ym1pdHNcbiogIC0gVmlldyBncmFwaFxuKi9cbi5oaWRlLWZvci1tb2JpbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ2LjI1ZW0pIHtcbiAgLmhpZGUtZm9yLW1vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuKiB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90byBDb25kZW5zZWRcIiwgc2Fucy1zZXJpZjtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbmJvZHkge1xuICBmb250LXNpemU6IDEuMjVlbTtcbn1cblxuLndpZGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNvbHVtbi1xdWVzdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ucm93LXF1ZXN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW46IDE2cHggNHB4IDE2cHggNHB4O1xufVxuXG4uY29sdW1uLXF1ZXN0aW9ucy1rZXlzIHtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgbWluLXdpZHRoOiAzMnB4O1xuICBsaW5lLWhlaWdodDogNDBweDtcbn1cblxuLmNvbHVtbi1xdWVzdGlvbnMtcmVzcG9uc2Uge1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBtaW4td2lkdGg6IDcwJTtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG59XG5cbi5jb2x1bW4tcXVlc3Rpb25zLXJhZGlvLWJ1dHRvbnMge1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBtaW4td2lkdGg6IDEwJTtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG59XG5cbi8qIFR5cG9ncmFwaHkqL1xuaDMge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmNvbHVtbi1xdWVzdGlvbnMtcmVzcG9uc2U6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgbWFyZ2luOiAwIC0yMHB4IDAgLTMycHg7XG59XG5cbi5sb2dpbi1ib3gtLWZvbyB7XG4gIG1hcmdpbi10b3A6IDEwdmg7XG59XG5cbi5jLXRoZW1lLWJvcmRlci0tbGlnaHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cblxuLnJlc3BvbnNlLXNlbGVjdGVkIHtcbiAgYm9yZGVyOiBzb2xpZCBibGFjayAxcHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBzb2xpZCAycHggcmdiYSgxMDEsIDE4NywgMjU1LCAwLjQxOTYwNzg0MzEpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5jLXZpZXctLWZvcmdvdC1wYXNzd29yZC1sZWZ0IHAgYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZTtcbn1cblxuLm5hdi13cmFwcGVyIGEgaW1nIHtcbiAgbWF4LWhlaWdodDogNjRweDtcbn1cblxuLmMtbGFuZGluZ3BhZ2UgcCBhIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG50aCwgdGQge1xuICBib3JkZXI6IHNvbGlkIGJsYWNrIDFweDtcbn1cblxuaW5wdXRbdHlwZT1yYWRpb10ge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuXG4jY2hhcnRfbGluZXMge1xuICBtYXJnaW4tdG9wOiAtMjRweDtcbn1cblxuLm1lYXN1cmVtZW50cy1ncmFwaCBoMyB7XG4gIG1hcmdpbi10b3A6IDMycHg7XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIC5oaWRlLW9uLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4ge1xuICAuaGlkZS1vbi1zY3JlZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50IHtcbiAgaGVhZGVyLCBmb290ZXIsICNjb25zb2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4ge1xuICAucXVlc3Rpb24td2l0aC1yZXNwb25zZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHg7XG4gIH1cbn1cblxuLmJhci0wIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxNXB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGdyZWVuLCB5ZWxsb3csIHJlZCk7XG4gIHdpZHRoOiAyNDBweDtcbn1cblxuLmJhci0wIC5yZWFkaW5nIHtcbiAgd2lkdGg6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIG1pbi1oZWlnaHQ6IDE1cHg7XG59XG5cbkBtZWRpYSBwcmludCB7XG4gICoge1xuICAgIGZvbnQtc2l6ZTogc21hbGwgIWltcG9ydGFudDtcbiAgfVxuICBoMiB7XG4gICAgZm9udC1zaXplOiAxNnB0ICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHQgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAxNnB0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMTJwdCAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxMnB0ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnUtbWFyZ2luLXRvcC1sYXJnZSB7XG4gICAgbWFyZ2luLXRvcDogOHB0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnF1ZXN0aW9uLXdpdGgtcmVzcG9uc2Uge1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHQgIWltcG9ydGFudDtcbiAgfVxufVxuLmludmFsaWQtaW5wdXQge1xuICBib3JkZXI6IDJweCBzb2xpZCByZWQ7XG59XG4iXX0= */
