/* Vendor CSS and variables */
/*! normalize.css v8.0.1 | 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 iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
  padding: 0;
}
/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}
/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  -webkit-box-sizing: content-box;
          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
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}
/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline;
  -webkit-text-decoration: underline dotted currentColor;
          text-decoration: underline dotted currentColor; /* 2 */
}
/**
 * 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 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
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}
/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}
/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input { /* 1 */
  overflow: visible;
}
/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select { /* 1 */
  text-transform: none;
}
/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}
/**
 * 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 {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}
/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}
/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}
/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
  -webkit-box-sizing: border-box;
          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 in Chrome and Safari on macOS.
 */
[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 Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}
/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}
/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}
/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}
/* Customized for OUR design */
/*========================================
=                                        =
=                Choices                 =
=     CSS Customized for OUR Reg App     =
=                                        =
=========================================*/
.choices {
  position: relative;
  margin-bottom: 1rem;
  font-size: .9090rem;
  font-size: var(--epsilon);
}
.choices:focus {
  outline: none;
}
.choices:last-child {
  margin-bottom: 0;
}
.choices.is-disabled .choices__inner,
.choices.is-disabled .choices__input {
  background-color: #ebebeb;
  background-color: var(--light-gray);
  cursor: not-allowed;
  -webkit-user-select: none;
      -ms-user-select: none;
          -moz-user-select: none;
       user-select: none;
}
.choices.is-disabled .choices__item {
  cursor: not-allowed;
}
.choices [hidden] {
  display: none !important;
}
.choices[data-type*='select-one'] {
  cursor: pointer;
}
.choices[data-type*='select-one'] .choices__inner {
  padding-bottom: .375rem;
}
.choices[data-type*='select-one'] .choices__input {
  display: block;
  width: 100%;
  padding: .3rem 1rem;
  border-bottom: .0625rem solid #959595;
  border-bottom: .0625rem solid var(--aa-large-gray);
  border-radius: 0;
  border-left: none;
  border-top: none;
  border-right: none;
  background-color: #ffffff;
  background-color: var(--white);
  margin: 0;
  height: 2.5rem;
}
.choices[data-type*='select-one'] .choices__button {
  background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);
  padding: 0;
  background-size: .4rem;
  position: absolute;
  top: 50%;
  right: 0;
  margin-top: -.5rem;
  margin-right: 1.25rem;
  height: 1rem;
  width: 1rem;
  border-radius: 10em;
  opacity: 0.5;
}
.choices[data-type*='select-one'] .choices__button:hover, .choices[data-type*='select-one'] .choices__button:focus {
  opacity: 1;
}
.choices[data-type*='select-one'] .choices__button:focus {
  -webkit-box-shadow: 0 0 0 .1rem #ebebeb;
          box-shadow: 0 0 0 .1rem #ebebeb;
  -webkit-box-shadow: 0 0 0 .1rem var(--light-gray);
          box-shadow: 0 0 0 .1rem var(--light-gray);
}
.choices[data-type*='select-one'] .choices__item[data-value=''] .choices__button {
  display: none;
}
.choices[data-type*='select-one']:after {
  content: '';
  height: 0;
  width: 0;
  border-style: solid;
  border-color: rgb(69,53,54) transparent transparent transparent;
  border-color: var(--text) transparent transparent transparent;
  border-width: .35rem;
  position: absolute;
  right: 1rem;
  top: 50%;
  margin-top: -.125rem;
  pointer-events: none;
}
.choices[data-type*='select-one'].is-open:after {
  border-color: transparent transparent rgb(69,53,54) transparent;
  border-color: transparent transparent var(--text) transparent;
  margin-top: -.5rem;
}
.choices[data-type*='select-one'][dir='rtl']:after {
  left: .575rem;
  right: auto;
}
.choices[data-type*='select-one'][dir='rtl'] .choices__button {
  right: auto;
  left: 0;
  margin-left: 1.25rem;
  margin-right: 0;
}
.choices[data-type*='select-multiple'] .choices__inner,
.choices[data-type*='text'] .choices__inner {
  cursor: text;
}
.choices[data-type*='select-multiple'] .choices__button,
.choices[data-type*='text'] .choices__button {
  position: relative;
  display: inline-block;
  margin-top: 0;
  margin-right: -.2rem;
  margin-bottom: 0;
  margin-left: .4rem;
  padding-left: .75rem;
  border-left: .0625rem solid #008fa1;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);
  background-size: 2rem;
  width: .4rem;
  line-height: 1;
  opacity: 0.75;
  border-radius: 0;
}
.choices[data-type*='select-multiple'] .choices__button:hover, .choices[data-type*='select-multiple'] .choices__button:focus,
.choices[data-type*='text'] .choices__button:hover,
.choices[data-type*='text'] .choices__button:focus {
  opacity: 1;
}
.choices__inner {
  display: inline-block;
  vertical-align: top;
  width: 100%;
  background-color: #ffffff;
  background-color: var(--white);
  padding: .625rem .5rem .1875rem 0;
  border: .0625rem solid #959595;
  border: .0625rem solid var(--aa-large-gray);
  border-radius: .4rem;
  font-size: .9090rem;
  font-size: var(--epsilon);
  min-height: 3rem;
  overflow: hidden;
}
.is-focused .choices__inner,
.is-open .choices__inner {
  border-color: #959595;
  border-color: var(--aa-large-gray);
}
.is-open .choices__inner {
  border-radius: .4rem .4rem 0 0;
}
.is-flipped.is-open .choices__inner {
  border-radius: 0 0 .4rem .4rem;
}
.choices__list {
  margin: 0;
  padding-left: 0;
  list-style: none;
}
.choices__list--single {
  display: inline-block;
  padding: .2rem .75rem .2rem 1rem;
  width: 100%;
}
[dir='rtl'] .choices__list--single {
  padding-right: .2rem;
  padding-left: 1rem;
}
.choices__list--single .choices__item {
  width: 100%;
}
.choices__list--multiple {
  display: inline;
}
.choices__list--multiple .choices__item {
  display: inline-block;
  vertical-align: middle;
  border-radius: 1rem;
  padding: .2rem 1rem;
  font-size: .6rem;
  font-weight: 500;
  margin-right: .1875rem;
  margin-bottom: .1875rem;
  background-color: #ebebeb;
  background-color: var(--light-gray);
  border: .0625rem solid rgb(255,184,28);
  border: .0625rem solid var(--our-primary-yellow);
  color: #ffffff;
  color: var(--white);
  word-break: break-all;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.choices__list--multiple .choices__item[data-deletable] {
  padding-right: .25rem;
}
[dir='rtl'] .choices__list--multiple .choices__item {
  margin-right: 0;
  margin-left: .1875rem;
}
.choices__list--multiple .choices__item.is-highlighted {
  background-color: rgb(255,184,28);
  background-color: var(--our-primary-yellow);
  border: .0625rem solid #008fa1;
}
.is-disabled .choices__list--multiple .choices__item {
  background-color: #aaaaaa;
  border: .0625rem solid #919191;
}
.choices__list--dropdown {
  visibility: hidden;
  z-index: 1;
  position: absolute;
  width: 100%;
  background-color: #ffffff;
  background-color: var(--white);
  border: .0625rem solid #959595;
  border: .0625rem solid var(--aa-large-gray);
  top: 100%;
  margin-top: -.0625rem;
  border-bottom-left-radius: .4rem;
  border-bottom-right-radius: .4rem;
  overflow: hidden;
  word-break: break-all;
  will-change: visibility;
}
.choices__list--dropdown.is-active {
  visibility: visible;
}
.is-open .choices__list--dropdown {
  border-color: #959595;
  border-color: var(--aa-large-gray);
}
.is-flipped .choices__list--dropdown {
  top: auto;
  bottom: 100%;
  margin-top: 0;
  margin-bottom: -.0625rem;
  border-radius: .4rem .4rem 0 0;
}
.choices__list--dropdown .choices__list {
  position: relative;
  max-height: 15rem;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  will-change: scroll-position;
}
.choices__list--dropdown .choices__item {
  position: relative;
  padding: .4rem 1rem;
  font-size: .9090rem;
  font-size: var(--epsilon);
}
.choices__list--dropdown .choices__item:nth-of-type(even) {
  /* background: var(--light-gray); */
}
[dir='rtl'] .choices__list--dropdown .choices__item {
  text-align: right;
}
@media (min-width: 640px) {
  .choices__list--dropdown .choices__item--selectable {
    padding-right: 5rem;
  }
  .choices__list--dropdown .choices__item--selectable:after {
    content: attr(data-select-text);
    font-size: .825rem;
    font-size: var(--zeta);
    opacity: 0;
    position: absolute;
    right: .5rem;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  [dir='rtl'] .choices__list--dropdown .choices__item--selectable {
    text-align: right;
    padding-left: 5rem;
    padding-right: .5rem;
  }
  [dir='rtl'] .choices__list--dropdown .choices__item--selectable:after {
    right: auto;
    left: .5rem;
  }
}
.choices__list--dropdown .choices__item--selectable.is-highlighted {
  background-color: rgba(255,184,28,.35);
  background-color: var(--highlight);
}
.choices__list--dropdown .choices__item--selectable.is-highlighted:after {
  opacity: .75;
}
.choices__item {
  cursor: default;
}
.choices__item--selectable {
  cursor: pointer;
}
.choices__item--disabled {
  cursor: not-allowed;
  -webkit-user-select: none;
      -ms-user-select: none;
          -moz-user-select: none;
       user-select: none;
  opacity: 0.5;
}
.choices__heading {
  font-weight: 600;
  font-size: .6rem;
  padding: .5rem;
  border-bottom: .0625rem solid #f7f7f7;
  color: gray;
}
.choices__button {
  text-indent: -9999px;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  border: 0;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: center;
  cursor: pointer;
}
.choices__button:focus {
  outline: none;
}
.choices__input {
  display: inline-block;
  vertical-align: baseline;
  background-color: #f9f9f9;
  font-size: .7rem;
  margin-bottom: .25rem;
  border: 0;
  border-radius: 0;
  max-width: 100%;
  padding: .3rem 0 .3rem 1rem;
}
.choices__input:focus {
  outline: 0;
}
[dir='rtl'] .choices__input {
  padding-right: .1rem;
  padding-left: 0;
}
.choices__placeholder {
  opacity: 1;
  color: #767676;
  color: var(--aa-gray);
}
.choices__list--dropdown .choices__placeholder {
  cursor: default;
  opacity: 0.5;
}
.choices__list--dropdown .choices__placeholder::after,
.choices__list--dropdown .choices__placeholder.is-highlighted::after {
  opacity: 0;
}
/*=====  End of Choices  ======*/
/* Customized for OUR design */
/*
  Rails uses a helper called `button_to` to generate Javascript-free "links" to
  non-GET application routes. While this is helpful for a number of reasons, it
  also leaves us with the mess of making sure that `<button>`s look simpler.

  We could scope this to a particular parent element, but we aren't using
  `<button>`s outside this context, and the extra qualifications would change
  the rule's specificity.
*/
button {
  background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;
  background: initial;
  padding: 0;
  padding: initial;
  border: medium none currentColor;
  border: initial;
  cursor: pointer;
  line-height: 1;
}
/* Core CSS and variables */
/*----------------------------------------------------------------------------
 *
 * Core: SIZES
 *
 *---------------------------------------------------------------------------*/
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
/* Modular Type Sizes */
:root {

  --rem:     100%;     /* Eg. All type, margin, and padding sizes are factors of
                          the default type size of the browser, the "rem",
                          typically 16px. */

  --base:         1rem;     /* Eg. Body font */
  --alpha:        2.3635rem;   /* Eg. H1ish Headings */
  --beta:         1.784rem; /* Eg. H2ish Headings */
  --gamma:        1.346rem;   /* Eg. H3ish Headings */
  --delta-plus:   1.25rem;     /* For use with small-caps when supported. Emulates size of delta in UPPERCASE. */
  --delta:        1rem;     /* Eg. H4ish Headings */
  --epsilon:      .9090rem; /* Eg. Button Text */
  --zeta:         .825rem; /* Eg. Fine print */
  --eta:          .75rem;   /* Eg. Really fine print */

  --line-height: 1.35;
  --leading: calc(1rem*var(--line-height));

}
/* Content Area Related Sizes */
:root {
  --measure: 40rem;
  --content-width: 48rem;
}
/* Viewport Width Variables */
:root {

  --bp-min:          320px;
  --bp-min-x:        375px;
  --bp-min-xx:       425px;
  --bp-min-xxx:      500px;
  --bp-mid:          768px;
  --bp-mega:         1024px;
  --bp-max:          1320px

}
/* Custom Media Declarations for Breakpoints */
/*----------------------------------------------------------------------------
 *
 * Core: FONTS
 *
 *---------------------------------------------------------------------------*/
:root {
  --font-family-nav: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif; /* Global Nav, Global Footer, Modal Message 500,700 weight. 300 weight used for headings in Pattern library only. */
  --font-family-ui: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif; /* Global Nav, Global Footer, Modal Message 500,700 weight. 300 weight used for headings in Pattern library only. */
  --font-family-text: 'Source Sans Pro', sans-serif; /* Default text. 400, 600, 700 weight */
  --font-family-display: agenda-one, sans-serif; /* Headings — 600, 700 */
}
/*----------------------------------------------------------------------------
 *
 * Core: COLOR
 *
 *---------------------------------------------------------------------------*/
:root {

  /* Colors with "-our-" in their name are sourced from the OUR brand guidelines. Pulled from Bookworms web. */

  --our-primary-orange:       rgb(252,76,2);    /* #FC4C02 */
  --our-globalnav-orange:     rgb(241,89,42);   /* #F1592A  - a less bright, WCAG AA+ compliant orange */
  --aa-orange:                rgb(215,65,2);    /* #d74102 - AA orange with white — used in the CMS, skews reddish */
  --our-primary-yellow:       rgb(255,184,28);  /* #FFB81C */
  --our-primary-gray:         rgb(110,98,89);   /* #6E6259 */
  --our-primary-dark-gray:    rgb(69,53,54);    /* #453536 */

  /* Neutral and accent color variables */

  --black:          #000000;
  --text:           var(--our-primary-dark-gray);
  --dark-gray:      #4c4c4c; /* 70% black */
  --aa-gray:        #767676; /* The lightest gray that is accessible at < 18px text on white */
  --aa-large-gray:  #959595; /* The lightest gray that is accessible at > 18px text on white */
  --med-gray:       #bfbfbf; /* 25% black */
  --light-gray:     #ebebeb; /* 8% black */
  --white:          #ffffff;

  --accent:       var(--our-globalnav-orange);
  --accent-aa:    var(--aa-orange);

  --highlight:         rgba(255,184,28,.35); /* Translucent OUR primary yellow */
}
/*

Some of the components in the Reg App are borrowed from Milligram
https://milligram.github.io. Milligram uses the following colors, they will
need to be replaced with colors from the Reg App Palette:

color-initial: #fff !default
color-primary: #9b4dca !default
color-secondary: #606c76 !default
color-tertiary: #f4f5f6 !default
color-quaternary: #d1d1d1 !default
color-quinary: #e1e1e1 !default

*/
.c-color-swatch {
  display: block;
  height: 3rem;
}
.c-color-swatch::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 3rem;
  height: 3rem;
  margin-right: 1rem;
}
.color-our-primary-orange::before {
  background-color: rgb(252,76,2);
  background-color: var(--our-primary-orange);
}
.color-our-globalnav-orange::before,
.color-accent::before {
  background-color: rgb(241,89,42);
  background-color: var(--accent);
}
.color-aa-orange::before,
.color-accent-aa::before {
  background-color: rgb(215,65,2);
  background-color: var(--accent-aa);
}
.color-our-primary-yellow::before {
  background-color: rgb(255,184,28);
  background-color: var(--our-primary-yellow);
}
.color-our-primary-gray::before {
  background-color: rgb(110,98,89);
  background-color: var(--our-primary-gray);
}
.color-our-primary-dark-gray::before,
.color-text::before {
  background-color: rgb(69,53,54);
  background-color: var(--text);
}
.color-dark-gray::before {
  background-color: #4c4c4c;
  background-color: var(--dark-gray);
}
.color-aa-gray::before {
  background-color: #767676;
  background-color: var(--aa-gray);
}
.color-med-gray::before {
  background-color: #bfbfbf;
  background-color: var(--med-gray);
}
.color-light-gray::before {
  background-color: #ebebeb;
  background-color: var(--light-gray);
}
/*----------------------------------------------------------------------------
 *
 * TYPOGRAPHY
 *
 *---------------------------------------------------------------------------*/
html {
  font-size: 100%;
  font-style: normal;
  font-weight: 400;
  -webkit-text-size-adjust: none;
     -moz-text-size-adjust: none;
      -ms-text-size-adjust: none;
          text-size-adjust: none;

  /* Fluid type size from 16px to 20px between --bp-min and --bp-max breakpoints */
}
@media (min-width: 320px) {
    html {
      font-size: 1em; /* 16px at 320px */
      font-size: calc(1em + 0.4vw - 1.28px);
    }
  }
@media (min-width: 1320px) {
    html {
      font-size: 1.25em; /* 20px at 1320px */
    }
  }
body {
  line-height: 1.45;
  color: rgb(69,53,54);
  color: var(--text);
  font-family: 'Source Sans Pro', sans-serif;
  font-family: var(--font-family-text);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/*
    HEADING and TEXT SIZES
*/
.hed-alpha,
.hed-beta,
.hed-gamma,
.hed-delta,
.hed-epsilon {
  font-style: normal;
  display: block;
  line-height: 1.1;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
}
.hed-alpha {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 2.3635rem;
  font-size: var(--alpha);
}
.hed-beta {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 1.784rem;
  font-size: var(--beta);
}
.hed-gamma {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 1.346rem;
  font-size: var(--gamma);
}
.text-delta {
  font-size: 1rem;
  font-size: var(--delta);
  font-weight: bold;
}
.text-epsilon {
  font-size: .9090rem;
  font-size: var(--epsilon);
  font-weight: bold;
}
.text-zeta {
  font-size: .825rem;
  font-size: var(--zeta);
  font-weight: normal;
}
.text-eta {
  font-size: .75rem;
  font-size: var(--eta);
  font-weight: normal;
}
p {
  margin: .75rem 0;
}
p:first-child {
    margin-top: 0;
  }
p:last-child {
    margin-bottom: 0;
  }
a {
  color: rgb(215,65,2);
  color: var(--accent-aa);
  text-decoration-color: rgb(241,89,42);
  text-decoration-color: var(--accent);
}
a:link,
  a:visited {
    color: rgb(215,65,2);
    color: var(--accent-aa);
    text-decoration-color: rgb(241,89,42);
    text-decoration-color: var(--accent);
  }
a:hover,
  a:active,
  a:focus {
   color: rgb(241,89,42);
   color: var(--accent);
   text-decoration-color: rgb(241,89,42);
   text-decoration-color: var(--accent);
  }
ul,
ol {
  margin: .75rem 0;
}
ul li,
ol li {
  margin-top: .5rem;
}
/* Helpers */
.h-nobr {
  white-space: nowrap;
}
.h-break-word {
  word-wrap: break-word;
}
.h-flush-top {
  margin-top: 0;
}
.h-flush-left {
  margin-left: 0;
  text-align: left;
}
.h-flush-right {
  margin-right: 0;
  text-align: right;
}
/* ----------------------------------------------------------------------------
 *
 * Core: ICONS
 *
 * ------------------------------------------------------------------------- */
.c-icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  stroke-width: 0;
  stroke: currentColor;
  fill: currentColor;
}
/* ==========================================
Single-colored icons can be modified like so:
.c-icon-name {
  font-size: 32px;
  color: red;
}
========================================== */
/*----------------------------------------------------------------------------
 *
 * Core: BUTTON
 *
 *---------------------------------------------------------------------------*/
/*!
 * These styles borrowed heavily from:
 *
 * Milligram v1.3.0
 * https://milligram.github.io
 *
 * Copyright (c) 2017 CJ Patoilo
 * Licensed under the MIT license

Notable customizations for our app include reducing all lengths by 1/2.
Milligram presumes a 10px rem unit at the widest viewport. We presume a 20px
rem unit at the widest viewport, same as our default type size.

*/
button, .c-button {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.c-button {
  background-color: rgb(215,65,2);
  background-color: var(--accent-aa);
  border: 0.125rem solid rgb(215,65,2);
  border: 0.125rem solid var(--accent-aa);
  border-radius: .4rem;
  color: #ffffff;
  color: var(--white);
  cursor: pointer;
  display: inline-block;
  font-size: .75rem;
  font-size: var(--eta);
  font-weight: 700;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 2.5rem;
  letter-spacing: .04rem;
  line-height: 1rem;
  padding: .75rem 2.5rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  max-width: 100%;
  white-space: normal;
  margin-top: .125rem;
  margin-bottom: .125rem;
}
a.c-button { color: #ffffff; color: var(--white); }
.c-button:hover {
  background-color: rgb(241,89,42);
  background-color: var(--accent);
  border-color: rgb(241,89,42);
  border-color: var(--accent);
  color: #ffffff;
  color: var(--white);
  outline: 0;
}
a.c-button:hover { color: #ffffff; color: var(--white); }
.c-button[disabled] {
  cursor: default;
  opacity: .5;
}
.c-button[disabled]:hover {
  color: #ffffff;
  color: var(--white);
  background-color: rgb(215,65,2);
  background-color: var(--accent-aa);
  border-color: rgb(215,65,2);
  border-color: var(--accent-aa);
}
a.c-button[disabled]:hover { color: #ffffff; color: var(--white); }
.c-button_outline {
  background-color: transparent;
  color: rgb(215,65,2);
  color: var(--accent-aa);
}
a.c-button_outline { color: rgb(215,65,2); color: var(--accent-aa); }
.c-button_outline:hover {
  background-color: transparent;
  border-color: rgb(241,89,42);
  border-color: var(--accent);
  color: rgb(241,89,42);
  color: var(--accent);
}
a.c-button_outline:hover { color: rgb(241,89,42); color: var(--accent); }
.c-button_outline[disabled]:hover {
  background-color: transparent;
  border-color: inherit;
  color: rgb(215,65,2);
  color: var(--accent-aa);
}
a.c-button_outline[disabled]:hover { color: rgb(215,65,2); color: var(--accent-aa); }
.c-button_clear {
  background-color: transparent;
  border-color: transparent;
  color: rgb(215,65,2);
  color: var(--accent-aa);
}
a.c-button_clear { color: rgb(215,65,2); color: var(--accent-aa); }
.c-button_clear:hover {
  background-color: transparent;
  border-color: transparent;
  color: rgb(241,89,42);
  color: var(--accent);
}
a.c-button_clear:hover { color: rgb(241,89,42); color: var(--accent); }
.c-button_clear[disabled]:hover {
  background-color: transparent;
  border-color: transparent;
  color: rgb(215,65,2);
  color: var(--accent-aa);
}
a.c-button_clear[disabled]:hover { color: rgb(215,65,2); color: var(--accent-aa); }
.c-button_search-icon {
  padding: .5rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  overflow: hidden;
  background: rgb(255,184,28);
  background: var(--our-primary-yellow);
  border-color: rgb(255,184,28);
  border-color: var(--our-primary-yellow);
  color: rgb(69,53,54);
  color: var(--text);
}
.c-button_search-icon[disabled]:hover {
  background: rgb(255,184,28);
  background: var(--our-primary-yellow);
  border-color: rgb(255,184,28);
  border-color: var(--our-primary-yellow);
  color: rgb(69,53,54);
  color: var(--text);
}
.c-button_search-icon .c-icon {
  width: 1.625rem;
  height: 1.625rem;
}
/* ----------------------------------------------------------------------------
 *
 * Core: FORM ELEMENTS
 *
 * ------------------------------------------------------------------------- */
/* Base form element styling —
Note: button and button-like elements are styled with the
.c-button component class. See core/_button.css.

Radio and checkbox group layout can be finessed with the
.c-inputgroup component class if nested inside of their associated labels.

See core/_inputgroup.css and the Pattern Library for examples. */
/*!
 * These styles borrowed heavily from:
 *
 * Milligram v1.3.0
 * https://milligram.github.io
 *
 * Copyright (c) 2017 CJ Patoilo
 * Licensed under the MIT license

Notable customizations for our app include reducing all lengths by 1/2, then
increasing the proportional height of most inputs to 3rem.
Milligram presumes a 10px rem unit at the widest viewport. We presume a 20px
rem unit at the widest viewport, same as our default type size.

*/
input[type='email'],
input[type='number'],
input[type='password'],
input[type='search'],
input[type='tel'],
input[type='text'],
input[type='url'],
textarea,
select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: transparent;
  border: 0.0625rem solid #959595;
  border: 0.0625rem solid var(--aa-large-gray);
  border-radius: .4rem;
  -webkit-box-shadow: none;
          box-shadow: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: 3rem;
  padding: .3rem 1rem;
  width: 100%;
  font-size: .9090rem;
  font-size: var(--epsilon);
}
input[type='email']:focus,
input[type='number']:focus,
input[type='password']:focus,
input[type='search']:focus,
input[type='tel']:focus,
input[type='text']:focus,
input[type='url']:focus,
textarea:focus,
select:focus {
  border-color: rgb(241,89,42);
  border-color: var(--accent);
  outline: 0;
}
input[type='email'].has-error,
input[type='number'].has-error,
input[type='password'].has-error,
input[type='search'].has-error,
input[type='tel'].has-error,
input[type='text'].has-error,
input[type='url'].has-error,
select.has-error {
  border-color: rgb(241,89,42);
  border-color: var(--accent);
  outline: 0;
  background-color: rgba(255,184,28,.35);
  background-color: var(--highlight);
}
select {
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="14" viewBox="0 0 29 14" width="29"><path fill="var(--aa-large-gray)" d="M9.37727 3.625l5.08154 6.93523L19.54036 3.625"/></svg>') calc(100% - 0.5rem) center no-repeat;
  background-size: 2rem;
  padding-right: 1.5rem;
}
select:focus {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="14" viewBox="0 0 29 14" width="29"><path fill="var(--accent)" d="M9.37727 3.625l5.08154 6.93523L19.54036 3.625"/></svg>');
}
textarea {
  min-height: 5.25rem;
  padding: 1rem;
  resize: vertical;
}
label,
legend {
  display: block;
  font-size: .9090rem;
  font-size: var(--epsilon);
  font-weight: 700;
  margin-bottom: .5rem;
}
fieldset {
  border-width: 0;
  padding: 0;
}
input[type='checkbox'],
input[type='radio'] {
  display: inline;
}
.label-inline {
  display: inline;
  font-weight: normal;
  margin-left: .5rem;
}
/* Layout */
/*----------------------------------------------------------------------------
 *
 * PAGES AND LAYOUTS
 *
 *---------------------------------------------------------------------------*/
body {
  background: #ffffff;
  background: var(--white);
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100vh;
}
.l-info-wrapper {
  margin: 4rem auto 5rem;
  padding: 0 1rem 0;
  width: 100%;
  max-width: 32rem;
}
.l-regapp-wrapper {
  background: rgb(241,89,42);
  background: var(--accent);
  background:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    -webkit-gradient(linear, left top, left bottom, from(rgb(241,89,42)), color-stop(18.75rem, rgb(241,89,42)), color-stop(18.75rem, #ffffff),  to(#ffffff));
  background:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    linear-gradient(rgb(241,89,42) 0%, rgb(241,89,42) 18.75rem, #ffffff 18.75rem,  #ffffff 100%);
  background:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    -webkit-gradient(linear, left top, left bottom, from(var(--accent)), color-stop(18.75rem, var(--accent)), color-stop(18.75rem, var(--white)),  to(var(--white)));
  background:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    linear-gradient(var(--accent) 0%, var(--accent) 18.75rem, var(--white) 18.75rem,  var(--white) 100%);
  min-height: 20rem;
  background-size:
    67rem,
    100%;
  background-repeat:
    repeat-x,
    no-repeat;
  background-blend-mode:
    overlay,
    normal;
}
.l-regapp-wrapper_pending {
  background: rgb(255,184,28);
  background: var(--our-primary-yellow);
  background-image:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    -webkit-gradient(linear, left top, left bottom, from(rgb(255,184,28)), color-stop(18.75rem, rgb(255,184,28)), color-stop(18.75rem, #ffffff),  to(#ffffff));
  background-image:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    linear-gradient(rgb(255,184,28) 0%, rgb(255,184,28) 18.75rem, #ffffff 18.75rem,  #ffffff 100%);
  background-image:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    -webkit-gradient(linear, left top, left bottom, from(var(--our-primary-yellow)), color-stop(18.75rem, var(--our-primary-yellow)), color-stop(18.75rem, var(--white)),  to(var(--white)));
  background-image:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    linear-gradient(var(--our-primary-yellow) 0%, var(--our-primary-yellow) 18.75rem, var(--white) 18.75rem,  var(--white) 100%);
    background-size:
      67rem,
      100%;
    background-repeat:
      repeat-x,
      no-repeat;
}
.l-regapp-wrapper_denied {
  background: rgb(69,53,54);
  background: var(--text);
  background-image:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    -webkit-gradient(linear, left top, left bottom, from(rgb(69,53,54)), color-stop(18.75rem, rgb(69,53,54)), color-stop(18.75rem, #ffffff),  to(#ffffff));
  background-image:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    linear-gradient(rgb(69,53,54) 0%, rgb(69,53,54) 18.75rem, #ffffff 18.75rem,  #ffffff 100%);
  background-image:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    -webkit-gradient(linear, left top, left bottom, from(var(--text)), color-stop(18.75rem, var(--text)), color-stop(18.75rem, var(--white)),  to(var(--white)));
  background-image:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    linear-gradient(var(--text) 0%, var(--text) 18.75rem, var(--white) 18.75rem,  var(--white) 100%);
    background-size:
      67rem,
      100%;
    background-repeat:
      repeat-x,
      no-repeat;
}
/* Components */
/* ----------------------------------------------------------------------------
 *
 * Component: Reg App Form
 * Contains/constrains/centers the content for all registration app screens
 * except info pages.
 *
 * ------------------------------------------------------------------------- */
.c-regapp {
  margin: auto auto 5rem;
  padding: 2.625rem 1rem 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  max-width: 42.8rem;
}
.c-regapp * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
/*
  -- Reg app hed
  Presumably an H1. Appears over the textured
  motif that signifies the Registration App screens.
*/
.c-regapp__hed {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 2.3635rem;
  font-size: var(--alpha);
  margin: 0 auto 2.625rem;
  line-height: 2.75rem;
  text-align: center;
  color: #ffffff;
  color: var(--white);
}
/*
  -- Reg app inner
  Inner container for Registration App fields and options.
  Appears as a “floating” white box. Applied to a fieldset element, when a
  ieldset is appropriate. Otherwise, appliied to a div.
*/
.c-regapp__inner {
  margin: 2.5rem auto;
  background-color: #ffffff;
  background-color: var(--white);
  padding: 1rem 1.5rem 2.75rem;
  -webkit-box-shadow: .25rem .3rem .5rem 0 rgba(0, 0, 0, 0.15);
          box-shadow: .25rem .3rem .5rem 0 rgba(0, 0, 0, 0.15);
  position: relative;
}
/*
  -- Ripcord
  Class for the “back” (or what-have-you) link that appears in the upper-left
  corner of .c-regapp__inner.
*/
.c-regapp__ripcord {
  font-size: .9090rem;
  font-size: var(--epsilon);
  line-height: 1.5rem;
}
/*
  -- Inner badge
  Iconography for school/district/other
*/
img.c-regapp__inner-badge {
  width: 10rem;
  display: block;
  height: auto;
  margin: .5rem auto;
}
.c-regapp__ripcord + img.c-regapp__inner-badge {
  margin-top: -1.75rem;
}
/*
  -- Legend
  Legends are annoying to style, but semantically worth it, imo,
  if they make sense for the context, eg. we need a heading/subheading to appear
  first in, or to label, a fieldset.
*/
.c-regapp__legend {
  margin: 1.25rem auto 1rem;
  padding: 0;
  font-size: 1.346rem;
  font-size: var(--gamma);
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  line-height: 1.2;
  float: left; /* Tricksy! Setting the legend to float positions the legend inside of the fieldset. */
  position: relative; /* This and the following two rules are required to center an element that would otherwise be aligned left due to the float. */
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 100%;
}
/*
  -- Subhed
  Presumably an H2. Intentionally has the same appearance as
  the legend above. Use if a legend element doesn't make sense (eg. to style a
  subheading not contained within a fieldset, or to style a subheading that is
  not the first/only heading in a fieldset).
*/
.c-regapp__subhed {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 1.346rem;
  font-size: var(--gamma);
  color: rgb(69,53,54);
  color: var(--text);
  line-height: 1.2;
}
/*
  -- Field and info groups
  Fieldgroups appear in forms, infogroups do not, but they’re laid out
  identically within the Registration App.
*/
.c-regapp__fieldgroup,
.c-regapp__infogroup {
  margin: 1rem auto;
  width: 100%;
  max-width: 23.5rem;
  clear: left; /* I know! A clearing floats flashback! Clears the floated legend element when it’s present. */
}
.c-regapp__fieldgroup:last-child, .c-regapp__infogroup:last-child {
    margin-bottom: 0;
  }
.c-regapp__fieldgroup:first-child, .c-regapp__infogroup:first-child {
    margin-top: 1.25rem;
  }
/*
  -- Button group
  Layout for groups of buttons.
*/
.c-regapp__buttongroup {
  margin: 1.5rem auto;
  width: 100%;
  max-width: 23.5rem;
  text-align: center;
  clear: left; /* I know! A clearing floats flashback! Clears the floated legend element when it’s present. */
}
.c-regapp__buttongroup:last-child {
    margin-bottom: 0;
  }
.regapp__buttongroup > *:not(:last-child) {
  margin-left: 1rem;
}
.c-regapp__buttongroup--sso {
  position: relative;
  padding-top: 2rem;
  margin-top: 2rem;
}
.c-regapp__buttongroup--sso::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 0;
    right: 0;
    background-color: #bfbfbf;
    background-color: var(--med-gray);
    height: 1px;
  }
.c-regapp__buttongroup--sso::after {
    content: 'or';
    -webkit-font-feature-settings: "smcp";
            font-feature-settings: "smcp";
    font-variant: small-caps;
    letter-spacing: 0.05em;
    position: absolute;
    top: -0.875em;
    left: 50%;
    margin-left: -1rem;
    width: 2rem;
    background-color: #ffffff;
    background-color: var(--white);
    color: #767676;
    color: var(--aa-gray);
  }
/*
  -- Big radio group
  Layout for grouping `c-regapp__bigradioduo` elements
*/
.c-regapp__bigradiogroup {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  max-width: 30.5rem;
  padding-top: .5rem;
  margin: auto;
  text-align: center;
  clear: left;
}
/*
  -- Subject groups
  Styles for subject groupings of curriculum options.
*/
.c-regapp__subjectgroup {
  margin: 2rem auto 1rem;
  border: .125rem solid rgb(255,184,28);
  border: .125rem solid var(--our-primary-yellow);
  border-radius: .4rem;
  padding: .5rem 1rem;
  max-width: 30.5rem;
  position: relative;
}
.c-regapp__subjectlabel {
  position: absolute;
  left: 1.25rem;
  top: -.575em;
  margin: 0;
  padding: 0 .25rem;
  line-height: 1.1rem;
  background: #ffffff;
  background: var(--white);
  text-transform: uppercase;
  font-size: 1rem;
  font-size: var(--delta);
  letter-spacing: .03em;
}
/*
  -- Label-related patterns
  Styles for label elements and the various types of text that
  they might contain.
*/
.c-regapp__labelgroup {
  display: block;
  margin-bottom: .5rem;
  line-height: 1.25;
}
.c-regapp__labeldesc {
  padding-right: .75em;
}
.c-regapp__labelhelp {
  display: inline-block;
  color: #767676;
  color: var(--aa-gray);
  font-size: .825rem;
  font-size: var(--zeta);
  font-weight: 400;
  line-height: 1.2;
}
.c-regapp__labelerror {
  display: block;
  color: rgb(215,65,2);
  color: var(--accent-aa);
  font-size: .825rem;
  font-size: var(--zeta);
  font-weight: 700;
  line-height: 1.2;
}
/*
  -- Big radio-related patterns
*/
.c-regapp__bigradioduo {
  display: inline-block;
  width: 100%;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 9rem;
          flex: 1 1 9rem;
  max-width: 9rem;
  margin: 0 .5rem;
  overflow: hidden;
  position: relative;
  clear: left; /* I know! A clearing floats flashback! Clears the floated legend element when it’s present. */
}
.c-regapp__bigradioduo input[type="radio"] {
  position: absolute;
  left: -100%;
}
.c-regapp__bigradio {
  cursor: pointer;
  line-height: 1.2;
  margin-bottom: 1.25rem;
}
.c-regapp__bigradio::before {
  content: "";
  display: block;
  width: 100%;
  height: 5.25rem;
  margin: auto auto .5rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border: #ebebeb .125rem solid;
  border: var(--light-gray) .125rem solid;
  border-radius: .4rem;
  background-size: 6.5rem;
  background-position: center;
  background-repeat: no-repeat;
}
.c-regapp__bigradio.for-school::before {
  background-image: url(/assets/forms/org-icon-school-c1ad7d89651c16618fab80f066d0b502326749117e10e51c43f4371e806c9f08.svg);
}
.c-regapp__bigradio.for-district::before {
  background-image: url(/assets/forms/org-icon-district-7c67499141077eca3ed95b3f01c6a93505f603ac63fd96432fdf4662942367f1.svg);
}
.c-regapp__bigradio.for-other::before {
  background-image: url(/assets/forms/org-icon-other-54c5d4b856566dafeeba678eb34239bebf4bc508cc38234d2a33d62fa15e3a68.svg);
}
.c-regapp__bigradio:hover::before {
  border-color: rgb(255,184,28);
  border-color: var(--our-primary-yellow);
}
input:checked + .c-regapp__bigradio::before {
  background-color: rgb(255,184,28);
  background-color: var(--our-primary-yellow);
  border-color: rgb(255,184,28);
  border-color: var(--our-primary-yellow);
}
input:checked + .c-regapp__bigradio.for-school::before {
  background-image: url(/assets/forms/org-icon-school-selected-ebe8fb26834a50bb9ba3ebc318778699965852a976d60abe387de3853f45a44e.svg);
}
input:checked + .c-regapp__bigradio.for-district::before {
  background-image: url(/assets/forms/org-icon-district-selected-3becd08e754d01d62a5f6048aa2e9d1bcb5f33b271354b89a44375392cd7948c.svg);
}
input:checked + .c-regapp__bigradio.for-other::before {
  background-image: url(/assets/forms/org-icon-other-selected-3761bf0c95d5d5bfdb65e1446fb9959fe1f11a4560596cae27aba2a8621b7081.svg);
}
/*
  -- Reg app details
  Show/hide disclosure pattern
*/
.c-regapp__details {
  font-size: .825rem;
  font-size: var(--zeta);
  margin: auto;
}
.c-regapp__details > summary {
  cursor: pointer;
  list-style: none;
  position: relative;
  text-decoration: underline;
  color: rgb(215,65,2);
  color: var(--accent-aa);
}
.c-regapp__details > summary:focus,
.c-regapp__details > summary:target {
  outline: none;
  -webkit-animation: a-yellow-fade 1s ease-in-out;
          animation: a-yellow-fade 1s ease-in-out;
}
.c-regapp__details > summary::before {
  content: "*";
  position: absolute;
  font-size: 1.346rem;
  font-size: var(--gamma);
  line-height: 1.19625rem;
  line-height: calc(var(--zeta)*1.45);
  left: -.5em;
}
.c-regapp__details[open] summary ~ * {
  -webkit-animation: a-sweep-in .5s ease-in-out;
          animation: a-sweep-in .5s ease-in-out; /* "a-sweep-in" animation defined below */
}
.c-regapp__details > summary::-webkit-details-marker {
  display: none;
}
/*
  -- Input Duo
  Conjoined input field + button = inputduo!
*/
.c-regapp__inputduo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.c-regapp__inputduo_zip { /* Keep things narrow in this known scenario */
  max-width: 10rem;
}
.c-regapp__inputduo input[type='email'],
.c-regapp__inputduo input[type='number'],
.c-regapp__inputduo input[type='password'],
.c-regapp__inputduo input[type='search'],
.c-regapp__inputduo input[type='tel'],
.c-regapp__inputduo input[type='text'],
.c-regapp__inputduo input[type='url'] {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-right: none;
}
.c-regapp__inputduo .c-button,
.c-regapp__inputduo button,
.c-regapp__inputduo input[type='button'],
.c-regapp__inputduo input[type='reset'],
.c-regapp__inputduo input[type='submit'] {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 3rem;
          flex: 0 0 3rem;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  margin: 0;
}
/*
  -- Reg app note style
  One step smaller than default text size.
*/
.c-regapp__note {
  display: inline-block;
  color: rgb(69,53,54);
  color: var(--text);
  font-size: .9090rem;
  font-size: var(--epsilon);
  font-weight: 400;
  line-height: 1.2;
}
.c-regapp__note_centered {
  display: block;
  text-align: center;
}
.c-regapp__note_notice {
  font-size: .825rem;
  font-size: var(--zeta);
  font-weight: 700;
  line-height: 1.2;
}
.c-regapp__note_alert {
  color: rgb(215,65,2);
  color: var(--accent-aa);
  font-size: .825rem;
  font-size: var(--zeta);
  font-weight: 700;
  line-height: 1.2;
}
/*
  -- Curriculum Choice
  Conjoined Text + "Go" CTA
*/
.c-regapp__curriculum-choice {
  border-color: rgb(255,184,28);
  border-color: var(--our-primary-yellow);
  background-color: #ebebeb;
  background-color: var(--light-gray);
  border-radius: .4rem;
  color: rgb(69,53,54);
  color: var(--text);
  display: block;
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
  width: 100%;
  text-decoration: none;
  font-weight: 600;
  line-height: 1.1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0 0 0 1rem;
}
@media (min-width: 525px) {
    .c-regapp__curriculum-choice {
      -webkit-box-align: baseline;
          -ms-flex-align: baseline;
              align-items: baseline;;
    }
  }
.c-regapp__curriculum-choice:hover {
  color: rgb(215,65,2);
  color: var(--accent-aa);
}
.c-regapp__curriculum-choice::after {
  content: "";
  width: 0;
  height: 0;
  border-top: transparent solid .5rem;
  border-right: transparent solid .75rem;
  border-bottom: transparent solid .5rem;
  border-left: rgb(69,53,54) solid .75rem;
  border-left: var(--text) solid .75rem;
  margin-left: auto;
  -ms-flex-item-align: center;
      align-self: center;
}
.c-regapp__curriculum-choice:hover::after {
  border-left-color: rgb(241,89,42);
  border-left-color: var(--accent);
}
.c-regapp__curriculum-title {
  padding: .75rem 0;
  margin-right: .75em;
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  line-height: 1.3rem;
}
@media (min-width: 525px) {
    .c-regapp__curriculum-title {
      white-space: nowrap;
      -webkit-box-flex: 0;
          -ms-flex: 0 0 0px;
              flex: 0 0 0;
    }
  }
.c-regapp__curriculum-edition {
  font-size: .825rem;
  font-size: var(--zeta);
  text-transform: uppercase;
  letter-spacing: .02em;
  font-weight: 700;
  padding: 0 1rem 0 .5rem;
  line-height: 1.3rem;
  color: rgb(215,65,2);
  color: var(--accent-aa);
  white-space: nowrap;
  display: inline-block;
  vertical-align: baseline;
}
.c-regapp__edition-separator {
  color: rgb(255,184,28);
  color: var(--our-primary-yellow);
  border-style: dashed;
}
/*
  -- Reg App Helper Classes
    For aligning elements outside `.c-regapp-*group`s with the group
    to which they refer.
*/
.c-regapp .for-fieldgroup,
.c-regapp .for-infogroup,
.c-regapp .for-buttongroup {
  max-width: 23.5rem;
  margin-left: auto;
  margin-right: auto;
}
.c-regapp .for-bigradiogroup {
  max-width: 30.5rem;
  padding: 0 .75rem;
  margin-left: auto;
  margin-right: auto;
}
.c-regapp .for-subjectgroup {
  max-width: 30.5rem;
  margin-left: auto;
  margin-right: auto;
}
.c-regapp__ref-marker { /* For less obtrusive linked footnote markers */
  text-decoration: none;
  line-height: 0;
  font-size: 1.3em;
}
/*
  -- ANIMATION
*/
@-webkit-keyframes a-sweep-in {
  0% {
    opacity: 0;
    margin-left: .5rem;
    margin-right: -.5rem;
  }
  100% {
    opacity: 1;
    margin-left: 0rem;
    margin-right: 0;
  }
}
@keyframes a-sweep-in {
  0% {
    opacity: 0;
    margin-left: .5rem;
    margin-right: -.5rem;
  }
  100% {
    opacity: 1;
    margin-left: 0rem;
    margin-right: 0;
  }
}
@-webkit-keyframes a-yellow-fade {
  0% {
    background-color: rgba(255,184,28,.25); /* Based on our-primary-yellow */
  }
  100% {
    background-color: rgba(255,184,28,0); /* Based on our-primary-yellow */
  }
}
@keyframes a-yellow-fade {
  0% {
    background-color: rgba(255,184,28,.25); /* Based on our-primary-yellow */
  }
  100% {
    background-color: rgba(255,184,28,0); /* Based on our-primary-yellow */
  }
}
/* ----------------------------------------------------------------------------
 *
 * Component: HubSpot Form Styles
 *
 * Overriding styles for Hub Spot inline/embedded form markup and classes.
 *
 * ------------------------------------------------------------------------- */
.hs-form {

}
form.hs-form fieldset {
  margin-top: 1rem;
}
/* Style this heading like .c-regapp__subhed */
.hs-form h2 {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-size: 1.346rem;
  font-size: var(--gamma);
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 0;
}
/* HS-specific number input-related styles */
.hs-fieldtype-number {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-line-pack: center;
      align-content: center;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
.hs-fieldtype-number label {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 10rem;
          flex: 1 0 10rem;
  margin: .5rem 0 .5rem 0;
  line-height: 1.1;
}
.hs-fieldtype-number label em {
  font-weight: normal;
  font-style: normal;
}
.hs-fieldtype-number label em::before {
  content: "— ";
}
.hs-field-desc {
  font-weight: normal;
  font-size: .75rem;
  font-size: var(--eta);
}
form.hs-form fieldset .hs-input[type="number"] {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 5rem;
          flex: 1 1 5rem;
  width: 5rem;
  padding-right: .25rem;
  height: 2rem;
}
/* HS-specific checkbox input-related styles */
.hs-dependent-field .hs-fieldtype-booleancheckbox .hs-form-booleancheckbox label {
  font-size: 1rem;
  font-size: var(--delta);
}
.hs-input[type="checkbox"] {
  margin-right: .25em;
}
.hs-fieldtype-checkbox + .hs-fieldtype-checkbox {
  margin-top: 1.5em;
}
.hs-fieldtype-checkbox label em {
  font-weight: normal;
  font-style: normal;
}
.hs-fieldtype-checkbox label em::before {
  content: "— ";
}
.hs-form-checkbox-display {
  font-weight: normal;
  line-height: 1.2;
  font-size: .825rem;
  font-size: var(--zeta);
}
/* HS-specific date input-related styles */
form.hs-form fieldset .hs-input[type="date"] {
  width: auto;
}
/* HS-specific note styles */
.hs-form .c-regapp__note {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
/* Inputs List — as for radio, checkboxes, etc. */
.inputs-list {
  margin-left: 0;
  padding-left: 0;
  list-style: none;
}
/* Radio-related Input Styles */
.hs-form-radio {
  list-style: none;
}
.hs-form-radio-display {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.hs-form-radio-display span {
  font-weight: normal;
}
form.hs-form fieldset .hs-input[type="radio"] {
  margin-right: .5rem;
}
/* HS Button Styles */
.hs-button { /* Style this element like a standard reg app button */
  background-color: rgb(215,65,2);
  background-color: var(--accent-aa);
  border: 0.125rem solid rgb(215,65,2);
  border: 0.125rem solid var(--accent-aa);
  border-radius: .4rem;
  color: #ffffff;
  color: var(--white);
  cursor: pointer;
  display: inline-block;
  font-size: .75rem;
  font-size: var(--eta);
  font-weight: 700;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 2.5rem;
  letter-spacing: .04rem;
  line-height: 1rem;
  padding: .75rem 2.5rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  max-width: 100%;
  white-space: normal;
  margin-top: .125rem;
  margin-bottom: .125rem;
}
.hs-button[type="submit"] {
  margin-top: 1rem;
}
.hs-button:focus,
.hs-button:hover {
  background-color: rgb(241,89,42);
  background-color: var(--accent);
  border-color: rgb(241,89,42);
  border-color: var(--accent);
  color: #ffffff;
  color: var(--white);
  outline: 0;
}
.hs-button[disabled] {
  cursor: default;
  opacity: .5;
}
.hs-button[disabled]:focus,
.hs-button[disabled]:hover {
  color: #ffffff;
  color: var(--white);
  background-color: rgb(215,65,2);
  background-color: var(--accent-aa);
  border-color: rgb(215,65,2);
  border-color: var(--accent-aa);
}
/* Captcha and error styles */
.hs-recaptcha {
  margin: 1rem 0;
}
.hs-error-msgs { /* List of error messages */
  margin-top: 0;
  display: inline-block;
  color: rgb(215,65,2);
  color: var(--accent-aa);
  font-weight: 700;
  margin-right: .5rem;
}
.hs-error-msg { /* Individual error messages */
  list-style: none;
  font-size: .75rem;
  font-size: var(--eta);
  line-height: 1.2;
}
@-webkit-keyframes spin {
  0% {
      -webkit-transform: rotate(0deg);
              transform: rotate(0deg);
  }
  100% {
      -webkit-transform: rotate(360deg);
              transform: rotate(360deg);
  }
}
@keyframes spin {
  0% {
      -webkit-transform: rotate(0deg);
              transform: rotate(0deg);
  }
  100% {
      -webkit-transform: rotate(360deg);
              transform: rotate(360deg);
  }
}
.c-autocomplete {
  position: relative;
  width: 100%;
}
.c-autocomplete_options {
  position: absolute;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding-left: 0;
  margin: 0;
  width: 100%;
  max-height: 20em;
  border: 1px solid lightgrey;
  border-top: none;
  overflow-y: auto;
  z-index: 1;
}
.c-autocomplete_options[hidden], .c-autocomplete_options:empty {
    display: none;
  }
.c-autocomplete_options > li {
    position: relative;
    display: block;
    padding: 0.75em 1.25em;
    margin: 0;
    margin-bottom: -1px;
    background-color: white;
    border-top: 1px solid lightgrey;
  }
.c-autocomplete_options > li:first-child {
      border-top: none;
    }
.c-autocomplete_options > li:last-child {
      margin-bottom: 0;
    }
.c-autocomplete_options > li.active {
      z-index: 2;
      color: white;
      background-color: dodgerblue;
      border-color: dodgerblue;
    }
.c-autocomplete_options > li[aria-disabled] {
      color: gray;
    }
.c-autocomplete_options > li[role="status"] {
      text-align: center;
    }
.c-autocomplete__throbber {
  border: 5px solid rgb(241,89,42);
  border: 5px solid var(--accent);
  border-bottom-color: transparent;
  border-radius: 50%;
  display: inline-block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-animation: spin 1s linear infinite;
          animation: spin 1s linear infinite;
}
/* Shared Styles */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL FOOTER
 * Included in this document: Variables, Base, Styles
 *
 * The instance of the global footer embedded within
 * the reg app is considered canonical.
 *
 *-------------------------------------*/
/*--------------------------------------
*
* COMPONENT: OUR GLOBAL FOOTER -- ROBOTO FONTS
*
*-------------------------------------*/
/* If Google Fonts are already imported into the app, append "Roboto:500" if necessary. */
/* If Google Fonts are not already imported, uncomment the following import statement or (better) add the equivalent to the <head> of the app. */
/* @import url('https://fonts.googleapis.com/css?family=Roboto:500&subset=latin'); */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL FOOTER -- VARIABLES
 *
 *-------------------------------------*/
/* Color palette */
:root {

/* Colors with "-our-" in their name are sourced from the OUR brand guidelines */

--footer-our-primary-dark-gray:    rgb(69,53,54);    /* #453536 */
--footer-white:                    #ffffff;

/*
  Typographic sizes

  Font sizes based on minor third (1.2) http://www.modularscale.com/?1&em&1.2

*/

--footer-font-base-min: 16px;
--footer-font-base-max: 20px;
--footer-fluid-em:      calc(14.72px + 0.4vw);
--footer-zeta:          .833em;
--footer-eta:           .75em;

}
/* Custom Media Declarations for Breakpoints */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL FOOTER -- BASE
 *
 *-------------------------------------*/
.c-footer {
  font-size: 16px;
  font-size: var(--footer-font-base-min);
  font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
  font-weight: 500;
  text-rendering: optimizelegibility; /* Can cause problems in some versions of Android */
   -webkit-text-size-adjust: none;
      -moz-text-size-adjust: none;
       -ms-text-size-adjust: none;
           text-size-adjust: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-display: swap; /* https://www.zachleat.com/web/comprehensive-webfonts/#font-display */
  line-height: 1.45;
  margin-top: auto;

  /* Fluid from 16px to 20px between breakpoints */
}
@media (min-width: 537px) {
    .c-footer {
     font-size: 16px;
     font-size: var(--footer-font-base-min); /* 16px at 320px */ /* px fallback for browsers that don’t get calc */
     font-size: calc(14.72px + 0.4vw);
    }
  }
@media (min-width: 1320px) {
    .c-footer {
     font-size: 20px;
     font-size: var(--footer-font-base-max); /* 20px at 1320px */
    }
  }
.c-footer * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.c-footer *::before, .c-footer *::after {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
/*--------------------------------------
*
* COMPONENT: OUR GLOBAL FOOTER -- OVERRIDES
* Override overarching properties in curriculum gateway theme
*
*-------------------------------------*/
.c-footer li {
  padding-left: inherit;
  line-height: inherit;
}
.c-footer li::before,
.c-footer li::before {
  content: normal;
}
/*--------------------------------------
*
* COMPONENT: OUR GLOBAL FOOTER -- STYLES
*
*-------------------------------------*/
.c-footer {
  padding: .75em 1em 4em; /* Fat padding-bottom accommodates feedback widget */
  color: rgba(255, 255, 255,.65);
  background: rgb(69,53,54);
  background: var(--footer-our-primary-dark-gray);
  text-align: center;
}
@media (min-width: 411px) {
    .c-footer {
      text-align: left;
    }
  }
.c-footer a {
   color: rgba(255, 255, 255,.8);
   text-decoration: underline;
}
.c-footer a:hover {
   color: #ffffff;
   color: var(--footer-white);
   text-decoration: underline;
}
.c-footer__navs {
  font-size: .833em;
  font-size: var(--footer-zeta);
}
@media (min-width: 411px) {
    .c-footer__navs {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
    }
  }
.c-footer__nav-corporate {
  list-style: none;
  margin: calc(7.36px + 0.2vw) 0 0;
  margin: calc(7.36px + 0.2vw) 0 0;
  margin: calc(var(--footer-fluid-em)*0.5) 0 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (min-width: 411px) {
    .c-footer__nav-corporate {
      margin-top: 0;
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start;
      margin-right: auto;
    }
  }
.c-footer__nav-social {
  list-style: none;
  margin: calc(14.72px + 0.4vw) 0 0;
  margin: var(--footer-fluid-em) 0 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (min-width: 411px) {
    .c-footer__nav-social {
      margin-top: 0;
      -webkit-box-pack: end;
          -ms-flex-pack: end;
              justify-content: flex-end;
      margin-left: auto;
    }
  }
.c-footer__our-logo {
  height: calc(29.44px + 0.8vw);
  height: calc(29.44px + 0.8vw);
  height: calc(var(--footer-fluid-em)*2);
  width: auto;
  display: block;
  margin: calc(3.68px + 0.1vw) auto 0;
  margin: calc(3.68px + 0.1vw) auto 0;
  margin: calc(var(--footer-fluid-em)*0.25) auto 0;
}
@media (min-width: 411px) {
    .c-footer__our-logo {
      position: relative;
      top: calc(1.84px + 0.05vw);
      top: calc(1.84px + 0.05vw);
      top: calc(var(--footer-fluid-em)*0.125);
      margin-right: calc(14.72px + 0.4vw);
      margin-right: var(--footer-fluid-em);
      margin-top: 0;
    }
  }
@media (min-width: 1320px) {
    .c-footer__our-logo {
      top: 2.5px;
      top: calc(var(--footer-font-base-max)*0.125);
      margin-right: 20px;
      margin-right: var(--footer-font-base-max);
      height: 40px;
      height: calc(var(--footer-font-base-max)*2);
    }
  }
.c-footer__nav-corporate li,
.c-footer__nav-social li {
  margin-bottom: 0;
}
.c-footer__nav-corporate li + li {
  margin-left: 20px;
  margin-left: var(--footer-font-base-max);
}
@media (min-width: 1320px) {
    .c-footer__nav-corporate li + li {
      margin-left: 20px;
      margin-left: var(--footer-font-base-max);
    }
  }
.c-footer__nav-social li + li {
  margin-left: 20px;
  margin-left: var(--footer-font-base-max);
}
@media (min-width: 1320px) {
    .c-footer__nav-social li + li {
      margin-left: 20px;
      margin-left: var(--footer-font-base-max);
    }
  }
.c-footer__social-icon {
  height: 1em;
  width: auto;
  display: block;
}
.c-footer__copyrights {
  font-size: .75em;
  font-size: var(--footer-eta);
  margin-top: calc(14.72px + 0.4vw);
  margin-top: var(--footer-fluid-em);
  padding-top: calc(14.72px + 0.4vw);
  padding-top: var(--footer-fluid-em);
  border-top: solid 1px rgba(255, 255, 255,.35);
}
@media (min-width: 411px) {
    .c-footer__copyrights {
      margin-top: calc(11.04px + 0.3vw);
      margin-top: calc(11.04px + 0.3vw);
      margin-top: calc(var(--footer-fluid-em)*0.75);
    }
  }
@media (min-width: 1320px) {
    .c-footer__copyrights {
      padding-top: 20px;
      padding-top: var(--footer-font-base-max);
      margin-top: 15px;
      margin-top: calc(var(--footer-font-base-max)*0.75);
    }
  }
.c-footer__copyrights:only-child,
.c-footer__copyrights:first-child {
  margin-top: 0;
  border: none;
  padding-top: calc(3.68px + 0.1vw);
  padding-top: calc(3.68px + 0.1vw);
  padding-top: calc(var(--footer-fluid-em)*0.25);
}
@media (min-width: 1320px) {
    .c-footer__copyrights:only-child, .c-footer__copyrights:first-child {
      padding-top: 5px;
      padding-top: calc(var(--footer-font-base-max)*0.25);
    }
  }
.c-footer__build {
  display: block;
}
/* ----------------------------------------------------------------------------
 *
 * COMPONENT: OUR MODAL MESSAGE
 * Intended for only very short messages. Message box grows with content,
 * so this component is not appropriate for content that might exceed
 * the height of the viewport on any device.
 *
 * Bonus! Body properties to prevent scrolling when the modal is open.
 *
 *--------------------------------------------------------------------------- */
/*--------------------------------------
*
* COMPONENT: OUR MODAL MESSAGE -- ROBOTO FONTS
*
*-------------------------------------*/
/* Roboto at 400 weight is necessary for the typography in this component. */
/* Roboto at 500 weight is necessary for the button in this component. */
/* If Google Fonts are already imported into the app, append "Roboto:400,500,700" if necessary. */
/* If Google Fonts are not already imported, uncomment the following import statement or (better) add
the equivalent to the <head> of the app. */
/* @import url('https://fonts.googleapis.com/css?family=Roboto:400,500&subset=latin'); */
/*--------------------------------------
 *
 * COMPONENT: OUR MODAL MESSAGE -- VARIABLES
 *
 *-------------------------------------*/
:root {

  /* Color palette */

  --modal-teal:       #008470;
  --modal-light-gray: #ebebeb; /* 8% black */
  --modal-white:      #ffffff;

  /*
    Typographic sizes

  */

  --modal-font-base-min: 16px;
  --modal-font-base-max: 20px;
  --modal-fluid-em:      calc(14.72px + 0.4vw);
  --modal-beta:          1.784em;
  --modal-gamma:         1.2em;
  --modal-delta:         1em;
  --modal-zeta:          .875em;
  --modal-eta:           .75em;

}
/* Viewport Width Variables */
:root {

  --modal-bp-min:          320px;
  --modal-bp-mega:         1024px;
  --modal-bp-max:          1320px;

}
/* Custom Media Declarations for Breakpoints */
/*--------------------------------------
*
* COMPONENT: OUR MODAL MESSAGE -- TYPOGRAPHY
*
*-------------------------------------*/
.c-modal {
  font-size: 16px;
  font-size: var(--modal-font-base-min);
  font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-display: swap; /* https://www.zachleat.com/web/comprehensive-webfonts/#font-display */
  line-height: 1.35;

  /* Fluid from 16px to 20px between breakpoints */

  /* Fluid type size from 16px to 20px between --modal-bp-min and --modal-bp-max breakpoints */


}
@media (min-width: 320px) {
    .c-modal {
      font-size: 16px;
      font-size: var(--modal-font-base-min); /* 16px at 320px */
      font-size: calc(14.72px + 0.4vw);
    }
  }
@media (min-width: 1320px) {
    .c-modal {
      font-size: 20px;
      font-size: var(--modal-font-base-max); /* 20px at 1320px */
    }
  }
/* Fluid line-height from 1.35 to 1.45 between --modal-bp-min and --modal-bp-max breakpoints */
@media (min-width: 320px) {
.c-modal {
    line-height: 1.35; /* 1.35 at 320px */
    line-height: calc(1.35em + 0.01vw - 0.032px);


}
  }
@media (min-width: 1320px) {
.c-modal {
    line-height: 1.45; /* 1.45 at 1320px */


}
  }
/*--------------------------------------
*
* COMPONENT: OUR MODAL MESSAGE -- STYLES
*
*-------------------------------------*/
body.l-has-modal {
  overflow-y: hidden;
}
.c-modal {
  display: none;
}
.c-modal * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
body.l-has-modal .c-modal {
  background: rgba(0, 0, 0, 0.85) !important;
}
body.l-has-modal .c-modal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -ms-flex-pack: distribute;
      justify-content: space-around;
  z-index: 8675310;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.c-modal__content {
  margin-left: 5vw;
  margin-right: 5vw;
  padding: 2em;
  z-index: 8675310;
  background: #008470;
  background: var(--modal-teal);
  color: #ffffff;
  color: var(--modal-white);
  -webkit-box-shadow: 0 25px 100px rgba(0, 0, 0, 0.5);
          box-shadow: 0 25px 100px rgba(0, 0, 0, 0.5);
  border-radius: .25em;
  text-align: center;
  position: relative;
}
@media (min-width: 1024px) {
  .c-modal__content {
    margin-right: 15vw;
    margin-left: 15vw;
  }
}
.c-modal p {
  margin-bottom: 1em;
  font-weight: 400;
}
a.c-modal__close,
a.c-modal__close:link,
a.c-modal__close:visited
a.c-modal__close:active {
  position: absolute;
  text-decoration: none;
  top: calc(1.84px + 0.05vw);
  top: calc(1.84px + 0.05vw);
  top: calc(var(--modal-fluid-em)*0.125);
  right: calc(7.36px + 0.2vw);
  right: calc(7.36px + 0.2vw);
  right: calc(var(--modal-fluid-em)*0.5);
  font-size: 1.784em;
  font-size: var(--modal-beta);
  line-height: 1;
  -webkit-appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  color: #ffffff;
  color: var(--modal-white);
  cursor: pointer;
  opacity: .8;
  -webkit-transition: none;
  transition: none;
}
a.c-modal__close:focus,
a.c-modal__close:hover {
  opacity: 1;
  color: #ffffff;
  color: var(--modal-white);
}
a.c-modal__cancel,
a.c-modal__cancel:link,
a.c-modal__cancel:visited
a.c-modal__cancel:active {
  font-size: .75em;
  font-size: var(--modal-eta);
  background-color: transparent;
  color: #ebebeb;
  color: var(--modal-light-gray);
  cursor: pointer;
  display: block;
  font-weight: 500;
  min-height: 2.375em;
  line-height: 1.2;
  text-align: center;
  text-decoration: underline;
  -moz-appearance: none;
       appearance: none;
  margin: calc(3.68px + 0.1vw) 0 0;
  margin: calc(3.68px + 0.1vw) 0 0;
  margin: calc(var(--modal-fluid-em)*0.25) 0 0;
  -webkit-appearance: none;
  -webkit-transition: none;
  transition: none;
}
a.c-modal__cancel:focus,
a.c-modal__cancel:hover {
  color: #ffffff;
  color: var(--modal-white);
}
.c-modal__content > h1 {
    font-size: 1.2em;
    font-size: var(--modal-gamma);
    font-weight: 700;
  }
.c-modal__content > a[role="button"],
  .c-modal__content > a[role="button"]:link,
  .c-modal__content > a[role="button"]:visited
  .c-modal__content > a[role="button"]:active {
    font-size: .75em;
    font-size: var(--modal-eta);
    background-color: transparent;
    border: calc(0.92px + 0.025vw) solid #ebebeb;
    border: calc(0.92px + 0.025vw) solid #ebebeb;
    border: calc(var(--modal-fluid-em)*0.0625) solid var(--modal-light-gray);
    border-radius: calc(3.68px + 0.1vw);
    border-radius: calc(3.68px + 0.1vw);
    border-radius: calc(var(--modal-fluid-em)*0.25);
    color: #ebebeb;
    color: var(--modal-light-gray);
    cursor: pointer;
    display: inline-block;
    font-weight: 700;
    min-height: 2.375em;
    line-height: 1.2;
    padding: .75em 1.875em;
    text-align: center;
    text-decoration: none;
    -moz-appearance: none;
         appearance: none;
    margin: calc(3.68px + 0.1vw) 0 0;
    margin: calc(3.68px + 0.1vw) 0 0;
    margin: calc(var(--modal-fluid-em)*0.25) 0 0;
    -webkit-appearance: none;
    -webkit-transition: none;
    transition: none;
  }
.c-modal__content > a[role="button"]:focus,
  .c-modal__content > a[role="button"]:hover {
    background-color: transparent;
    border-color: #ffffff;
    border-color: var(--modal-white);
    color: #ffffff;
    color: var(--modal-white);
  }
.c-modal__content > a[rel="alternate"],
  .c-modal__content > a[rel="alternate"]:link,
  .c-modal__content > a[rel="alternate"]:visited
  .c-modal__content > a[rel="alternate"]:active {
    font-size: .875em;
    font-size: var(--modal-zeta);
    position: relative;
    padding-right: 2.5em;
    margin: calc(7.36px + 0.2vw) 0;
    margin: calc(7.36px + 0.2vw) 0;
    margin: calc(var(--modal-fluid-em)*0.5) 0;
  }
.c-modal__content > a[rel="alternate"]::after {
    position: absolute;
    top: 50%;
    margin-top: -.5em;
    right: .125em;
    content: "";
    width: 0;
    height: 0;
    border-top: transparent solid .5em;
    border-right: transparent solid .75em;
    border-bottom: transparent solid .5em;
    border-left: #ebebeb solid .75em;
    border-left: var(--modal-light-gray) solid .75em;
    margin-left: auto;
  }
.c-modal__content > a[rel="alternate"]:focus::after,
  .c-modal__content > a[rel="alternate"]:hover::after {
    border-left-color: #ffffff;
    border-left-color: var(--modal-white);
  }
.h-modal-url-wrap {
  word-wrap: break-word;
}
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV
 * Included in this document: Variables, Base, Styles
 *
 * The instance of the global nav embedded within
 * the reg app is canonical.
 * (https://github.com/openupresources/curriculum-gateway)
 *
 *-------------------------------------*/
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV -- ROBOTO FONTS
 *
 *-------------------------------------*/
/* Avoid loading unnecessary font weights! */
/* Always necessary: */
/* Roboto 500 for top and second-level list items. */
/* Sometimes necessary: */
/* Roboto 400 for third-level list items in narrow viewports and global notifications. */
/* Only necessary in the Curriculum Gateway/Reg App: */
/* Roboto 700 for “Create New Account” on login page. */
/* If Google Fonts are already imported into the app, include "&family=Roboto:ital,wght@0,400;0,500;1,700" as necessary. */
/* If Google Fonts are not already imported, uncomment the following import statement or (better) add
 the equivalent to the <head> of the app. */
/* @import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;1,700&display=swap'); */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV -- VARIABLES
 *
 *-------------------------------------*/
/* Color palette */
:root {

  /* Colors with "-our-" in their name are sourced from the OUR brand guidelines */

--nav-global-our-primary-orange:       rgb(252,76,2);    /* #FC4C02 */
--nav-global-our-globalnav-orange:     rgb(241,89,42);   /* #F1592A  - a less bright orange */
--nav-global-our-primary-yellow:       rgb(255,184,28);  /* #FFB81C */
--nav-global-our-primary-gray:         rgb(110,98,89);   /* #6E6259 */
--nav-global-our-primary-dark-gray:    rgb(69,53,54);    /* #453536 */
--nav-global-white:                    white;
--nav-global-light-gray:               rgb(241,241,241);

/*
  Typographic sizes

  Font sizes based on minor third (1.2) http://www.modularscale.com/?1&em&1.2

*/

--nav-global-font-base-min: 16px;
--nav-global-font-base-max: 20px;
--nav-global-fluid-em:      calc(14.72px + 0.4vw);
--nav-global-delta:         1.2em;
--nav-global-epsilon:       .833em;
--nav-global-zeta:          .8em;

}
/* Custom Media Declarations for Breakpoints */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV -- BASE
 *
 *-------------------------------------*/
.c-nav-global {
   font-size: 16px;
   font-size: var(--nav-global-font-base-min);
   font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
   font-weight: 500;
   text-rendering: optimizelegibility; /* Can cause problems in some versions of Android */
     -webkit-text-size-adjust: none;
        -moz-text-size-adjust: none;
         -ms-text-size-adjust: none;
             text-size-adjust: none;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
   font-display: swap; /* https://www.zachleat.com/web/comprehensive-webfonts/#font-display */
   line-height: 1.45;

   /* Fluid from 16px to 20px between breakpoints */
}
@media (min-width: 537px) {
     .c-nav-global {
       font-size: 16px;
       font-size: var(--nav-global-font-base-min); /* 16px at 320px */ /* px fallback for browsers that don’t get calc */
       font-size: calc(14.72px + 0.4vw);
     }
   }
@media (min-width: 1320px) {
     .c-nav-global {
       font-size: 20px;
       font-size: var(--nav-global-font-base-max); /* 20px at 1320px */
     }
   }
.c-nav-global * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.c-nav-global *::before, .c-nav-global *::after {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV -- STYLES
 *
 *-------------------------------------*/
@media (min-width: 1024px) {
    .c-nav-global {
      z-index: 8675309;
      width: 100%;
    }
  }
.c-nav-global__wrapper {
  padding: .75em 1em;
  background: rgb(241,89,42);
  background: var(--nav-global-our-globalnav-orange);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position:relative;
}
@media (min-width: 1024px) {
    .c-nav-global__wrapper {
      padding: 0 .25em 0 1em;
    }
  }
.c-nav-global__logolink {
  display: block;
}
@media (min-width: 1024px) {
    .c-nav-global__logolink {
      padding: 0.83125em 0;
    }
  }
.c-nav-global__logoimg {
  display: block;
  height: 2em;
  width: auto;
}
.c-nav-global__menu {
  display:inline-block;
  text-decoration: none;
  color: white;
  color: var(--nav-global-white);
  border: 3px rgb(255,184,28) solid;
  border: 3px var(--nav-global-our-primary-yellow) solid; /* Normally, I prefer rems/ems for all dimensions, but browser rounding on an element this small results in different pixel widths across adjacent instances of this same element. The difference is noticeable and annoying.  */
  border-radius: calc(18.4px + 0.5vw);
  border-radius: calc(18.4px + 0.5vw);
  border-radius: calc(var(--nav-global-fluid-em)*1.25);
  padding: calc(7.36px + 0.2vw) calc(14.72px + 0.4vw);
  padding: calc(7.36px + 0.2vw) calc(14.72px + 0.4vw);
  padding: calc(var(--nav-global-fluid-em)*0.5) calc(var(--nav-global-fluid-em));
  text-transform: uppercase;
  line-height: calc(14.72px + 0.4vw);
  line-height: calc(14.72px + 0.4vw);
  line-height: calc(var(--nav-global-fluid-em));
  width: calc(73.6px + 2vw);
  width: calc(73.6px + 2vw);
  width: calc(var(--nav-global-fluid-em)*5);
  text-align:center;
  font-size: .833em;
  font-size: var(--nav-global-epsilon);
  font-weight: 500;
}
@media (min-width: 1024px) {
    .c-nav-global__menu {
      display: none;
    }
  }
.c-nav-global__menu:link,
  .c-nav-global__menu:visited,
  .c-nav-global__menu:hover,
  .c-nav-global__menu:active {
    color: white;
    color: var(--nav-global-white);
  }
@media (max-width: 1023px) {
    .c-nav-global__nav {
      background: rgb(241,89,42);
      background: var(--nav-global-our-globalnav-orange);
      padding: .75em 1em;
      text-align: right;
      position: fixed;
      overflow-y: scroll;
      z-index: 8675309;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      visibility: hidden;
      opacity: 0;
      -webkit-transition: opacity 0.5s, visibility 0s 0.5s;
      transition: opacity 0.5s, visibility 0s 0.5s;
    }

      .c-nav-global__nav:target:not([data-skip-targeting]), .c-nav-global__nav[data-visible] {
        opacity: 1;
        visibility: visible;
        -webkit-transition: opacity 0.5s;
        transition: opacity 0.5s;
      }
  }
.c-nav-global__list {
  list-style: none;
  margin: 1em auto 0;
  padding: 2em 1em 2em;
  text-align: center;
  position: static;
}
@media (min-width: 1024px) {
    .c-nav-global__list {
      margin: 0;
      padding: 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
    }
  }
.c-nav-global__list {
  /* Annoying necessity - override of OUR wordpress theme defaults for ul */
  position: static;
}
.c-nav-global__listitem {
  list-style: none;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
  margin: 0;
  padding: .65625em 0 0;
  line-height: 1.25;
}
@media (min-width: 1024px) {
    .c-nav-global__listitem {
      padding: 1.15625em 0;
    }
  }
/* Annoying necessity - override of OUR wordpress theme defaults for ul li */
.c-nav-global__listitem::before {
  content: normal;
}
.c-nav-global__label {
  color: white;
  color: var(--nav-global-white);
  font-size: 1.2em;
  font-size: var(--nav-global-delta);
  display: inline-block;
}
@media (min-width: 1024px) {
    .c-nav-global__label {
      font-size: .833em;
      font-size: var(--nav-global-epsilon);
    }
  }
.c-nav-global__link,
.c-nav-global__link:link,
.c-nav-global__link:visited,
.c-nav-global__link:active {
  font-size: 1.2em;
  font-size: var(--nav-global-delta);
  font-weight: 500;
  position: relative;
  display: inline-block;
  text-decoration: none;
  color: white;
  color: var(--nav-global-white);
  padding: calc(7.36px + 0.2vw);
  padding: calc(7.36px + 0.2vw);
  padding: calc(var(--nav-global-fluid-em)*0.5);
  -webkit-transition: none;
  transition: none;
}
@media (min-width: 1024px) {
    .c-nav-global__link, .c-nav-global__link:link, .c-nav-global__link:visited, .c-nav-global__link:active {
      font-size: .833em;
      font-size: var(--nav-global-epsilon);
      padding: 0 20px;
      padding: 0 var(--nav-global-font-base-max);
    }
  }
@media (min-width: 1024px) {
    .c-nav-global__link::before,
    .c-nav-global__link:link::before,
    .c-nav-global__link:visited::before,
    .c-nav-global__link:active::before,
    .c-nav-global__link::after,
    .c-nav-global__link:link::after,
    .c-nav-global__link:visited::after,
    .c-nav-global__link:active::after {
      display: block;
      height: 3px; /* Normally, I prefer rems/ems for all dimensions, but browser rounding on an element this small results in different pixel widths across adjacent instances of this same element. The difference is noticeable and annoying.  */
      width: 100%;
      content: "";
      position: relative;
      top: 2px;
    }
  }
@media (max-width: 1023px) {
    .c-nav-global__link::before,
    .c-nav-global__link:link::before,
    .c-nav-global__link:visited::before,
    .c-nav-global__link:active::before,
    .c-nav-global__link::after,
    .c-nav-global__link:link::after,
    .c-nav-global__link:visited::after,
    .c-nav-global__link:active::after {
      position: absolute;
      bottom: calc(3.68px + 0.1vw);
      bottom: calc(3.68px + 0.1vw);
      bottom: calc(var(--nav-global-fluid-em)*0.25);
      left: 0;
      right: 0;
      width: auto;
    }
  }
.c-nav-global__link:hover, .c-nav-global__link:link:hover, .c-nav-global__link:visited:hover, .c-nav-global__link:active:hover {
    color: white;
    color: var(--nav-global-white);
    text-decoration: none;
  }
@media (min-width: 1024px) {
    .c-nav-global__link:hover::after,
    .c-nav-global__link:link:hover::after,
    .c-nav-global__link:visited:hover::after,
    .c-nav-global__link:active:hover::after,
    .c-nav-global__link:focus::after,
    .c-nav-global__link:link:focus::after,
    .c-nav-global__link:visited:focus::after,
    .c-nav-global__link:active:focus::after {
      background: rgb(255,184,28);
      background: var(--nav-global-our-primary-yellow);
    }
  }
/* 700 weight only required in the Reg App for formatting "Create New Account" */
.c-nav-global__label + .c-nav-global__link,
.c-nav-global__label + .c-nav-global__link:link,
.c-nav-global__label + .c-nav-global__link:visited,
.c-nav-global__label + .c-nav-global__link:active {
  padding-left: 0;
  font-weight: 700;
}
.c-nav-global__label + .c-nav-global__link::before,
  .c-nav-global__label + .c-nav-global__link:link::before,
  .c-nav-global__label + .c-nav-global__link:visited::before,
  .c-nav-global__label + .c-nav-global__link:active::before,
  .c-nav-global__label + .c-nav-global__link::after,
  .c-nav-global__label + .c-nav-global__link:link::after,
  .c-nav-global__label + .c-nav-global__link:visited::after,
  .c-nav-global__label + .c-nav-global__link:active::after {
    display: block;
    height: 3px; /* Normally, I prefer rems/ems for all dimensions, but browser rounding on an element this small results in different pixel widths across adjacent instances of this same element. The difference is noticeable and annoying.  */
    width: 100%;
    content: "";
    position: relative;
    top: 2px;
  }
.c-nav-global__label + .c-nav-global__link::after, .c-nav-global__label + .c-nav-global__link:link::after, .c-nav-global__label + .c-nav-global__link:visited::after, .c-nav-global__label + .c-nav-global__link:active::after {
    background: rgb(255,184,28);
    background: var(--nav-global-our-primary-yellow);
    opacity: .75;
  }
.c-nav-global__label + .c-nav-global__link:hover::after, .c-nav-global__label + .c-nav-global__link:link:hover::after, .c-nav-global__label + .c-nav-global__link:visited:hover::after, .c-nav-global__label + .c-nav-global__link:active:hover::after {
    opacity: 1;
  }
@media (min-width: 1024px) {
    .c-nav-global__label + .c-nav-global__link::before,
    .c-nav-global__label + .c-nav-global__link:link::before,
    .c-nav-global__label + .c-nav-global__link:visited::before,
    .c-nav-global__label + .c-nav-global__link:active::before,
    .c-nav-global__label + .c-nav-global__link::after,
    .c-nav-global__label + .c-nav-global__link:link::after,
    .c-nav-global__label + .c-nav-global__link:visited::after,
    .c-nav-global__label + .c-nav-global__link:active::after {
      top: 0;
    }
  }
@media (min-width: 1024px) {
      .c-nav-global__listitem:last-child:not(:only-child) .c-nav-global__link, .c-nav-global__listitem:last-child:not(:only-child) .c-nav-global__link:link, .c-nav-global__listitem:last-child:not(:only-child) .c-nav-global__link:visited, .c-nav-global__listitem:last-child:not(:only-child) .c-nav-global__link:active {
        margin-left: 20px;
        margin-left: var(--nav-global-font-base-max);
        padding-left: 40px;
        padding-left: calc(var(--nav-global-font-base-max)*2);
        border-left: 1px solid white;
        border-left: 1px solid var(--nav-global-white);
      }
    }
.c-nav-global__notification {
  padding: .8em 3em;
  padding: var(--nav-global-zeta) 3em;
  background-color: orange;
  text-align: center;
}
.c-nav-global__notification p {
  font-size: .8em;
  font-size: var(--nav-global-zeta);
  font-weight: 400;
  line-height: 1.2;
  margin: 0;
}
.c-nav-global__notification a {
  color: rgb(69,53,54);
  color: var(--nav-global-our-primary-dark-gray);
  border: none;
  text-decoration: underline;
  white-space: nowrap;
}
.c-nav-global__helper-nowrap {
  white-space: nowrap;
}
/* Make content visible screen readers only when not focused or active */
/* "sr" meaning "screen-reader". Learn more: https://css-tricks.com/inclusively-hidden/ */
.sr-only:not(:focus):not(:active) {
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
*:focus {
  outline: none;
}
*.focus-visible {
  outline: none;
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
*.focus-visible {
  outline: none;
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
*:focus-visible {
  outline: none;
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
@media (forced-colors: active) {
  *.focus-visible {
    outline: 0.2em solid;
  }
  *:focus-visible {
    outline: 0.2em solid;
  }
}
/** Utility Classes **/
/*
  Used to indicate preformatted whitespace.
*/
.u-preformatted { white-space: pre }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3N0eWxlc2hlZXRzL2FwcGxpY2F0aW9uLmNzcyIsIi4uL3N0eWxlc2hlZXRzL2FwcGxpY2F0aW9uL3ZlbmRvci9ub3JtYWxpemUuY3NzIiwiLi4vc3R5bGVzaGVldHMvYXBwbGljYXRpb24vdmVuZG9yL2Nob2ljZXMuY3NzIiwiLi4vc3R5bGVzaGVldHMvYXBwbGljYXRpb24vdmVuZG9yL3JhaWxzLmNzcyIsIi4uL3N0eWxlc2hlZXRzL2FwcGxpY2F0aW9uL2NvcmUvX3NpemVzLmNzcyIsIi4uL3N0eWxlc2hlZXRzL2FwcGxpY2F0aW9uL2NvcmUvX2ZvbnRzLmNzcyIsIi4uL3N0eWxlc2hlZXRzL2FwcGxpY2F0aW9uL2NvcmUvX2NvbG9yLmNzcyIsIi4uL3N0eWxlc2hlZXRzL2FwcGxpY2F0aW9uL2NvcmUvX3R5cG9ncmFwaHkuY3NzIiwiLi4vc3R5bGVzaGVldHMvYXBwbGljYXRpb24vY29yZS9faWNvbnMuY3NzIiwiLi4vc3R5bGVzaGVldHMvYXBwbGljYXRpb24vY29yZS9fYnV0dG9uLmNzcyIsIi4uL3N0eWxlc2hlZXRzL2FwcGxpY2F0aW9uL2NvcmUvX2Zvcm1fZWxlbWVudHMuY3NzIiwiLi4vc3R5bGVzaGVldHMvYXBwbGljYXRpb24vbGF5b3V0L19sYXlvdXQuY3NzIiwiLi4vc3R5bGVzaGVldHMvYXBwbGljYXRpb24vY29tcG9uZW50cy9fcmVnYXBwLmNzcyIsIi4uL3N0eWxlc2hlZXRzL2FwcGxpY2F0aW9uL2NvbXBvbmVudHMvX2h1YnNwb3QuY3NzIiwiLi4vc3R5bGVzaGVldHMvc2hhcmVkL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9jb21wb25lbnRzL19mb290ZXIuY3NzIiwiLi4vc3R5bGVzaGVldHMvc2hhcmVkL2NvbXBvbmVudHMvX21vZGFsLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9jb21wb25lbnRzL19uYXYtZ2xvYmFsLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9jb21wb25lbnRzL19hY2Nlc3NpYmlsaXR5LmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9zdHlsZXMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZCQUE2QjtBQ0E3QiwyRUFBMkU7QUFFM0U7K0VBQytFO0FBRS9FOzs7RUFHRTtBQUVGO0VBQ0UsaUJBQWlCLEVBQUUsTUFBTTtFQUN6Qiw4QkFBOEIsRUFBRSxNQUFNO0FBQ3hDO0FBRUE7K0VBQytFO0FBRS9FOztFQUVFO0FBRUY7RUFDRSxTQUFTO0VBQ1QsVUFBVTtBQUNaO0FBRUE7O0VBRUU7QUFFRjtFQUNFLGNBQWM7QUFDaEI7QUFFQTs7O0VBR0U7QUFFRjtFQUNFLGNBQWM7RUFDZCxnQkFBZ0I7QUFDbEI7QUFFQTsrRUFDK0U7QUFFL0U7OztFQUdFO0FBRUY7RUFDRSwrQkFBdUI7VUFBdkIsdUJBQXVCLEVBQUUsTUFBTTtFQUMvQixTQUFTLEVBQUUsTUFBTTtFQUNqQixpQkFBaUIsRUFBRSxNQUFNO0FBQzNCO0FBRUE7OztFQUdFO0FBRUY7RUFDRSxpQ0FBaUMsRUFBRSxNQUFNO0VBQ3pDLGNBQWMsRUFBRSxNQUFNO0FBQ3hCO0FBRUE7K0VBQytFO0FBRS9FOztFQUVFO0FBRUY7RUFDRSw2QkFBNkI7QUFDL0I7QUFFQTs7O0VBR0U7QUFFRjtFQUNFLG1CQUFtQixFQUFFLE1BQU07RUFDM0IsMEJBQTBCLEVBQUUsTUFBTTtFQUNsQywwQkFBaUM7RUFBakMsc0RBQWlDO1VBQWpDLDhDQUFpQyxFQUFFLE1BQU07QUFDM0M7QUFFQTs7RUFFRTtBQUVGOztFQUVFLG1CQUFtQjtBQUNyQjtBQUVBOzs7RUFHRTtBQUVGOzs7RUFHRSxpQ0FBaUMsRUFBRSxNQUFNO0VBQ3pDLGNBQWMsRUFBRSxNQUFNO0FBQ3hCO0FBRUE7O0VBRUU7QUFFRjtFQUNFLGNBQWM7QUFDaEI7QUFFQTs7O0VBR0U7QUFFRjs7RUFFRSxjQUFjO0VBQ2QsY0FBYztFQUNkLGtCQUFrQjtFQUNsQix3QkFBd0I7QUFDMUI7QUFFQTtFQUNFLGVBQWU7QUFDakI7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QUU4QjtBQUNoQztBQUxBO0VBQ0UsYUFBYTtFQUNiOzs2QkFFOEI7VUFGOUI7OzZCQUU4QjtFQUY5Qjs7Z0NBRThCO1VBRjlCOztnQ0FFOEI7QUFDaEM7QUFFQTtFQUNFO0lBQ0Usb0JBQW9CO0VBQ3RCO0VBRkE7SUFDRSxvQkFBb0I7RUFDdEI7QUFDRjtBQ3hCQSxzQkFBc0I7QUFFdEI7O0NBRUM7QUFDRCxrQkFBa0IsaUJBQWlCIiwiZmlsZSI6ImFwcGxpY2F0aW9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIFZlbmRvciBDU1MgYW5kIHZhcmlhYmxlcyAqL1xuQGltcG9ydCBcIi4vYXBwbGljYXRpb24vdmVuZG9yL25vcm1hbGl6ZS5jc3NcIjsgLyogQ3VzdG9taXplZCBmb3IgT1VSIGRlc2lnbiAqL1xuQGltcG9ydCBcIi4vYXBwbGljYXRpb24vdmVuZG9yL2Nob2ljZXMuY3NzXCI7IC8qIEN1c3RvbWl6ZWQgZm9yIE9VUiBkZXNpZ24gKi9cbkBpbXBvcnQgXCIuL2FwcGxpY2F0aW9uL3ZlbmRvci9yYWlscy5jc3NcIjtcblxuLyogQ29yZSBDU1MgYW5kIHZhcmlhYmxlcyAqL1xuQGltcG9ydCBcIi4vYXBwbGljYXRpb24vY29yZS9fc2l6ZXMuY3NzXCI7XG5AaW1wb3J0IFwiLi9hcHBsaWNhdGlvbi9jb3JlL19mb250cy5jc3NcIjtcbkBpbXBvcnQgXCIuL2FwcGxpY2F0aW9uL2NvcmUvX2NvbG9yLmNzc1wiO1xuQGltcG9ydCBcIi4vYXBwbGljYXRpb24vY29yZS9fdHlwb2dyYXBoeS5jc3NcIjtcbkBpbXBvcnQgXCIuL2FwcGxpY2F0aW9uL2NvcmUvX2ljb25zLmNzc1wiO1xuQGltcG9ydCBcIi4vYXBwbGljYXRpb24vY29yZS9fYnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIi4vYXBwbGljYXRpb24vY29yZS9fZm9ybV9lbGVtZW50cy5jc3NcIjtcblxuLyogTGF5b3V0ICovXG5AaW1wb3J0IFwiLi9hcHBsaWNhdGlvbi9sYXlvdXQvX2xheW91dC5jc3NcIjtcblxuLyogQ29tcG9uZW50cyAqL1xuQGltcG9ydCBcIi4vYXBwbGljYXRpb24vY29tcG9uZW50cy9fcmVnYXBwLmNzc1wiO1xuQGltcG9ydCBcIi4vYXBwbGljYXRpb24vY29tcG9uZW50cy9faHVic3BvdC5jc3NcIjtcblxuQGltcG9ydCBcIi4vc2hhcmVkL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLmNzc1wiO1xuXG4vKiBTaGFyZWQgU3R5bGVzICovXG5AaW1wb3J0IFwiLi9zaGFyZWQvc3R5bGVzLmNzc1wiO1xuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9XG49ICAgICAgICAgICAgICAgIENob2ljZXMgICAgICAgICAgICAgICAgID1cbj0gICAgIENTUyBDdXN0b21pemVkIGZvciBPVVIgUmVnIEFwcCAgICAgPVxuPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cbi5jaG9pY2VzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IHZhcigtLWVwc2lsb24pO1xufVxuXG4uY2hvaWNlczpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5jaG9pY2VzOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uY2hvaWNlcy5pcy1kaXNhYmxlZCAuY2hvaWNlc19faW5uZXIsXG4uY2hvaWNlcy5pcy1kaXNhYmxlZCAuY2hvaWNlc19faW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1ncmF5KTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmNob2ljZXMuaXMtZGlzYWJsZWQgLmNob2ljZXNfX2l0ZW0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uY2hvaWNlcyBbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj0nc2VsZWN0LW9uZSddIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPSdzZWxlY3Qtb25lJ10gLmNob2ljZXNfX2lubmVyIHtcbiAgcGFkZGluZy1ib3R0b206IC4zNzVyZW07XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9J3NlbGVjdC1vbmUnXSAuY2hvaWNlc19faW5wdXQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IC4zcmVtIDFyZW07XG4gIGJvcmRlci1ib3R0b206IC4wNjI1cmVtIHNvbGlkIHZhcigtLWFhLWxhcmdlLWdyYXkpO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiAyLjVyZW07XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9J3NlbGVjdC1vbmUnXSAuY2hvaWNlc19fYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU1qRWlJR2hsYVdkb2REMGlNakVpSUhacFpYZENiM2c5SWpBZ01DQXlNU0F5TVNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0OFp5Qm1hV3hzUFNJak1EQXdJaUJtYVd4c0xYSjFiR1U5SW1WMlpXNXZaR1FpUGp4d1lYUm9JR1E5SWsweUxqVTVNaTR3TkRSc01UZ3VNelkwSURFNExqTTJOQzB5TGpVME9DQXlMalUwT0V3dU1EUTBJREl1TlRreWVpSXZQanh3WVhSb0lHUTlJazB3SURFNExqTTJORXd4T0M0ek5qUWdNR3d5TGpVME9DQXlMalUwT0V3eUxqVTBPQ0F5TUM0NU1USjZJaTgrUEM5blBqd3ZjM1puUGc9PSk7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtc2l6ZTogLjRyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwO1xuICBtYXJnaW4tdG9wOiAtLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICB3aWR0aDogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMTBlbTtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPSdzZWxlY3Qtb25lJ10gLmNob2ljZXNfX2J1dHRvbjpob3ZlciwgLmNob2ljZXNbZGF0YS10eXBlKj0nc2VsZWN0LW9uZSddIC5jaG9pY2VzX19idXR0b246Zm9jdXMge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPSdzZWxlY3Qtb25lJ10gLmNob2ljZXNfX2J1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIC4xcmVtIHZhcigtLWxpZ2h0LWdyYXkpO1xufVxuXG4uY2hvaWNlc1tkYXRhLXR5cGUqPSdzZWxlY3Qtb25lJ10gLmNob2ljZXNfX2l0ZW1bZGF0YS12YWx1ZT0nJ10gLmNob2ljZXNfX2J1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9J3NlbGVjdC1vbmUnXTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHZhcigtLXRleHQpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItd2lkdGg6IC4zNXJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMXJlbTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0uMTI1cmVtO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj0nc2VsZWN0LW9uZSddLmlzLW9wZW46YWZ0ZXIge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLXRleHQpIHRyYW5zcGFyZW50O1xuICBtYXJnaW4tdG9wOiAtLjVyZW07XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9J3NlbGVjdC1vbmUnXVtkaXI9J3J0bCddOmFmdGVyIHtcbiAgbGVmdDogLjU3NXJlbTtcbiAgcmlnaHQ6IGF1dG87XG59XG5cbi5jaG9pY2VzW2RhdGEtdHlwZSo9J3NlbGVjdC1vbmUnXVtkaXI9J3J0bCddIC5jaG9pY2VzX19idXR0b24ge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj0nc2VsZWN0LW11bHRpcGxlJ10gLmNob2ljZXNfX2lubmVyLFxuLmNob2ljZXNbZGF0YS10eXBlKj0ndGV4dCddIC5jaG9pY2VzX19pbm5lciB7XG4gIGN1cnNvcjogdGV4dDtcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj0nc2VsZWN0LW11bHRpcGxlJ10gLmNob2ljZXNfX2J1dHRvbixcbi5jaG9pY2VzW2RhdGEtdHlwZSo9J3RleHQnXSAuY2hvaWNlc19fYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1yaWdodDogLS4ycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtYXJnaW4tbGVmdDogLjRyZW07XG4gIHBhZGRpbmctbGVmdDogLjc1cmVtO1xuICBib3JkZXItbGVmdDogLjA2MjVyZW0gc29saWQgIzAwOGZhMTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU1qRWlJR2hsYVdkb2REMGlNakVpSUhacFpYZENiM2c5SWpBZ01DQXlNU0F5TVNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0OFp5Qm1hV3hzUFNJalJrWkdJaUJtYVd4c0xYSjFiR1U5SW1WMlpXNXZaR1FpUGp4d1lYUm9JR1E5SWsweUxqVTVNaTR3TkRSc01UZ3VNelkwSURFNExqTTJOQzB5TGpVME9DQXlMalUwT0V3dU1EUTBJREl1TlRreWVpSXZQanh3WVhSb0lHUTlJazB3SURFNExqTTJORXd4T0M0ek5qUWdNR3d5TGpVME9DQXlMalUwT0V3eUxqVTBPQ0F5TUM0NU1USjZJaTgrUEM5blBqd3ZjM1puUGc9PSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMnJlbTtcbiAgd2lkdGg6IC40cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgb3BhY2l0eTogMC43NTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLmNob2ljZXNbZGF0YS10eXBlKj0nc2VsZWN0LW11bHRpcGxlJ10gLmNob2ljZXNfX2J1dHRvbjpob3ZlciwgLmNob2ljZXNbZGF0YS10eXBlKj0nc2VsZWN0LW11bHRpcGxlJ10gLmNob2ljZXNfX2J1dHRvbjpmb2N1cyxcbi5jaG9pY2VzW2RhdGEtdHlwZSo9J3RleHQnXSAuY2hvaWNlc19fYnV0dG9uOmhvdmVyLFxuLmNob2ljZXNbZGF0YS10eXBlKj0ndGV4dCddIC5jaG9pY2VzX19idXR0b246Zm9jdXMge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2hvaWNlc19faW5uZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIHBhZGRpbmc6IC42MjVyZW0gLjVyZW0gLjE4NzVyZW0gMDtcbiAgYm9yZGVyOiAuMDYyNXJlbSBzb2xpZCB2YXIoLS1hYS1sYXJnZS1ncmF5KTtcbiAgYm9yZGVyLXJhZGl1czogLjRyZW07XG4gIGZvbnQtc2l6ZTogdmFyKC0tZXBzaWxvbik7XG4gIG1pbi1oZWlnaHQ6IDNyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5pcy1mb2N1c2VkIC5jaG9pY2VzX19pbm5lcixcbi5pcy1vcGVuIC5jaG9pY2VzX19pbm5lciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWEtbGFyZ2UtZ3JheSk7XG59XG5cbi5pcy1vcGVuIC5jaG9pY2VzX19pbm5lciB7XG4gIGJvcmRlci1yYWRpdXM6IC40cmVtIC40cmVtIDAgMDtcbn1cblxuLmlzLWZsaXBwZWQuaXMtb3BlbiAuY2hvaWNlc19faW5uZXIge1xuICBib3JkZXItcmFkaXVzOiAwIDAgLjRyZW0gLjRyZW07XG59XG5cbi5jaG9pY2VzX19saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5jaG9pY2VzX19saXN0LS1zaW5nbGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IC4ycmVtIC43NXJlbSAuMnJlbSAxcmVtO1xuICB3aWR0aDogMTAwJTtcbn1cblxuW2Rpcj0ncnRsJ10gLmNob2ljZXNfX2xpc3QtLXNpbmdsZSB7XG4gIHBhZGRpbmctcmlnaHQ6IC4ycmVtO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG59XG5cbi5jaG9pY2VzX19saXN0LS1zaW5nbGUgLmNob2ljZXNfX2l0ZW0ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNob2ljZXNfX2xpc3QtLW11bHRpcGxlIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uY2hvaWNlc19fbGlzdC0tbXVsdGlwbGUgLmNob2ljZXNfX2l0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIHBhZGRpbmc6IC4ycmVtIDFyZW07XG4gIGZvbnQtc2l6ZTogLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi1yaWdodDogLjE4NzVyZW07XG4gIG1hcmdpbi1ib3R0b206IC4xODc1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1ncmF5KTtcbiAgYm9yZGVyOiAuMDYyNXJlbSBzb2xpZCB2YXIoLS1vdXItcHJpbWFyeS15ZWxsb3cpO1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5jaG9pY2VzX19saXN0LS1tdWx0aXBsZSAuY2hvaWNlc19faXRlbVtkYXRhLWRlbGV0YWJsZV0ge1xuICBwYWRkaW5nLXJpZ2h0OiAuMjVyZW07XG59XG5cbltkaXI9J3J0bCddIC5jaG9pY2VzX19saXN0LS1tdWx0aXBsZSAuY2hvaWNlc19faXRlbSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IC4xODc1cmVtO1xufVxuXG4uY2hvaWNlc19fbGlzdC0tbXVsdGlwbGUgLmNob2ljZXNfX2l0ZW0uaXMtaGlnaGxpZ2h0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1vdXItcHJpbWFyeS15ZWxsb3cpO1xuICBib3JkZXI6IC4wNjI1cmVtIHNvbGlkICMwMDhmYTE7XG59XG5cbi5pcy1kaXNhYmxlZCAuY2hvaWNlc19fbGlzdC0tbXVsdGlwbGUgLmNob2ljZXNfX2l0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWFhYWFhO1xuICBib3JkZXI6IC4wNjI1cmVtIHNvbGlkICM5MTkxOTE7XG59XG5cbi5jaG9pY2VzX19saXN0LS1kcm9wZG93biB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2hpdGUpO1xuICBib3JkZXI6IC4wNjI1cmVtIHNvbGlkIHZhcigtLWFhLWxhcmdlLWdyYXkpO1xuICB0b3A6IDEwMCU7XG4gIG1hcmdpbi10b3A6IC0uMDYyNXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogLjRyZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAuNHJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3aWxsLWNoYW5nZTogdmlzaWJpbGl0eTtcbn1cblxuLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duLmlzLWFjdGl2ZSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5pcy1vcGVuIC5jaG9pY2VzX19saXN0LS1kcm9wZG93biB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWEtbGFyZ2UtZ3JheSk7XG59XG5cbi5pcy1mbGlwcGVkIC5jaG9pY2VzX19saXN0LS1kcm9wZG93biB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAtLjA2MjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IC40cmVtIC40cmVtIDAgMDtcbn1cblxuLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIC5jaG9pY2VzX19saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtaGVpZ2h0OiAxNXJlbTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcbn1cblxuLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIC5jaG9pY2VzX19pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAuNHJlbSAxcmVtO1xuICBmb250LXNpemU6IHZhcigtLWVwc2lsb24pO1xufVxuXG4uY2hvaWNlc19fbGlzdC0tZHJvcGRvd24gLmNob2ljZXNfX2l0ZW06bnRoLW9mLXR5cGUoZXZlbikge1xuICAvKiBiYWNrZ3JvdW5kOiB2YXIoLS1saWdodC1ncmF5KTsgKi9cbn1cblxuW2Rpcj0ncnRsJ10gLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIC5jaG9pY2VzX19pdGVtIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAuY2hvaWNlc19fbGlzdC0tZHJvcGRvd24gLmNob2ljZXNfX2l0ZW0tLXNlbGVjdGFibGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07XG4gIH1cbiAgLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIC5jaG9pY2VzX19pdGVtLS1zZWxlY3RhYmxlOmFmdGVyIHtcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtc2VsZWN0LXRleHQpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0temV0YSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC41cmVtO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxuICBbZGlyPSdydGwnXSAuY2hvaWNlc19fbGlzdC0tZHJvcGRvd24gLmNob2ljZXNfX2l0ZW0tLXNlbGVjdGFibGUge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgfVxuICBbZGlyPSdydGwnXSAuY2hvaWNlc19fbGlzdC0tZHJvcGRvd24gLmNob2ljZXNfX2l0ZW0tLXNlbGVjdGFibGU6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IC41cmVtO1xuICB9XG59XG5cbi5jaG9pY2VzX19saXN0LS1kcm9wZG93biAuY2hvaWNlc19faXRlbS0tc2VsZWN0YWJsZS5pcy1oaWdobGlnaHRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhpZ2hsaWdodCk7XG59XG5cbi5jaG9pY2VzX19saXN0LS1kcm9wZG93biAuY2hvaWNlc19faXRlbS0tc2VsZWN0YWJsZS5pcy1oaWdobGlnaHRlZDphZnRlciB7XG4gIG9wYWNpdHk6IC43NTtcbn1cblxuLmNob2ljZXNfX2l0ZW0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5jaG9pY2VzX19pdGVtLS1zZWxlY3RhYmxlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hvaWNlc19faXRlbS0tZGlzYWJsZWQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5jaG9pY2VzX19oZWFkaW5nIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAuNnJlbTtcbiAgcGFkZGluZzogLjVyZW07XG4gIGJvcmRlci1ib3R0b206IC4wNjI1cmVtIHNvbGlkICNmN2Y3Zjc7XG4gIGNvbG9yOiBncmF5O1xufVxuXG4uY2hvaWNlc19fYnV0dG9uIHtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hvaWNlc19fYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmNob2ljZXNfX2lucHV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIGZvbnQtc2l6ZTogLjdyZW07XG4gIG1hcmdpbi1ib3R0b206IC4yNXJlbTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IC4zcmVtIDAgLjNyZW0gMXJlbTtcbn1cblxuLmNob2ljZXNfX2lucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuW2Rpcj0ncnRsJ10gLmNob2ljZXNfX2lucHV0IHtcbiAgcGFkZGluZy1yaWdodDogLjFyZW07XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmNob2ljZXNfX3BsYWNlaG9sZGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHZhcigtLWFhLWdyYXkpO1xufVxuXG4uY2hvaWNlc19fbGlzdC0tZHJvcGRvd24gLmNob2ljZXNfX3BsYWNlaG9sZGVyIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5jaG9pY2VzX19saXN0LS1kcm9wZG93biAuY2hvaWNlc19fcGxhY2Vob2xkZXI6OmFmdGVyLFxuLmNob2ljZXNfX2xpc3QtLWRyb3Bkb3duIC5jaG9pY2VzX19wbGFjZWhvbGRlci5pcy1oaWdobGlnaHRlZDo6YWZ0ZXIge1xuICBvcGFjaXR5OiAwO1xufVxuXG4vKj09PT09ICBFbmQgb2YgQ2hvaWNlcyAgPT09PT09Ki9cbiIsIi8qXG4gIFJhaWxzIHVzZXMgYSBoZWxwZXIgY2FsbGVkIGBidXR0b25fdG9gIHRvIGdlbmVyYXRlIEphdmFzY3JpcHQtZnJlZSBcImxpbmtzXCIgdG9cbiAgbm9uLUdFVCBhcHBsaWNhdGlvbiByb3V0ZXMuIFdoaWxlIHRoaXMgaXMgaGVscGZ1bCBmb3IgYSBudW1iZXIgb2YgcmVhc29ucywgaXRcbiAgYWxzbyBsZWF2ZXMgdXMgd2l0aCB0aGUgbWVzcyBvZiBtYWtpbmcgc3VyZSB0aGF0IGA8YnV0dG9uPmBzIGxvb2sgc2ltcGxlci5cblxuICBXZSBjb3VsZCBzY29wZSB0aGlzIHRvIGEgcGFydGljdWxhciBwYXJlbnQgZWxlbWVudCwgYnV0IHdlIGFyZW4ndCB1c2luZ1xuICBgPGJ1dHRvbj5gcyBvdXRzaWRlIHRoaXMgY29udGV4dCwgYW5kIHRoZSBleHRyYSBxdWFsaWZpY2F0aW9ucyB3b3VsZCBjaGFuZ2VcbiAgdGhlIHJ1bGUncyBzcGVjaWZpY2l0eS5cbiovXG5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB1bnNldDtcbiAgcGFkZGluZzogdW5zZXQ7XG4gIGJvcmRlcjogdW5zZXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDb3JlOiBTSVpFU1xuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyogTW9kdWxhciBUeXBlIFNpemVzICovXG5cbjpyb290IHtcblxuICAtLXJlbTogICAgIDEwMCU7ICAgICAvKiBFZy4gQWxsIHR5cGUsIG1hcmdpbiwgYW5kIHBhZGRpbmcgc2l6ZXMgYXJlIGZhY3RvcnMgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGRlZmF1bHQgdHlwZSBzaXplIG9mIHRoZSBicm93c2VyLCB0aGUgXCJyZW1cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwaWNhbGx5IDE2cHguICovXG5cbiAgLS1iYXNlOiAgICAgICAgIDFyZW07ICAgICAvKiBFZy4gQm9keSBmb250ICovXG4gIC0tYWxwaGE6ICAgICAgICAyLjM2MzVyZW07ICAgLyogRWcuIEgxaXNoIEhlYWRpbmdzICovXG4gIC0tYmV0YTogICAgICAgICAxLjc4NHJlbTsgLyogRWcuIEgyaXNoIEhlYWRpbmdzICovXG4gIC0tZ2FtbWE6ICAgICAgICAxLjM0NnJlbTsgICAvKiBFZy4gSDNpc2ggSGVhZGluZ3MgKi9cbiAgLS1kZWx0YS1wbHVzOiAgIDEuMjVyZW07ICAgICAvKiBGb3IgdXNlIHdpdGggc21hbGwtY2FwcyB3aGVuIHN1cHBvcnRlZC4gRW11bGF0ZXMgc2l6ZSBvZiBkZWx0YSBpbiBVUFBFUkNBU0UuICovXG4gIC0tZGVsdGE6ICAgICAgICAxcmVtOyAgICAgLyogRWcuIEg0aXNoIEhlYWRpbmdzICovXG4gIC0tZXBzaWxvbjogICAgICAuOTA5MHJlbTsgLyogRWcuIEJ1dHRvbiBUZXh0ICovXG4gIC0temV0YTogICAgICAgICAuODI1cmVtOyAvKiBFZy4gRmluZSBwcmludCAqL1xuICAtLWV0YTogICAgICAgICAgLjc1cmVtOyAgIC8qIEVnLiBSZWFsbHkgZmluZSBwcmludCAqL1xuXG4gIC0tbGluZS1oZWlnaHQ6IDEuMzU7XG4gIC0tbGVhZGluZzogY2FsYygxcmVtICogdmFyKC0tbGluZS1oZWlnaHQpKTtcblxufVxuXG4vKiBDb250ZW50IEFyZWEgUmVsYXRlZCBTaXplcyAqL1xuXG46cm9vdCB7XG4gIC0tbWVhc3VyZTogNDByZW07XG4gIC0tY29udGVudC13aWR0aDogNDhyZW07XG59XG5cbi8qIFZpZXdwb3J0IFdpZHRoIFZhcmlhYmxlcyAqL1xuXG46cm9vdCB7XG5cbiAgLS1icC1taW46ICAgICAgICAgIDMyMHB4O1xuICAtLWJwLW1pbi14OiAgICAgICAgMzc1cHg7XG4gIC0tYnAtbWluLXh4OiAgICAgICA0MjVweDtcbiAgLS1icC1taW4teHh4OiAgICAgIDUwMHB4O1xuICAtLWJwLW1pZDogICAgICAgICAgNzY4cHg7XG4gIC0tYnAtbWVnYTogICAgICAgICAxMDI0cHg7XG4gIC0tYnAtbWF4OiAgICAgICAgICAxMzIwcHhcblxufVxuXG4vKiBDdXN0b20gTWVkaWEgRGVjbGFyYXRpb25zIGZvciBCcmVha3BvaW50cyAqL1xuXG5AY3VzdG9tLW1lZGlhIC0tYnAtbWluIChtaW4td2lkdGg6IDMyMHB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1taW4teCAobWluLXdpZHRoOiAzNzVweCk7XG5AY3VzdG9tLW1lZGlhIC0tYnAtbWluLXh4IChtaW4td2lkdGg6IDQyNXB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1taW4teHh4IChtaW4td2lkdGg6IDUyNXB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1taWQgKG1pbi13aWR0aDogNzY4cHgpO1xuQGN1c3RvbS1tZWRpYSAtLWJwLW1lZ2EgKG1pbi13aWR0aDogMTAyNHB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1tYXggKG1pbi13aWR0aDogMTMyMHB4KTtcbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENvcmU6IEZPTlRTXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG46cm9vdCB7XG4gIC0tZm9udC1mYW1pbHktbmF2OiAnUm9ib3RvJywgJ1RyZWJ1Y2hldCBNUycsIFRyZWJ1Y2hldCwgVGFob21hLCBzYW5zLXNlcmlmOyAvKiBHbG9iYWwgTmF2LCBHbG9iYWwgRm9vdGVyLCBNb2RhbCBNZXNzYWdlIDUwMCw3MDAgd2VpZ2h0LiAzMDAgd2VpZ2h0IHVzZWQgZm9yIGhlYWRpbmdzIGluIFBhdHRlcm4gbGlicmFyeSBvbmx5LiAqL1xuICAtLWZvbnQtZmFtaWx5LXVpOiAnUm9ib3RvJywgJ1RyZWJ1Y2hldCBNUycsIFRyZWJ1Y2hldCwgVGFob21hLCBzYW5zLXNlcmlmOyAvKiBHbG9iYWwgTmF2LCBHbG9iYWwgRm9vdGVyLCBNb2RhbCBNZXNzYWdlIDUwMCw3MDAgd2VpZ2h0LiAzMDAgd2VpZ2h0IHVzZWQgZm9yIGhlYWRpbmdzIGluIFBhdHRlcm4gbGlicmFyeSBvbmx5LiAqL1xuICAtLWZvbnQtZmFtaWx5LXRleHQ6ICdTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmOyAvKiBEZWZhdWx0IHRleHQuIDQwMCwgNjAwLCA3MDAgd2VpZ2h0ICovXG4gIC0tZm9udC1mYW1pbHktZGlzcGxheTogYWdlbmRhLW9uZSwgc2Fucy1zZXJpZjsgLyogSGVhZGluZ3Mg4oCUIDYwMCwgNzAwICovXG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDb3JlOiBDT0xPUlxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuOnJvb3Qge1xuXG4gIC8qIENvbG9ycyB3aXRoIFwiLW91ci1cIiBpbiB0aGVpciBuYW1lIGFyZSBzb3VyY2VkIGZyb20gdGhlIE9VUiBicmFuZCBndWlkZWxpbmVzLiBQdWxsZWQgZnJvbSBCb29rd29ybXMgd2ViLiAqL1xuXG4gIC0tb3VyLXByaW1hcnktb3JhbmdlOiAgICAgICByZ2IoMjUyLDc2LDIpOyAgICAvKiAjRkM0QzAyICovXG4gIC0tb3VyLWdsb2JhbG5hdi1vcmFuZ2U6ICAgICByZ2IoMjQxLDg5LDQyKTsgICAvKiAjRjE1OTJBICAtIGEgbGVzcyBicmlnaHQsIFdDQUcgQUErIGNvbXBsaWFudCBvcmFuZ2UgKi9cbiAgLS1hYS1vcmFuZ2U6ICAgICAgICAgICAgICAgIHJnYigyMTUsNjUsMik7ICAgIC8qICNkNzQxMDIgLSBBQSBvcmFuZ2Ugd2l0aCB3aGl0ZSDigJQgdXNlZCBpbiB0aGUgQ01TLCBza2V3cyByZWRkaXNoICovXG4gIC0tb3VyLXByaW1hcnkteWVsbG93OiAgICAgICByZ2IoMjU1LDE4NCwyOCk7ICAvKiAjRkZCODFDICovXG4gIC0tb3VyLXByaW1hcnktZ3JheTogICAgICAgICByZ2IoMTEwLDk4LDg5KTsgICAvKiAjNkU2MjU5ICovXG4gIC0tb3VyLXByaW1hcnktZGFyay1ncmF5OiAgICByZ2IoNjksNTMsNTQpOyAgICAvKiAjNDUzNTM2ICovXG5cbiAgLyogTmV1dHJhbCBhbmQgYWNjZW50IGNvbG9yIHZhcmlhYmxlcyAqL1xuXG4gIC0tYmxhY2s6ICAgICAgICAgICMwMDAwMDA7XG4gIC0tdGV4dDogICAgICAgICAgIHZhcigtLW91ci1wcmltYXJ5LWRhcmstZ3JheSk7XG4gIC0tZGFyay1ncmF5OiAgICAgICM0YzRjNGM7IC8qIDcwJSBibGFjayAqL1xuICAtLWFhLWdyYXk6ICAgICAgICAjNzY3Njc2OyAvKiBUaGUgbGlnaHRlc3QgZ3JheSB0aGF0IGlzIGFjY2Vzc2libGUgYXQgPCAxOHB4IHRleHQgb24gd2hpdGUgKi9cbiAgLS1hYS1sYXJnZS1ncmF5OiAgIzk1OTU5NTsgLyogVGhlIGxpZ2h0ZXN0IGdyYXkgdGhhdCBpcyBhY2Nlc3NpYmxlIGF0ID4gMThweCB0ZXh0IG9uIHdoaXRlICovXG4gIC0tbWVkLWdyYXk6ICAgICAgICNiZmJmYmY7IC8qIDI1JSBibGFjayAqL1xuICAtLWxpZ2h0LWdyYXk6ICAgICAjZWJlYmViOyAvKiA4JSBibGFjayAqL1xuICAtLXdoaXRlOiAgICAgICAgICAjZmZmZmZmO1xuXG4gIC0tYWNjZW50OiAgICAgICB2YXIoLS1vdXItZ2xvYmFsbmF2LW9yYW5nZSk7XG4gIC0tYWNjZW50LWFhOiAgICB2YXIoLS1hYS1vcmFuZ2UpO1xuXG4gIC0taGlnaGxpZ2h0OiAgICAgICAgIHJnYmEoMjU1LDE4NCwyOCwuMzUpOyAvKiBUcmFuc2x1Y2VudCBPVVIgcHJpbWFyeSB5ZWxsb3cgKi9cbn1cblxuLypcblxuU29tZSBvZiB0aGUgY29tcG9uZW50cyBpbiB0aGUgUmVnIEFwcCBhcmUgYm9ycm93ZWQgZnJvbSBNaWxsaWdyYW1cbmh0dHBzOi8vbWlsbGlncmFtLmdpdGh1Yi5pby4gTWlsbGlncmFtIHVzZXMgdGhlIGZvbGxvd2luZyBjb2xvcnMsIHRoZXkgd2lsbFxubmVlZCB0byBiZSByZXBsYWNlZCB3aXRoIGNvbG9ycyBmcm9tIHRoZSBSZWcgQXBwIFBhbGV0dGU6XG5cbmNvbG9yLWluaXRpYWw6ICNmZmYgIWRlZmF1bHRcbmNvbG9yLXByaW1hcnk6ICM5YjRkY2EgIWRlZmF1bHRcbmNvbG9yLXNlY29uZGFyeTogIzYwNmM3NiAhZGVmYXVsdFxuY29sb3ItdGVydGlhcnk6ICNmNGY1ZjYgIWRlZmF1bHRcbmNvbG9yLXF1YXRlcm5hcnk6ICNkMWQxZDEgIWRlZmF1bHRcbmNvbG9yLXF1aW5hcnk6ICNlMWUxZTEgIWRlZmF1bHRcblxuKi9cblxuLmMtY29sb3Itc3dhdGNoIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogM3JlbTtcbn1cblxuLmMtY29sb3Itc3dhdGNoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAzcmVtO1xuICBoZWlnaHQ6IDNyZW07XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbn1cblxuLmNvbG9yLW91ci1wcmltYXJ5LW9yYW5nZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tb3VyLXByaW1hcnktb3JhbmdlKTtcbn1cblxuLmNvbG9yLW91ci1nbG9iYWxuYXYtb3JhbmdlOjpiZWZvcmUsXG4uY29sb3ItYWNjZW50OjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG4uY29sb3ItYWEtb3JhbmdlOjpiZWZvcmUsXG4uY29sb3ItYWNjZW50LWFhOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtYWEpO1xufVxuXG4uY29sb3Itb3VyLXByaW1hcnkteWVsbG93OjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1vdXItcHJpbWFyeS15ZWxsb3cpO1xufVxuXG4uY29sb3Itb3VyLXByaW1hcnktZ3JheTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tb3VyLXByaW1hcnktZ3JheSk7XG59XG5cbi5jb2xvci1vdXItcHJpbWFyeS1kYXJrLWdyYXk6OmJlZm9yZSxcbi5jb2xvci10ZXh0OjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZXh0KTtcbn1cblxuLmNvbG9yLWRhcmstZ3JheTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFyay1ncmF5KTtcbn1cblxuLmNvbG9yLWFhLWdyYXk6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFhLWdyYXkpO1xufVxuXG4uY29sb3ItbWVkLWdyYXk6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lZC1ncmF5KTtcbn1cblxuLmNvbG9yLWxpZ2h0LWdyYXk6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0LWdyYXkpO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogVFlQT0dSQVBIWVxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICB0ZXh0LXNpemUtYWRqdXN0OiBub25lO1xuXG4gIC8qIEZsdWlkIHR5cGUgc2l6ZSBmcm9tIDE2cHggdG8gMjBweCBiZXR3ZWVuIC0tYnAtbWluIGFuZCAtLWJwLW1heCBicmVha3BvaW50cyAqL1xuXG4gIEBtZWRpYSAoLS1icC1taW4pIHtcbiAgICAmIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAxNnB4IGF0IDMyMHB4ICovXG4gICAgICBmb250LXNpemU6IGNhbGMoMWVtICsgKDIwIC0gMTYpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKC0tYnAtbWF4KSB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6IGNhbGMoMjBlbS8xNik7IC8qIDIwcHggYXQgMTMyMHB4ICovXG4gICAgfVxuICB9XG59XG5cbmJvZHkge1xuICBsaW5lLWhlaWdodDogMS40NTtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktdGV4dCk7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4vKlxuICAgIEhFQURJTkcgYW5kIFRFWFQgU0laRVNcbiovXG5cbi5oZWQtYWxwaGEsXG4uaGVkLWJldGEsXG4uaGVkLWdhbW1hLFxuLmhlZC1kZWx0YSxcbi5oZWQtZXBzaWxvbiB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGh5cGhlbnM6IG5vbmU7XG59XG5cbi5oZWQtYWxwaGEge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tYWxwaGEpO1xufVxuXG4uaGVkLWJldGEge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tYmV0YSk7XG59XG5cbi5oZWQtZ2FtbWEge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZ2FtbWEpO1xufVxuXG4udGV4dC1kZWx0YSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZGVsdGEpO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnRleHQtZXBzaWxvbiB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZXBzaWxvbik7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4udGV4dC16ZXRhIHtcbiAgZm9udC1zaXplOiB2YXIoLS16ZXRhKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnRleHQtZXRhIHtcbiAgZm9udC1zaXplOiB2YXIoLS1ldGEpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5wIHtcbiAgbWFyZ2luOiAuNzVyZW0gMDtcbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuYSB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtYWEpO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWFjY2VudCk7XG4gICY6bGluayxcbiAgJjp2aXNpdGVkIHtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50LWFhKTtcbiAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWFjY2VudCk7XG4gIH1cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgY29sb3I6IHZhcigtLWFjY2VudCk7XG4gICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWFjY2VudCk7XG4gIH1cbn1cblxudWwsXG5vbCB7XG4gIG1hcmdpbjogLjc1cmVtIDA7XG59XG5cbnVsIGxpLFxub2wgbGkge1xuICBtYXJnaW4tdG9wOiAuNXJlbTtcbn1cblxuLyogSGVscGVycyAqL1xuXG4uaC1ub2JyIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmgtYnJlYWstd29yZCB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLmgtZmx1c2gtdG9wIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmgtZmx1c2gtbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uaC1mbHVzaC1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ29yZTogSUNPTlNcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xuICBzdHJva2Utd2lkdGg6IDA7XG4gIHN0cm9rZTogY3VycmVudENvbG9yO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuU2luZ2xlLWNvbG9yZWQgaWNvbnMgY2FuIGJlIG1vZGlmaWVkIGxpa2Ugc286XG4uYy1pY29uLW5hbWUge1xuICBmb250LXNpemU6IDMycHg7XG4gIGNvbG9yOiByZWQ7XG59XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENvcmU6IEJVVFRPTlxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyohXG4gKiBUaGVzZSBzdHlsZXMgYm9ycm93ZWQgaGVhdmlseSBmcm9tOlxuICpcbiAqIE1pbGxpZ3JhbSB2MS4zLjBcbiAqIGh0dHBzOi8vbWlsbGlncmFtLmdpdGh1Yi5pb1xuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNyBDSiBQYXRvaWxvXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcblxuTm90YWJsZSBjdXN0b21pemF0aW9ucyBmb3Igb3VyIGFwcCBpbmNsdWRlIHJlZHVjaW5nIGFsbCBsZW5ndGhzIGJ5IDEvMi5cbk1pbGxpZ3JhbSBwcmVzdW1lcyBhIDEwcHggcmVtIHVuaXQgYXQgdGhlIHdpZGVzdCB2aWV3cG9ydC4gV2UgcHJlc3VtZSBhIDIwcHhcbnJlbSB1bml0IGF0IHRoZSB3aWRlc3Qgdmlld3BvcnQsIHNhbWUgYXMgb3VyIGRlZmF1bHQgdHlwZSBzaXplLlxuXG4qL1xuXG5idXR0b24sIC5jLWJ1dHRvbiB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uYy1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtYWEpO1xuICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkIHZhcigtLWFjY2VudC1hYSk7XG4gIGJvcmRlci1yYWRpdXM6IC40cmVtO1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiB2YXIoLS1ldGEpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiAyLjVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAuMDRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICBwYWRkaW5nOiAuNzVyZW0gMi41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBtYXJnaW4tdG9wOiAuMTI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAuMTI1cmVtO1xuICAmOmlzKGEpIHsgY29sb3I6IHZhcigtLXdoaXRlKTsgfVxufVxuXG4uYy1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudCk7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIG91dGxpbmU6IDA7XG4gICY6aXMoYSkgeyBjb2xvcjogdmFyKC0td2hpdGUpOyB9XG59XG5cbi5jLWJ1dHRvbltkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIG9wYWNpdHk6IC41O1xufVxuXG4uYy1idXR0b25bZGlzYWJsZWRdOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50LWFhKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtYWEpO1xuICAmOmlzKGEpIHsgY29sb3I6IHZhcigtLXdoaXRlKTsgfVxufVxuXG4uYy1idXR0b25fb3V0bGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWFhKTtcbiAgJjppcyhhKSB7IGNvbG9yOiB2YXIoLS1hY2NlbnQtYWEpOyB9XG59XG5cbi5jLWJ1dHRvbl9vdXRsaW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTtcbiAgY29sb3I6IHZhcigtLWFjY2VudCk7XG4gICY6aXMoYSkgeyBjb2xvcjogdmFyKC0tYWNjZW50KTsgfVxufVxuXG4uYy1idXR0b25fb3V0bGluZVtkaXNhYmxlZF06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWFhKTtcbiAgJjppcyhhKSB7IGNvbG9yOiB2YXIoLS1hY2NlbnQtYWEpOyB9XG59XG5cbi5jLWJ1dHRvbl9jbGVhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWFhKTtcbiAgJjppcyhhKSB7IGNvbG9yOiB2YXIoLS1hY2NlbnQtYWEpOyB9XG59XG5cbi5jLWJ1dHRvbl9jbGVhcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbiAgJjppcyhhKSB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyB9XG59XG5cbi5jLWJ1dHRvbl9jbGVhcltkaXNhYmxlZF06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1hYSk7XG4gICY6aXMoYSkgeyBjb2xvcjogdmFyKC0tYWNjZW50LWFhKTsgfVxufVxuXG4uYy1idXR0b25fc2VhcmNoLWljb24ge1xuICBwYWRkaW5nOiAuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHZhcigtLW91ci1wcmltYXJ5LXllbGxvdyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tb3VyLXByaW1hcnkteWVsbG93KTtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xufVxuXG4uYy1idXR0b25fc2VhcmNoLWljb25bZGlzYWJsZWRdOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tb3VyLXByaW1hcnkteWVsbG93KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1vdXItcHJpbWFyeS15ZWxsb3cpO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG59XG5cbi5jLWJ1dHRvbl9zZWFyY2gtaWNvbiAuYy1pY29uIHtcbiAgd2lkdGg6IDEuNjI1cmVtO1xuICBoZWlnaHQ6IDEuNjI1cmVtO1xufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENvcmU6IEZPUk0gRUxFTUVOVFNcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIEJhc2UgZm9ybSBlbGVtZW50IHN0eWxpbmcg4oCUXG5Ob3RlOiBidXR0b24gYW5kIGJ1dHRvbi1saWtlIGVsZW1lbnRzIGFyZSBzdHlsZWQgd2l0aCB0aGVcbi5jLWJ1dHRvbiBjb21wb25lbnQgY2xhc3MuIFNlZSBjb3JlL19idXR0b24uY3NzLlxuXG5SYWRpbyBhbmQgY2hlY2tib3ggZ3JvdXAgbGF5b3V0IGNhbiBiZSBmaW5lc3NlZCB3aXRoIHRoZVxuLmMtaW5wdXRncm91cCBjb21wb25lbnQgY2xhc3MgaWYgbmVzdGVkIGluc2lkZSBvZiB0aGVpciBhc3NvY2lhdGVkIGxhYmVscy5cblxuU2VlIGNvcmUvX2lucHV0Z3JvdXAuY3NzIGFuZCB0aGUgUGF0dGVybiBMaWJyYXJ5IGZvciBleGFtcGxlcy4gKi9cblxuLyohXG4gKiBUaGVzZSBzdHlsZXMgYm9ycm93ZWQgaGVhdmlseSBmcm9tOlxuICpcbiAqIE1pbGxpZ3JhbSB2MS4zLjBcbiAqIGh0dHBzOi8vbWlsbGlncmFtLmdpdGh1Yi5pb1xuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNyBDSiBQYXRvaWxvXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcblxuTm90YWJsZSBjdXN0b21pemF0aW9ucyBmb3Igb3VyIGFwcCBpbmNsdWRlIHJlZHVjaW5nIGFsbCBsZW5ndGhzIGJ5IDEvMiwgdGhlblxuaW5jcmVhc2luZyB0aGUgcHJvcG9ydGlvbmFsIGhlaWdodCBvZiBtb3N0IGlucHV0cyB0byAzcmVtLlxuTWlsbGlncmFtIHByZXN1bWVzIGEgMTBweCByZW0gdW5pdCBhdCB0aGUgd2lkZXN0IHZpZXdwb3J0LiBXZSBwcmVzdW1lIGEgMjBweFxucmVtIHVuaXQgYXQgdGhlIHdpZGVzdCB2aWV3cG9ydCwgc2FtZSBhcyBvdXIgZGVmYXVsdCB0eXBlIHNpemUuXG5cbiovXG5cbmlucHV0W3R5cGU9J2VtYWlsJ10sXG5pbnB1dFt0eXBlPSdudW1iZXInXSxcbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSxcbmlucHV0W3R5cGU9J3RlbCddLFxuaW5wdXRbdHlwZT0ndGV4dCddLFxuaW5wdXRbdHlwZT0ndXJsJ10sXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCB2YXIoLS1hYS1sYXJnZS1ncmF5KTtcbiAgYm9yZGVyLXJhZGl1czogLjRyZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogM3JlbTtcbiAgcGFkZGluZzogLjNyZW0gMXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZXBzaWxvbik7XG59XG5cbmlucHV0W3R5cGU9J2VtYWlsJ106Zm9jdXMsXG5pbnB1dFt0eXBlPSdudW1iZXInXTpmb2N1cyxcbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ106Zm9jdXMsXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTpmb2N1cyxcbmlucHV0W3R5cGU9J3RlbCddOmZvY3VzLFxuaW5wdXRbdHlwZT0ndGV4dCddOmZvY3VzLFxuaW5wdXRbdHlwZT0ndXJsJ106Zm9jdXMsXG50ZXh0YXJlYTpmb2N1cyxcbnNlbGVjdDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTtcbiAgb3V0bGluZTogMDtcbn1cblxuaW5wdXRbdHlwZT0nZW1haWwnXS5oYXMtZXJyb3IsXG5pbnB1dFt0eXBlPSdudW1iZXInXS5oYXMtZXJyb3IsXG5pbnB1dFt0eXBlPSdwYXNzd29yZCddLmhhcy1lcnJvcixcbmlucHV0W3R5cGU9J3NlYXJjaCddLmhhcy1lcnJvcixcbmlucHV0W3R5cGU9J3RlbCddLmhhcy1lcnJvcixcbmlucHV0W3R5cGU9J3RleHQnXS5oYXMtZXJyb3IsXG5pbnB1dFt0eXBlPSd1cmwnXS5oYXMtZXJyb3IsXG5zZWxlY3QuaGFzLWVycm9yIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICBvdXRsaW5lOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1oaWdobGlnaHQpO1xufVxuXG5zZWxlY3Qge1xuICBiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAyOSAxNFwiIHdpZHRoPVwiMjlcIj48cGF0aCBmaWxsPVwidmFyKC0tYWEtbGFyZ2UtZ3JheSlcIiBkPVwiTTkuMzc3MjcgMy42MjVsNS4wODE1NCA2LjkzNTIzTDE5LjU0MDM2IDMuNjI1XCIvPjwvc3ZnPicpIGNhbGMoMTAwJSAtIC41cmVtKSBjZW50ZXIgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDJyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbn1cblxuc2VsZWN0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMjkgMTRcIiB3aWR0aD1cIjI5XCI+PHBhdGggZmlsbD1cInZhcigtLWFjY2VudClcIiBkPVwiTTkuMzc3MjcgMy42MjVsNS4wODE1NCA2LjkzNTIzTDE5LjU0MDM2IDMuNjI1XCIvPjwvc3ZnPicpO1xufVxuXG50ZXh0YXJlYSB7XG4gIG1pbi1oZWlnaHQ6IDUuMjVyZW07XG4gIHBhZGRpbmc6IDFyZW07XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbmxhYmVsLFxubGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZXBzaWxvbik7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbi1ib3R0b206IC41cmVtO1xufVxuXG5maWVsZHNldCB7XG4gIGJvcmRlci13aWR0aDogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXSxcbmlucHV0W3R5cGU9J3JhZGlvJ10ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5sYWJlbC1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIFBBR0VTIEFORCBMQVlPVVRTXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xufVxuXG4ubC1pbmZvLXdyYXBwZXIge1xuICBtYXJnaW46IDRyZW0gYXV0byA1cmVtO1xuICBwYWRkaW5nOiAwIDFyZW0gMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMzJyZW07XG59XG5cbi5sLXJlZ2FwcC13cmFwcGVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTtcbiAgYmFja2dyb3VuZDpcbiAgICB1cmwoJ2Zvcm1zL3RleHR1cmUtcmVnZm9ybS13aGl0ZTE1LnN2ZycpLFxuICAgIGxpbmVhci1ncmFkaWVudCh2YXIoLS1hY2NlbnQpIDAlLCB2YXIoLS1hY2NlbnQpIDE4Ljc1cmVtLCB2YXIoLS13aGl0ZSkgMTguNzVyZW0sICB2YXIoLS13aGl0ZSkgMTAwJSk7XG4gIG1pbi1oZWlnaHQ6IDIwcmVtO1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgNjdyZW0sXG4gICAgMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6XG4gICAgcmVwZWF0LXgsXG4gICAgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6XG4gICAgb3ZlcmxheSxcbiAgICBub3JtYWw7XG59XG5cbi5sLXJlZ2FwcC13cmFwcGVyX3BlbmRpbmcge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1vdXItcHJpbWFyeS15ZWxsb3cpO1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIHVybCgnZm9ybXMvdGV4dHVyZS1yZWdmb3JtLXdoaXRlMTUuc3ZnJyksXG4gICAgbGluZWFyLWdyYWRpZW50KHZhcigtLW91ci1wcmltYXJ5LXllbGxvdykgMCUsIHZhcigtLW91ci1wcmltYXJ5LXllbGxvdykgMTguNzVyZW0sIHZhcigtLXdoaXRlKSAxOC43NXJlbSwgIHZhcigtLXdoaXRlKSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgICA2N3JlbSxcbiAgICAgIDEwMCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6XG4gICAgICByZXBlYXQteCxcbiAgICAgIG5vLXJlcGVhdDtcbn1cblxuLmwtcmVnYXBwLXdyYXBwZXJfZGVuaWVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tdGV4dCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgdXJsKCdmb3Jtcy90ZXh0dXJlLXJlZ2Zvcm0td2hpdGUxNS5zdmcnKSxcbiAgICBsaW5lYXItZ3JhZGllbnQodmFyKC0tdGV4dCkgMCUsIHZhcigtLXRleHQpIDE4Ljc1cmVtLCB2YXIoLS13aGl0ZSkgMTguNzVyZW0sICB2YXIoLS13aGl0ZSkgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1zaXplOlxuICAgICAgNjdyZW0sXG4gICAgICAxMDAlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OlxuICAgICAgcmVwZWF0LXgsXG4gICAgICBuby1yZXBlYXQ7XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ29tcG9uZW50OiBSZWcgQXBwIEZvcm1cbiAqIENvbnRhaW5zL2NvbnN0cmFpbnMvY2VudGVycyB0aGUgY29udGVudCBmb3IgYWxsIHJlZ2lzdHJhdGlvbiBhcHAgc2NyZWVuc1xuICogZXhjZXB0IGluZm8gcGFnZXMuXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYy1yZWdhcHAge1xuICBtYXJnaW46IGF1dG8gYXV0byA1cmVtO1xuICBwYWRkaW5nOiAyLjYyNXJlbSAxcmVtIDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQyLjhyZW07XG59XG5cbi5jLXJlZ2FwcCAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLypcbiAgLS0gUmVnIGFwcCBoZWRcbiAgUHJlc3VtYWJseSBhbiBIMS4gQXBwZWFycyBvdmVyIHRoZSB0ZXh0dXJlZFxuICBtb3RpZiB0aGF0IHNpZ25pZmllcyB0aGUgUmVnaXN0cmF0aW9uIEFwcCBzY3JlZW5zLlxuKi9cblxuLmMtcmVnYXBwX19oZWQge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tYWxwaGEpO1xuICBtYXJnaW46IDAgYXV0byAyLjYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNzVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLXdoaXRlKTtcbn1cblxuLypcbiAgLS0gUmVnIGFwcCBpbm5lclxuICBJbm5lciBjb250YWluZXIgZm9yIFJlZ2lzdHJhdGlvbiBBcHAgZmllbGRzIGFuZCBvcHRpb25zLlxuICBBcHBlYXJzIGFzIGEg4oCcZmxvYXRpbmfigJ0gd2hpdGUgYm94LiBBcHBsaWVkIHRvIGEgZmllbGRzZXQgZWxlbWVudCwgd2hlbiBhXG4gIGllbGRzZXQgaXMgYXBwcm9wcmlhdGUuIE90aGVyd2lzZSwgYXBwbGlpZWQgdG8gYSBkaXYuXG4qL1xuXG4uYy1yZWdhcHBfX2lubmVyIHtcbiAgbWFyZ2luOiAyLjVyZW0gYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2hpdGUpO1xuICBwYWRkaW5nOiAxcmVtIDEuNXJlbSAyLjc1cmVtO1xuICBib3gtc2hhZG93OiAuMjVyZW0gLjNyZW0gLjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qXG4gIC0tIFJpcGNvcmRcbiAgQ2xhc3MgZm9yIHRoZSDigJxiYWNr4oCdIChvciB3aGF0LWhhdmUteW91KSBsaW5rIHRoYXQgYXBwZWFycyBpbiB0aGUgdXBwZXItbGVmdFxuICBjb3JuZXIgb2YgLmMtcmVnYXBwX19pbm5lci5cbiovXG5cbi5jLXJlZ2FwcF9fcmlwY29yZCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZXBzaWxvbik7XG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG59XG5cbi8qXG4gIC0tIElubmVyIGJhZGdlXG4gIEljb25vZ3JhcGh5IGZvciBzY2hvb2wvZGlzdHJpY3Qvb3RoZXJcbiovXG5cbmltZy5jLXJlZ2FwcF9faW5uZXItYmFkZ2Uge1xuICB3aWR0aDogMTByZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogLjVyZW0gYXV0bztcbn1cblxuLmMtcmVnYXBwX19yaXBjb3JkICsgaW1nLmMtcmVnYXBwX19pbm5lci1iYWRnZSB7XG4gIG1hcmdpbi10b3A6IC0xLjc1cmVtO1xufVxuXG4vKlxuICAtLSBMZWdlbmRcbiAgTGVnZW5kcyBhcmUgYW5ub3lpbmcgdG8gc3R5bGUsIGJ1dCBzZW1hbnRpY2FsbHkgd29ydGggaXQsIGltbyxcbiAgaWYgdGhleSBtYWtlIHNlbnNlIGZvciB0aGUgY29udGV4dCwgZWcuIHdlIG5lZWQgYSBoZWFkaW5nL3N1YmhlYWRpbmcgdG8gYXBwZWFyXG4gIGZpcnN0IGluLCBvciB0byBsYWJlbCwgYSBmaWVsZHNldC5cbiovXG5cbi5jLXJlZ2FwcF9fbGVnZW5kIHtcbiAgbWFyZ2luOiAxLjI1cmVtIGF1dG8gMXJlbTtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiB2YXIoLS1nYW1tYSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZmxvYXQ6IGxlZnQ7IC8qIFRyaWNrc3khIFNldHRpbmcgdGhlIGxlZ2VuZCB0byBmbG9hdCBwb3NpdGlvbnMgdGhlIGxlZ2VuZCBpbnNpZGUgb2YgdGhlIGZpZWxkc2V0LiAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIFRoaXMgYW5kIHRoZSBmb2xsb3dpbmcgdHdvIHJ1bGVzIGFyZSByZXF1aXJlZCB0byBjZW50ZXIgYW4gZWxlbWVudCB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBhbGlnbmVkIGxlZnQgZHVlIHRvIHRoZSBmbG9hdC4gKi9cbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKlxuICAtLSBTdWJoZWRcbiAgUHJlc3VtYWJseSBhbiBIMi4gSW50ZW50aW9uYWxseSBoYXMgdGhlIHNhbWUgYXBwZWFyYW5jZSBhc1xuICB0aGUgbGVnZW5kIGFib3ZlLiBVc2UgaWYgYSBsZWdlbmQgZWxlbWVudCBkb2Vzbid0IG1ha2Ugc2Vuc2UgKGVnLiB0byBzdHlsZSBhXG4gIHN1YmhlYWRpbmcgbm90IGNvbnRhaW5lZCB3aXRoaW4gYSBmaWVsZHNldCwgb3IgdG8gc3R5bGUgYSBzdWJoZWFkaW5nIHRoYXQgaXNcbiAgbm90IHRoZSBmaXJzdC9vbmx5IGhlYWRpbmcgaW4gYSBmaWVsZHNldCkuXG4qL1xuXG4uYy1yZWdhcHBfX3N1YmhlZCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1nYW1tYSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLypcbiAgLS0gRmllbGQgYW5kIGluZm8gZ3JvdXBzXG4gIEZpZWxkZ3JvdXBzIGFwcGVhciBpbiBmb3JtcywgaW5mb2dyb3VwcyBkbyBub3QsIGJ1dCB0aGV54oCZcmUgbGFpZCBvdXRcbiAgaWRlbnRpY2FsbHkgd2l0aGluIHRoZSBSZWdpc3RyYXRpb24gQXBwLlxuKi9cblxuLmMtcmVnYXBwX19maWVsZGdyb3VwLFxuLmMtcmVnYXBwX19pbmZvZ3JvdXAge1xuICBtYXJnaW46IDFyZW0gYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMjMuNXJlbTtcbiAgY2xlYXI6IGxlZnQ7IC8qIEkga25vdyEgQSBjbGVhcmluZyBmbG9hdHMgZmxhc2hiYWNrISBDbGVhcnMgdGhlIGZsb2F0ZWQgbGVnZW5kIGVsZW1lbnQgd2hlbiBpdOKAmXMgcHJlc2VudC4gKi9cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIH1cbn1cblxuLypcbiAgLS0gQnV0dG9uIGdyb3VwXG4gIExheW91dCBmb3IgZ3JvdXBzIG9mIGJ1dHRvbnMuXG4qL1xuXG4uYy1yZWdhcHBfX2J1dHRvbmdyb3VwIHtcbiAgbWFyZ2luOiAxLjVyZW0gYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMjMuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjbGVhcjogbGVmdDsgLyogSSBrbm93ISBBIGNsZWFyaW5nIGZsb2F0cyBmbGFzaGJhY2shIENsZWFycyB0aGUgZmxvYXRlZCBsZWdlbmQgZWxlbWVudCB3aGVuIGl04oCZcyBwcmVzZW50LiAqL1xuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLnJlZ2FwcF9fYnV0dG9uZ3JvdXAgPiAqOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogMXJlbTtcbn1cblxuLmMtcmVnYXBwX19idXR0b25ncm91cC0tc3NvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgbWFyZ2luLXRvcDogMnJlbTtcblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xcHg7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZWQtZ3JheSk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJ29yJztcbiAgICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMC44NzVlbTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgICBjb2xvcjogdmFyKC0tYWEtZ3JheSk7XG4gIH1cbn1cblxuLypcbiAgLS0gQmlnIHJhZGlvIGdyb3VwXG4gIExheW91dCBmb3IgZ3JvdXBpbmcgYGMtcmVnYXBwX19iaWdyYWRpb2R1b2AgZWxlbWVudHNcbiovXG5cbi5jLXJlZ2FwcF9fYmlncmFkaW9ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDMwLjVyZW07XG4gIHBhZGRpbmctdG9wOiAuNXJlbTtcbiAgbWFyZ2luOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNsZWFyOiBsZWZ0O1xufVxuXG4vKlxuICAtLSBTdWJqZWN0IGdyb3Vwc1xuICBTdHlsZXMgZm9yIHN1YmplY3QgZ3JvdXBpbmdzIG9mIGN1cnJpY3VsdW0gb3B0aW9ucy5cbiovXG5cbi5jLXJlZ2FwcF9fc3ViamVjdGdyb3VwIHtcbiAgbWFyZ2luOiAycmVtIGF1dG8gMXJlbTtcbiAgYm9yZGVyOiAuMTI1cmVtIHNvbGlkIHZhcigtLW91ci1wcmltYXJ5LXllbGxvdyk7XG4gIGJvcmRlci1yYWRpdXM6IC40cmVtO1xuICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xuICBtYXgtd2lkdGg6IDMwLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmMtcmVnYXBwX19zdWJqZWN0bGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDEuMjVyZW07XG4gIHRvcDogLS41NzVlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIC4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IHZhcigtLWRlbHRhKTtcbiAgbGV0dGVyLXNwYWNpbmc6IC4wM2VtO1xufVxuXG4vKlxuICAtLSBMYWJlbC1yZWxhdGVkIHBhdHRlcm5zXG4gIFN0eWxlcyBmb3IgbGFiZWwgZWxlbWVudHMgYW5kIHRoZSB2YXJpb3VzIHR5cGVzIG9mIHRleHQgdGhhdFxuICB0aGV5IG1pZ2h0IGNvbnRhaW4uXG4qL1xuXG4uYy1yZWdhcHBfX2xhYmVsZ3JvdXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuXG4uYy1yZWdhcHBfX2xhYmVsZGVzYyB7XG4gIHBhZGRpbmctcmlnaHQ6IC43NWVtO1xufVxuXG4uYy1yZWdhcHBfX2xhYmVsaGVscCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6IHZhcigtLWFhLWdyYXkpO1xuICBmb250LXNpemU6IHZhcigtLXpldGEpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uYy1yZWdhcHBfX2xhYmVsZXJyb3Ige1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHZhcigtLWFjY2VudC1hYSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0temV0YSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi8qXG4gIC0tIEJpZyByYWRpby1yZWxhdGVkIHBhdHRlcm5zXG4qL1xuXG4uYy1yZWdhcHBfX2JpZ3JhZGlvZHVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgZmxleDogMSAxIDlyZW07XG4gIG1heC13aWR0aDogOXJlbTtcbiAgbWFyZ2luOiAwIC41cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNsZWFyOiBsZWZ0OyAvKiBJIGtub3chIEEgY2xlYXJpbmcgZmxvYXRzIGZsYXNoYmFjayEgQ2xlYXJzIHRoZSBmbG9hdGVkIGxlZ2VuZCBlbGVtZW50IHdoZW4gaXTigJlzIHByZXNlbnQuICovXG59XG5cbi5jLXJlZ2FwcF9fYmlncmFkaW9kdW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMTAwJTtcbn1cblxuLmMtcmVnYXBwX19iaWdyYWRpbyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbn1cblxuLmMtcmVnYXBwX19iaWdyYWRpbzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDUuMjVyZW07XG4gIG1hcmdpbjogYXV0byBhdXRvIC41cmVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IHZhcigtLWxpZ2h0LWdyYXkpIC4xMjVyZW0gc29saWQ7XG4gIGJvcmRlci1yYWRpdXM6IC40cmVtO1xuICBiYWNrZ3JvdW5kLXNpemU6IDYuNXJlbTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4uYy1yZWdhcHBfX2JpZ3JhZGlvLmZvci1zY2hvb2w6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZm9ybXMvb3JnLWljb24tc2Nob29sLnN2ZycpO1xufVxuXG4uYy1yZWdhcHBfX2JpZ3JhZGlvLmZvci1kaXN0cmljdDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdmb3Jtcy9vcmctaWNvbi1kaXN0cmljdC5zdmcnKTtcbn1cblxuLmMtcmVnYXBwX19iaWdyYWRpby5mb3Itb3RoZXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZm9ybXMvb3JnLWljb24tb3RoZXIuc3ZnJyk7XG59XG5cbi5jLXJlZ2FwcF9fYmlncmFkaW86aG92ZXI6OmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tb3VyLXByaW1hcnkteWVsbG93KTtcbn1cblxuaW5wdXQ6Y2hlY2tlZCArIC5jLXJlZ2FwcF9fYmlncmFkaW86OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW91ci1wcmltYXJ5LXllbGxvdyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tb3VyLXByaW1hcnkteWVsbG93KTtcbn1cblxuaW5wdXQ6Y2hlY2tlZCArIC5jLXJlZ2FwcF9fYmlncmFkaW8uZm9yLXNjaG9vbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdmb3Jtcy9vcmctaWNvbi1zY2hvb2wtc2VsZWN0ZWQuc3ZnJyk7XG59XG5cbmlucHV0OmNoZWNrZWQgKyAuYy1yZWdhcHBfX2JpZ3JhZGlvLmZvci1kaXN0cmljdDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdmb3Jtcy9vcmctaWNvbi1kaXN0cmljdC1zZWxlY3RlZC5zdmcnKTtcbn1cblxuaW5wdXQ6Y2hlY2tlZCArIC5jLXJlZ2FwcF9fYmlncmFkaW8uZm9yLW90aGVyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2Zvcm1zL29yZy1pY29uLW90aGVyLXNlbGVjdGVkLnN2ZycpO1xufVxuXG5cbi8qXG4gIC0tIFJlZyBhcHAgZGV0YWlsc1xuICBTaG93L2hpZGUgZGlzY2xvc3VyZSBwYXR0ZXJuXG4qL1xuXG4uYy1yZWdhcHBfX2RldGFpbHMge1xuICBmb250LXNpemU6IHZhcigtLXpldGEpO1xuICBtYXJnaW46IGF1dG87XG59XG5cbi5jLXJlZ2FwcF9fZGV0YWlscyA+IHN1bW1hcnkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtYWEpO1xufVxuXG4uYy1yZWdhcHBfX2RldGFpbHMgPiBzdW1tYXJ5OmZvY3VzLFxuLmMtcmVnYXBwX19kZXRhaWxzID4gc3VtbWFyeTp0YXJnZXQge1xuICBvdXRsaW5lOiBub25lO1xuICBhbmltYXRpb246IGEteWVsbG93LWZhZGUgMXMgZWFzZS1pbi1vdXQ7XG59XG5cbi5jLXJlZ2FwcF9fZGV0YWlscyA+IHN1bW1hcnk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiKlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZ2FtbWEpO1xuICBsaW5lLWhlaWdodDogY2FsYygxLjQ1ICogdmFyKC0temV0YSkpO1xuICBsZWZ0OiAtLjVlbTtcbn1cblxuLmMtcmVnYXBwX19kZXRhaWxzW29wZW5dIHN1bW1hcnkgfiAqIHtcbiAgYW5pbWF0aW9uOiBhLXN3ZWVwLWluIC41cyBlYXNlLWluLW91dDsgLyogXCJhLXN3ZWVwLWluXCIgYW5pbWF0aW9uIGRlZmluZWQgYmVsb3cgKi9cbn1cblxuLmMtcmVnYXBwX19kZXRhaWxzID4gc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gIC0tIElucHV0IER1b1xuICBDb25qb2luZWQgaW5wdXQgZmllbGQgKyBidXR0b24gPSBpbnB1dGR1byFcbiovXG5cbi5jLXJlZ2FwcF9faW5wdXRkdW8ge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uYy1yZWdhcHBfX2lucHV0ZHVvX3ppcCB7IC8qIEtlZXAgdGhpbmdzIG5hcnJvdyBpbiB0aGlzIGtub3duIHNjZW5hcmlvICovXG4gIG1heC13aWR0aDogMTByZW07XG59XG5cbi5jLXJlZ2FwcF9faW5wdXRkdW8gaW5wdXRbdHlwZT0nZW1haWwnXSxcbi5jLXJlZ2FwcF9faW5wdXRkdW8gaW5wdXRbdHlwZT0nbnVtYmVyJ10sXG4uYy1yZWdhcHBfX2lucHV0ZHVvIGlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sXG4uYy1yZWdhcHBfX2lucHV0ZHVvIGlucHV0W3R5cGU9J3NlYXJjaCddLFxuLmMtcmVnYXBwX19pbnB1dGR1byBpbnB1dFt0eXBlPSd0ZWwnXSxcbi5jLXJlZ2FwcF9faW5wdXRkdW8gaW5wdXRbdHlwZT0ndGV4dCddLFxuLmMtcmVnYXBwX19pbnB1dGR1byBpbnB1dFt0eXBlPSd1cmwnXSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cblxuLmMtcmVnYXBwX19pbnB1dGR1byAuYy1idXR0b24sXG4uYy1yZWdhcHBfX2lucHV0ZHVvIGJ1dHRvbixcbi5jLXJlZ2FwcF9faW5wdXRkdW8gaW5wdXRbdHlwZT0nYnV0dG9uJ10sXG4uYy1yZWdhcHBfX2lucHV0ZHVvIGlucHV0W3R5cGU9J3Jlc2V0J10sXG4uYy1yZWdhcHBfX2lucHV0ZHVvIGlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgZmxleDogMCAwIDNyZW07XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuLypcbiAgLS0gUmVnIGFwcCBub3RlIHN0eWxlXG4gIE9uZSBzdGVwIHNtYWxsZXIgdGhhbiBkZWZhdWx0IHRleHQgc2l6ZS5cbiovXG5cbi5jLXJlZ2FwcF9fbm90ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6IHZhcigtLXRleHQpO1xuICBmb250LXNpemU6IHZhcigtLWVwc2lsb24pO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uYy1yZWdhcHBfX25vdGVfY2VudGVyZWQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYy1yZWdhcHBfX25vdGVfbm90aWNlIHtcbiAgZm9udC1zaXplOiB2YXIoLS16ZXRhKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLmMtcmVnYXBwX19ub3RlX2FsZXJ0IHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1hYSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0temV0YSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi8qXG4gIC0tIEN1cnJpY3VsdW0gQ2hvaWNlXG4gIENvbmpvaW5lZCBUZXh0ICsgXCJHb1wiIENUQVxuKi9cblxuLmMtcmVnYXBwX19jdXJyaWN1bHVtLWNob2ljZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tb3VyLXByaW1hcnkteWVsbG93KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG4gIGJvcmRlci1yYWRpdXM6IC40cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwIDAgMCAxcmVtO1xuICBAbWVkaWEgKC0tYnAtbWluLXh4eCkge1xuICAgICYge1xuICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOztcbiAgICB9XG4gIH1cbn1cblxuLmMtcmVnYXBwX19jdXJyaWN1bHVtLWNob2ljZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtYWEpO1xufVxuXG4uYy1yZWdhcHBfX2N1cnJpY3VsdW0tY2hvaWNlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci10b3A6IHRyYW5zcGFyZW50IHNvbGlkIC41cmVtO1xuICBib3JkZXItcmlnaHQ6IHRyYW5zcGFyZW50IHNvbGlkIC43NXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogdHJhbnNwYXJlbnQgc29saWQgLjVyZW07XG4gIGJvcmRlci1sZWZ0OiB2YXIoLS10ZXh0KSBzb2xpZCAuNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi5jLXJlZ2FwcF9fY3VycmljdWx1bS1jaG9pY2U6aG92ZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWFjY2VudCk7XG59XG5cbi5jLXJlZ2FwcF9fY3VycmljdWx1bS10aXRsZSB7XG4gIHBhZGRpbmc6IC43NXJlbSAwO1xuICBtYXJnaW4tcmlnaHQ6IC43NWVtO1xuICBmbGV4OiAwIDEgYXV0bztcbiAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcbiAgQG1lZGlhICgtLWJwLW1pbi14eHgpIHtcbiAgICAmIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBmbGV4OiAwIDAgMDtcbiAgICB9XG4gIH1cbn1cblxuLmMtcmVnYXBwX19jdXJyaWN1bHVtLWVkaXRpb24ge1xuICBmb250LXNpemU6IHZhcigtLXpldGEpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogLjAyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmc6IDAgMXJlbSAwIC41cmVtO1xuICBsaW5lLWhlaWdodDogMS4zcmVtO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWFhKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5jLXJlZ2FwcF9fZWRpdGlvbi1zZXBhcmF0b3Ige1xuICBjb2xvcjogdmFyKC0tb3VyLXByaW1hcnkteWVsbG93KTtcbiAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG59XG5cbi8qXG4gIC0tIFJlZyBBcHAgSGVscGVyIENsYXNzZXNcbiAgICBGb3IgYWxpZ25pbmcgZWxlbWVudHMgb3V0c2lkZSBgLmMtcmVnYXBwLSpncm91cGBzIHdpdGggdGhlIGdyb3VwXG4gICAgdG8gd2hpY2ggdGhleSByZWZlci5cbiovXG5cbi5jLXJlZ2FwcCAuZm9yLWZpZWxkZ3JvdXAsXG4uYy1yZWdhcHAgLmZvci1pbmZvZ3JvdXAsXG4uYy1yZWdhcHAgLmZvci1idXR0b25ncm91cCB7XG4gIG1heC13aWR0aDogMjMuNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLmMtcmVnYXBwIC5mb3ItYmlncmFkaW9ncm91cCB7XG4gIG1heC13aWR0aDogMzAuNXJlbTtcbiAgcGFkZGluZzogMCAuNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5jLXJlZ2FwcCAuZm9yLXN1YmplY3Rncm91cCB7XG4gIG1heC13aWR0aDogMzAuNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLmMtcmVnYXBwX19yZWYtbWFya2VyIHsgLyogRm9yIGxlc3Mgb2J0cnVzaXZlIGxpbmtlZCBmb290bm90ZSBtYXJrZXJzICovXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG5cbi8qXG4gIC0tIEFOSU1BVElPTlxuKi9cblxuQGtleWZyYW1lcyBhLXN3ZWVwLWluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLS41cmVtO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgbWFyZ2luLWxlZnQ6IDByZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYS15ZWxsb3ctZmFkZSB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwxODQsMjgsLjI1KTsgLyogQmFzZWQgb24gb3VyLXByaW1hcnkteWVsbG93ICovXG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMTg0LDI4LDApOyAvKiBCYXNlZCBvbiBvdXItcHJpbWFyeS15ZWxsb3cgKi9cbiAgfVxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENvbXBvbmVudDogSHViU3BvdCBGb3JtIFN0eWxlc1xuICpcbiAqIE92ZXJyaWRpbmcgc3R5bGVzIGZvciBIdWIgU3BvdCBpbmxpbmUvZW1iZWRkZWQgZm9ybSBtYXJrdXAgYW5kIGNsYXNzZXMuXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uaHMtZm9ybSB7XG5cbn1cblxuZm9ybS5ocy1mb3JtIGZpZWxkc2V0IHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLyogU3R5bGUgdGhpcyBoZWFkaW5nIGxpa2UgLmMtcmVnYXBwX19zdWJoZWQgKi9cblxuLmhzLWZvcm0gaDIge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktZGlzcGxheSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZ2FtbWEpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKiBIUy1zcGVjaWZpYyBudW1iZXIgaW5wdXQtcmVsYXRlZCBzdHlsZXMgKi9cblxuLmhzLWZpZWxkdHlwZS1udW1iZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xufVxuXG4uaHMtZmllbGR0eXBlLW51bWJlciBsYWJlbCB7XG4gIGZsZXg6IDEgMCAxMHJlbTtcbiAgbWFyZ2luOiAuNXJlbSAwIC41cmVtIDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG59XG5cbi5ocy1maWVsZHR5cGUtbnVtYmVyIGxhYmVsIGVtIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4uaHMtZmllbGR0eXBlLW51bWJlciBsYWJlbCBlbTo6YmVmb3JlIHtcbiAgY29udGVudDogXCLigJQgXCI7XG59XG5cbi5ocy1maWVsZC1kZXNjIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiB2YXIoLS1ldGEpO1xufVxuXG5mb3JtLmhzLWZvcm0gZmllbGRzZXQgLmhzLWlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICBmbGV4OiAxIDEgNXJlbTtcbiAgd2lkdGg6IDVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IC4yNXJlbTtcbiAgaGVpZ2h0OiAycmVtO1xufVxuXG4vKiBIUy1zcGVjaWZpYyBjaGVja2JveCBpbnB1dC1yZWxhdGVkIHN0eWxlcyAqL1xuXG4uaHMtZGVwZW5kZW50LWZpZWxkIC5ocy1maWVsZHR5cGUtYm9vbGVhbmNoZWNrYm94IC5ocy1mb3JtLWJvb2xlYW5jaGVja2JveCBsYWJlbCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZGVsdGEpO1xufVxuXG4uaHMtaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luLXJpZ2h0OiAuMjVlbTtcbn1cblxuLmhzLWZpZWxkdHlwZS1jaGVja2JveCArIC5ocy1maWVsZHR5cGUtY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiAxLjVlbTtcbn1cblxuLmhzLWZpZWxkdHlwZS1jaGVja2JveCBsYWJlbCBlbSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmhzLWZpZWxkdHlwZS1jaGVja2JveCBsYWJlbCBlbTo6YmVmb3JlIHtcbiAgY29udGVudDogXCLigJQgXCI7XG59XG5cbi5ocy1mb3JtLWNoZWNrYm94LWRpc3BsYXkge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBmb250LXNpemU6IHZhcigtLXpldGEpO1xufVxuXG4vKiBIUy1zcGVjaWZpYyBkYXRlIGlucHV0LXJlbGF0ZWQgc3R5bGVzICovXG5cbmZvcm0uaHMtZm9ybSBmaWVsZHNldCAuaHMtaW5wdXRbdHlwZT1cImRhdGVcIl0ge1xuICB3aWR0aDogYXV0bztcbn1cblxuLyogSFMtc3BlY2lmaWMgbm90ZSBzdHlsZXMgKi9cblxuLmhzLWZvcm0gLmMtcmVnYXBwX19ub3RlIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLyogSW5wdXRzIExpc3Qg4oCUIGFzIGZvciByYWRpbywgY2hlY2tib3hlcywgZXRjLiAqL1xuXG4uaW5wdXRzLWxpc3Qge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vKiBSYWRpby1yZWxhdGVkIElucHV0IFN0eWxlcyAqL1xuXG4uaHMtZm9ybS1yYWRpbyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5ocy1mb3JtLXJhZGlvLWRpc3BsYXkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uaHMtZm9ybS1yYWRpby1kaXNwbGF5IHNwYW4ge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5mb3JtLmhzLWZvcm0gZmllbGRzZXQgLmhzLWlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIG1hcmdpbi1yaWdodDogLjVyZW07XG59XG5cbi8qIEhTIEJ1dHRvbiBTdHlsZXMgKi9cblxuLmhzLWJ1dHRvbiB7IC8qIFN0eWxlIHRoaXMgZWxlbWVudCBsaWtlIGEgc3RhbmRhcmQgcmVnIGFwcCBidXR0b24gKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50LWFhKTtcbiAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCB2YXIoLS1hY2NlbnQtYWEpO1xuICBib3JkZXItcmFkaXVzOiAuNHJlbTtcbiAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZXRhKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogMi41cmVtO1xuICBsZXR0ZXItc3BhY2luZzogLjA0cmVtO1xuICBsaW5lLWhlaWdodDogMXJlbTtcbiAgcGFkZGluZzogLjc1cmVtIDIuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgbWFyZ2luLXRvcDogLjEyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLjEyNXJlbTtcbn1cblxuLmhzLWJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLmhzLWJ1dHRvbjpmb2N1cyxcbi5ocy1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudCk7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5ocy1idXR0b25bZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBvcGFjaXR5OiAuNTtcbn1cblxuLmhzLWJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsXG4uaHMtYnV0dG9uW2Rpc2FibGVkXTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC1hYSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LWFhKTtcbn1cblxuLyogQ2FwdGNoYSBhbmQgZXJyb3Igc3R5bGVzICovXG5cbi5ocy1yZWNhcHRjaGEge1xuICBtYXJnaW46IDFyZW0gMDtcbn1cblxuLmhzLWVycm9yLW1zZ3MgeyAvKiBMaXN0IG9mIGVycm9yIG1lc3NhZ2VzICovXG4gIG1hcmdpbi10b3A6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6IHZhcigtLWFjY2VudC1hYSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbi1yaWdodDogLjVyZW07XG59XG5cbi5ocy1lcnJvci1tc2cgeyAvKiBJbmRpdmlkdWFsIGVycm9yIG1lc3NhZ2VzICovXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZXRhKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbiIsIkBrZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG4uYy1hdXRvY29tcGxldGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYy1hdXRvY29tcGxldGVfb3B0aW9ucyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAyMGVtO1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyZXk7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHotaW5kZXg6IDE7XG5cbiAgJltoaWRkZW5dLCAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJiA+IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC43NWVtIDEuMjVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgbGlnaHRncmV5O1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkb2RnZXJibHVlO1xuICAgICAgYm9yZGVyLWNvbG9yOiBkb2RnZXJibHVlO1xuICAgIH1cblxuICAgICZbYXJpYS1kaXNhYmxlZF0ge1xuICAgICAgY29sb3I6IGdyYXk7XG4gICAgfVxuXG4gICAgJltyb2xlPVwic3RhdHVzXCJdIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLmMtYXV0b2NvbXBsZXRlX190aHJvYmJlciB7XG4gIGJvcmRlcjogNXB4IHNvbGlkIHZhcigtLWFjY2VudCk7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgRk9PVEVSXG4gKiBJbmNsdWRlZCBpbiB0aGlzIGRvY3VtZW50OiBWYXJpYWJsZXMsIEJhc2UsIFN0eWxlc1xuICpcbiAqIFRoZSBpbnN0YW5jZSBvZiB0aGUgZ2xvYmFsIGZvb3RlciBlbWJlZGRlZCB3aXRoaW5cbiAqIHRoZSByZWcgYXBwIGlzIGNvbnNpZGVyZWQgY2Fub25pY2FsLlxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbipcbiogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIEZPT1RFUiAtLSBST0JPVE8gRk9OVFNcbipcbiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogSWYgR29vZ2xlIEZvbnRzIGFyZSBhbHJlYWR5IGltcG9ydGVkIGludG8gdGhlIGFwcCwgYXBwZW5kIFwiUm9ib3RvOjUwMFwiIGlmIG5lY2Vzc2FyeS4gKi9cbi8qIElmIEdvb2dsZSBGb250cyBhcmUgbm90IGFscmVhZHkgaW1wb3J0ZWQsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGltcG9ydCBzdGF0ZW1lbnQgb3IgKGJldHRlcikgYWRkIHRoZSBlcXVpdmFsZW50IHRvIHRoZSA8aGVhZD4gb2YgdGhlIGFwcC4gKi9cbi8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjUwMCZzdWJzZXQ9bGF0aW4nKTsgKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENPTVBPTkVOVDogT1VSIEdMT0JBTCBGT09URVIgLS0gVkFSSUFCTEVTXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogQ29sb3IgcGFsZXR0ZSAqL1xuXG46cm9vdCB7XG5cbi8qIENvbG9ycyB3aXRoIFwiLW91ci1cIiBpbiB0aGVpciBuYW1lIGFyZSBzb3VyY2VkIGZyb20gdGhlIE9VUiBicmFuZCBndWlkZWxpbmVzICovXG5cbi0tZm9vdGVyLW91ci1wcmltYXJ5LWRhcmstZ3JheTogICAgcmdiKDY5LDUzLDU0KTsgICAgLyogIzQ1MzUzNiAqL1xuLS1mb290ZXItd2hpdGU6ICAgICAgICAgICAgICAgICAgICAjZmZmZmZmO1xuXG4vKlxuICBUeXBvZ3JhcGhpYyBzaXplc1xuXG4gIEZvbnQgc2l6ZXMgYmFzZWQgb24gbWlub3IgdGhpcmQgKDEuMikgaHR0cDovL3d3dy5tb2R1bGFyc2NhbGUuY29tLz8xJmVtJjEuMlxuXG4qL1xuXG4tLWZvb3Rlci1mb250LWJhc2UtbWluOiAxNnB4O1xuLS1mb290ZXItZm9udC1iYXNlLW1heDogMjBweDtcbi0tZm9vdGVyLWZsdWlkLWVtOiAgICAgIGNhbGMoMTZweCArICgyMCAtIDE2KSAqICgoMTAwdncgLSAzMjBweCkvKDEzMjAgLSAzMjApKSk7XG4tLWZvb3Rlci16ZXRhOiAgICAgICAgICAuODMzZW07XG4tLWZvb3Rlci1ldGE6ICAgICAgICAgICAuNzVlbTtcblxufVxuXG4vKiBDdXN0b20gTWVkaWEgRGVjbGFyYXRpb25zIGZvciBCcmVha3BvaW50cyAqL1xuXG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW5hbm8tbWludXMgKG1heC13aWR0aDogMzE5cHgpO1xuQGN1c3RvbS1tZWRpYSAtLWZvb3Rlci1icC1uYW5vIChtaW4td2lkdGg6IDMyMHB4KTtcbkBjdXN0b20tbWVkaWEgLS1mb290ZXItYnAtbWljcm8tbWludXMgKG1heC13aWR0aDogNDEwcHgpO1xuQGN1c3RvbS1tZWRpYSAtLWZvb3Rlci1icC1taWNybyAobWluLXdpZHRoOiA0MTFweCk7XG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW1pbi1taW51cyAobWF4LXdpZHRoOiA1MzZweCk7XG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW1pbiAobWluLXdpZHRoOiA1MzdweCk7XG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW1pZC1taW51cyAobWF4LXdpZHRoOiAxMDIzcHgpO1xuQGN1c3RvbS1tZWRpYSAtLWZvb3Rlci1icC1taWQgKG1pbi13aWR0aDogMTAyNHB4KTtcbkBjdXN0b20tbWVkaWEgLS1mb290ZXItYnAtbWF4LW1pbnVzIChtYXgtd2lkdGg6IDEzMTlweCk7XG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW1heCAobWluLXdpZHRoOiAxMzIwcHgpO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIEZPT1RFUiAtLSBCQVNFXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtZm9vdGVyIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1pbik7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJ1RyZWJ1Y2hldCBNUycsIFRyZWJ1Y2hldCwgVGFob21hLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OyAvKiBDYW4gY2F1c2UgcHJvYmxlbXMgaW4gc29tZSB2ZXJzaW9ucyBvZiBBbmRyb2lkICovXG4gICB0ZXh0LXNpemUtYWRqdXN0OiBub25lO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwOyAvKiBodHRwczovL3d3dy56YWNobGVhdC5jb20vd2ViL2NvbXByZWhlbnNpdmUtd2ViZm9udHMvI2ZvbnQtZGlzcGxheSAqL1xuICBsaW5lLWhlaWdodDogMS40NTtcbiAgbWFyZ2luLXRvcDogYXV0bztcblxuICAvKiBGbHVpZCBmcm9tIDE2cHggdG8gMjBweCBiZXR3ZWVuIGJyZWFrcG9pbnRzICovXG5cbiAgQG1lZGlhICgtLWZvb3Rlci1icC1taW4pIHtcbiAgICAmIHtcbiAgICAgZm9udC1zaXplOiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1pbik7IC8qIDE2cHggYXQgMzIwcHggKi8gLyogcHggZmFsbGJhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG9u4oCZdCBnZXQgY2FsYyAqL1xuICAgICBmb250LXNpemU6IGNhbGMoMTZweCArICgyMCAtIDE2KSAqICgoMTAwdncgLSAzMjBweCkvKDEzMjAgLSAzMjApKSk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhICgtLWZvb3Rlci1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgZm9udC1zaXplOiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCk7IC8qIDIwcHggYXQgMTMyMHB4ICovXG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3RlciAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qXG4qIENPTVBPTkVOVDogT1VSIEdMT0JBTCBGT09URVIgLS0gT1ZFUlJJREVTXG4qIE92ZXJyaWRlIG92ZXJhcmNoaW5nIHByb3BlcnRpZXMgaW4gY3VycmljdWx1bSBnYXRld2F5IHRoZW1lXG4qXG4qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLWZvb3RlciBsaSB7XG4gIHBhZGRpbmctbGVmdDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi5jLWZvb3RlciBsaTo6YmVmb3JlLFxuLmMtZm9vdGVyIGxpOjpiZWZvcmUge1xuICBjb250ZW50OiBub3JtYWw7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbipcbiogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIEZPT1RFUiAtLSBTVFlMRVNcbipcbiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtZm9vdGVyIHtcbiAgcGFkZGluZzogLjc1ZW0gMWVtIDRlbTsgLyogRmF0IHBhZGRpbmctYm90dG9tIGFjY29tbW9kYXRlcyBmZWVkYmFjayB3aWRnZXQgKi9cbiAgY29sb3I6IHJnYmEoMTAwJSwxMDAlLDEwMCUsLjY1KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tZm9vdGVyLW91ci1wcmltYXJ5LWRhcmstZ3JheSk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1taWNybykge1xuICAgICYge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuLmMtZm9vdGVyIGEge1xuICAgY29sb3I6IHJnYmEoMTAwJSwxMDAlLDEwMCUsLjgpO1xuICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jLWZvb3RlciBhOmhvdmVyIHtcbiAgIGNvbG9yOiB2YXIoLS1mb290ZXItd2hpdGUpO1xuICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jLWZvb3Rlcl9fbmF2cyB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9vdGVyLXpldGEpO1xuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1pY3JvKSB7XG4gICAgJiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLmMtZm9vdGVyX19uYXYtY29ycG9yYXRlIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiBjYWxjKC41ICogdmFyKC0tZm9vdGVyLWZsdWlkLWVtKSkgMCAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1taWNybykge1xuICAgICYge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLmMtZm9vdGVyX19uYXYtc29jaWFsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiB2YXIoLS1mb290ZXItZmx1aWQtZW0pIDAgMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWljcm8pIHtcbiAgICAmIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fb3VyLWxvZ28ge1xuICBoZWlnaHQ6IGNhbGMoMiAqIHZhcigtLWZvb3Rlci1mbHVpZC1lbSkpO1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogY2FsYyguMjUgKiB2YXIoLS1mb290ZXItZmx1aWQtZW0pKSBhdXRvIDA7XG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWljcm8pIHtcbiAgICAmIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogY2FsYyguMTI1ICogdmFyKC0tZm9vdGVyLWZsdWlkLWVtKSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWZvb3Rlci1mbHVpZC1lbSk7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1heCkge1xuICAgICYge1xuICAgICAgdG9wOiBjYWxjKC4xMjUgKiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCkpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCk7XG4gICAgICBoZWlnaHQ6IGNhbGMoMiAqIHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KSk7XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fbmF2LWNvcnBvcmF0ZSBsaSxcbi5jLWZvb3Rlcl9fbmF2LXNvY2lhbCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jLWZvb3Rlcl9fbmF2LWNvcnBvcmF0ZSBsaSArIGxpIHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KTtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCk7XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fbmF2LXNvY2lhbCBsaSArIGxpIHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KTtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCk7XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fc29jaWFsLWljb24ge1xuICBoZWlnaHQ6IDFlbTtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYy1mb290ZXJfX2NvcHlyaWdodHMge1xuICBmb250LXNpemU6IHZhcigtLWZvb3Rlci1ldGEpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1mb290ZXItZmx1aWQtZW0pO1xuICBwYWRkaW5nLXRvcDogdmFyKC0tZm9vdGVyLWZsdWlkLWVtKTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMTAwJSwxMDAlLDEwMCUsLjM1KTtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1taWNybykge1xuICAgICYge1xuICAgICAgbWFyZ2luLXRvcDogY2FsYyguNzUgKiB2YXIoLS1mb290ZXItZmx1aWQtZW0pKTtcbiAgICB9XG4gIH1cbiAgQG1lZGlhICgtLWZvb3Rlci1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCk7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKC43NSAqIHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KSk7XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fY29weXJpZ2h0czpvbmx5LWNoaWxkLFxuLmMtZm9vdGVyX19jb3B5cmlnaHRzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nLXRvcDogY2FsYyguMjUgKiB2YXIoLS1mb290ZXItZmx1aWQtZW0pKTtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmctdG9wOiBjYWxjKC4yNSAqIHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KSk7XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fYnVpbGQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBNT0RBTCBNRVNTQUdFXG4gKiBJbnRlbmRlZCBmb3Igb25seSB2ZXJ5IHNob3J0IG1lc3NhZ2VzLiBNZXNzYWdlIGJveCBncm93cyB3aXRoIGNvbnRlbnQsXG4gKiBzbyB0aGlzIGNvbXBvbmVudCBpcyBub3QgYXBwcm9wcmlhdGUgZm9yIGNvbnRlbnQgdGhhdCBtaWdodCBleGNlZWRcbiAqIHRoZSBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0IG9uIGFueSBkZXZpY2UuXG4gKlxuICogQm9udXMhIEJvZHkgcHJvcGVydGllcyB0byBwcmV2ZW50IHNjcm9sbGluZyB3aGVuIHRoZSBtb2RhbCBpcyBvcGVuLlxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbipcbiogQ09NUE9ORU5UOiBPVVIgTU9EQUwgTUVTU0FHRSAtLSBST0JPVE8gRk9OVFNcbipcbiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogUm9ib3RvIGF0IDQwMCB3ZWlnaHQgaXMgbmVjZXNzYXJ5IGZvciB0aGUgdHlwb2dyYXBoeSBpbiB0aGlzIGNvbXBvbmVudC4gKi9cbi8qIFJvYm90byBhdCA1MDAgd2VpZ2h0IGlzIG5lY2Vzc2FyeSBmb3IgdGhlIGJ1dHRvbiBpbiB0aGlzIGNvbXBvbmVudC4gKi9cbi8qIElmIEdvb2dsZSBGb250cyBhcmUgYWxyZWFkeSBpbXBvcnRlZCBpbnRvIHRoZSBhcHAsIGFwcGVuZCBcIlJvYm90bzo0MDAsNTAwLDcwMFwiIGlmIG5lY2Vzc2FyeS4gKi9cbi8qIElmIEdvb2dsZSBGb250cyBhcmUgbm90IGFscmVhZHkgaW1wb3J0ZWQsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGltcG9ydCBzdGF0ZW1lbnQgb3IgKGJldHRlcikgYWRkXG50aGUgZXF1aXZhbGVudCB0byB0aGUgPGhlYWQ+IG9mIHRoZSBhcHAuICovXG4vKiBAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzo0MDAsNTAwJnN1YnNldD1sYXRpbicpOyAqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBPVVIgTU9EQUwgTUVTU0FHRSAtLSBWQVJJQUJMRVNcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG46cm9vdCB7XG5cbiAgLyogQ29sb3IgcGFsZXR0ZSAqL1xuXG4gIC0tbW9kYWwtdGVhbDogICAgICAgIzAwODQ3MDtcbiAgLS1tb2RhbC1saWdodC1ncmF5OiAjZWJlYmViOyAvKiA4JSBibGFjayAqL1xuICAtLW1vZGFsLXdoaXRlOiAgICAgICNmZmZmZmY7XG5cbiAgLypcbiAgICBUeXBvZ3JhcGhpYyBzaXplc1xuXG4gICovXG5cbiAgLS1tb2RhbC1mb250LWJhc2UtbWluOiAxNnB4O1xuICAtLW1vZGFsLWZvbnQtYmFzZS1tYXg6IDIwcHg7XG4gIC0tbW9kYWwtZmx1aWQtZW06ICAgICAgY2FsYygxNnB4ICsgKDIwIC0gMTYpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbiAgLS1tb2RhbC1iZXRhOiAgICAgICAgICAxLjc4NGVtO1xuICAtLW1vZGFsLWdhbW1hOiAgICAgICAgIDEuMmVtO1xuICAtLW1vZGFsLWRlbHRhOiAgICAgICAgIDFlbTtcbiAgLS1tb2RhbC16ZXRhOiAgICAgICAgICAuODc1ZW07XG4gIC0tbW9kYWwtZXRhOiAgICAgICAgICAgLjc1ZW07XG5cbn1cblxuLyogVmlld3BvcnQgV2lkdGggVmFyaWFibGVzICovXG5cbjpyb290IHtcblxuICAtLW1vZGFsLWJwLW1pbjogICAgICAgICAgMzIwcHg7XG4gIC0tbW9kYWwtYnAtbWVnYTogICAgICAgICAxMDI0cHg7XG4gIC0tbW9kYWwtYnAtbWF4OiAgICAgICAgICAxMzIwcHg7XG5cbn1cblxuLyogQ3VzdG9tIE1lZGlhIERlY2xhcmF0aW9ucyBmb3IgQnJlYWtwb2ludHMgKi9cblxuQGN1c3RvbS1tZWRpYSAtLW1vZGFsLWJwLW1pbiAobWluLXdpZHRoOiAzMjBweCk7XG5AY3VzdG9tLW1lZGlhIC0tbW9kYWwtYnAtbWVnYSAobWluLXdpZHRoOiAxMDI0cHgpO1xuQGN1c3RvbS1tZWRpYSAtLW1vZGFsLWJwLW1heCAobWluLXdpZHRoOiAxMzIwcHgpO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qXG4qIENPTVBPTkVOVDogT1VSIE1PREFMIE1FU1NBR0UgLS0gVFlQT0dSQVBIWVxuKlxuKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYy1tb2RhbCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbW9kYWwtZm9udC1iYXNlLW1pbik7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJ1RyZWJ1Y2hldCBNUycsIFRyZWJ1Y2hldCwgVGFob21hLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNTAwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwOyAvKiBodHRwczovL3d3dy56YWNobGVhdC5jb20vd2ViL2NvbXByZWhlbnNpdmUtd2ViZm9udHMvI2ZvbnQtZGlzcGxheSAqL1xuICBsaW5lLWhlaWdodDogMS4zNTtcblxuICAvKiBGbHVpZCBmcm9tIDE2cHggdG8gMjBweCBiZXR3ZWVuIGJyZWFrcG9pbnRzICovXG5cbiAgLyogRmx1aWQgdHlwZSBzaXplIGZyb20gMTZweCB0byAyMHB4IGJldHdlZW4gLS1tb2RhbC1icC1taW4gYW5kIC0tbW9kYWwtYnAtbWF4IGJyZWFrcG9pbnRzICovXG5cbiAgQG1lZGlhICgtLW1vZGFsLWJwLW1pbikge1xuICAgICYge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1tb2RhbC1mb250LWJhc2UtbWluKTsgLyogMTZweCBhdCAzMjBweCAqL1xuICAgICAgZm9udC1zaXplOiBjYWxjKDE2cHggKyAoMjAgLSAxNikgKiAoKDEwMHZ3IC0gMzIwcHgpLygxMzIwIC0gMzIwKSkpO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoLS1tb2RhbC1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbW9kYWwtZm9udC1iYXNlLW1heCk7IC8qIDIwcHggYXQgMTMyMHB4ICovXG4gICAgfVxuICB9XG5cbiAgLyogRmx1aWQgbGluZS1oZWlnaHQgZnJvbSAxLjM1IHRvIDEuNDUgYmV0d2VlbiAtLW1vZGFsLWJwLW1pbiBhbmQgLS1tb2RhbC1icC1tYXggYnJlYWtwb2ludHMgKi9cblxuICBAbWVkaWEgKC0tbW9kYWwtYnAtbWluKSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7IC8qIDEuMzUgYXQgMzIwcHggKi9cbiAgICBsaW5lLWhlaWdodDogY2FsYygxLjM1ZW0gKyAoMS40NSAtIDEuMzUpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbiAgfVxuXG4gIEBtZWRpYSAoLS1tb2RhbC1icC1tYXgpIHtcbiAgICBsaW5lLWhlaWdodDogMS40NTsgLyogMS40NSBhdCAxMzIwcHggKi9cbiAgfVxuXG5cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKlxuKiBDT01QT05FTlQ6IE9VUiBNT0RBTCBNRVNTQUdFIC0tIFNUWUxFU1xuKlxuKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5ib2R5LmwtaGFzLW1vZGFsIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xufVxuXG4uYy1tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jLW1vZGFsICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5ib2R5LmwtaGFzLW1vZGFsIC5jLW1vZGFsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIHotaW5kZXg6IDg2NzUzMTA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuODUpICFpbXBvcnRhbnQ7XG59XG5cbi5jLW1vZGFsX19jb250ZW50IHtcbiAgbWFyZ2luLWxlZnQ6IDV2dztcbiAgbWFyZ2luLXJpZ2h0OiA1dnc7XG4gIHBhZGRpbmc6IDJlbTtcbiAgei1pbmRleDogODY3NTMxMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbW9kYWwtdGVhbCk7XG4gIGNvbG9yOiB2YXIoLS1tb2RhbC13aGl0ZSk7XG4gIGJveC1zaGFkb3c6IDAgMjVweCAxMDBweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IC4yNWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuQG1lZGlhICgtLW1vZGFsLWJwLW1lZ2EpIHtcbiAgLmMtbW9kYWxfX2NvbnRlbnQge1xuICAgIG1hcmdpbi1yaWdodDogMTV2dztcbiAgICBtYXJnaW4tbGVmdDogMTV2dztcbiAgfVxufVxuXG4uYy1tb2RhbCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG5hLmMtbW9kYWxfX2Nsb3NlLFxuYS5jLW1vZGFsX19jbG9zZTpsaW5rLFxuYS5jLW1vZGFsX19jbG9zZTp2aXNpdGVkXG5hLmMtbW9kYWxfX2Nsb3NlOmFjdGl2ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0b3A6IGNhbGMoLjEyNSAqIHZhcigtLW1vZGFsLWZsdWlkLWVtKSk7XG4gIHJpZ2h0OiBjYWxjKC41ICogdmFyKC0tbW9kYWwtZmx1aWQtZW0pKTtcbiAgZm9udC1zaXplOiB2YXIoLS1tb2RhbC1iZXRhKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1tb2RhbC13aGl0ZSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogLjg7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbmEuYy1tb2RhbF9fY2xvc2U6Zm9jdXMsXG5hLmMtbW9kYWxfX2Nsb3NlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHZhcigtLW1vZGFsLXdoaXRlKTtcbn1cblxuYS5jLW1vZGFsX19jYW5jZWwsXG5hLmMtbW9kYWxfX2NhbmNlbDpsaW5rLFxuYS5jLW1vZGFsX19jYW5jZWw6dmlzaXRlZFxuYS5jLW1vZGFsX19jYW5jZWw6YWN0aXZlIHtcbiAgZm9udC1zaXplOiB2YXIoLS1tb2RhbC1ldGEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW1vZGFsLWxpZ2h0LWdyYXkpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNTAwO1xuICBtaW4taGVpZ2h0OiAyLjM3NWVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IGNhbGMoLjI1ICogdmFyKC0tbW9kYWwtZmx1aWQtZW0pKSAwIDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuYS5jLW1vZGFsX19jYW5jZWw6Zm9jdXMsXG5hLmMtbW9kYWxfX2NhbmNlbDpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1tb2RhbC13aGl0ZSk7XG59XG5cbi5jLW1vZGFsX19jb250ZW50IHtcbiAgJiA+IGgxIHtcbiAgICBmb250LXNpemU6IHZhcigtLW1vZGFsLWdhbW1hKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICB9XG5cbiAgJiA+IGFbcm9sZT1cImJ1dHRvblwiXSxcbiAgJiA+IGFbcm9sZT1cImJ1dHRvblwiXTpsaW5rLFxuICAmID4gYVtyb2xlPVwiYnV0dG9uXCJdOnZpc2l0ZWRcbiAgJiA+IGFbcm9sZT1cImJ1dHRvblwiXTphY3RpdmUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tbW9kYWwtZXRhKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IGNhbGMoLjA2MjUgKiB2YXIoLS1tb2RhbC1mbHVpZC1lbSkpIHNvbGlkIHZhcigtLW1vZGFsLWxpZ2h0LWdyYXkpO1xuICAgIGJvcmRlci1yYWRpdXM6IGNhbGMoLjI1ICogdmFyKC0tbW9kYWwtZmx1aWQtZW0pKTtcbiAgICBjb2xvcjogdmFyKC0tbW9kYWwtbGlnaHQtZ3JheSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1pbi1oZWlnaHQ6IDIuMzc1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBwYWRkaW5nOiAuNzVlbSAxLjg3NWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW46IGNhbGMoLjI1ICogdmFyKC0tbW9kYWwtZmx1aWQtZW0pKSAwIDA7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cblxuICAmID4gYVtyb2xlPVwiYnV0dG9uXCJdOmZvY3VzLFxuICAmID4gYVtyb2xlPVwiYnV0dG9uXCJdOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1vZGFsLXdoaXRlKTtcbiAgICBjb2xvcjogdmFyKC0tbW9kYWwtd2hpdGUpO1xuICB9XG5cbiAgJiA+IGFbcmVsPVwiYWx0ZXJuYXRlXCJdLFxuICAmID4gYVtyZWw9XCJhbHRlcm5hdGVcIl06bGluayxcbiAgJiA+IGFbcmVsPVwiYWx0ZXJuYXRlXCJdOnZpc2l0ZWRcbiAgJiA+IGFbcmVsPVwiYWx0ZXJuYXRlXCJdOmFjdGl2ZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1tb2RhbC16ZXRhKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogMi41ZW07XG4gICAgbWFyZ2luOiBjYWxjKC41ICogdmFyKC0tbW9kYWwtZmx1aWQtZW0pKSAwO1xuICB9XG5cbiAgJiA+IGFbcmVsPVwiYWx0ZXJuYXRlXCJdOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0uNWVtO1xuICAgIHJpZ2h0OiAuMTI1ZW07XG4gICAgY29udGVudDogXCJcIjtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogdHJhbnNwYXJlbnQgc29saWQgLjVlbTtcbiAgICBib3JkZXItcmlnaHQ6IHRyYW5zcGFyZW50IHNvbGlkIC43NWVtO1xuICAgIGJvcmRlci1ib3R0b206IHRyYW5zcGFyZW50IHNvbGlkIC41ZW07XG4gICAgYm9yZGVyLWxlZnQ6IHZhcigtLW1vZGFsLWxpZ2h0LWdyYXkpIHNvbGlkIC43NWVtO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgJiA+IGFbcmVsPVwiYWx0ZXJuYXRlXCJdOmZvY3VzOjphZnRlcixcbiAgJiA+IGFbcmVsPVwiYWx0ZXJuYXRlXCJdOmhvdmVyOjphZnRlciB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLW1vZGFsLXdoaXRlKTtcbiAgfVxufVxuXG4uaC1tb2RhbC11cmwtd3JhcCB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgTkFWXG4gKiBJbmNsdWRlZCBpbiB0aGlzIGRvY3VtZW50OiBWYXJpYWJsZXMsIEJhc2UsIFN0eWxlc1xuICpcbiAqIFRoZSBpbnN0YW5jZSBvZiB0aGUgZ2xvYmFsIG5hdiBlbWJlZGRlZCB3aXRoaW5cbiAqIHRoZSByZWcgYXBwIGlzIGNhbm9uaWNhbC5cbiAqIChodHRwczovL2dpdGh1Yi5jb20vb3BlbnVwcmVzb3VyY2VzL2N1cnJpY3VsdW0tZ2F0ZXdheSlcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIE5BViAtLSBST0JPVE8gRk9OVFNcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gLyogQXZvaWQgbG9hZGluZyB1bm5lY2Vzc2FyeSBmb250IHdlaWdodHMhICovXG4gLyogQWx3YXlzIG5lY2Vzc2FyeTogKi9cbiAgICAvKiBSb2JvdG8gNTAwIGZvciB0b3AgYW5kIHNlY29uZC1sZXZlbCBsaXN0IGl0ZW1zLiAqL1xuIC8qIFNvbWV0aW1lcyBuZWNlc3Nhcnk6ICovXG4gICAgLyogUm9ib3RvIDQwMCBmb3IgdGhpcmQtbGV2ZWwgbGlzdCBpdGVtcyBpbiBuYXJyb3cgdmlld3BvcnRzIGFuZCBnbG9iYWwgbm90aWZpY2F0aW9ucy4gKi9cbiAvKiBPbmx5IG5lY2Vzc2FyeSBpbiB0aGUgQ3VycmljdWx1bSBHYXRld2F5L1JlZyBBcHA6ICovXG4gICAgLyogUm9ib3RvIDcwMCBmb3Ig4oCcQ3JlYXRlIE5ldyBBY2NvdW504oCdIG9uIGxvZ2luIHBhZ2UuICovXG5cbiAvKiBJZiBHb29nbGUgRm9udHMgYXJlIGFscmVhZHkgaW1wb3J0ZWQgaW50byB0aGUgYXBwLCBpbmNsdWRlIFwiJmZhbWlseT1Sb2JvdG86aXRhbCx3Z2h0QDAsNDAwOzAsNTAwOzEsNzAwXCIgYXMgbmVjZXNzYXJ5LiAqL1xuIC8qIElmIEdvb2dsZSBGb250cyBhcmUgbm90IGFscmVhZHkgaW1wb3J0ZWQsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGltcG9ydCBzdGF0ZW1lbnQgb3IgKGJldHRlcikgYWRkXG4gdGhlIGVxdWl2YWxlbnQgdG8gdGhlIDxoZWFkPiBvZiB0aGUgYXBwLiAqL1xuIC8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVJvYm90bzppdGFsLHdnaHRAMCw0MDA7MCw1MDA7MSw3MDAmZGlzcGxheT1zd2FwJyk7ICovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgTkFWIC0tIFZBUklBQkxFU1xuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIENvbG9yIHBhbGV0dGUgKi9cblxuOnJvb3Qge1xuXG4gIC8qIENvbG9ycyB3aXRoIFwiLW91ci1cIiBpbiB0aGVpciBuYW1lIGFyZSBzb3VyY2VkIGZyb20gdGhlIE9VUiBicmFuZCBndWlkZWxpbmVzICovXG5cbi0tbmF2LWdsb2JhbC1vdXItcHJpbWFyeS1vcmFuZ2U6ICAgICAgIHJnYigyNTIsNzYsMik7ICAgIC8qICNGQzRDMDIgKi9cbi0tbmF2LWdsb2JhbC1vdXItZ2xvYmFsbmF2LW9yYW5nZTogICAgIHJnYigyNDEsODksNDIpOyAgIC8qICNGMTU5MkEgIC0gYSBsZXNzIGJyaWdodCBvcmFuZ2UgKi9cbi0tbmF2LWdsb2JhbC1vdXItcHJpbWFyeS15ZWxsb3c6ICAgICAgIHJnYigyNTUsMTg0LDI4KTsgIC8qICNGRkI4MUMgKi9cbi0tbmF2LWdsb2JhbC1vdXItcHJpbWFyeS1ncmF5OiAgICAgICAgIHJnYigxMTAsOTgsODkpOyAgIC8qICM2RTYyNTkgKi9cbi0tbmF2LWdsb2JhbC1vdXItcHJpbWFyeS1kYXJrLWdyYXk6ICAgIHJnYig2OSw1Myw1NCk7ICAgIC8qICM0NTM1MzYgKi9cbi0tbmF2LWdsb2JhbC13aGl0ZTogICAgICAgICAgICAgICAgICAgIHdoaXRlO1xuLS1uYXYtZ2xvYmFsLWxpZ2h0LWdyYXk6ICAgICAgICAgICAgICAgcmdiKDI0MSwyNDEsMjQxKTtcblxuLypcbiAgVHlwb2dyYXBoaWMgc2l6ZXNcblxuICBGb250IHNpemVzIGJhc2VkIG9uIG1pbm9yIHRoaXJkICgxLjIpIGh0dHA6Ly93d3cubW9kdWxhcnNjYWxlLmNvbS8/MSZlbSYxLjJcblxuKi9cblxuLS1uYXYtZ2xvYmFsLWZvbnQtYmFzZS1taW46IDE2cHg7XG4tLW5hdi1nbG9iYWwtZm9udC1iYXNlLW1heDogMjBweDtcbi0tbmF2LWdsb2JhbC1mbHVpZC1lbTogICAgICBjYWxjKDE2cHggKyAoMjAgLSAxNikgKiAoKDEwMHZ3IC0gMzIwcHgpLygxMzIwIC0gMzIwKSkpO1xuLS1uYXYtZ2xvYmFsLWRlbHRhOiAgICAgICAgIDEuMmVtO1xuLS1uYXYtZ2xvYmFsLWVwc2lsb246ICAgICAgIC44MzNlbTtcbi0tbmF2LWdsb2JhbC16ZXRhOiAgICAgICAgICAuOGVtO1xuXG59XG5cbi8qIEN1c3RvbSBNZWRpYSBEZWNsYXJhdGlvbnMgZm9yIEJyZWFrcG9pbnRzICovXG5cbkBjdXN0b20tbWVkaWEgLS1uYXYtZ2xvYmFsLWJwLW1pbi1taW51cyAobWF4LXdpZHRoOiA1MzZweCk7XG5AY3VzdG9tLW1lZGlhIC0tbmF2LWdsb2JhbC1icC1taW4gKG1pbi13aWR0aDogNTM3cHgpO1xuQGN1c3RvbS1tZWRpYSAtLW5hdi1nbG9iYWwtYnAtbWlkLW1pbnVzIChtYXgtd2lkdGg6IDEwMjNweCk7XG5AY3VzdG9tLW1lZGlhIC0tbmF2LWdsb2JhbC1icC1taWQgKG1pbi13aWR0aDogMTAyNHB4KTtcbkBjdXN0b20tbWVkaWEgLS1uYXYtZ2xvYmFsLWJwLW1heC1taW51cyAobWF4LXdpZHRoOiAxMzE5cHgpO1xuQGN1c3RvbS1tZWRpYSAtLW5hdi1nbG9iYWwtYnAtbWF4IChtaW4td2lkdGg6IDEzMjBweCk7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgTkFWIC0tIEJBU0VcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYy1uYXYtZ2xvYmFsIHtcbiAgIGZvbnQtc2l6ZTogdmFyKC0tbmF2LWdsb2JhbC1mb250LWJhc2UtbWluKTtcbiAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJ1RyZWJ1Y2hldCBNUycsIFRyZWJ1Y2hldCwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZWxlZ2liaWxpdHk7IC8qIENhbiBjYXVzZSBwcm9ibGVtcyBpbiBzb21lIHZlcnNpb25zIG9mIEFuZHJvaWQgKi9cbiAgICAgdGV4dC1zaXplLWFkanVzdDogbm9uZTtcbiAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgIGZvbnQtZGlzcGxheTogc3dhcDsgLyogaHR0cHM6Ly93d3cuemFjaGxlYXQuY29tL3dlYi9jb21wcmVoZW5zaXZlLXdlYmZvbnRzLyNmb250LWRpc3BsYXkgKi9cbiAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuXG4gICAvKiBGbHVpZCBmcm9tIDE2cHggdG8gMjBweCBiZXR3ZWVuIGJyZWFrcG9pbnRzICovXG5cbiAgIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pbikge1xuICAgICAmIHtcbiAgICAgICBmb250LXNpemU6IHZhcigtLW5hdi1nbG9iYWwtZm9udC1iYXNlLW1pbik7IC8qIDE2cHggYXQgMzIwcHggKi8gLyogcHggZmFsbGJhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG9u4oCZdCBnZXQgY2FsYyAqL1xuICAgICAgIGZvbnQtc2l6ZTogY2FsYygxNnB4ICsgKDIwIC0gMTYpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbiAgICAgfVxuICAgfVxuXG4gICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1tYXgpIHtcbiAgICAgJiB7XG4gICAgICAgZm9udC1zaXplOiB2YXIoLS1uYXYtZ2xvYmFsLWZvbnQtYmFzZS1tYXgpOyAvKiAyMHB4IGF0IDEzMjBweCAqL1xuICAgICB9XG4gICB9XG59XG5cbi5jLW5hdi1nbG9iYWwgKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENPTVBPTkVOVDogT1VSIEdMT0JBTCBOQVYgLS0gU1RZTEVTXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtbmF2LWdsb2JhbCB7XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgei1pbmRleDogODY3NTMwOTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtZ2xvYmFsX193cmFwcGVyIHtcbiAgcGFkZGluZzogLjc1ZW0gMWVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXYtZ2xvYmFsLW91ci1nbG9iYWxuYXYtb3JhbmdlKTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBwYWRkaW5nOiAwIC4yNWVtIDAgMWVtO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtZ2xvYmFsX19sb2dvbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmc6IDAuODMxMjVlbSAwO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtZ2xvYmFsX19sb2dvaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMmVtO1xuICB3aWR0aDogYXV0bztcbn1cblxuLmMtbmF2LWdsb2JhbF9fbWVudSB7XG4gIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1uYXYtZ2xvYmFsLXdoaXRlKTtcbiAgYm9yZGVyOiAzcHggdmFyKC0tbmF2LWdsb2JhbC1vdXItcHJpbWFyeS15ZWxsb3cpIHNvbGlkOyAvKiBOb3JtYWxseSwgSSBwcmVmZXIgcmVtcy9lbXMgZm9yIGFsbCBkaW1lbnNpb25zLCBidXQgYnJvd3NlciByb3VuZGluZyBvbiBhbiBlbGVtZW50IHRoaXMgc21hbGwgcmVzdWx0cyBpbiBkaWZmZXJlbnQgcGl4ZWwgd2lkdGhzIGFjcm9zcyBhZGphY2VudCBpbnN0YW5jZXMgb2YgdGhpcyBzYW1lIGVsZW1lbnQuIFRoZSBkaWZmZXJlbmNlIGlzIG5vdGljZWFibGUgYW5kIGFubm95aW5nLiAgKi9cbiAgYm9yZGVyLXJhZGl1czogY2FsYygxLjI1ICogdmFyKC0tbmF2LWdsb2JhbC1mbHVpZC1lbSkpO1xuICBwYWRkaW5nOiBjYWxjKC41ICogdmFyKC0tbmF2LWdsb2JhbC1mbHVpZC1lbSkpIGNhbGModmFyKC0tbmF2LWdsb2JhbC1mbHVpZC1lbSkpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1uYXYtZ2xvYmFsLWZsdWlkLWVtKSk7XG4gIHdpZHRoOiBjYWxjKDUgKiB2YXIoLS1uYXYtZ2xvYmFsLWZsdWlkLWVtKSk7XG4gIHRleHQtYWxpZ246Y2VudGVyO1xuICBmb250LXNpemU6IHZhcigtLW5hdi1nbG9iYWwtZXBzaWxvbik7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgJjpsaW5rLFxuICAmOnZpc2l0ZWQsXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogdmFyKC0tbmF2LWdsb2JhbC13aGl0ZSk7XG4gIH1cbn1cblxuLmMtbmF2LWdsb2JhbF9fbmF2IHtcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkLW1pbnVzKSB7XG4gICAgJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXYtZ2xvYmFsLW91ci1nbG9iYWxuYXYtb3JhbmdlKTtcbiAgICAgIHBhZGRpbmc6IC43NWVtIDFlbTtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgei1pbmRleDogODY3NTMwOTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMsIHZpc2liaWxpdHkgMHMgMC41cztcblxuICAgICAgJjp0YXJnZXQ6bm90KFtkYXRhLXNraXAtdGFyZ2V0aW5nXSksICZbZGF0YS12aXNpYmxlXSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWdsb2JhbF9fbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMWVtIGF1dG8gMDtcbiAgcGFkZGluZzogMmVtIDFlbSAyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWdsb2JhbF9fbGlzdCB7XG4gIC8qIEFubm95aW5nIG5lY2Vzc2l0eSAtIG92ZXJyaWRlIG9mIE9VUiB3b3JkcHJlc3MgdGhlbWUgZGVmYXVsdHMgZm9yIHVsICovXG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5jLW5hdi1nbG9iYWxfX2xpc3RpdGVtIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgaHlwaGVuczogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAuNjU2MjVlbSAwIDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmc6IDEuMTU2MjVlbSAwO1xuICAgIH1cbiAgfVxufVxuXG4vKiBBbm5veWluZyBuZWNlc3NpdHkgLSBvdmVycmlkZSBvZiBPVVIgd29yZHByZXNzIHRoZW1lIGRlZmF1bHRzIGZvciB1bCBsaSAqL1xuLmMtbmF2LWdsb2JhbF9fbGlzdGl0ZW06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IG5vcm1hbDtcbn1cblxuLmMtbmF2LWdsb2JhbF9fbGFiZWwge1xuICBjb2xvcjogdmFyKC0tbmF2LWdsb2JhbC13aGl0ZSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbmF2LWdsb2JhbC1kZWx0YSk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6IHZhcigtLW5hdi1nbG9iYWwtZXBzaWxvbik7XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1nbG9iYWxfX2xpbmssXG4uYy1uYXYtZ2xvYmFsX19saW5rOmxpbmssXG4uYy1uYXYtZ2xvYmFsX19saW5rOnZpc2l0ZWQsXG4uYy1uYXYtZ2xvYmFsX19saW5rOmFjdGl2ZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbmF2LWdsb2JhbC1kZWx0YSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1uYXYtZ2xvYmFsLXdoaXRlKTtcbiAgcGFkZGluZzogY2FsYyguNSAqIHZhcigtLW5hdi1nbG9iYWwtZmx1aWQtZW0pKTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6IHZhcigtLW5hdi1nbG9iYWwtZXBzaWxvbik7XG4gICAgICBwYWRkaW5nOiAwIHZhcigtLW5hdi1nbG9iYWwtZm9udC1iYXNlLW1heCk7XG4gICAgfVxuICB9XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogM3B4OyAvKiBOb3JtYWxseSwgSSBwcmVmZXIgcmVtcy9lbXMgZm9yIGFsbCBkaW1lbnNpb25zLCBidXQgYnJvd3NlciByb3VuZGluZyBvbiBhbiBlbGVtZW50IHRoaXMgc21hbGwgcmVzdWx0cyBpbiBkaWZmZXJlbnQgcGl4ZWwgd2lkdGhzIGFjcm9zcyBhZGphY2VudCBpbnN0YW5jZXMgb2YgdGhpcyBzYW1lIGVsZW1lbnQuIFRoZSBkaWZmZXJlbmNlIGlzIG5vdGljZWFibGUgYW5kIGFubm95aW5nLiAgKi9cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMnB4O1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQtbWludXMpIHtcbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiBjYWxjKC4yNSAqIHZhcigtLW5hdi1nbG9iYWwtZmx1aWQtZW0pKTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tbmF2LWdsb2JhbC13aGl0ZSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICY6aG92ZXI6OmFmdGVyLFxuICAgICY6Zm9jdXM6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLW5hdi1nbG9iYWwtb3VyLXByaW1hcnkteWVsbG93KTtcbiAgICB9XG4gIH1cbn1cblxuLyogNzAwIHdlaWdodCBvbmx5IHJlcXVpcmVkIGluIHRoZSBSZWcgQXBwIGZvciBmb3JtYXR0aW5nIFwiQ3JlYXRlIE5ldyBBY2NvdW50XCIgKi9cbi5jLW5hdi1nbG9iYWxfX2xhYmVsICsgLmMtbmF2LWdsb2JhbF9fbGluayxcbi5jLW5hdi1nbG9iYWxfX2xhYmVsICsgLmMtbmF2LWdsb2JhbF9fbGluazpsaW5rLFxuLmMtbmF2LWdsb2JhbF9fbGFiZWwgKyAuYy1uYXYtZ2xvYmFsX19saW5rOnZpc2l0ZWQsXG4uYy1uYXYtZ2xvYmFsX19sYWJlbCArIC5jLW5hdi1nbG9iYWxfX2xpbms6YWN0aXZlIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBmb250LXdlaWdodDogNzAwO1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDNweDsgLyogTm9ybWFsbHksIEkgcHJlZmVyIHJlbXMvZW1zIGZvciBhbGwgZGltZW5zaW9ucywgYnV0IGJyb3dzZXIgcm91bmRpbmcgb24gYW4gZWxlbWVudCB0aGlzIHNtYWxsIHJlc3VsdHMgaW4gZGlmZmVyZW50IHBpeGVsIHdpZHRocyBhY3Jvc3MgYWRqYWNlbnQgaW5zdGFuY2VzIG9mIHRoaXMgc2FtZSBlbGVtZW50LiBUaGUgZGlmZmVyZW5jZSBpcyBub3RpY2VhYmxlIGFuZCBhbm5veWluZy4gICovXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAycHg7XG4gIH1cbiAgJjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW5hdi1nbG9iYWwtb3VyLXByaW1hcnkteWVsbG93KTtcbiAgICBvcGFjaXR5OiAuNzU7XG4gIH1cbiAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWdsb2JhbF9fbGlzdGl0ZW06bGFzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpIHtcbiAgJiAuYy1uYXYtZ2xvYmFsX19saW5rLFxuICAmIC5jLW5hdi1nbG9iYWxfX2xpbms6bGluayxcbiAgJiAuYy1uYXYtZ2xvYmFsX19saW5rOnZpc2l0ZWQsXG4gICYgLmMtbmF2LWdsb2JhbF9fbGluazphY3RpdmUge1xuICAgIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICAgJiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1uYXYtZ2xvYmFsLWZvbnQtYmFzZS1tYXgpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMiAqIHZhcigtLW5hdi1nbG9iYWwtZm9udC1iYXNlLW1heCkpO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLW5hdi1nbG9iYWwtd2hpdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLmMtbmF2LWdsb2JhbF9fbm90aWZpY2F0aW9uIHtcbiAgcGFkZGluZzogdmFyKC0tbmF2LWdsb2JhbC16ZXRhKSAzZW07XG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYy1uYXYtZ2xvYmFsX19ub3RpZmljYXRpb24gcCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbmF2LWdsb2JhbC16ZXRhKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAwO1xufVxuXG4uYy1uYXYtZ2xvYmFsX19ub3RpZmljYXRpb24gYSB7XG4gIGNvbG9yOiB2YXIoLS1uYXYtZ2xvYmFsLW91ci1wcmltYXJ5LWRhcmstZ3JheSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5jLW5hdi1nbG9iYWxfX2hlbHBlci1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiLyogTWFrZSBjb250ZW50IHZpc2libGUgc2NyZWVuIHJlYWRlcnMgb25seSB3aGVuIG5vdCBmb2N1c2VkIG9yIGFjdGl2ZSAqL1xuLyogXCJzclwiIG1lYW5pbmcgXCJzY3JlZW4tcmVhZGVyXCIuIExlYXJuIG1vcmU6IGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vaW5jbHVzaXZlbHktaGlkZGVuLyAqL1xuXG4uc3Itb25seTpub3QoOmZvY3VzKTpub3QoOmFjdGl2ZSkge1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMXB4O1xufVxuXG4qOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuKjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDAgMCAwLjE1ZW0gI2ZmZixcbiAgICAwIDAgMCAwLjNlbSB2YXIoLS1hYS1vcmFuZ2UpO1xufVxuXG5AbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAqOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDAuMmVtIHNvbGlkO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi9jb21wb25lbnRzL19mb290ZXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL19tb2RhbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvX25hdi1nbG9iYWwuY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL19hY2Nlc3NpYmlsaXR5LmNzc1wiO1xuXG4vKiogVXRpbGl0eSBDbGFzc2VzICoqL1xuXG4vKlxuICBVc2VkIHRvIGluZGljYXRlIHByZWZvcm1hdHRlZCB3aGl0ZXNwYWNlLlxuKi9cbi51LXByZWZvcm1hdHRlZCB7IHdoaXRlLXNwYWNlOiBwcmUgfVxuIl19 */
