/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */

/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */

html {
  font-family: sans-serif; /* 1 */
  -ms-text-size-adjust: 100%; /* 2 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/**
 * Remove default margin.
 */

body {
  margin: 0;
}

/* HTML5 display definitions
   ========================================================================== */

/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block;
}

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */

audio, canvas, progress, video {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
}

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */

audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */

[hidden], template {
  display: none;
}

/* Links
   ========================================================================== */

/**
 * Remove the gray background color from active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */

a:active, a:hover {
  outline: 0;
}

/* Text-level semantics
   ========================================================================== */

/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */

abbr[title] {
  border-bottom: 1px dotted;
}

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */

b, strong {
  font-weight: bold;
}

/**
 * Address styling not present in Safari and Chrome.
 */

dfn {
  font-style: italic;
}

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/**
 * Address styling not present in IE 8/9.
 */

mark {
  background: #ff0;
  color: #000;
}

/**
 * Address inconsistent and variable font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove border when inside `a` element in IE 8/9/10.
 */

img {
  border: 0;
}

/**
 * Correct overflow not hidden in IE 9/10/11.
 */

svg:not(:root) {
  overflow: hidden;
}

/* Grouping content
   ========================================================================== */

/**
 * Address margin not present in IE 8/9 and Safari.
 */

figure {
  margin: 1em 40px;
}

/**
 * Address differences between Firefox and other browsers.
 */

hr {
  box-sizing: content-box;
  height: 0;
}

/**
 * Contain overflow in all browsers.
 */

pre {
  overflow: auto;
}

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */

code, kbd, pre, samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* Forms
   ========================================================================== */

/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */

/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */

button, input, optgroup, select, textarea {
  color: inherit; /* 1 */
  font: inherit; /* 2 */
  margin: 0; /* 3 */
}

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */

button {
  overflow: visible;
}

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */

button, select {
  text-transform: none;
}

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */

button, html input[type="button"], input[type="reset"], input[type="submit"] {
  -webkit-appearance: button; /* 2 */
  cursor: pointer; /* 3 */
}

/**
 * Re-set default cursor for disabled elements.
 */

button[disabled], html input[disabled] {
  cursor: default;
}

/**
 * Remove inner padding and border in Firefox 4+.
 */

button::-moz-focus-inner, input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */

input {
  line-height: normal;
}

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */

input[type="checkbox"], input[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */

input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
 */

input[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  box-sizing: content-box; /* 2 */
}

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */

input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * Define consistent border, margin, and padding.
 */

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */

legend {
  border: 0; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */

textarea {
  overflow: auto;
}

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */

optgroup {
  font-weight: bold;
}

/* Tables
   ========================================================================== */

/**
 * Remove most spacing between table cells.
 */

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td, th {
  padding: 0;
}




/* grid css recipes */ /*767*/ /*768*/ /*1199*/ /*1200*/ /*1600*/ /*1200*//* conservé uniquement parce qu'une référence y est faite dans cssrecipes */ /*1600*/

/*
 * tables borders like they should be
 * applied to * to also works for display: table;
 */
html {border-collapse: collapse}
* {border-collapse: inherit}
/*
 * box model like it should be
 *
 * http://www.paulirish.com/2012/box-sizing-border-box-ftw/
 */
html {box-sizing: border-box}

*, *:before, *:after {
  box-sizing: inherit;
}
/*
 * kill document defaults margin & padding. We all do that all the times, right ?
 */
html, body {
  margin: 0;
  padding: 0;
}
/*
 * Makes the hidden attribute works even when an element is styled display: flex
 * http://lists.w3.org/Archives/Public/public-whatwg-archive/2014May/0001.html
 */
[hidden] {display: none !important}
.r-ResetButton {
  border: none;
  margin: 0;
  padding: 0;
  width: auto;
  overflow: visible;

  background: transparent;

  /* inherit font & color from ancestor */
  color: inherit;
  font: inherit;

  /* Normalize `line-height`. Cannot be changed from `normal` in Firefox 4+. */
  line-height: normal;

  /* Corrects font smoothing for webkit */
  -webkit-font-smoothing: inherit;
  -moz-osx-font-smoothing: inherit;

  /* Corrects inability to style clickable `input` types in iOS */
  -webkit-appearance: none;
}

/* Remove excess padding and border in Firefox 4+ */
.r-ResetButton::-moz-focus-inner {
  border: 0;
  padding: 0;
}
.r-ResetInput {
  border: none;
  font-family: inherit;
}

.r-ResetInput::-moz-focus-inner {
  padding: 0;
  border: 0;
}
.r-ResetList {
  list-style: none;

  margin: 0;
  padding: 0;
}

.r-Grid {
  display: block;
  font-size: 0; /* whitespace control */
  padding: 0;
  margin: 0;
}
  /* Modifier --withGutter */
  .r-Grid--withGutter { margin: 0 -0.5rem }

    .r-Grid--withGutter > .r-Grid-cell { padding: 0 0.5rem }
    
  .r-Grid-cell {
    display: inline-block;
    vertical-align: top;
    font-size: 16px;
    font-size: 1rem;
    width: 100%;
    padding: 0;
  }


    .r-Grid-cell--alignTop {vertical-align: top }
    .r-Grid-cell--alignMiddle {vertical-align: middle }
    .r-Grid-cell--alignBottom {vertical-align: bottom }
.r-all--1of12 {
  width: 8.33333%;
}

.r-all--1of10 {
  width: 10%;
}

.r-all--1of8 {
  width: 12.5%;
}

.r-all--1of6, .r-all--2of12 {
  width: 16.66667%;
}

.r-all--1of5, .r-all--2of10 {
  width: 20%;
}

.r-all--1of4, .r-all--2of8, .r-all--3of12 {
  width: 25%;
}

.r-all--3of10 {
  width: 30%;
}

.r-all--1of3, .r-all--2of6, .r-all--4of12 {
  width: 33.33333%;
}

.r-all--3of8 {
  width: 37.5%;
}

.r-all--2of5, .r-all--4of10 {
  width: 40%;
}

.r-all--5of12 {
  width: 41.66667%;
}

.r-all--1of2, .r-all--2of4, .r-all--3of6, .r-all--4of8, .r-all--5of10, .r-all--6of12 {
  width: 50%;
}

.r-all--7of12 {
  width: 58.33333%;
}

.r-all--3of5, .r-all--6of10 {
  width: 60%;
}

.r-all--5of8 {
  width: 62.5%;
}

.r-all--2of3, .r-all--4of6, .r-all--8of12 {
  width: 66.66667%;
}

.r-all--7of10 {
  width: 70%;
}

.r-all--3of4, .r-all--6of8, .r-all--9of12 {
  width: 75%;
}

.r-all--4of5, .r-all--8of10 {
  width: 80%;
}

.r-all--5of6, .r-all--10of12 {
  width: 83.33333%;
}

.r-all--7of8 {
  width: 87.5%;
}

.r-all--9of10 {
  width: 90%;
}

.r-all--11of12 {
  width: 91.66667%;
}

.r-all--1of1, .r-all--2of2, .r-all--3of3, .r-all--4of4, .r-all--5of5, .r-all--6of6, .r-all--8of8, .r-all--10of10, .r-all--12of12 {
  width: 100%;
}

.r-all--hidden {
  display: none;
}

.r-all--visible {
  display: inline-block;
}

:root {

  /** design system colors **/ /*vert sapin */ /* vert amande *//* vert gazon *//* vert kaki */ /* rouge coquelicot */ /* rouge cardinal - "rollover bouton" */ /* bleu océan */ /* bleu clair */ /* gris écume */ /* gris perle */ /* gris souris */ /* gris dauphin */ /* gris aluminium */ /* gris pierre */ /* gris anthracite */ /* noir */ /* jaune sable */


  /** non-design system colors used **/ /* vert bouteille => guide me & walkin */

  /** fonts **/

  /** z-index utilities */
}

@keyframes arrowRightToLeft {
  0%   {left: 0rem;}
  50%  {left: 0.6875rem;}
  51%  {left: -0.6875rem;}
  100% {left: 0rem;}
}

@keyframes sk-bouncedelay {
  0%, 80%, 100% {
    transform: scale(0);
  } 40% {
    transform: scale(1.0);
  }
}

@keyframes stickyBottomToTop {
  0%{
    position: fixed;
    bottom : -4.6875rem;
  }
  100%{
    position: fixed;
    bottom: 0rem;
  }
}

@keyframes stickyBottomToTopSlow {
  0%{
    position: fixed;
    bottom : -4.6875rem;
  }
  70%{
    position: fixed;
    bottom : -4.6875rem;
  }
  100%{
    position: fixed;
    bottom: 0rem;
  }
}

@keyframes stickyElement {
  0%{
    position: fixed;
    top : 0;
    bottom : auto;
  }
  2%{
    position: fixed;
    top : auto;
    bottom: 90%;
    right : 20%;
  }
  100%{
    position: fixed;
    bottom: 1.25rem;
    right: 2.5rem;
  }
}

@keyframes unstickyElement {
  0%{
    position: fixed;
    bottom: 1.25rem;
    right: 2.5rem;
  }
  2%{
    position: fixed;
    top : 90%;
    bottom: auto;
    right : 2.8125rem;
  }
  95%{
    position: fixed;
    top : 10rem;
    bottom: auto;
    right : 5rem;
  }
  100%{
  }
}

@keyframes wave{
  0%{
      background-position: 150% 0;
  }
  100%{
      background-position: -360% 0;
  }
}

@keyframes placeHolderShimmerDesktop {
  0% {
    background-position: -2000px 0
  }
  100% {
    background-position: 2000px 0
  }
}

@keyframes placeHolderShimmerTablet {
  0% {
    background-position: -1199px 0
  }
  100% {
    background-position: 1199px 0
  }
}

@keyframes placeHolderShimmerMobile {
  0% {
    background-position: -767px 0
  }
  100% {
    background-position: 767px 0
  }
}
.gridMain {
  position: relative;
  max-width: 2000px;
  margin: 0 auto;
}

.gridContainer{
  position: relative;
  max-width: 2000px;
  margin: 0 auto;
}

.r-Grid-cell.r-Grid{
  font-size: 0;
}

.r-all--1of2b{
  width: 49.99%;
}
@font-face {
  font-family: "icons";
  src: url('../icons/icons.woff2') format('woff2'),
       url('../icons/icons.woff') format('woff');
}

.cpe-Icon {
  display: inline-block;
  vertical-align: middle;
  position: relative;
}

.cpe-Icon:before {
  font-family: "icons";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-feature-settings: normal;
  font-variant: normal;
  line-height: 1;
  font-weight: normal;
  text-decoration: none;
  text-transform: none;
  display: inline-block;
}

.cpe-Icon--inline:before {
  line-height: 0;
}

.cpe-IconWhiteBackground {
  background: #ffffff;
  border-radius: 50%;
  text-align: center;
  width: 3.75rem;
  height: 3.75rem;
  padding: 20%;
  position: absolute;
  z-index: -1;
  top:  13%;
  right: -8%;
}




.cpe-Icon--360:before {
  content: "\EA01";
}

.cpe-Icon--activities:before {
  content: "\EA02";
}

.cpe-Icon--activities_gift:before {
  content: "\EA03";
}

.cpe-Icon--activity_mobile:before {
  content: "\EA04";
}

.cpe-Icon--annulation:before {
  content: "\EA05";
}

.cpe-Icon--aqualagon:before {
  content: "\EA06";
}

.cpe-Icon--aquamundo:before {
  content: "\EA07";
}

.cpe-Icon--arbres:before {
  content: "\EA08";
}

.cpe-Icon--arrow-big-left:before {
  content: "\EA09";
}

.cpe-Icon--arrow-big-right:before {
  content: "\EA0A";
}

.cpe-Icon--arrow-diagonal:before, .button--withDiagonalArrow:before {
  content: "\EA0B";
}

.cpe-Icon--arrow-left:before, .pika-prev:before, .is-rtl .pika-next:before, .fancybox-inner .fancybox-arrow--left::after {
  content: "\EA0C";
}

.cpe-Icon--arrow-right:before, .pika-next:before, .is-rtl .pika-prev:before, .fancybox-inner .fancybox-arrow--right::after {
  content: "\EA0D";
}

.cpe-Icon--arrow-top:before, .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b:before, .footer-darkGreen .footer-conditions .footer-languageSelection.toggle-active:after, .opened .button--withToggleArrow:before, .searchForm-country .searchForm-listHeader.opened .cpe-Icon--arrow:before, .dropDownList-container .toggle-active .cpe-Icon--arrow:before {
  content: "\EA0E";
}

.cpe-Icon--arrow:before, .select2-container--default .select2-selection--single .select2-selection__arrow b:before, .footer-darkGreen .footer-conditions .footer-languageSelection:after, .button--withToggleArrow:before {
  content: "\EA0F";
}

.cpe-Icon--arrow2:before {
  content: "\EA10";
}

.cpe-Icon--arrow_anchor:before {
  content: "\EA11";
}

.cpe-Icon--arrow_cta:before {
  content: "\EA12";
}

.cpe-Icon--babies_allowed:before {
  content: "\EA13";
}

.cpe-Icon--babies_not_allowed:before {
  content: "\EA14";
}

.cpe-Icon--barrestaurant:before {
  content: "\EA15";
}

.cpe-Icon--barrestaurant_mobile:before {
  content: "\EA16";
}

.cpe-Icon--bathroom:before {
  content: "\EA17";
}

.cpe-Icon--bed:before {
  content: "\EA18";
}

.cpe-Icon--bedroom:before {
  content: "\EA19";
}

.cpe-Icon--bienetre:before {
  content: "\EA1A";
}

.cpe-Icon--bike:before {
  content: "\EA1B";
}

.cpe-Icon--birdies:before {
  content: "\EA1C";
}

.cpe-Icon--booking_paying:before {
  content: "\EA1D";
}

.cpe-Icon--calendar:before {
  content: "\EA1E";
}

.cpe-Icon--calendar_mobile:before {
  content: "\EA1F";
}

.cpe-Icon--call:before {
  content: "\EA20";
}

.cpe-Icon--camera:before {
  content: "\EA21";
}

.cpe-Icon--capacity:before {
  content: "\EA22";
}

.cpe-Icon--car:before {
  content: "\EA23";
}

.cpe-Icon--check:before, .form-checkbox:checked + .form-checkboxLabel:after {
  content: "\EA24";
}

.cpe-Icon--clock:before {
  content: "\EA25";
}

.cpe-Icon--close:before {
  content: "\EA26";
}

.cpe-Icon--close_circle:before {
  content: "\EA27";
}

.cpe-Icon--commerces:before {
  content: "\EA28";
}

.cpe-Icon--commerces_mobile:before {
  content: "\EA29";
}

.cpe-Icon--contact:before {
  content: "\EA2A";
}

.cpe-Icon--cottage:before {
  content: "\EA2B";
}

.cpe-Icon--cottages_nature:before {
  content: "\EA2C";
}

.cpe-Icon--couple:before {
  content: "\EA2D";
}

.cpe-Icon--deepnaturespa:before {
  content: "\EA2E";
}

.cpe-Icon--deliveryservices:before {
  content: "\EA2F";
}

.cpe-Icon--deliveryservices_mobile:before {
  content: "\EA30";
}

.cpe-Icon--duplex:before {
  content: "\EA31";
}

.cpe-Icon--early_booking:before {
  content: "\EA32";
}

.cpe-Icon--enjoy:before {
  content: "\EA33";
}

.cpe-Icon--entertainmentshops:before {
  content: "\EA34";
}

.cpe-Icon--facebook:before {
  content: "\EA35";
}

.cpe-Icon--family_activity:before {
  content: "\EA36";
}

.cpe-Icon--faq:before {
  content: "\EA37";
}

.cpe-Icon--filter-mobile:before {
  content: "\EA38";
}

.cpe-Icon--filter:before {
  content: "\EA39";
}

.cpe-Icon--forthekids:before {
  content: "\EA3A";
}

.cpe-Icon--friends:before {
  content: "\EA3B";
}

.cpe-Icon--garbage2:before {
  content: "\EA3C";
}

.cpe-Icon--go-back:before {
  content: "\EA3D";
}

.cpe-Icon--help_password:before {
  content: "\EA3E";
}

.cpe-Icon--home-button:before {
  content: "\EA3F";
}

.cpe-Icon--house:before {
  content: "\EA40";
}

.cpe-Icon--house_mobile:before {
  content: "\EA41";
}

.cpe-Icon--information:before {
  content: "\EA42";
}

.cpe-Icon--instagram:before {
  content: "\EA43";
}

.cpe-Icon--kitchen:before {
  content: "\EA44";
}

.cpe-Icon--last_minute:before {
  content: "\EA45";
}

.cpe-Icon--less:before {
  content: "\EA46";
}

.cpe-Icon--logo_CP:before {
  content: "\EA47";
}

.cpe-Icon--lounge:before {
  content: "\EA48";
}

.cpe-Icon--managing_my_booking:before {
  content: "\EA49";
}

.cpe-Icon--mappoint3:before {
  content: "\EA4A";
}

.cpe-Icon--menu-aide:before {
  content: "\EA4B";
}

.cpe-Icon--menu_moins:before {
  content: "\EA4C";
}

.cpe-Icon--menu_plus:before {
  content: "\EA4D";
}

.cpe-Icon--menuburger:before {
  content: "\EA4E";
}

.cpe-Icon--meteo:before {
  content: "\EA4F";
}

.cpe-Icon--more:before {
  content: "\EA50";
}

.cpe-Icon--mute:before {
  content: "\EA51";
}

.cpe-Icon--my_stay:before {
  content: "\EA52";
}

.cpe-Icon--nature:before {
  content: "\EA53";
}

.cpe-Icon--naturespa:before {
  content: "\EA54";
}

.cpe-Icon--out_link:before {
  content: "\EA55";
}

.cpe-Icon--outside:before {
  content: "\EA56";
}

.cpe-Icon--parc:before {
  content: "\EA57";
}

.cpe-Icon--pause:before {
  content: "\EA58";
}

.cpe-Icon--people:before {
  content: "\EA59";
}

.cpe-Icon--person:before {
  content: "\EA5A";
}

.cpe-Icon--pets_allowed:before {
  content: "\EA5B";
}

.cpe-Icon--pets_not_allowed:before {
  content: "\EA5C";
}

.cpe-Icon--phone:before {
  content: "\EA5D";
}

.cpe-Icon--pinterest:before {
  content: "\EA5E";
}

.cpe-Icon--placeholder:before {
  content: "\EA5F";
}

.cpe-Icon--plan:before {
  content: "\EA60";
}

.cpe-Icon--plane:before {
  content: "\EA61";
}

.cpe-Icon--play-button:before {
  content: "\EA62";
}

.cpe-Icon--play:before {
  content: "\EA63";
}

.cpe-Icon--play2:before {
  content: "\EA64";
}

.cpe-Icon--pmr:before {
  content: "\EA65";
}

.cpe-Icon--pony:before {
  content: "\EA66";
}

.cpe-Icon--preparing_my_arrival:before {
  content: "\EA67";
}

.cpe-Icon--preparing_my_stay:before {
  content: "\EA68";
}

.cpe-Icon--sante:before {
  content: "\EA69";
}

.cpe-Icon--sante_mobile:before {
  content: "\EA6A";
}

.cpe-Icon--school_holidays:before {
  content: "\EA6B";
}

.cpe-Icon--secure:before {
  content: "\EA6C";
}

.cpe-Icon--servicesliv:before {
  content: "\EA6D";
}

.cpe-Icon--servicesliv_mobile:before {
  content: "\EA6E";
}

.cpe-Icon--shop:before {
  content: "\EA6F";
}

.cpe-Icon--shopping:before {
  content: "\EA70";
}

.cpe-Icon--size:before {
  content: "\EA71";
}

.cpe-Icon--soleil:before {
  content: "\EA72";
}

.cpe-Icon--soundOn:before {
  content: "\EA73";
}

.cpe-Icon--sport:before {
  content: "\EA74";
}

.cpe-Icon--star:before {
  content: "\EA75";
}

.cpe-Icon--supermarche:before {
  content: "\EA76";
}

.cpe-Icon--supermarche_mobile:before {
  content: "\EA77";
}

.cpe-Icon--swimmingpool:before {
  content: "\EA78";
}

.cpe-Icon--train:before {
  content: "\EA79";
}

.cpe-Icon--transfer1:before {
  content: "\EA7A";
}

.cpe-Icon--trash:before {
  content: "\EA7B";
}

.cpe-Icon--trees:before {
  content: "\EA7C";
}

.cpe-Icon--tri:before {
  content: "\EA7D";
}

.cpe-Icon--twitter:before {
  content: "\EA7E";
}

.cpe-Icon--user:before {
  content: "\EA7F";
}

.cpe-Icon--usp-1:before {
  content: "\EA80";
}

.cpe-Icon--usp-2:before {
  content: "\EA81";
}

.cpe-Icon--usp-3:before {
  content: "\EA82";
}

.cpe-Icon--usp-4:before {
  content: "\EA83";
}

.cpe-Icon--usp-5:before {
  content: "\EA84";
}

.cpe-Icon--velo:before {
  content: "\EA85";
}

.cpe-Icon--view_all_birdies:before {
  content: "\EA86";
}

.cpe-Icon--voiture:before {
  content: "\EA87";
}

.cpe-Icon--wifi_allowed:before {
  content: "\EA88";
}

.cpe-Icon--wifi_not_allowed:before {
  content: "\EA89";
}

.cpe-Icon--youtube:before {
  content: "\EA8A";
}

.cpe-Icon--zoom-tool:before {
  content: "\EA8B";
}
.u-VerticalMiddle {
  display: table;
  width: 100%;
}

  .u-VerticalMiddle:before, .u-VerticalMiddle:after {
    content: "";
    display: table-cell;
    vertical-align: middle;
  }

  .u-VerticalMiddle-content {
    display: table-cell;
    vertical-align: middle;
  }
.u-Clearfix:after {
  content:"";
  display:table;
  clear:both;
}

.u-Hidden {
  display: none;
}

.u-Hidden--forced {
  display: none !important;
}

.u-Invisible {
  visibility: hidden;
}
@font-face {
  font-family: 'BentonSans';
  src: url('../fonts/BentonSans-Book.woff2') format('woff2'),
       url('../fonts/BentonSans-Book.woff') format('woff');
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: 'BentonSans';
  src: url('../fonts/BentonSans-Medium.woff2') format('woff2'),
       url('../fonts/BentonSans-Medium.woff') format('woff');
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: 'BentonSans';
  src: url('../fonts/BentonSans-Bold.woff2') format('woff2'),
       url('../fonts/BentonSans-Bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: 'DomaineText-Italic';
  src: url('../fonts/DomaineText-RegularItalic.woff2') format('woff2'),
       url('../fonts/DomaineText-RegularItalic.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'DomaineText-Italic';
  src: url('../fonts/DomaineText-Italic.woff2') format('woff2'),
       url('../fonts/DomaineText-Italic.woff') format('woff');
  font-weight: normal;
  font-style: italic;
}


@font-face {
  font-family: 'DomaineText-Italic';
  src: url('../fonts/DomaineTextMedium-Italic.woff2') format('woff2'),
       url('../fonts/DomaineTextMedium-Italic.woff') format('woff');
  font-weight: 500;
  font-style: italic;
}

@font-face {
  font-family: 'DomaineText-Italic';
  src: url('../fonts/DomaineText-BoldItalic.woff2') format('woff2'),
       url('../fonts/DomaineText-BoldItalic.woff') format('woff');
  font-weight: 700;
  font-style: italic;
}

@font-face {
  font-family: 'CenterParcsScript-Regular';
  src: url('../fonts/CenterParcsScript-Regular.woff2') format('woff2'),
       url('../fonts/CenterParcsScript-Regular.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Qanelas';
  src: url('../fonts/qanelassoft-extrabold.woff2') format('woff2'),
       url('../fonts/qanelassoft-extrabold.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

.u-Font-shadow {
  text-shadow: 0 0 0.1875rem black !important;
}

.u-Font-crossed {
  text-decoration: line-through !important;
}

.u-Font-uppercase {
  text-transform: uppercase !important;
}

.u-Font-Weight--normal {
  font-weight: normal !important;
}

.u-Font-Weight--bold {
  font-weight: 600 !important;
}

.u-Font-Weight--bolder {
  font-weight: 900 !important;
}

.u-Font-Style--italic {
  font-style: italic !important;
  font-family: 'DomaineText-Italic', Arial, Helvetica, sans-serif;
}

.u-Font-secondaryFont {
  font-family: Arial, Helvetica, sans-serif;
}

.u-Font-promoFont {
  font-family: 'DomaineText-Italic', Arial, Helvetica, sans-serif;
}

.u-Font-Color--greenCP {
  color: #00733A !important;
}

.u-Font-GrayStone {
  color: #3D4246 !important;
}

.u-Font-Red {
  color: #D7532C !important;
}

.u-Font-Green {
  color: #00733A !important;
}

.u-Font-Blue {
  color: #144486 !important;
}

.u-Font-GrayLighterColor {
  color: #f9fbfb !important;
}

.u-Font-GreenLightColor {
  color: #78B13E !important;
}

.u-Font-Yellow {
  color: #ECCE52 !important;
}

.u-Font-Size--10px{
  font-size: 0.625rem !important;
}

.u-Font-Size--11px{
  font-size: 0.6875rem !important;
}

.u-Font-Size--12px{
  font-size: 0.75rem !important;
}

.u-Font-Size--13px{
  font-size: 0.8125rem !important;
}

.u-Font-Size--14px{
  font-size: 0.875rem !important;
}

.u-Font-Size--15px{
  font-size: 0.9375rem !important;
}

.u-Font-Size--16px{
  font-size: 1rem !important;
}

.u-Font-Size--18px{
  font-size: 1.125rem !important;
}

.u-Font-Size--20px{
  font-size: 1.25rem !important;
}

.u-Font-Size--22px{
  font-size: 1.375rem !important;
}

.u-Font-Size--24px{
  font-size: 1.5rem !important;
}

.u-Font-Size--25px{
  font-size: 1.5625rem !important;
}

.u-Font-Size--26px{
  font-size: 1.625rem !important;
}

.u-Font-Size--28px{
  font-size: 1.75rem !important;
}

.u-Font-Size--30px{
  font-size: 1.875rem !important;
}

.u-Font-Size--50px{
  font-size: 3.125rem !important;
}

.u-Font-Size--70px{
  font-size: 4.375rem !important;
}

.u-Font-Size--112px{
  font-size: 7rem !important;
}

.u-list-style-disc{
  list-style-type: none !important;
}

.u-list-style-disc li:before{
  content: "•";
  display: inline-block;
  margin-right: 0.5rem;
  font-size: 1.25rem;
  vertical-align: middle;
}
.toggleOpened .caesura, .js-toggle-target {
  display:none;
}

.js-toggle--visible {
  display: inline !important;
}
/* u-text-underlay pour afficher un calque transparent noir à 20% sous les textes */
.u-text-underlay, .u-text-underlay *{position:relative;}
.u-text-underlay:before{content:" ";position:absolute;top:0;left:0;right:0;bottom:0;background-color: rgba(0, 0, 0, 0.2);}
.u-textOverImage{text-align:center;vertical-align:middle;display:table-cell;height:100%;}

/* u-img-rollover pour un effet zoom à 105% sur une image au rollover sur celle-ci, avec hachure transversale qui disparaissent au rollover */
.cp-loading{
  position: relative;
}
.cp-loading:before{
  content: "";
  position: absolute;
  top:0;
  bottom:0;
  right:0;
  left:0;
  background-color: rgba(0, 0, 0, 0.2);
  z-index: 1100;
}
.cp-loading .cp-spinner{
  display: inline-block;
  position: absolute;
}

.cp-spinner {
  display:none;
  position: absolute;
  top: 50%;
  left: 0;
  margin-top: -1.5rem;
  margin-right: -5.3125rem;
  height: 2.9375rem;
  line-height: 2.9375rem;
  text-align: center;
  width: 100%;
  z-index: 1101;
}

.cp-spinner > div {
  width: 0.875rem;
  height: 0.875rem;
  border-radius: 100%;
  margin: 0 0.625rem;
  display: inline-block;
  animation: sk-bouncedelay 1.4s infinite ease-in-out both;
}

.cp-spinner--bounce1 {
  animation-delay: -0.32s !important;
  background-color: #E9E9E9;
}

.cp-spinner--bounce2 {
  animation-delay: -0.16s !important;
  background-color: #d2d3d3;
}

.cp-spinner--bounce3 {
  background-color: #9ea0a2;
}
.slick-slider{
  position: relative;
  text-align: center;
}
.slick-list{
  overflow: hidden;
}
.slick-slide{
  display: inline-block;
  vertical-align: top;
  margin-left: 1px;
  padding-right: 1px;
}
.slick-arrow{
  border: none;
  background-color: white;
  font-size: 1.25rem;
  width: 1.25rem;
  height: 1.875rem;
  overflow: hidden;
  top: 50%;
  z-index: 1;
}
.slick-arrow.cpe-Icon{
  position: absolute;
}
.slick-prev{
  left: 0rem;
}
.slick-next{
  right: 0rem;
}
.slick-disabled{
  pointer-events: none;
  opacity: 0.5 !important;
}
/* Css Pour la scrollbar 
 ------------------------------------------------------------------------------------------------------------------------
1. BASIC STYLE  
------------------------------------------------------------------------------------------------------------------------
 */

    .mCustomScrollbar{ touch-action: pinch-zoom; /* direct pointer events to js */ }
    .mCustomScrollbar.mCS_no_scrollbar, .mCustomScrollbar.mCS_touch_action{ touch-action: auto; }
    
    .mCustomScrollBox{ /* contains plugin's markup */
        position: relative;
        overflow: hidden;
        height: 100%;
        max-width: 100%;
        outline: none;
        direction: ltr;
    }

    .mCSB_container{ /* contains the original content */
        overflow: hidden;
        width: auto;
        height: auto;
    }

/* 
------------------------------------------------------------------------------------------------------------------------
2. VERTICAL SCROLLBAR 
y-axis
------------------------------------------------------------------------------------------------------------------------
*/

    .mCSB_inside > .mCSB_container{ margin-right: 30px; }

    .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{ margin-right: 0; } /* non-visible scrollbar */
    
    .mCS-dir-rtl > .mCSB_inside > .mCSB_container{ /* RTL direction/left-side scrollbar */
        margin-right: 0;
        margin-left: 30px;
    }

    .mCS-dir-rtl > .mCSB_inside > .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{ margin-left: 0; } /* RTL direction/left-side scrollbar */

    .mCSB_scrollTools{ /* contains scrollbar markup (draggable element, dragger rail, buttons etc.) */
        position: absolute;
        width: 8px;/*largeur de la div du curseur*/
        height: auto;
        left: auto;
        top: 0;
        right: 0;
        bottom: 0;
    }

    .mCSB_outside + .mCSB_scrollTools{ right: -26px; } /* scrollbar position: outside */
    
    .mCS-dir-rtl > .mCSB_inside > .mCSB_scrollTools, .mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools{ /* RTL direction/left-side scrollbar */
        right: auto;
        left: 0;
    }

    .mCS-dir-rtl > .mCSB_outside + .mCSB_scrollTools{ left: -26px; } /* RTL direction/left-side scrollbar (scrollbar position: outside) */

    .mCSB_scrollTools .mCSB_draggerContainer{ /* contains the draggable element and dragger rail markup */
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0; 
        height: auto;
    }

    .mCSB_scrollTools a + .mCSB_draggerContainer{ margin: 20px 0; }

    .mCSB_scrollTools .mCSB_draggerRail{
        width: 8px;/*largeur du curseur*/
        height: 100%;
        margin: 0 auto; border-radius: 10px;
    }

    .mCSB_scrollTools .mCSB_dragger{ /* the draggable element */
        cursor: pointer;
        width: 100%;
        height: 30px; /* minimum dragger height */
        z-index: 100;
    }

    .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{ /* the dragger element */
        position: relative;
        width: 8px;/* largeur du curseur*/
        height: 100%;/* hauteur du curseur*/
        margin: 0 auto; border-radius: 10px;
        text-align: center;
    }
    
    .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar, .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{ width: 12px; }
    
    .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail, .mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{ width: 8px; }

    .mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown{
        display: block;
        position: absolute;
        height: 20px;
        width: 100%;
        overflow: hidden;
        margin: 0 auto;
        cursor: pointer;
    }

    .mCSB_scrollTools .mCSB_buttonDown{ bottom: 0; }
/* 
------------------------------------------------------------------------------------------------------------------------
3. SCROLLBAR COLORS, OPACITY AND BACKGROUNDS  
------------------------------------------------------------------------------------------------------------------------
*/
    /* default theme ("light") */

    .mCSB_scrollTools{ opacity: 0.75; filter: "alpha(opacity=75)"; -ms-filter: "alpha(opacity=75)"; }

    .mCS-autoHide > .mCustomScrollBox > .mCSB_scrollTools, .mCS-autoHide > .mCustomScrollBox ~ .mCSB_scrollTools{ opacity: 0; filter: "alpha(opacity=0)"; -ms-filter: "alpha(opacity=0)"; }    

    .mCSB_scrollTools .mCSB_draggerRail{
        filter: "alpha(opacity=40)"; -ms-filter: "alpha(opacity=40)"; 
    }

    .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{
        background-color: #ECCE51;/* couleur jaune*/
    }

    .mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar, .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{

    }

    .mCSB_scrollTools .mCSB_buttonUp, .mCSB_scrollTools .mCSB_buttonDown, .mCSB_scrollTools .mCSB_buttonLeft, .mCSB_scrollTools .mCSB_buttonRight{
        background-image: url(mCSB_buttons.png); /* css sprites */
        background-repeat: no-repeat;
        opacity: 0.4; filter: "alpha(opacity=40)"; -ms-filter: "alpha(opacity=40)"; 
    }

    .mCSB_scrollTools .mCSB_buttonUp{
        background-position: 0 0;
    }

    .mCSB_scrollTools .mCSB_buttonDown{
        background-position: 0 -20px;     
    }

    .mCSB_scrollTools .mCSB_buttonLeft{
        background-position: 0 -40px;
     
    }

    .mCSB_scrollTools .mCSB_buttonRight{
        background-position: 0 -56px;
       }

/* Mes changements */

    .mCSB_draggerRail:hover{
        background-color: white; border-radius: 16px;
    }

    .mCSB_draggerContainer{
         background-color: #fff; border-radius: 16px;
    }

    .mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{
        background-color: #ECCE51;
        display: block;
    }
    #mCSB_dragger{
        height: 120px;
    }

picture{
  display: block;
  position: relative;
  width: 100%;
}

picture .cp-spinner{
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%);
  z-index: -1;
}

picture img{
  position: relative;
  z-index: 0;
}

picture.withBackgroundColor{
  background: #F4F5F5;
}

.blockNew{
  position: absolute;
  text-align: left;
  top: 0.3125rem;
  left: 0.3125rem;
  display: block;
  z-index: 100;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  font-size: 0;
}

.blockNew .blockNewItem {
  margin: 0 0.3125rem 0.3125rem 0;
}

.blockNew .new{
  background-color: #ECCE52;
  color: #3D4246;
  padding: 0.5rem 0.875rem;
  display: inline-block;
  font-size: 13px;
  font-weight: 500;
}

.blockNew .free {
  background-color: #3D4246;
  color: #ffffff;
  padding: 0.5rem 0.875rem;
  display: inline-block;
  font-size: 13px;
  font-weight: 500;
}

.blockNew .bannerLabel{
  background-color: rgba(0, 0, 0, 0.5);
  color: #ffffff;
  padding: 0.5rem 0.875rem;
  display: inline-block;
  font-size: 13px;
}

.legendLabel{
  background-color: #3D4246;
  padding: 0.3125rem;
  position: absolute;
  bottom: 0;
  color: #ffffff;
  font-size: 0.6875rem;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 100;
  }

.Imglink--display{
  display: block;
}
.form-QuantityContainer ::selection {
  background-color: transparent;
}
.form-QuantityContainer .form-QuantitySelector{
  font-size:0;
  vertical-align: middle;
}
.form-QuantityContainer .form-QuantityLabel {
  vertical-align: middle;
}
.form-QuantityContainer .form-QuantityLabel p{
  text-align: center;
  display: inline-block;
  width: 100%;
}
.form-QuantityContainer .form-QuantityLabel p.form-QuantityFirstLabel{
  font-size: 1.125rem;
  font-weight: 500;
}
.form-QuantityContainer .form-QuantityLabel p.form-QuantitySecondLabel{
  font-size: 0.75rem;
  line-height: 0.875rem;
}
.form-QuantityContainer .form-QuantitySelectorItem{
  background-color: white;
  line-height:1.875rem;
  text-align: center;
  font-size: 1.25rem;
  cursor: pointer;
  height: 2.25rem;
  width: 2.25rem;
  border-radius:50%;
  border: 1px solid #3D4246;
  vertical-align: middle;
}
.form-QuantityContainer .form-QuantitySelectorItem.u-disabled{
  opacity: 0.5;
}
.form-QuantityContainer .form-QuantitySelectorItem:hover{
  color: #78B13E;
  border-color: #78B13E;
}
.form-QuantityContainer .form-QuantityAdder-container {
  display: inline-block;
  vertical-align: middle;
}
.form-QuantityContainer .form-QuantityRemover{
  font-size: 1.875rem;
  font-family: Verdana, sans-serif;
}
.form-QuantityContainer .form-QuantityAdder{
  font-size: 1.25rem;
  font-family: Verdana, sans-serif;
}
.form-QuantityContainer .form-QuantityValue{
  border:none;
  pointer-events: none;
  cursor: default;
  height: 3.5rem;
}
.form-QuantityContainer .form-Quantity-tooltip {
  position: relative;
}
.form-QuantityContainer .form-Quantity-tooltipContent {
  position: absolute;
  bottom: 1.25rem;
  left: -1.5625rem;
  background-color: white;
  border: 1px solid #E9E9E9;
  border-radius: 0.375rem;
  padding: 0.625rem;
  font-size: 0.6875rem;
  font-family: Arial, Helvetica, sans-serif;
  color: #9ea0a2;
  width: 9.375rem;
  line-height: 0.75rem;
  z-index: 901;
  text-align: left;
}
@charset "UTF-8";

/*!
 * Pikaday
 * Copyright © 2014 David Bushell | BSD & MIT license | http://dbushell.com/
 */

.pika{
  /*** /ABTEST_DURATION_CALENDAR RELATED ***/
}

.pika-single {
  z-index: 880;
  display: block;
  position: relative;
  color: #3D4246;
  background: white;
  border: none;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  padding:1.25rem;
}

.pika-single.is-hidden {
  display: none;
}

.pika-single.is-bound {
  position: absolute;
  box-shadow: 0 5px 7px -5px rgba(0,0,0,.5);
  width : 100%;
}

.pika-single.arrival .pika-header .pikaHeaderTab {
  color: #3D4246;
}

.pika-single.arrival .pika-header .pikaHeaderTab.pikaArrivalHeader {
  position: relative;
  color: #78B13E;
}

.pika-single.arrival .pika-header .pikaHeaderTab.pikaArrivalHeader:after {
  content: " ";
  position: absolute;
  bottom: 0;
  left: 10%;
  display: block;
  width: 80%;
  height: 0.3125rem;
  background: #78B13E;
}

.pika-single.departure .pika-header .pikaHeaderTab {
  color: #3D4246;
}

.pika-single.departure .pika-header .pikaHeaderTab.pikaDepartureHeader {
  position: relative;
  color: #78B13E;
}

.pika-single.departure .pika-header .pikaHeaderTab.pikaDepartureHeader:after {
  content: " ";
  position: absolute;
  bottom: 0;
  left: 10%;
  display: block;
  width: 80%;
  height: 0.3125rem;
  background: #78B13E;
}

.pika-background{
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: transparent;
  opacity: 0.2;
  z-index: 839;
}

.pika-lendar {
  display: inline-block;
  width: 38%;
}

.pika-title {
  position: relative;
  text-align: center;
  padding-top:0.625rem;
  font-size: 1rem;
  cursor: default;
}

.pika-title select {
  position: absolute;
  z-index: 879;
  margin: 0;
  left: 0;
  top: 5px;
  filter: alpha(opacity=0);
  opacity: 0;
}

.pika-label {
  display: inline-block;
  position: relative;
  z-index: 880;
  overflow: hidden;
  margin: 0;
  padding: 5px 3px;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  text-transform: capitalize;
}

.pika-prev, .pika-next {
  display: block;
  cursor: pointer;
  position: relative;
  outline: none;
  border: 0;
  padding: 0;
  width: 40px;
  height: 34px;
  text-indent: 40px;
  white-space: nowrap;
  overflow: hidden;
  background-color: transparent;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 75% 75%;
  position: absolute;
  top: 0;
}

.pika-prev.is-disabled, .pika-next.is-disabled{
  cursor: default;
  opacity: .2;
  pointer-events: none;
}

.pika-select {
  display: inline-block;
  display: inline;
}

.pika-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  border: 0;
  margin-bottom:2.5rem;
}

.pika-table thead {
  color: #3D4246;
}

.pika-table thead th {
  font-weight: normal;
  color: #3D4246;
  font-size: 0.625rem;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  padding-bottom: 0.625rem;
}

.pika-table thead th[scope="col"] abbr{
  border: none;
  text-decoration: none;
  font-weight: 700;
}

.pika-table th, .pika-table td {
  width: 14.285%;
  padding: 0;
  text-align: center;
}

.pika-table th {
  color: #3D4246;
  font-size: 12px;
  line-height: 25px;
  font-weight: bold;
}

.pika-table td {
  outline: none;
}

.pika-table td:not(.is-empty) {
  color: #3D4246;
  font-weight:600;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
}

.pika-table td.is-today button{
  border: 1px solid #3D4246;
  color: #3D4246;
  border-radius: 50%;
}

.pika-table td .pika-highlight:not(.pika-selectedRange){
  background-color: #e0f0d7;
  color: #9ea0a2;
}

.pika-table td .pika-button.pika-rangeEnd:not(.pika-selectedEndDay):not(.pika-selectedDay){
  color: white;
  font-weight: bold;
  background-color: #78B13E;
  border-radius: 50%;
}

.pika-table td.is-disabled{
  cursor: default;
}

.pika-table td.is-disabled .pika-button:not(.pika-selectedEndDay):not(.pika-selectedDay):not(.pika-highlight):not(.pika-selectedRange):not(.pika-rangeEnd) {
  cursor: default;
  color: #d2d3d3;
  background-color: white;
}

.pika-table td.pika-selectedDayContainer.pika-selectedRangeContainer{
  background-color: white;
  background-image:         linear-gradient(to right, #FFFFFF, #FFFFFF 50%, #65B32E 50.1%, #65B32E 100%);
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF',endColorstr='#65B32E', GradientType=0);
}

.pika-table td.pika-selectedEndDayContainer{
  background-color: white;
  background-image:         linear-gradient(to right, #65B32E, #65B32E 50%, #FFFFFF 50.1%, #FFFFFF 100%);
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#65B32E',endColorstr='#FFFFFF', GradientType=0);
}

.pika-table td.pika-rangeStartContainer.pika-highlight{
  background-color: white;
  background-image:         linear-gradient(to right, #FFFFFF, #FFFFFF 50%, #E1EED7 50.1%, #E1EED7 100%);
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF',endColorstr='#E1EED7', GradientType=0);
}

.pika-table td.pika-rangeEndContainer:not(.pika-selectedEndDayContainer){
  background-color: white;
  background-image:         linear-gradient(to right, #E1EED7, #E1EED7 50%, #FFFFFF 50.1%, #FFFFFF 100%);
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#65B32E',endColorstr='#FFFFFF', GradientType=0);
}

.pika-table td .pika-button.pika-selectedDay, .pika-table td .pika-button.pika-selectedEndDay{
  color: white;
  font-weight: bold;
  background-color: #00733A;
  border-radius: 50%;
}

.pika-button {
  cursor: pointer;
  display: block;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  outline: none;
  border: 0;
  margin: 0;
  width: 100%;
  padding: 12px 11px;
  color: #3D4246;
  font-size: 12px;
  line-height: 15px;
  text-align: center;
  background: white;
  height: 100%;
}

.pika-week {
  font-size: 11px;
  color: #999;
}

/*** selection design ***/

.pika-selectedRange{
  background-color: #78B13E;
  color: white;
  opacity: 1;
}

/*** ABTEST_DURATION_CALENDAR RELATED ***/

.pika-loader{
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 885;
  background-color: rgba(255,255,255,0.8);
}

.pika-loader .cp-spinner{
  position: absolute;
  top: 50%;
  left:50%;
  transform: translate(-50%, -50%);
  display: inline-block;
}

.pika-prev, .is-rtl .pika-next {
  float: left;
}

.pika-prev:before, .is-rtl .pika-next:before {
  font-family: "icons";
  position: absolute;
  color: #3D4246;
  left: -30px;
  top: 0.6875rem;
  font-size:15px;
}

.pika-next, .is-rtl .pika-prev {
  float: right;
  right: 0;
}

.pika-next:before, .is-rtl .pika-prev:before {
  position: absolute;
  color: #3D4246;
  font-family: "icons";
  right: 5px;
  top: 0.6875rem;
  font-size:15px;
}

/*** specification for departure calendar ***/
.departure .pika-table{
  margin-bottom : 0;
}
.departure .pika-table td.pika-tFooterLeft, .departure .pika-table td.pika-tFooterRight{
  text-align:left;
  font-size: 13px;
  position: absolute;
  width : 30%;
  bottom : 2.8125rem;
}


.pika-reset{
  position:absolute;
  right : 0.625rem;
  top : 0;
}


.pika-reset .cpe-Icon{
  font-size: 0.8125rem;
}

.pika-tooltip{
  position: absolute;
  display: inline-block;
  color: white;
  background-color: #3D4246;
  padding: 0 0.625rem;
  border-radius: 0.8125rem;
  line-height: 1.625rem;
  height: 1.625rem;
  z-index: 890;
  font-size: 0.875rem;
}
/* Functional styling;
 * These styles are required for noUiSlider to function.
 * You don't need to change these rules to apply your design.
 */
.noUi-target, .noUi-target * {
-webkit-touch-callout: none;
-webkit-user-select: none;
touch-action: none;
-webkit-user-select: none;
        user-select: none;
box-sizing: border-box;
}
.noUi-target {
	position: relative;
	direction: ltr;
}
.noUi-base {
	width: 100%;
	height: 100%;
	position: relative;
	z-index: 1; /* Fix 401 */
}
.noUi-origin {
	position: absolute;
	right: 0;
	top: 0;
	left: 0;
	bottom: 0;
}
.noUi-handle {
	position: relative;
	z-index: 1;
}
.noUi-stacking .noUi-handle {
/* This class is applied to the lower origin when
   its values is > 50%. */
	z-index: 10;
}
.noUi-state-tap .noUi-origin {
transition: left 0.3s, top 0.3s;
}
.noUi-state-drag * {
	cursor: inherit !important;
}

/* Painting and performance;
 * Browsers can paint handles in their own layer.
 */
.noUi-base, .noUi-handle {
	transform: translate3d(0,0,0);
}

/* Slider size and handle placement;
 */
.noUi-horizontal {
	height: 18px;
}
.noUi-horizontal .noUi-handle {
	width: 34px;
	height: 28px;
	left: -17px;
	top: -6px;
}
.noUi-vertical {
	width: 18px;
}
.noUi-vertical .noUi-handle {
	width: 28px;
	height: 34px;
	left: -6px;
	top: -17px;
}

/* Styling;
 */
.noUi-background {
	background: #FAFAFA;
	box-shadow: inset 0 1px 1px #f0f0f0;
}
.noUi-connect {
	background: #3FB8AF;
	box-shadow: inset 0 0 3px rgba(51,51,51,0.45);
transition: background 450ms;
}
.noUi-origin {
	border-radius: 2px;
}
.noUi-target {
	border-radius: 4px;
	border: 1px solid #D3D3D3;
	box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB;
}
.noUi-target.noUi-connect {
	box-shadow: inset 0 0 3px rgba(51,51,51,0.45), 0 3px 6px -5px #BBB;
}

/* Handles and cursors;
 */
.noUi-draggable {
	cursor: w-resize;
}
.noUi-vertical .noUi-draggable {
	cursor: n-resize;
}
.noUi-handle {
	border: 1px solid #D9D9D9;
	border-radius: 3px;
	background: #FFF;
	cursor: default;
	box-shadow: inset 0 0 1px #FFF,
				inset 0 1px 7px #EBEBEB,
				0 3px 6px -3px #BBB;
}
.noUi-active {
	box-shadow: inset 0 0 1px #FFF,
				inset 0 1px 7px #DDD,
				0 3px 6px -3px #BBB;
}

/* Handle stripes;
 */
.noUi-handle:before, .noUi-handle:after {
	content: "";
	display: block;
	position: absolute;
	height: 14px;
	width: 1px;
	background: #E8E7E6;
	left: 14px;
	top: 6px;
}
.noUi-handle:after {
	left: 17px;
}
.noUi-vertical .noUi-handle:before, .noUi-vertical .noUi-handle:after {
	width: 14px;
	height: 1px;
	left: 6px;
	top: 14px;
}
.noUi-vertical .noUi-handle:after {
	top: 17px;
}

/* Disabled state;
 */
[disabled].noUi-connect, [disabled] .noUi-connect {
	background: #B8B8B8;
}
[disabled].noUi-origin, [disabled] .noUi-handle {
	cursor: not-allowed;
}

/*** Gestion textfield basiques ***/
.inputContainer{border: 1px solid #9ea0a2;border-radius:5px;padding:11px 20px;line-height:16px;margin-top:15px;display:inline-block;width:100%;}
.input-discret{border-color:transparent;border-width:0;}
::-moz-placeholder{transition: all 1s;}
.input:focus::-moz-placeholder{position:absolute;top:10px;left:0px;color:red;opacity:1;padding-left:20px;}

/* surcharge mdl */
.inputContainer .mdl-textfield{
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;font-size:13px;line-height:16px;
  width:auto;
  padding: 0;
  vertical-align:middle;
}
.inputContainer .mdl-textfield__input{
  border-style:none;
  padding:0;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;font-size:13px;line-height:16px;
  color: #3D4246;
  display:inline-block;
}

.inputContainer .mdl-textfield__label{
  top: 0;
  left: 0;
  color:rgba(61, 66, 70, 0.5);
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;font-size:13px;line-height:16px;
  height:16px;
}

.inputContainer .mdl-textfield__label::after{
  background:none;
}

.inputContainer .mdl-textfield--floating-label.is-focused .mdl-textfield__label, .inputContainer .mdl-textfield--floating-label.is-dirty .mdl-textfield__label, .inputContainer .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label{
  top:-35px;
  left:-20px;
  color : rgba(61, 66, 70, 1);
}

.inputContainer .mdl-textfield.inputContainer--withValidation.is-dirty{
  width:100%;
}

.inputContainer .mdl-textfield.inputContainer--withValidation.is-dirty .mdl-textfield__input{
  width:60%;
  display:inline-block;
}

.inputContainer .mdl-textfield.is-invalid .mdl-textfield__input, .inputContainer .mdl-textfield.is-invalid .mdl-textfield__label::after{
  background:none;
}

.inputContainer .mdl-textfield.is-invalid.is-dirty .mdl-textfield__error{
    width:38%;
    display:inline-block;
    text-align:right;
    margin-top:-7px;
    color:#F49853;
    font-size:0.8125rem;
}

.inputContainer .mdl-textfield .mdl-textfield__valid, .inputContainer .mdl-textfield.inputContainer--withValidation.is-dirty.is-invalid .mdl-textfield__valid, .inputContainer .mdl-textfield.is-dirty .mdl-textfield__error{
  display:none;
}

.inputContainer .mdl-textfield.inputContainer--withValidation.is-dirty .mdl-textfield__valid{
  width:38%;
  display:inline-block;
  text-align:right;
  margin-top:-7px;
  color:#65B32E;
  position:absolute;
  font-size:0.8125rem;
}

/* double textfield */
.doubleTextField.gridContainer{width:100%;}

.doubleTextField-field_2{
  display:inline-block;
  height:16px;
}
.inputContainer.doubleTextField .mdl-textfield{
  width:50%;
  position:relative;
  }

.inputContainer.doubleTextField .mdl-textfield__label{
  background-color:white;
  z-index: 102;
  width:200%;
}

.inputContainer.doubleTextField .mdl-textfield__input{
  position:relative;
  z-index: 101;
}

.mdl-textfield__pseudoPlaceholder{
  position:absolute;
  z-index: 100;
  top:0;
  left:0;
}

.inputContainer.doubleTextField .is-dirty, .inputContainer.doubleTextField .is-dirty .doubleTextField__input_1{
  display:inline;
  width:auto;
}

.inputContainer.doubleTextField .is-dirty .mdl-textfield__pseudoPlaceholder, .inputContainer.doubleTextField .is-dirty.is-focused .textfield__pseudoPlaceholder{display:none;}

.inputContainer.doubleTextField .is-dirty.is-focused, .inputContainer.doubleTextField .is-dirty.is-focused .doubleTextField__input_1{
  display:inline-block;
  width:50%;
}

/*** /Gestion textfield basiques ***/
/*** Gestion select ***/
.form-selectItem{
  padding:11px 40px 11px 20px;
  line-height:16px;
  width:100%;
}

.form-label{
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  color: #3D4246;
  font-size: 13px;
}

/*** /Gestion select ***/
/*** radio Button & checkbox ***/
.form-radioContainer, .form-checkboxContainer{
  position:relative;
  line-height:1.875rem;
  margin:2px 0;
}
.form-radioButton, .form-checkbox{
  position:absolute;
  top:0;
  left:0;
  opacity:0;
  visibility: hidden;
}
.searchForm-countrySelector .form-checkboxContainer .form-checkboxLabel{
  font-weight: 500;
}
.form-radioLabel, .form-checkboxLabel{
  padding-left:1.875rem;
  display:inline-block;
  cursor:pointer;
  position: relative;
  line-height: 1.25rem;
}
.form-radioLabel:before{
  content:"";
  position:absolute;
  top: 7px;
  left:0;
  width: 20px;
  height: 20px;
  border: 2px solid #3D4246;
  border-radius:50%;
  background-color: #ffffff;
}
.form-radioButton:checked + .form-radioLabel:after{
  content:"";
  position:absolute;
  top: 11px;
  left:4px;
  width: 12px;
  height: 12px;
  background-color: #00733A;
  border-radius:50%;
}

.form-checkboxLabel:before{
  content:"";
  position:absolute;
  top: 50%;
  margin-top: -0.6875rem;
  left: 0;
  width: 22px;
  height: 22px;
  border: 2px solid #9ea0a2;
  border-radius:5px;
  background-color: white;
  cursor:pointer;
}

.form-checkbox:checked + .form-checkboxLabel:before{
  background-color: #00733A;
  border-color: #00733A;
}

.u-disabled .form-checkbox:checked + .form-checkboxLabel:before{
  background-color: #3D4246;
  border-color: #3D4246;
}

.form-checkbox:checked + .form-checkboxLabel:after{
  font-family: 'icons';
  color: white;
  font-size: 0.8125rem;
  position: absolute;
  top: 55%;
  left: 0.125rem;
  margin-top: -0.6875rem;
}
/*** /radio Button ***/

/*** range ***/

.form-rangeContainer{
  padding-top: 3.75rem;
  width: 100%;
  display: inline-block;
}

.form-rangeTitle{
  font-size: 0.875rem;
}

.form-rangeLegend{
  position: relative;
  margin-top: -0.5rem;
  height: 1.875rem;
}

.form-rangeLegend #form-rangeMax{
  right: -1.125rem;
}

.form-rangeLegend #form-rangeMin{
  left: 0.125rem;
  transform: translateX(-50%);
}

.form-rangeLandmark{
  font-size: 0.9375rem;
  position: absolute;
  padding-top: 1.0625rem;
  display: inline-block;
  top: 0;
}

.form-rangeLandmark:before{
  content: "";
  height: 1.0625rem;
  border: 1px solid #9ea0a2;
  position: absolute;
  left: 50%;
  top: 0;
  margin-left: -0.0625rem;
}

.form-range.noUi-connect {
  background: linear-gradient( 45deg #78B13E, #00733A);
}

.form-range.noUi-target {
  display: inline-block;
  height: 0.625rem;
  width: 100%;
  border-radius: 0.25rem;
  box-shadow: none;
}

.form-range.noUi-background{
  background: #00733A none repeat scroll 0 0;
}

.form-range .noUi-origin{
  background-color: #7bb498;
}

.form-range .noUi-handle{
  border: 2px solid #9ea0a2;
  border-radius: 50%;
  height: 1.625rem;
  width: 1.625rem;
  top: -0.5625rem;
  cursor: grab;
  background: white;
  text-align: center;
}

.form-range .noUi-handle:active {
  cursor: grabbing;
}

.form-range .noUi-handle:before{
  content: "||";
  color: #9ea0a2;
  font-size: 0.75rem;
  font-weight: bold;
  position: static;
  width: auto;
  background: transparent;
  margin: -0.0625rem 0 0 -0.0625rem;
}

.form-range .noUi-handle:after{
  content: none;
}

.form-range .noUi-tooltip{
  font-size: 1.375rem;
  color: #3D4246;
  position: absolute;
  top: -1.875rem;
  margin-left: -1.375rem;
  white-space: nowrap;
}

.form-rangeLabel {
  display: none;
}


/*** /range ***/
/*.select2-wrapper {
  @media(--mq-mobileToTablet) {
    position: relative;

    &:before {
      content: "\EA0C";
      color: var(--greyMouseColor);
      position: absolute;
      top:rem(8);
      right: rem(5);
      font-family: 'icons';
      display:inline-block;
      background: white;
      font-size: rem(28);
    }    
  }
}*/

.select2-container {
  box-sizing: border-box;
  display: inline-block;
  margin: 0;
  position: relative;
  vertical-align: middle; 
}
  .select2-container .select2-selection--single {
    box-sizing: border-box;
    cursor: pointer;
    display: block;
    height: 40px;
    user-select: none;
    -webkit-user-select: none; }
    .select2-container .select2-selection--single .select2-selection__rendered {
      display: block;
      padding-left: 1.25rem;
      padding-right: 2.5rem;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap; 
      color: #9ea0a2;
      font-family: 'BentonSans', Arial, Helvetica, sans-serif;
    }
    .kidsAgesContainer .select2-container .select2-selection--single .select2-selection__rendered {
      padding-left: 0.875rem;
      padding-right: 1.875rem; }

  .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
    padding-right: 20px;
    padding-left: 20px; }
  .select2-container .select2-selection--multiple {
    box-sizing: border-box;
    cursor: pointer;
    display: block;
    min-height: 32px;
    user-select: none;
    -webkit-user-select: none; }
    .select2-container .select2-selection--multiple .select2-selection__rendered {
      display: inline-block;
      overflow: hidden;
      padding-left: 20px;
      text-overflow: ellipsis;
      white-space: nowrap; }
  .select2-container .select2-search--inline {
    float: left; }
    .select2-container .select2-search--inline .select2-search__field {
      box-sizing: border-box;
      border: none;
      font-size: 100%;
      margin-top: 5px;
      padding: 0; }
      .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
        -webkit-appearance: none; }

.select2-dropdown {
  background-color: white;
  border: 1px solid #9ea0a2;
  border-radius: 4px;
  box-sizing: border-box;
  display: block;
  position: absolute;
  left: -100000px;
  width: 100%;
  z-index: 101;
}

.select2-results {
  display: block; }

.select2-results__options {
  list-style: none;
  margin: 0;
  padding: 0; }

.select2-results__option {
  padding: 0.375rem 1.25rem;
  -webkit-user-select: none;
          user-select: none;
  border-bottom: 1px solid #E9E9E9;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  -webkit-user-select: none; }
  


  .select2-results__option[aria-selected] {
    cursor: pointer; }

.select2-results__option:last-child{
  border-bottom:0px none transparent;
}

.select2-container--open .select2-dropdown {
  left: 0; }

.select2-container--open .select2-dropdown--above {
  border-bottom: none;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.kidsAgesContainer .select2-container--open .select2-dropdown--above {
  width: 4.375rem !important;
  height: 10.9375rem;
  margin-left: 0; }

.select2-container--open .select2-dropdown--below {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.select2-search--dropdown {
  display: block;
  padding: 0.25rem; }

.select2-search--dropdown .select2-search__field {
  padding: 4px;
  width: 100%;
  box-sizing: border-box; }
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
  -webkit-appearance: none; }
.select2-search--dropdown.select2-search--hide {
  display: none; }

.select2-close-mask {
  border: 0;
  margin: 0;
  padding: 0;
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  min-height: 100%;
  min-width: 100%;
  height: auto;
  width: auto;
  opacity: 0;
  z-index: 100;
  background-color: #fff;
  filter: alpha(opacity=0); }

.select2-hidden-accessible {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important; }

.kidsAgesContainer .select2-container--default .selection{
   outline: none; }

 .select2-container--default .select2-selection--single {
  background-color: #fff;
  border: 1px solid #9ea0a2;
  border-radius: 0.25rem; }

.kidsAgesContainer .select2-container--default .select2-selection--single {
  width: 4.375rem;
  outline: none; }

.kidsAgesContainer .select2-container--default {
  margin-right: 0.625rem;
  margin-bottom: 0.625rem; }

.select2-container--default .select2-selection--single .select2-selection__rendered {
  font-size: 13px;
  color: #9ea0a2;
  line-height: 2.5rem; }

.kidsAgesContainer .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: #3D4246; 
}

.kidsAgesContainer .select2-container--default .select2-selection--single .select2-selection__rendered:focus{
  outline: none;
}
  .select2-container--default .select2-selection--single .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold; }
  .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #999; }
  .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 40px;
    position: absolute;
    top: 0;
    right: 0;
    width: 40px; }
    .select2-container--default .select2-selection--single .select2-selection__arrow b{
      position:absolute;
      top:0.5rem;
      left:40%;
      width:16px;
      height:16px;
    }
    .select2-container--default .select2-selection--single .select2-selection__arrow b:before {
      font-family: "icons";
      position: absolute;
      top:0;
      left:0;
      font-size: 0.5rem;
    }

.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
  float: left; }

.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
  left: 1px;
  right: auto; }

.select2-container--default.select2-container--disabled .select2-selection--single {
  background-color: #eee;
  cursor: default; }
  .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
    display: none; }

.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{
  top:24%;
}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b:before {
  border-color: transparent transparent #3D4246 transparent;
}

.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b:after {
  border-color: transparent transparent #fff transparent;
  top:2px;
}

.select2-container--default .select2-selection--multiple {
  background-color: white;
  border: 1px solid  #9ea0a2;
  border-radius: 4px;
  cursor: text; }
  .select2-container--default .select2-selection--multiple .select2-selection__rendered {
    box-sizing: border-box;
    list-style: none;
    margin: 0;
    padding: 0 5px;
    width: 100%; }
  .select2-container--default .select2-selection--multiple .select2-selection__placeholder {
    color: #999;
    margin-top: 5px;
    float: left; }
  .select2-container--default .select2-selection--multiple .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold;
    margin-top: 5px;
    margin-right: 10px; }
  .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: #e4e4e4;
    border: 1px solid  #9ea0a2;
    border-radius: 4px;
    cursor: default;
    float: left;
    margin-right: 5px;
    margin-top: 5px;
    padding: 0 5px; }
  .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: #999;
    cursor: pointer;
    display: inline-block;
    font-weight: bold;
    margin-right: 2px; }
    .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
      color: #333; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
  float: right; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
  margin-left: 5px;
  margin-right: auto; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
  margin-left: 2px;
  margin-right: auto; }

.select2-container--default.select2-container--focus .select2-selection--multiple {
  border: solid black 1px;
  outline: 0; }

.select2-container--default.select2-container--disabled .select2-selection--multiple {
  background-color: #eee;
  cursor: default; }

.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
  display: none; }

.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.kidsAgesContainer .select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
  border-bottom-left-radius: 0.25rem; 
  border-bottom-right-radius: 0.25rem; }
    

.select2-container--default .select2-search--dropdown .select2-search__field {
  border: 1px solid #9ea0a2; }



.select2-container--default .select2-search--inline .select2-search__field {
  background: transparent;
  border: none;
  outline: 0;
  box-shadow: none; }

.select2-container--default .select2-results__option[role=group] {
  padding: 0; }

.select2-container--default .select2-results__option[aria-disabled=true] {
  color: #999; }

.select2-container--default .select2-results__option[aria-selected=true] {
  background-color: #ddd; }

.select2-container--default .select2-results__option .select2-results__option {
  padding-left: 1em; }
  .select2-container--default .select2-results__option .select2-results__option .select2-results__group {
    padding-left: 0; }
  .select2-container--default .select2-results__option .select2-results__option .select2-results__option {
    margin-left: -1em;
    padding-left: 2em; }
    .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
      margin-left: -2em;
      padding-left: 3em; }
      .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
        margin-left: -3em;
        padding-left: 4em; }
        .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
          margin-left: -4em;
          padding-left: 5em; }
          .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
            margin-left: -5em;
            padding-left: 6em; }

.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: #00733A;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  color: white; }

.select2-container--default .select2-results__group {
  cursor: default;
  display: block;
  padding: 6px; }

.select2-container--classic .select2-selection--single {
  background-color: #f7f7f7;
  border: 1px solid #9ea0a2;
  border-radius: 4px;
  outline: 0;
  background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='rgba(255, 255, 255, 1)', endColorstr='rgba(255, 238, 238, 0.93333)', GradientType=0); }
  .select2-container--classic .select2-selection--single:focus {
    border: 1px solid #5897fb; }
  .select2-container--classic .select2-selection--single .select2-selection__rendered {
    color: #444;
    line-height: 28px; }
  .select2-container--classic .select2-selection--single .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold;
    margin-right: 10px; }
  .select2-container--classic .select2-selection--single .select2-selection__placeholder {
    color: #999; }
  .select2-container--classic .select2-selection--single .select2-selection__arrow {
    background-color: #ddd;
    border: none;
    border-left: 1px solid #9ea0a2;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    height: 26px;
    position: absolute;
    top: 1px;
    right: 1px;
    width: 20px;
    background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
    background-repeat: repeat-x;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='rgba(255, 238, 238, 0.93333)', endColorstr='rgba(255, 204, 204, 0.8)', GradientType=0); }
    .select2-container--classic .select2-selection--single .select2-selection__arrow b {
      border-color: #888 transparent transparent transparent;
      border-style: solid;
      border-width: 5px 4px 0 4px;
      height: 0;
      left: 50%;
      margin-left: -4px;
      margin-top: -2px;
      position: absolute;
      top: 50%;
      width: 0; }

.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
  float: left; }

.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
  border: none;
  border-right: 1px solid #9ea0a2;
  border-radius: 0;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
  left: 1px;
  right: auto; }

.select2-container--classic.select2-container--open .select2-selection--single {
  border: 1px solid #5897fb; }
  .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
    background: transparent;
    border: none; }
    .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
      border-color: transparent transparent #888 transparent;
      border-width: 0 4px 5px 4px; }

.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='rgba(255, 255, 255, 1)', endColorstr='rgba(255, 238, 238, 0.93333)', GradientType=0); }

.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
  border-bottom: none;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='rgba(255, 238, 238, 0.93333)', endColorstr='rgba(255, 255, 255, 1)', GradientType=0); }

.select2-container--classic .select2-selection--multiple {
  background-color: white;
  border: 1px solid #9ea0a2;
  border-radius: 4px;
  cursor: text;
  outline: 0; }
  .select2-container--classic .select2-selection--multiple:focus {
    border: 1px solid #5897fb; }
  .select2-container--classic .select2-selection--multiple .select2-selection__rendered {
    list-style: none;
    margin: 0;
    padding: 0 5px; }
  .select2-container--classic .select2-selection--multiple .select2-selection__clear {
    display: none; }
  .select2-container--classic .select2-selection--multiple .select2-selection__choice {
    background-color: #e4e4e4;
    border: 1px solid #9ea0a2;
    border-radius: 4px;
    cursor: default;
    float: left;
    margin-right: 5px;
    margin-top: 5px;
    padding: 0 5px; }
  .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
    color: #888;
    cursor: pointer;
    display: inline-block;
    font-weight: bold;
    margin-right: 2px; }
    .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
      color: #555; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
  float: right; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
  margin-left: 5px;
  margin-right: auto; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
  margin-left: 2px;
  margin-right: auto; }

.select2-container--classic.select2-container--open .select2-selection--multiple {
  border: 1px solid #5897fb; }

.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
  border-bottom: none;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.select2-container--classic .select2-search--dropdown .select2-search__field {
  border: 1px solid #9ea0a2;
  outline: 0; }

.select2-container--classic .select2-search--inline .select2-search__field {
  outline: 0;
  box-shadow: none; }

.select2-container--classic .select2-dropdown {
  background-color: white;
  border: 1px solid transparent; }

.select2-container--classic .select2-dropdown--above {
  border-bottom: none; }

.select2-container--classic .select2-dropdown--below {
  border-top: none; }

.select2-container--classic .select2-results > .select2-results__options {
  max-height: 200px;
  overflow-y: auto; }

.select2-container--classic .select2-results__option[role=group] {
  padding: 0; }

.select2-container--classic .select2-results__option[aria-disabled=true] {
  color: grey; }

.select2-container--classic .select2-results__option--highlighted[aria-selected] {
  background-color: #00733A;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  color: white; }

.select2-container--classic .select2-results__group {
  cursor: default;
  display: block;
  padding: 6px; }

.select2-container--classic.select2-container--open .select2-dropdown {
  border-color: #5897fb; }

.select2-results__options::-webkit-scrollbar {
  width: 0.375rem;
}
  
.select2-results__options::-webkit-scrollbar-track {
  width: 0.375rem;
  border-radius: 0.25rem;
  background-color: #E9E9E9;
}
  
.select2-results__options::-webkit-scrollbar-thumb {
  width: 0.375rem;
  border-radius: 0.25rem;
  background-color: #d2d3d3;
}
.header-content{
  position:relative;
  height:6rem;
}
.header-logoContainer{
  text-align:center;
}
.header-logo{
  position:absolute;
  left : 50%;
  width : 4.375rem;
}
.header--container {
  list-style:none;
}
.header-navItem a{
  color: #00733A;
}
.header-navItem--step1 a{
  color: #3D4246;
}
.header-navItem--lastminute.header-navItem--step1.header-navItem a.header-mainLink{
  color: #D7532C;
}
.header-navItem--lastminute.header-navItem--step1.header-navItem a .cpe-Icon--last_minute{
  margin: 0 0.1875rem;
}
.header-navItem--other{
  position: absolute;
  right: 0;
  top: 0;
}
.header-navItem--other .header-navBlockInfoItem{
  color: #3D4246;
  font-size: 0.8125rem;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
}
.header-navItem--other .header-navBlockInfoItem--faq, .header-navItem--other .header-navBlockInfoItem--besoin_d_aide {
  font-weight:600;
}
.header-navItem--other .header-navBlockInfo--tel{
  font-weight: 500;
  font-size: 1rem;
}
.header-navItem--other .header-navBlockInfo--price{
  font-size: 0.8125rem;
}
.header-navItem--other .header-navBlockOther{
  text-align: right;
  padding-top: 0.75rem;
}
.header-navItem--other .header-navBlockOther i:before{
  color: #00733A;
}
.header-offersLink--color{
  color: #3D4246;
}
.header-subNav img{
  width: auto;
}
.headerNav-toggle.cpe-Icon span {
  display: none;
}
.header-link1Line--paddingBottom{
  padding-bottom: 5.625rem;
}
.header-navTooltip{
  position: absolute;
  background-color: #f9fbfb;
  border: 1px solid #E9E9E9;
  border-radius: 0.375rem;
  padding: 0.625rem;
  font-size: 0.625rem;
  font-family: Arial, Helvetica, sans-serif;
  color: #9ea0a2;
  line-height: 0.75rem;
  z-index: 1000;
}
.headerNav-mobile-right-container {
  display: none;
  align-items: center;
  justify-content: flex-end;
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
}
.headerNav-mobile-right-container .header-navBlockOtherMobile > a {
  display: block;
}
.headerNav-mobile-right-container .header-navBlockOtherMobile:not(:first-child) {
  margin-left: 6.25vw;
}
.headerNav-mobile-right-container .header-navBlockOtherMobile .cpe-Icon {
  color: #00733A;
  font-size: 1.375rem;
  display: block;
}
.headerNav-mobile-right-container .header-navBlockOtherMobile .cpe-Icon:before {
  display: block;
}
.headerNav-mobile-right-container .header-navBlockOtherMobile.header-navBlockOtherMobile--myCP .button {
  background: transparent;
  padding: 0;
  border: 0;
}

  .header-navItem--offers ul li ul li.r-Grid-cell {
    position: relative;
  }

  .header-navItem--offers ul li ul li.r-Grid-cell:after{
    content: "";
    position:absolute;
    right:0;
    top:42px;
    width: 0.0625rem;
    height: 5.3125rem;
    background-color: #d2d3d3;
  }

  .header-navItem--offers ul li ul li.r-Grid-cell:nth-child(4):after{
  width: 0;
  display: none;
  border-color: red;
}
  
  .header-navItem--offers ul li ul .header-linklevel2--borderTop .header-linksLevel2{
    border-top: none;
  }


/** Header nav DOMAIN **/
/*** NAV ***/
/*
Icon classes can be used entirely standalone. They are named after their original file names.

Example usage in HTML:

`display: block` sprite:
<div class="icon-home"></div>

To change `display` (e.g. `display: inline-block;`), we suggest using a common CSS class:

// CSS
.icon {
  display: inline-block;
}

// HTML
<i class="icon icon-home"></i>
*/
.icon-accomodations {
  background-image: url(../images/sprites/sprite.png);
  background-position: -144px 0px;
  width: 123px;
  height: 123px;
}
.icon-activities-gift {
  background-image: url(../images/sprites/sprite.png);
  background-position: -410px -85px;
  width: 94px;
  height: 75px;
}
.icon-activities {
  background-image: url(../images/sprites/sprite.png);
  background-position: -133px -145px;
  width: 123px;
  height: 123px;
}
.icon-arrow-down {
  background-image: url(../images/sprites/sprite.png);
  background-position: -480px -363px;
  width: 11px;
  height: 45px;
}
.icon-blog-heart-full {
  background-image: url(../images/sprites/sprite.png);
  background-position: -514px -221px;
  width: 38px;
  height: 34px;
}
.icon-blog-heart {
  background-image: url(../images/sprites/sprite.png);
  background-position: -514px -176px;
  width: 37px;
  height: 35px;
}
.icon-domes {
  background-image: url(../images/sprites/sprite.png);
  background-position: 0px -145px;
  width: 123px;
  height: 123px;
}
.icon-early-booking-discount {
  background-image: url(../images/sprites/sprite.png);
  background-position: 0px -278px;
  width: 94px;
  height: 75px;
}
.icon-facebookBlack {
  background-image: url(../images/sprites/sprite.png);
  background-position: -43px -475px;
  width: 33px;
  height: 33px;
}
.icon-family {
  background-image: url(../images/sprites/sprite.png);
  background-position: -104px -278px;
  width: 94px;
  height: 75px;
}
.icon-faq-booking {
  background-image: url(../images/sprites/sprite.png);
  background-position: -160px -363px;
  width: 70px;
  height: 50px;
}
.icon-faq-info {
  background-image: url(../images/sprites/sprite.png);
  background-position: -400px -363px;
  width: 70px;
  height: 50px;
}
.icon-faq-insurances {
  background-image: url(../images/sprites/sprite.png);
  background-position: -320px -363px;
  width: 70px;
  height: 50px;
}
.icon-faq-managing {
  background-image: url(../images/sprites/sprite.png);
  background-position: -80px -363px;
  width: 70px;
  height: 50px;
}
.icon-faq-mystay {
  background-image: url(../images/sprites/sprite.png);
  background-position: 0px -363px;
  width: 70px;
  height: 50px;
}
.icon-faq-phone {
  background-image: url(../images/sprites/sprite.png);
  background-position: -312px -278px;
  width: 70px;
  height: 50px;
}
.icon-faq-preparing {
  background-image: url(../images/sprites/sprite.png);
  background-position: -240px -363px;
  width: 70px;
  height: 50px;
}
.icon-flag-be {
  background-image: url(../images/sprites/sprite.png);
  background-position: -432px -340px;
  width: 12px;
  height: 12px;
}
.icon-flag-ch {
  background-image: url(../images/sprites/sprite.png);
  background-position: -410px -340px;
  width: 12px;
  height: 12px;
}
.icon-flag-de {
  background-image: url(../images/sprites/sprite.png);
  background-position: -557px -354px;
  width: 12px;
  height: 12px;
}
.icon-flag-fr {
  background-image: url(../images/sprites/sprite.png);
  background-position: -454px -340px;
  width: 12px;
  height: 12px;
}
.icon-flag-gb, .icon-flag-in {
  background-image: url(../images/sprites/sprite.png);
  background-position: -557px -397px;
  width: 12px;
  height: 12px;
}
.icon-flag-nl {
  background-image: url(../images/sprites/sprite.png);
  background-position: -476px -340px;
  width: 12px;
  height: 12px;
}
.icon-flag-pl {
  background-image: url(../images/sprites/sprite.png);
  background-position: -312px -338px;
  width: 12px;
  height: 12px;
}
.icon-friend-benefit {
  background-image: url(../images/sprites/sprite.png);
  background-position: -410px 0px;
  width: 94px;
  height: 75px;
}
.icon-heart {
  background-image: url(../images/sprites/sprite.png);
  background-position: -514px -63px;
  width: 50px;
  height: 47px;
}
.icon-instagramBlack {
  background-image: url(../images/sprites/sprite.png);
  background-position: -514px -397px;
  width: 33px;
  height: 33px;
}
.icon-label {
  background-image: url(../images/sprites/sprite.png);
  background-position: -514px 0px;
  width: 55px;
  height: 53px;
}
.icon-last-minute {
  background-image: url(../images/sprites/sprite.png);
  background-position: -208px -278px;
  width: 94px;
  height: 75px;
}
.icon-logoInstagram {
  background-image: url(../images/sprites/sprite.png);
  background-position: -82px -423px;
  width: 63px;
  height: 18px;
}
.icon-logoInstagramBlack {
  background-image: url(../images/sprites/sprite.png);
  background-position: -155px -423px;
  width: 63px;
  height: 18px;
}
.icon-nature {
  background-image: url(../images/sprites/sprite.png);
  background-position: 0px 0px;
  width: 134px;
  height: 135px;
}
.icon-note {
  background-image: url(../images/sprites/sprite.png);
  background-position: -266px -145px;
  width: 126px;
  height: 108px;
}
.icon-number-people {
  background-image: url(../images/sprites/sprite.png);
  background-position: -514px -120px;
  width: 46px;
  height: 46px;
}
.icon-pen {
  background-image: url(../images/sprites/sprite.png);
  background-position: 0px -423px;
  width: 72px;
  height: 42px;
}
.icon-people {
  background-image: url(../images/sprites/sprite.png);
  background-position: -514px -265px;
  width: 34px;
  height: 35px;
}
.icon-phone {
  background-image: url(../images/sprites/sprite.png);
  background-position: -514px -310px;
  width: 34px;
  height: 34px;
}
.icon-pinterestBlack {
  background-image: url(../images/sprites/sprite.png);
  background-position: -86px -475px;
  width: 33px;
  height: 33px;
}
.icon-play {
  background-image: url(../images/sprites/sprite.png);
  background-position: -129px -475px;
  width: 32px;
  height: 32px;
}
.icon-pony {
  background-image: url(../images/sprites/sprite.png);
  background-position: -410px -170px;
  width: 94px;
  height: 75px;
}
.icon-pos_indicator {
  background-image: url(../images/sprites/sprite.png);
  background-position: -514px -440px;
  width: 42px;
  height: 14px;
}
.icon-school-holidays {
  background-image: url(../images/sprites/sprite.png);
  background-position: -410px -255px;
  width: 94px;
  height: 75px;
}
.icon-twitterBlack {
  background-image: url(../images/sprites/sprite.png);
  background-position: -514px -354px;
  width: 33px;
  height: 33px;
}
.icon-values {
  background-image: url(../images/sprites/sprite.png);
  background-position: -277px 0px;
  width: 123px;
  height: 123px;
}
.icon-whitephone {
  background-image: url(../images/sprites/sprite.png);
  background-position: -171px -475px;
  width: 20px;
  height: 20px;
}
.icon-youtubeBlack {
  background-image: url(../images/sprites/sprite.png);
  background-position: 0px -475px;
  width: 33px;
  height: 33px;
}

/* GREEN PART */

.footer-background{
  height: 16.25rem;
  width: 100%;
}

/* USPS bloc conditions */

.footer-greyColor{
  background-color: #3D4246;
  padding-bottom: 2.75rem;
}

.footer-greenColor{
  background-color: #00733A;
  padding-bottom: 4.6875rem;
}

.cpBrochureNoDisplay-padding{
  padding-top: 0.0625rem;
}

.cpBrochureNoDisplay-margin{
  margin-top: 11.5625rem;
}

.cpBrochureAndUspsNoDisplay-padding{
  padding-bottom: 8.125rem;
}

/* End USPS bloc conditions */

.footer-green{
  color: #fff;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
}

.footer-green img{
  width: initial;
  display: block;
  margin: 0 auto;
  margin-bottom: 1.25rem;
}

.footer-green .footer-news{
  text-align: center;
  margin-top: -8.5625rem;
  position: absolute;
}

.footer-green .footer-news .footer-newsWrapper{
  background-color: #fff;
  color: #3D4246;
  padding: 3.75rem 6.25rem;
  border-radius: 1.25rem;
  -moz-border-radius: 1.25rem;
  -webkit-border-radius: 1.25rem;
  border: 0 solid #000000;
  margin:1.25rem auto;
  width: 50%;
  text-align: left;
}

.footer-green .footer-news .footer-newsWrapper p.footer-newsText{
  text-align: left;
}

.footer-green .footer-news .footer-newsWrapper p.footer-newsText strong{
  margin-right: 0.3125rem;
}

.footer-green .footer-news .footer-newsWrapper .footer-newsletterForm{
  margin-top: 1.875rem;
}

.footer-green .footer-news .mdl-textfield__label{
  font-style: italic;
}

.footer-green .footer-news .inputContainer .mdl-textfield.is-invalid.is-dirty .mdl-textfield__error {
  width: 40%;
  margin-top: -2.1875rem;
}

.footer-green .footer-news .inputContainer .mdl-textfield.inputContainer--withValidation.is-dirty .mdl-textfield__valid {
  width: 5.25rem;
  margin-top: -2.1875rem;
  right: 0rem;
}

.footer-green .footer-brochure{
  margin-top: -3.125rem;
}

.footer-green .footer-brochure a picture img{
  border-radius: 0.75rem;
}

.footer-green .footer-brochure p{
  padding: 0 1.875rem;
  margin-top: 1.25rem;
  text-align: center;
  color: #fff;
  font-size: 0.8125rem;
}

.footer-green .footer-app{
  margin-top: -3.125rem;
  position: absolute;
  right: 0;
}

.footer-green .footer-app a picture img{
  border-radius: 0.75rem;
  border: 0.125rem solid white;
}

.footer-green .footer-app p{
  padding: 0 0.625rem;
  margin-top: 1.25rem;
  text-align: center;
  color: #fff;
  font-size: 0.8125rem;
}

.footer-green .inputContainer{
  margin: 0;
  text-align: left;
  padding-left: 1.25rem;
  width: 88%;
}

.footer-green .inputContainer .mdl-textfield{
  z-index: 100;
  width: 100%;
}

.footer-green #newsletterForm{
  position: relative;
}

.footer-green #newsletterForm .button{
  padding-top: 0.625rem;
}

.footer-green #newsletterForm .buttonContainer{
  position: absolute;
  right: 8%;
  top:0;
}

.footer-green .footer-cpBrochure{
  font-size: 0.8125rem;
}

.footer-green .footer-usps{
  background-color: #00733A;
}

.footer-green .footer-usps-margin{
  margin-top: 3.75rem;
}

.footer-green .footer-usps p{
  text-align: center;
  margin-bottom: 3.75rem;
}

.footer-green .footer-usps .footer-uspsWrapper .footerAlways{
  width: 7.5rem;
  margin: 0 auto;
  font-size: 0.8125rem;
  color: white;
}

/* DARK GREEN PART */
.footer-darkGreen {
  background: #006130;
  padding-top: 2.5rem;
  color: white;
  padding: 0 4%;
}
.footer-darkGreen .footer-title {
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  font-size: 0.9375rem;
}
.footer-darkGreen .footer-conditions {
  padding: 2.5rem 0;
}
.footer-darkGreen .footer-conditions li{
  vertical-align: top;
}
.footer-darkGreen .footer-conditions li a{
  font-size: 0.8125rem;
  color: white;
  display: block;
  padding-right: 1%;
}
.footer-darkGreen .footer-conditions .footer-languageSelect {
  position: relative;
}
.footer-darkGreen .footer-conditions .footer-languageSelection {
  position: relative;
  width: 11.625rem;
  border: 0.0625rem solid white;
  padding: 0.625rem 0.875rem;
  border-radius: 0.25rem;
  cursor: pointer;
}
.footer-darkGreen .footer-conditions .footer-languageSelection:after{
  font-family: 'icons';
  font-size: 0.5rem;
  top: 0.9375rem;
  margin-top: -0.3125rem;
  position: absolute;
  right: 0.75rem;
}
.footer-darkGreen .footer-conditions .footer-languageSelection.toggle-active {
  border-radius: 0.25rem 0.25rem 0 0;
}
.footer-darkGreen .footer-conditions .footer-languageChoice {
  position: absolute;
  top: 2.8125rem;
  left: 0;
  z-index: 10;
  width: 11.625rem;
  border: 0.0625rem solid white;
  border-radius: 0 0 0.25rem 0.25rem;
  background: #006130;
  height: 9.375rem;
  overflow-y: scroll;
}
.footer-darkGreen .footer-conditions .footer-languageChoice a {
  padding: 0.625rem 0.875rem;
}
.footer-darkGreen .footer-conditions .footer-languageChoice li {
  border-bottom: 0.0625rem solid #338d60;
}
.footer-darkGreen .footer-conditions .footer-languageChoice .mCSB_scrollTools {
  height: 97%;
  right: 0.25rem;
  top: 0.125rem;
  width: 0.625rem;
}
.footer-darkGreen .footer-conditions .footer-languageChoice .mCSB_draggerContainer {
  border-radius: 0;
  background-color: #00592d;
}
.footer-darkGreen .footer-conditions .footer-languageChoice .mCSB_draggerContainer:hover {
  border-radius: 0;
  background-color: #00592d;
}
.footer-darkGreen .footer-conditions .footer-languageChoice .mCSB_dragger {
  background-color: #003d1f;
}
.footer-darkGreen .footer-conditions .footer-languageChoice .mCSB_dragger_bar {
  background-color: #003d1f;
}
.footer-darkGreen .footer-conditions .footer-languageChoice .mCSB_dragger:hover .mCSB_dragger_bar {
  background-color: #003d1f;
}
.footer-darkGreen .footer-conditions .footer-languageChoice .mCSB_draggerRail:hover {
  background-color: #00592d;
}
.footer-darkGreen .footer-conditions .footer-languageChoice .mCSB_inside > .mCSB_container {
  margin-right: 0.875rem;
}
.footer-darkGreen .footer-paymentCertif {
  padding: 1.25rem 0;
  border-top: 0.0625rem solid #338d60;
}
.footer-darkGreen .footer-paymentCertif .footer-certifications{
  margin: 0 auto;
  font-size: 0;
  display: table;
  table-layout: fixed;
  width: 100%;
}

/* GREY PART */

.footer-grey{
  padding: 0.9375rem 4%;
  background-color: #3D4246;
  color: #3D4246;
  text-align: center;
}

.footer-grey .certifications-list {
  width: auto;
  padding-right: 6%;
}

.footer-grey .certifications-listText {
  padding-left: 1.25rem;
}

.footer-grey .certifications-listText:before {
  border-color: #64686b;
  left: 0.625rem;
}

/*Certifications*/

.certifications-list{
  font-size: 0;
  display: table-cell;
  vertical-align: middle;
}

.certifications-list a{
  font-size: 0;
  display: table;
}

.certifications-listText{
  display: table-cell;
  vertical-align: middle;
  color: white;
  font-size: 0.6875rem;
  opacity: 0.5;
  line-height: 1rem;
  position: relative;

}

.certifications-listText:before{
  content: "";
  width: 0.0625rem;
  border-left: 0.0625rem solid #338d60;
  padding: 0.6875rem 0.1875rem 0.6875rem 0;
  margin-top: -0.6875rem;
  display: block;
  position: absolute;
  top: 50%;
  left: 12%;
}

.certifications-listPicture{
  height: 100%;
  display: table-cell;
  vertical-align: middle;
}

.certifications-listPicture img{
  width: auto;
  float: right;
}



/*Languages*/

.footer-greyLanguages{
  border-bottom: 0.0625rem solid #3D4246;
  padding: 2.5rem 0;
  color: #9ea0a2;
}

.footer-greyLanguages p{
  margin-bottom:2%;
  font-size: 0.875rem;
}

.footer-greyLanguages li{
  vertical-align: top;
}

.footer-greyLanguages li a{
  font-size: 0.8125rem;
  color: #9ea0a2;
  display: block;
  padding-right: 1%;
}

.footerTable-listLanguages{
  font-size: 0;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
}

.footerTable-listLanguages li{
  display: inline-block;
}

.footerTable-listLanguages span{
  display: inline-block;
  margin-right: 0.5rem;
  vertical-align: -0.0625rem;
}


.languagesForm{
  display:block;
  width:100%;
  line-height: 3.75rem;
  font-size: 0;
}


.languagesForm.open{
  height: 100%;
}

/** Brands **/

.footer-brands {
  display: inline-block;
}

/** Gestion du toggler **/

/* Social */

.footer-social{
  margin-top: 0.9375rem;
}

.footerTable-listEnd{
  font-size: 0;
}

.footerTable-listEnd p {
  margin-bottom: 0.9375rem;
}

.footerTable-listEnd li{
  display: inline-block;
  margin-right: 0.3125rem;
}

.footerTable-listEnd img{
  width: auto;
  padding: 0 0.3125rem 0 0;
}

.footerTable-listEnd .cpe-Icon{
  color: white;
  font-size: 1.5625rem;
  margin-top: -0.625rem;
}

.footerTable-listEnd.footer-social li {
  margin-right:  0.625rem;
}

#tripAdvisor-image{
  margin: 0;
}

#tripAdvisor-image img{
  width: 8.75rem;
  margin-top: -0.5rem;
}

.otherWebsites p{
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
}
.footer-myCP-Link, .footer-myCP-Link-title{
  display: block;
  color: #ffffff;
}
.footer-myCP-Link-label{
  display: block;
  position: relative;
  padding-left: 1.5625rem;
  margin-top: 0.625rem;
}
.footer-myCP .cpe-Icon{
  position: absolute;
}
.footer-myCP .cpe-Icon--user{
  left: 0;
  top: -0.3125rem;
  font-size: 1.125rem;
}
.footer-myCP .cpe-Icon--arrow{
  top:0;
  right: 0;
  font-size: 0.5rem;
}
.footerTable-listLanguages .footer-myCP-Link-title{
  display: block;
}

.footerSeo {
  padding: 1.875rem 0;
}

.footerSeo li {
  text-align: center;
}

.footerSeo li a {
  font-size: 0.8125rem;
  color: #3D4246;
}
/* Button */

.buttonContainer{
    cursor:pointer;
    position:relative;
    display:inline-block;
    background-color: transparent;
    border: none;
    line-height: 0;
    z-index: 1;
  }

.button {
  padding: 0.75rem 1.25rem;
  line-height:1rem;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  font-size:0.875rem;
  border:1px solid transparent;
  border-radius: 1.25rem;
  cursor:pointer;
  display:inline-block;
  text-align:center;
  font-weight: 500;
}

.button--disabled {
  cursor: pointer;
}

.button--withIcon{
  margin-left: 1.875rem;
}

.button--withClose .cpe-Icon--close{
  margin-left: 0.9375rem;
  display: inline;
}

.button--primary{
  font-family: 'DomaineText-Italic', Arial, Helvetica, sans-serif;
  font-size: 0.9375rem;
}

.button--blackWhite {
  background-color: #3D4246;
  color:#fff;
}

.button--blackWhite:hover{
  background-color: #030404;
}

.button--whiteBlue {
  background-color:#fff;
  color: #144486;
  border-color: #144486;
}

.button--whiteBlue:hover{
  background-color: #E9E9E9;
}

.button--whiteGreen {
  background-color:#fff;
  color: #3D4246;
  border-color: #00733A;
}

.button--whiteGreen:hover{
  background-color: #E9E9E9;
}

.button--whiteBlack {
  background-color:#fff;
  color: #3D4246;
  border-color: #3D4246;
}
.button--whiteBlack:hover{
  border-color: #78B13E;
  color: #78B13E;
}

.button--redWhite {
  background-color: #D7532C;
  color:white;
}

.button--redWhite:hover{
  background-color: #C23207;
}

.button--transparentWhite {
  background-color:transparent;
  color:#fff;
  border-color:#fff;
}

.button--transparentWhite:hover {
  background-color:white;
  color: #78B13E;
}

.button--transparentBlack {
  background-color:transparent;
  color: #3D4246;
  border-color: #3D4246;
}

.button--transparentBlack:hover {
  border-color: #78B13E;
  color: #78B13E;
}

.button--greenWhite {
  background-color: rgba(0, 122, 62, 0.7);
  color: white;
  border-color: transparent;
}

.button--greenWhite:hover{
  background-color: #3D4246;
}

.animatedIconContainer .cpe-Icon{
  position:absolute;
  top:50%;
  left:0;
  display:inline-block;
  width:1.25rem;
  height:0.625rem;
  font-size: 0.625rem;
}

.cpe-Icon--arrow_cta{
  font-size: 0.75rem;
}

.icon-arrow--black{
  color: #3D4246;
}

.icon-arrow--white{
  color : #ffffff;
}

.buttonContainer:hover .cpe-Icon--arrow_cta {
  animation-name: arrowRightToLeft;
  animation-duration: 1s;
}

.button--withClose .icon-close{
  font-family: inherit;
}

.button--withClose .icon-close:before{
  font-size: 0.75rem;
  position: absolute;
  top: 0.9375rem;
  right: 1.25rem;
}

.button--withDiagonalArrow{
  position: relative;
  padding-left: 2.5rem;
}

.button--withDiagonalArrow:before{
  display: inline-block;
  font-family: "icons";
  font-size: 1.125rem;
  position: absolute;
  top: 0.75rem;
  left: 0.875rem;
}

.button--withToggleArrow{
  position: relative;
  padding-left: 2.5rem;
  font-family: 'DomaineText-Italic', Arial, Helvetica, sans-serif;
}

.button--withToggleArrow:before{
  display: inline-block;
  font-family: "icons";
  font-size: 0.5rem;
  position: absolute;
  top: 0.75rem;
  left: 0.875rem;
}


.buttonContainer.u-disabled {
  opacity: 1;
}


.buttonContainer.u-disabled .button--redWhite{
  background-color: #E9E9E9;
  color: #9ea0a2;
}
/*** instruction css à ré-introduire proprement dans la css form/datepicker/_index.css, si l'ABTEST est validé ***/
.abtest_durationCalendar .pika-backgroundLoader{
  position:absolute;
  z-index: 881;
  border-radius: 0.3125rem;
  box-shadow: 0 5px 7px -5px rgba(0,0,0,.5);
  background-color: rgb(255, 255, 255, 0.5);
}
.abtest_durationCalendar .pika-header{
  display:block;
}
.abtest_durationCalendar .pika-table td .pika-highlight:not(.pika-rangeEnd):not(.pika-selectedDay){
  background-color: #a0c878;
  color: white;
}
.abtest_durationCalendar .pika-table td .pika-selectedRange:not(.pika-selectedDay):not(.pika-selectedEndDay){
  background-color:inherit;
  color: white;
  opacity: 1;
}
.abtest_durationCalendar .pika-table td .pika-selectedRange:not(.pika-selectedDay):not(.pika-selectedEndDay):hover{
  border-radius: 50%;
}
.abtest_durationCalendar .pika-table td.pika-selectedRangeContainer:not(.pika-selectedDayContainer):not(.pika-selectedEndDayContainer){
  background-color: #338f61;
}
.abtest_durationCalendar .pika-table td.is-disabled .pika-button:not(.pika-durationEndDay):not(.pika-selectedDay):not(.pika-selectedEndDay){
  color: #d2d3d3 !important;
}
.abtest_durationCalendar .pika-table td.pika-selectedRangeContainer.pika-selectedDayContainer{
  background-color: white;
  background-image:         linear-gradient(to right, #FFFFFF, #FFFFFF 50%, #338f61 50.1%, #338f61 100%);
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF',endColorstr='#338f61338f61', GradientType=0);
}
.abtest_durationCalendar .pika-table td.pika-rangeStartContainer{
  background-color: white;
  background-image:         linear-gradient(to right, #FFFFFF, #FFFFFF 50%, #338f61 50.1%, #338f61 100%);
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF',endColorstr='#338f61338f61', GradientType=0);
}
.abtest_durationCalendar .pika-table td.pika-selectedEndDayContainer{
  background-color: white;
  background-image:         linear-gradient(to right, #338f61, #338f61 50%, #FFFFFF 50.1%, #FFFFFF 100%);
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#338f61',endColorstr='#FFFFFF', GradientType=0);
}
.abtest_durationCalendar .pika-table td.pika-rangeStartContainer.pika-selectedDayContainer{
  background-color: white;
  background-image:         linear-gradient(to right, #FFFFFF, #FFFFFF 50%, #a0c878 50.1%, #a0c878 100%);
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF',endColorstr='#a0c878', GradientType=0);
}
.abtest_durationCalendar .pika-table td.pika-rangeEndContainer:not(.pika-selectedDayContainer){
  background-color: white;
  background-image:         linear-gradient(to right, #a0c878, #a0c878 50%, #FFFFFF 50.1%, #FFFFFF 100%);
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#65B32E',endColorstr='#FFFFFF', GradientType=0);
}
.abtest_durationCalendar .pika-table td .pika-durationEndDay{
  color: white;
  font-weight: bold;
  background-color: #78B13E !important;
  border-radius: 50%;
}
.abtest_durationCalendar .pika-table td .pika-durationSelectedDay{
  color: white;
  font-weight: bold;
  background-color: #78B13E !important;
  border-radius: 50%;
}
.abtest_durationCalendar .pika-table td.pika-durationHighlight:not(.pika-durationSelectedDayContainer):not(.pika-durationEndDayContainer){
  background: #a0c878 !important;

  /*les td en hightlight sont sur fond vert clair*/
}
.abtest_durationCalendar .pika-table td.pika-durationHighlight .pika-button:not(.pika-selectedDay):not(.pika-durationEndDay){
  background:none;
  color: white;
}
.abtest_durationCalendar .pika-table td.pika-durationHighlight.is-disabled .pika-button.pika-day:not(.pika-selectedEndDay):not(.pika-selectedDay):not(.pika-highlight):not(.pika-selectedRange):not(.pika-rangeEnd){
  background:none;
}
.abtest_durationCalendar .pika-table td.pika-durationHighlight.pika-durationSelectedDayContainer:not(.pika-selectedRangeContainer){
  border-radius: 50% 0 0 50%;

  /* seule la partie droite est en fond vert clair*/
  background: #a0c878 !important;
}
.abtest_durationCalendar .pika-table td.pika-durationHighlight.pika-durationSelectedDayContainer.pika-selectedDayContainer{
  border-radius: 50% 0 0 50%;

  /* seule la partie droite est en fond vert clair*/
  background: #a0c878 !important;
}
.abtest_durationCalendar .pika-table td.pika-durationHighlight.pika-durationSelectedDayContainer.pika-selectedRangeContainer:not(.pika-selectedDayContainer){
  background-color: white;
  background-image:         linear-gradient(to right, #338f61, #338f61 50%, #a0c878 50.1%, #a0c878 100%);
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#338f61',endColorstr='#a0c878', GradientType=0);
}
.abtest_durationCalendar .pika-table td.pika-durationHighlight:not(.pika-durationSelectedDayContainer) .pika-button.pika-selectedDay{
  background: #a0c878;
}
.abtest_durationCalendar .pika-table td.pika-durationHighlight.pika-selectedDayContainer.pika-rangeStartContainer .pika-button.pika-selectedDay, .abtest_durationCalendar .pika-table td.pika-durationHighlight.pika-selectedDayContainer.pika-durationSelectedDayContainer .pika-button.pika-selectedDay{
  background-color: #78B13E;

  /* bouton sur fond vert médian */
}
.abtest_durationCalendar .pika-table td.pika-durationHighlight.pika-selectedDayContainer.pika-rangeStartContainer .pika-button.pika-selectedDay{
  background-color: #00733A;
}
.abtest_durationCalendar .pika-table td.pika-durationHighlight.pika-durationEndDayContainer:not(.pika-selectedRangeContainer){
  border-radius: 0 50% 50% 0;

  /* seule la partie gauche est en fond vert clair*/
  background-color: #a0c878;
}
.abtest_durationCalendar .pika-table td.pika-durationHighlight.pika-durationEndDayContainer.pika-selectedRangeContainer:not(.pika-selectedEndDayContainer){
  background-color: #a0c878;
  background-image:         linear-gradient(to right, #a0c878, #a0c878 50%, #338f61 50.1%, #338f61 100%);
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#65B32E',endColorstr='#338f61', GradientType=0);
}
.abtest_durationCalendar .pika-table td.pika-durationHighlight.pika-durationEndDayContainer.pika-selectedEndDayContainer{
  background-color: #a0c878;
  background-image:         linear-gradient(to right, #a0c878, #a0c878 50%, #ffffff 50.1%, #ffffff 100%);
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#65B32E',endColorstr='#ffffff', GradientType=0);
}
.abtest_durationCalendar .pika-table td.pika-durationHighlight.pika-durationEndDayContainer .pika-button.pika-durationEndDay{
  background-color: #78B13E;

  /* bouton sur fond vert médian */
  color: white !important;
}
.abtest_durationCalendar .searchForm-durationContainer{
  text-align: center;
  padding: 0.625rem 0;
}
.abtest_durationCalendar .searchForm-durationLabel{
  line-height: 0.875rem;
  font-size: 0.8125rem;
  text-align: left;
  display: block;
  padding-top: 0.3125rem;
}
.abtest_durationCalendar .searchForm-durationLabel--main{
  font-size: 0.8125rem;
}
.abtest_durationCalendar .searchForm-durationLabel--main{
  font-weight: 500;
  display: inline-block;
}
.abtest_durationCalendar .searchForm-durationListContainer{
  display: inline-block;
  vertical-align: top;
}
.abtest_durationCalendar .searchForm-durationList{
  display: inline-block;
  vertical-align: top;
}
.abtest_durationCalendar .searchForm-durationList li{
  display: inline-block;
}
.abtest_durationCalendar .searchForm-durationButton{
  display: inline-block;
  line-height: 1.875rem;
  border: 1px solid #d2d3d3;
  border-radius: 1.25rem;
  margin-left: 0.625rem;
  min-width: 2.3125rem;
  text-align: center;
  padding: 0 0.3125rem;
  font-size: 0.75rem;
  cursor: pointer;
}
.abtest_durationCalendar .searchForm-durationButton:hover{
  border: 1px solid #78B13E;
  color: #78B13E;
}
.abtest_durationCalendar .searchForm-durationItem.selected .searchForm-durationButton{
  color: white;
  background-color: #00733A;
  border: 1px solid #00733A;
}

/*** common display ***/
.searchForm-globalInputContainer *{/* put this instruction first, to let each specification overwrite it*/
  position: relative;
}
.searchForm {
  line-height: 3.75rem;
  color: #3D4246;
  font-size: 0;
}
.searchForm-closeBtn {
  display: block;
  position: absolute;
  top: 0.1875rem;
  right: 0.4375rem;
  font-size: 0.625rem;
  cursor: pointer;
  z-index: 845;
}
.searchForm-closeBtn .cpe-Icon--close {
  font-size: 0.75rem;
}
.searchForm-capacityNb {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
  vertical-align: middle;
  line-height: 1.25rem;
  margin-top: -0.25rem;
}
.searchForm-globalInputContainer{
  display: block;
}
/*** generic elements ***/
.searchForm-container{
  display:block;
  width:100%;
  margin:0 auto;
  text-align: center;
}
.searchForm a {
  font-size: 0.875rem;
  display: inline-block;
  color: #3D4246;
  font-weight: 500;
}
.searchForm-block{
  padding : 0 0.625rem;
}
.searchForm-block:last-child{
  padding-right: 0;
}
.searchForm-data{
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
}
.searchForm-dataOpener{
  color: #3D4246;
  border-width: 0;
  position:relative;
  cursor: pointer;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  text-align: left;
}
/* specification selon tag dataOpener */
.searchForm a.searchForm-dataOpener{
  display: block;
  text-overflow: ellipsis;
}
.searchForm input.searchForm-dataOpener{
  border-width: 0;
  background-color: transparent;
  position:relative;
  font-size: 0.9375rem;
  font-weight: 500;
  outline: none;
}
.searchForm input.searchForm-dataOpener.disabled{
  color: #9ea0a2;
}
.searchForm input.searchForm-dataOpener.disabled ::-webkit-input-placeholder {
  color: inherit;
}
.searchForm input.searchForm-dataOpener.disabled ::-moz-placeholder {
  color: inherit;
}
.searchForm input.searchForm-dataOpener.disabled :-ms-input-placeholder {
  color: inherit;
}
.searchForm input.searchForm-dataOpener.disabled :-moz-placeholder {
  color: inherit;
}
.searchForm-inputContainer{
  position: relative;
}
.searchForm-inputContainer:after{
  position:absolute;
  right : 10px;
  z-index: 801;
}
/*** generic sub elements ***/
.searchForm-dataListContainer{
  display:none;
  z-index: 841;
}
/*@media (--mq-minTablet){
      &:before{
        content:"";
        display:block;
        position:fixed;
        bottom: 0;
        left: 0;
        width:100%;
        height: 100%;
        z-index: calc(var(--zIndex--searchContent) - 1);
      }
    }*/
/*** country/park elements ***/
.searchForm-parkSelectContainer{
  padding : 0 0.625rem;
  background-color: white;
  height: 3.75rem;
}
.searchForm-parkSelectContainer:not(.opened){

  /* handling hover zone bug on chrome */
  overflow: hidden;
}
.searchForm-parkSelectContainer .searchForm-dataListContainer{
  position: relative;
  padding-top : 0.625rem;
}
.searchForm-parkSelectContainer.opened, .searchForm-parkSelectContainer:hover{
  border-bottom: 4px solid #78B13E;
}
.searchForm-parkSelectContainer a.searchForm-parkSelector.opened, .searchForm-parkSelectContainer a.searchForm-parkSelector:hover{
  color: #78B13E;
}
.searchForm-parkSelectContainer a.searchForm-parkSelector .searchForm-data{
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.searchForm-parkSelectContainer .searchForm-listContainer{
  position: static;
  text-align: left;
}
.searchForm-parkSelectContainer .searchForm-listContainer.u-disabled{
  opacity: 1;
}
.searchForm-parkSelectContainer .searchForm-listContainer.u-disabled a, .searchForm-parkSelectContainer .searchForm-listContainer.u-disabled span{
  opacity: 0.5;
}
.searchForm-country{
  position: static;
  width: 100%;
  display: inline-block;
}
.searchForm-countrySelector{
  margin-left: -0.625rem;
}
.searchForm-countryList{
  background-color: #E9E9E9;
  padding : 0.9375rem;
}
.searchForm-countryList .countryMap-container{
  position: absolute;
  right:0;
  top:0;
  width: 33%;
}
.searchForm-countryList .countryMap-container picture{
  display:block;
}
.searchForm-countryOptionsList{
  display: none;
}
.searchForm-countryOptionsList li{
  position: static;
}
.searchForm-countryMap-container{
  position: relative;
}
.searchForm-countryQuantity{
  display: inline-block;
  padding : 0.125rem;
  border-radius: 50%;
  color: white;
  background-color: #00733A;
  font-size: 0.625rem;
  text-align : center;
  width: 1.25rem;
  height: 1.25rem;
  line-height: 1rem;
  margin-left: 0.25rem;
}
/* adjusting map position, relative to device */
/** country specification **/
.searchForm-country_DE .searchForm-referencePin{
  top: 30.5%;
  left: 67%;
}
.searchForm-country_BE .searchForm-referencePin{
  top: 34%;
  left: 40%;
}
.searchForm-country_BE .countryMap-container {
  width : 34%;
}
.searchForm-country_BE .countryMap-container picture{
  margin-top: -0.625rem;
}
.searchForm-country_NL .searchForm-referencePin{
  top: 44.5%;
  left: 41%;
}
.searchForm-country_NL #pin_site_LH{
  margin-top : -30px;
  margin-left : -9px;
}
.searchForm-sitePin{
  position: absolute;
  color: #86a06b;
  font-size: 1.875rem;
  margin: -2.3125rem 0 0 -0.8125rem;
  cursor: pointer;
  z-index: 802;
  height: 2.25rem;
  overflow: hidden;
}
.searchForm-sitePin:before{
  width: 1.6875rem;
  display: inline-block;
}
.searchForm-sitePin.checked{
  color: #00733A;
}
.searchForm-sitePin:hover, .searchForm-sitePin.hover{
  color: #00733A;
}
.searchForm-referencePin{
  position: absolute;
  color: #3D4246;
  font-size: 0.8125rem;
  display: inline-block;
  line-height: 1em;
}
.searchForm-referencePin:before{
  content:"•";
  display: block;
  text-align: center;
  font-size: 1.25rem;
}
.searchForm a.searchForm-listHeader{
  display: block;
}
.searchForm a.searchForm-listHeader .cpe-Icon{
  position: absolute;
  right: 1.4375rem;
  top: 0.25rem;
}
/*** date elements ***/
.searchForm-globalDateContainer{
  position: relative;
  font-size: 0;
  background-color: white;
  border-radius: 0.3125rem 0 0 0.3125rem;
  text-align: left;
}
.searchForm-globalDateContainer .pika-reset {
  display: none;
  top: 0;
  right: 1.25rem;
  position: absolute;
  align-items: center;
  justify-content: center;
}
.searchForm-globalDateContainer .pika-reset .cpe-Icon {
  font-size: 0.625rem;
}
.searchForm-globalDateContainer .pika-reset .cpe-Icon:before {
  font-weight: 600;
}
.searchForm-globalDateContainer .pika-reset.visible {
  display: flex;
}
.searchForm-globalDateContainer .cpe-Icon--arrow2{
  position: static;
  display: inline-block;
  z-index: 804;
  font-size: 0.8125rem;
  width: 1.25rem;
  height: 3.75rem;
  color: #9ea0a2;
}
.searchForm-globalDateContainer .date-container{
  -webkit-user-select: none;
          user-select: none;
}
.searchForm-globalDateContainer .date-container:not(.opened){
  overflow: hidden;
}
.searchForm-globalDateContainer .date-container.opened.searchForm-inputContainer input{
  border-bottom: 0.25rem solid #78B13E;
  color: #78B13E;
  padding-bottom: 1rem;
}
.searchForm-globalDateContainer .date-container .searchForm-dayLabel{
  display: none;
  text-transform: capitalize;
}
.searchForm .widthSearchForm-countrySite .searchForm-globalDateContainer{
  border-radius: 0;
}
/*** capacity & participants elements ***/
.searchForm-capacity{
  position: relative;
  background-color: white;
  height: 3.75rem;
}
.searchForm-capacity .form-Quantity-tooltip{
  cursor: pointer;
}
.searchForm-capacity.opened, .searchForm-capacity:hover{
  border-bottom: 0.25rem solid #78B13E;
}
.searchForm-capacity.opened span.searchForm-capacityNb, .searchForm-capacity:hover span.searchForm-capacityNb{
  color: #78B13E;
}
.searchForm-capacity:not(.opened){

  /* handling hover zone bug on chrome */
  overflow: hidden;
}
.searchForm-capacity.opened .searchForm-capacityContainer{
  box-shadow: 0 0.125rem 0.375rem #9ea0a2;
  border-radius: 0.3125rem;
}
.searchForm-capacity .searchForm-capacityContainer{
  transform: translate3d(0,0,0);
}
.searchForm-capacity .searchForm-capacity.opened .searchForm-capacityContainer{
  box-shadow: 0 0.125rem 0.375rem #9ea0a2;
  border-radius: 0.3125rem;
}
.searchForm-capacity .searchForm-dataListContainer{
  color: #3D4246;

  /*** /ABTEST_KIDS_AGES RELATED ***/
}
.searchForm-capacity .searchForm-dataListContainer .searchForm-capacityList{
  position: relative;
  padding: 0.5rem 0.9375rem;
  background-color:white;
  border-radius: 0.3125rem;
  z-index: 840;
}
.searchForm-capacity .searchForm-dataListContainer .searchForm-capacityList ::selection {
  background-color: transparent;
}
.searchForm-capacity .searchForm-dataListContainer .form-QuantityContainer .form-QuantityLabel{
  line-height: erm(10);
}
.searchForm-capacity .searchForm-dataListContainer .form-QuantityContainer .form-QuantityLabel p{
  text-align: left;
}
.searchForm-capacity .searchForm-dataListContainer .form-QuantityContainer .form-QuantitySelector{
  text-align: right;
}
.searchForm-capacity .searchForm-dataListContainer .searchForm-quantityBlock{
  padding: 0.375rem;
}
.searchForm-capacity .searchForm-dataListContainer .searchForm-quantityValidation{
  text-align:center;
}
/*** ABTEST_KIDS_AGES RELATED ***/
.searchForm-capacity .searchForm-dataListContainer .kidsAgesContainer{
  text-align: left;
  padding-left: 0.375rem;
}
.searchForm-capacity .searchForm-dataListContainer .kidsAgesContainer::-webkit-scrollbar {
  width: 0.625rem;
}
.searchForm-capacity .searchForm-dataListContainer .kidsAgesContainer::-webkit-scrollbar-track{
  width: 0.625rem;
  height: 3.1875rem;
  border-radius: 0.625rem;
  background-color: #c4c4c4;
}
.searchForm-capacity .searchForm-dataListContainer .kidsAgesContainer::-webkit-scrollbar-thumb{
  width: 0.625rem;
  border-radius: 0.625rem;
  background-color: #9ea0a2;
}
.searchForm-capacity .cpe-Icon--couple{
  font-size: 0.75875rem;
  padding-right: 0.1875rem;
  width: 1.5625rem;
}
/*** accommodation number elements ***/
.searchForm-accommodation_number{
  position: relative;
  z-index: 840;
  background-color: #E9E9E9;
  padding : 0 1.25rem;
}
.searchForm-accommodation_number .form-Select{
  display: inline-block;
  border-radius: 0.3125rem;
  overflow: hidden;
  position: relative;
  vertical-align: middle;
  line-height: 2.5rem;
  background-color: white;
  margin-right: 0.3125rem;
}
.searchForm-accommodation_number .form-Select:before{
  content : "";
  width : 0.625rem;
  border-color: black transparent transparent transparent;
  border-style: solid;
  border-width: 0.3125rem 0.3125rem 0 0.3125rem;
  position: absolute;
  right: 0.625rem;
  top : 50%;
}
.searchForm-accommodation_number .form-selectItem{
  width: 130%;
  border: none;
  padding: 0 0.8125rem 0 1.25rem;
  background-color: transparent;
}
.searchForm-accommodation_number .form-selectItem option{
  color: #3D4246;
}
/** budget **/
.searchFormtotalPrice {
  font-size: 1.25rem;
}
/** submit element **/
.searchForm-submitContainer{
  overflow: hidden;
}
.searchForm-submitContainer.cp-loading:before{
  background-color: rgba(255, 255, 255, 0.5);
  border-radius: 0 0.3125rem 0.3125rem 0;
}
.searchForm-submitContainer .cp-spinner{
  position: absolute;
  top:0;
  margin-top:0;
  margin-right:0;
  height: 3.75rem;
  line-height: 3.75rem;
}
/** icone chevron / arrow **/
.searchForm .cpe-Icon.arrow{
  position: absolute;
  font-size: 0.5rem;
  display: inline-flex;
  right: 0.625rem;
  top: 1.75rem;
}

/*** adaptation spécifique touch devices ***/
.deviceIsTablet .searchForm-sitePin:before, .deviceIsMobile .searchForm-sitePin:before{
  margin-top:0;
}

/*** gestion du searchForm en version ouverte pour la version mobile ***/

/*** ABTEST_LAST_SEARCHES RELATED ***/
.lastSearchesList {
  display: none;
}
/*** /ABTEST_LAST_SEARCHES RELATED ***/

.searchBlock{
  margin-bottom: 1rem;
}

.cp-loading.resultList:before, .cp-loading.searchFilters-filterContent:before, .cp-loading.domainAccommodations-resultList:before {
  background: rgba(255, 255, 255, 0.7);
}

.cp-loading.resultList:before, .cp-loading.domainAccommodations-resultList:before {
  z-index: 98;
}

.cp-loading.resultList .cp-spinner, .cp-loading.domainAccommodations-resultList .cp-spinner {
  top: 12.5rem;
  z-index: 99;
}

.searchForm-countryOptionsList .form-checkboxContainer .form-checkboxLabel.hover{
  color: #00733A;
  font-weight: 600;
}


/* HANDLING DELAY ACTION LAYER */
.delayClickLayer{display:none;}

.js-delayAction .delayClickLayer{
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: transparent;
  z-index: 980;
  cursor: pointer;
}

/* HANDLING STICKY SEARCH */

/* HANDLING STICKY GO BACK TO TOP / FILTERS */

.stickyGoToFilters{
  display: none;
}

.widthFixedGoToFilters .stickyGoToFilters {
  position: fixed;
  z-index: 700;
  cursor: pointer;
  display: block;
  border-radius: 50%;
}

.widthFixedGoToFilters .stickyGoToFilters .cpe-Icon--filter {
  position: absolute;
  top: 1.0625rem;
  left: 0;
  width: 100%;
  text-align: center;
  font-size: 1.5625rem;
}

.widthFixedGoToFilters .stickyGoToFilters-text {
  position: absolute;
  bottom: 1.125rem;
  left: 0;
  font-size: 0.6875rem;
  width: 100%;
  text-align: center;
}

  /*** Gestion du toggler ***/
body:not(.home) .searchFormToggler-element{
  line-height: 3.125rem;
  display: block;
  vertical-align: middle;
  padding: 0 1vw;
}
body:not(.home) .searchFormToggler-park{
  padding: 0 1vw;
  height: 3.125rem;
  line-height: 3.125rem;
  border-bottom: 5px solid #00733A;
}
body:not(.home) .searchFormToggler-text{
  padding: 0 0.3125rem;
  font-size: 0.8125rem;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  font-weight: 500;
}
body:not(.home) .searchFormToggler-date{
  width: 66%;
  overflow: hidden;
  height: 3.125rem;
  display: inline-block;
  vertical-align: middle;
}
body:not(.home) .searchFormToggler-participants{
  display: inline-block;
  vertical-align: middle;
}

body.home #mainContainer .searchForm-toggler--formHidden{
  display: none;
}

body.home #mainContainer .searchForm-toggler--formDisplayed{
  display: none;
}

.form-quantityErrorMessage {
  transition: 0.3s all;
  transition-timing-function: ease;
  position: absolute;
  bottom: 1.25rem;
  right: -2.5rem;
  display: block;
  width: auto;
  text-align: center;
  padding: 0.1875rem 0.5rem;
  border-radius: 0.25rem;
  box-shadow: 0 0 0.1875rem rgba(0,0,0,.1);
  color: #D7532C;
  background-color: white;
  border: 1px solid #E9E9E9;
  font-size: 0.75rem;
  opacity: 0;
  z-index: -1;
  
}

.form-quantityErrorMessage.display-alertError {
  bottom: 3.625rem;
  opacity: 1;
  z-index: 900;
}

.form-quantityErrorMessage:before {
  content: "";
  width: 0;
  height: 0;
  border-left: 0.625rem solid transparent;
  border-right: 0.625rem solid transparent;
  border-top: 0.9375rem solid #E9E9E9;
  position: absolute;
  right: 5rem;
  bottom: -0.9375rem;
}

.form-quantityErrorMessage:after {
  content: "";
  width: 0;
  height: 0;
  border-left: 0.625rem solid transparent;
  border-right: 0.625rem solid transparent;
  border-top: 0.9375rem solid white;
  position: absolute;
  right: 5rem;
  bottom: -0.875rem;
}
/*** ABTEST_KIDS_AGES RELATED ***/
.home .searchForm-container .searchForm-capacityContainer .kidsSelectorLabel{
  display: none;
  text-align: left;
  font-style: italic;
  padding: 0 0.375rem 0.375rem;
  font-size: 0.75rem;
}
.home .searchForm-container .searchForm-capacityContainer .kidsAgesContainer .select2-container{
  width: auto !important;
  z-index: 900;
}
.home .searchForm-container .searchForm-capacityContainer .kidsAgesContainer .selectKidAge{
  position: relative;
  outline: none;
  cursor: pointer;
  display: inline-block;
  height: 2.5rem;
  font-size: 0.875rem;
  padding-left: 0.625rem;
  color: #3D4246;
  appearance:none;
  -moz-appearance:none;
  -webkit-appearance:none;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 6.292L1.098.154a.584.584 0 00-.788 0 .76.76 0 00-.297.478.78.78 0 00.107.558l6.364 6.603.06.068A.749.749 0 007 8a.733.733 0 00.462-.137l.059-.068 6.365-6.616a.775.775 0 00.1-.553.753.753 0 00-.297-.47.584.584 0 00-.788 0L7 6.293z' fill='%233D4246'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 19vw 15px;
  border: 1px solid transparent;
  line-height: 2.375rem;
}
.home .searchForm-container .searchForm-capacityContainer .kidsAgesContainer .selectKidAge-container{
  display: inline-block;
  margin-right: 0.625rem;
  width: 4.375rem;
}
.home .searchForm-container .searchForm-capacityContainer .kidsAgesContainer .selectKidAge.select-alertError {
  background-image: url(../../assets/images/backgrounds/bg-select-error.png);
}
.home .form-selectErrorMessage{
  font-family: Arial;
  font-size: 11px;
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: 1.27;
  letter-spacing: normal;
  color: #d7532c;
  display: none;
  text-align: left;
  padding-left: 0.375rem;
}
.home .form-selectErrorMessage.display-alertError {
  display: block;
  z-index: 900;
}
.home .select-alertError{
  border: solid 1px #d7532c !important;
}
.home .select2-container--default .select2-search--dropdown .select2-search__field {
  display: none;
}
.home .select2-container--default .select2-results {
  width: 3.75rem;
  padding: 0.625rem 0;
}
.home .select2-container--default .select2-results > .select2-results__options {
  max-height: 150px;
  overflow-y: auto;
  overflow-x: hidden;
}
.home .select2-container--default .select2-results__options::-webkit-scrollbar {
  width: 0.625rem;
}
.home .select2-container--default .select2-results__options::-webkit-scrollbar-track {
  width: 0.375rem;
  border-radius: 0.25rem;
  background-color: #E9E9E9;
}
.home .select2-container--default .select2-results__options::-webkit-scrollbar-thumb {
  width: 0.375rem;
  border-radius: 0.25rem;
  background-color: #d2d3d3;
}
.home .select2-container--default .select2-results__option{
  height: 2.125rem;
  line-height: 2.125rem;
  border-bottom: none;
  font-size: 0.8125rem;
  color: #3D4246;
  padding: 0rem 0.9375rem 0rem 0.625rem;
  text-align: center;
}
.home .select2-container--default .select2-results__option:first-child{
  display: none;
}
.home .select2-container--default .select2-results__option[aria-disabled=true] {
  cursor: not-allowed;
  color: #d2d3d3;
}
.home .select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: white;
}
.home .select2-container--default .select2-results__option[aria-selected=true] {
  background-color: white;
  color: #00733A;
}
.home .select2-container--default .select2-results__option:hover{
  background-color: #e0f0d7;
  color: #3D4246;
}
.home .select2-container--default .select2-selection--single .select2-selection__arrow b:before{
  font-weight: normal;
}
.home .select2-container--default .select2-selection--single.select-alertError .select2-selection__arrow b:before {
  border-color: #d7532c transparent transparent transparent;
}
.home .select2-container--default.select2-container--open .select2-selection--single.select-alertError .select2-selection__arrow b:before {
  border-color: transparent transparent #d7532c transparent;
}
.home .select2-container--open .select2-dropdown--below {
  width: 4.375rem !important;
  height: 10.9375rem;
  margin-left: 0;
}
.home .select2-search--dropdown {
  display: block;
  padding: 0;
}

/*** /ABTEST_KIDS_AGES RELATED ***/
.contentHeader {
  text-align: center;
  padding: 0 0 1.5em;
}

.contentHeader--noPaddingBottom {
  padding-bottom: 0;
}

.contentHeader-title {
  margin-bottom: 0.625rem;
}

.contentHeader-title--separator:after {
  content: ' ';
  display: block;
  width: 1.875rem;
  height: 0.0625rem;
  border-top: 0.0625rem solid #9ea0a2;
  margin: 1.5625rem auto;
}

.contentTitle--noMarginBottom h1, .contentTitle--noMarginBottom h2 {
  margin-bottom: 0;
}

.contentHeader-text {
  padding: 0 1em;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  font-weight: 500;
}

.contentHeader-text--withBottomMargin {
  margin-bottom: 2em;
}

.blockTextHeader {
  margin-top: 5rem;
}

.blockTextHeader p {
  text-align: center;
}

.blockTextHeader p .blockTextHeaderTitle {
  text-transform: uppercase;
  font-family: 'DomaineText-Italic', Arial, Helvetica, sans-serif;
  font-size: 13px;
  font-weight: bold;
}

.blockTextHeader p .blockTextHeaderTitle:after {
  content: "";
  display: block;
  width: 1.75rem;
  height: 0.0625rem;
  border-bottom: 0.0625rem solid #9ea0a2;
  margin: 0.625rem auto -0.625rem;
}

.blockTextHeader p .blockTextHeaderSection {
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
}

.blockTextHeader p .blockTextHeaderSelect {
  font-family: 'DomaineText-Italic', Arial, Helvetica, sans-serif;
  font-weight: normal;
}

.api_truncToggle-link {
  display: block;
  text-align: center;
  margin: 1em 0 2em;
  cursor: pointer;
}

.siteNameNoWrap {
  white-space: nowrap;
  font-size: inherit;
}
.popin-overlay {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: white;
  opacity: 0.6;
  z-index: 1000;
}
.popin-close {
  display: block;
  position: absolute;
  right: 1.5625rem;
  top: 1.25rem;
}
.popin-close:before {
  content: "\EA18";
  font-family: 'icons';
}
.popin-box {
  border: 1px solid #E9E9E9;
  padding: 2.8125rem 2.1875rem;
  position: absolute;
  z-index: 1001;
  background: white;
  width: 50%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.popin-message {
  display: inline-block;
  width: 95%;
}

.dropDownList-label{
  display: inline-block;
  font-size: 0.75rem;
  padding-top: 0.125rem;
  line-height: 2.625rem;
  vertical-align: middle;
}

.dropDownList-listContainer{
  display: inline-block;
}

.dropDownList-listLabel{
  background-color: white;
  padding: 0.75rem 0.9375rem;
  border-radius: 0.3125rem;
  border: 1px solid #9ea0a2;
  height: 2.625rem;
  line-height: 0.75rem;
  font-size: 0.75rem;
  display: inline-block;
  width: 12.5rem;
  text-align: left;
  font-weight: 500;
  cursor: pointer;
}

.dropDownList-listLabelText{
  display: inline-block;
  vertical-align: middle;
  width: 9.0625rem;
  font-size: 0.75rem;
}

.dropDownList-listLabelText span {
  font-size: 0.75rem;
}

.dropDownList-container{
  text-align: right;
  position: relative;
}

.dropDownList-container .api_toggle_content{
  position: absolute;
  width: 80%;
  right: 0%;
  z-index: 400;
  margin-top: -0.0625rem;
  border: 0.0625rem solid #9ea0a2;
  color: #3D4246;
  background-color: #ffffff;
  display: none;
}

.dropDownList-container .api_toggle_content ul{
  text-align: center;
}

.dropDownList-container .api_toggle_content ul li{
  padding-top: 0.5rem;
}

.dropDownList-container .api_toggle_content ul li[data-sort=distance].u-disabled {
  line-height: 1.125rem;
}

.dropDownList-container .api_toggle_content ul li[data-sort=distance].u-disabled span {
  font-size: 0.75rem;
  font-style: italic;
}

.dropDownList-container .api_toggle_content ul li.selected{
  background-color: #00733A;
  color: white;
}

.dropDownList-container .api_toggle_content ul li:hover{
  background-color: #E9E9E9;
  color: #3D4246;
}

.dropDownList-container .api_toggle_content ul li:after{
  content: "";
  display: block;
  width: 1.75rem;
  height: 1px;
  border-bottom: 1px solid #9ea0a2;
  margin: auto;
  padding-top: 0.5rem;
}

.dropDownList-container .api_toggle_content ul li:last-child {
  padding-bottom: 0.5rem;
}

.dropDownList-container .api_toggle_content ul li:last-child:after{
  content: none;
}

.dropDownList-container .cpe-Icon{
  font-size: 0.5rem;
}

.dropDownList-container .dropDown-item{
  cursor: pointer;
  font-size: 0.75rem;
}

/**
 * material-design-lite - Material Design Components in CSS, JS and HTML
 * @version v1.2.1
 * @license Apache-2.0
 * @copyright 2015 Google, Inc.
 * @link https://github.com/google/material-design-lite
 */
@charset "UTF-8";
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Material Design Lite */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/*
 * What follows is the result of much research on cross-browser styling.
 * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
 * Kroc Camen, and the H5BP dev community and team.
 */
/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */
html {
  color: rgba(0,0,0, 0.87);
  font-size: 1em;
  line-height: 1.4; }

/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * These selection rule sets have to be separate.
 * Customize the background color to match your design.
 */
::selection {
  background: #b3d4fc;
  text-shadow: none; }

/*
 * A better looking default horizontal rule
 */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0; }

/*
 * Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440
 */
audio, canvas, iframe, img, svg, video {
  vertical-align: middle; }

/*
 * Remove default fieldset styles.
 */
fieldset {
  border: 0;
  margin: 0;
  padding: 0; }

/*
 * Allow only vertical resizing of textareas.
 */
textarea {
  resize: vertical; }

/* ==========================================================================
   Browser Upgrade Prompt
   ========================================================================== */
.browserupgrade {
  margin: 0.2em 0;
  background: #ccc;
  color: #000;
  padding: 0.2em 0; }

/* ==========================================================================
   Author's custom styles
   ========================================================================== */
/* ==========================================================================
   Helper classes
   ========================================================================== */
/*
 * Hide visually and from screen readers:
 */
.hidden {
  display: none !important; }

/*
 * Hide only visually, but have it available for screen readers:
 * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 */
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/*
 * Extends the .visuallyhidden class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */
.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto; }

/*
 * Hide visually and from screen readers, but maintain layout
 */
.invisible {
  visibility: hidden; }

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.clearfix:before, .clearfix:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */ }

.clearfix:after {
  clear: both; }

/* ==========================================================================
   EXAMPLE Media Queries for Responsive Design.
   These examples override the primary ('mobile first') styles.
   Modify as content requires.
   ========================================================================== */

/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   http://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Remove the unwanted box around FAB buttons */
/* More info: http://goo.gl/IPwKi */
a, .mdl-accordion, .mdl-button, .mdl-card, .mdl-checkbox, .mdl-dropdown-menu, .mdl-icon-toggle, .mdl-item, .mdl-radio, .mdl-slider, .mdl-switch, .mdl-tabs__tab {
  -webkit-tap-highlight-color: transparent;
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0); }

/*
 * Make html take up the entire screen
 * Then set touch-action to avoid touch delay on mobile IE
 */
html {
  width: 100%;
  height: 100%;
  touch-action: manipulation; }

/*
* Make body take up the entire screen
* Remove body margin so layout containers don't cause extra overflow.
*/
body {
  width: 100%;
  min-height: 100%;
  margin: 0; }

/*
 * Main display reset for IE support.
 * Source: http://weblog.west-wind.com/posts/2015/Jan/12/main-HTML5-Tag-not-working-in-Internet-Explorer-91011
 */
main {
  display: block; }

/*
* Apply no display to elements with the hidden attribute.
* IE 9 and 10 support.
*/
*[hidden] {
  display: none !important; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
html, body {
  font-family: "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px; }

h1, h2, h3, h4, h5, h6, p {
  margin: 0;
  padding: 0; }

/**
  * Styles for HTML elements
  */
h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 56px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  opacity: 0.54;
  font-size: 0.6em; }

h1 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 56px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  margin-top: 24px;
  margin-bottom: 24px; }

h2 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 45px;
  font-weight: 400;
  line-height: 48px;
  margin-top: 24px;
  margin-bottom: 24px; }

h3 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 34px;
  font-weight: 400;
  line-height: 40px;
  margin-top: 24px;
  margin-bottom: 24px; }

h4 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 32px;
  -moz-osx-font-smoothing: grayscale;
  margin-top: 24px;
  margin-bottom: 16px; }

h5 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  margin-top: 24px;
  margin-bottom: 16px; }

h6 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.04em;
  margin-top: 24px;
  margin-bottom: 16px; }

p {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  margin-bottom: 16px; }

a {
  color: rgb(255,64,129);
  font-weight: 500; }

blockquote {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  position: relative;
  font-size: 24px;
  font-weight: 300;
  font-style: italic;
  line-height: 1.35;
  letter-spacing: 0.08em; }
  blockquote:before {
    position: absolute;
    left: -0.5em;
    content: '“'; }
  blockquote:after {
    content: '”';
    margin-left: -0.05em; }

mark {
  background-color: #f4ff81; }

dt {
  font-weight: 700; }

address {
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  font-style: normal; }

ul, ol {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0; }

/**
 * Class Name Styles
 */
.mdl-typography--display-4 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 112px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.04em; }

.mdl-typography--display-4-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 112px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.04em;
  opacity: 0.54; }

.mdl-typography--display-3 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 56px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em; }

.mdl-typography--display-3-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 56px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  opacity: 0.54; }

.mdl-typography--display-2 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 45px;
  font-weight: 400;
  line-height: 48px; }

.mdl-typography--display-2-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 45px;
  font-weight: 400;
  line-height: 48px;
  opacity: 0.54; }

.mdl-typography--display-1 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 34px;
  font-weight: 400;
  line-height: 40px; }

.mdl-typography--display-1-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 34px;
  font-weight: 400;
  line-height: 40px;
  opacity: 0.54; }

.mdl-typography--headline {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 32px;
  -moz-osx-font-smoothing: grayscale; }

.mdl-typography--headline-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 32px;
  -moz-osx-font-smoothing: grayscale;
  opacity: 0.87; }

.mdl-typography--title {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em; }

.mdl-typography--title-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  opacity: 0.87; }

.mdl-typography--subhead {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.04em; }

.mdl-typography--subhead-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.04em;
  opacity: 0.87; }

.mdl-typography--body-2 {
  font-size: 14px;
  font-weight: bold;
  line-height: 24px;
  letter-spacing: 0; }

.mdl-typography--body-2-color-contrast {
  font-size: 14px;
  font-weight: bold;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--body-1 {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0; }

.mdl-typography--body-1-color-contrast {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--body-2-force-preferred-font {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: 0; }

.mdl-typography--body-2-force-preferred-font-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--body-1-force-preferred-font {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0; }

.mdl-typography--body-1-force-preferred-font-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--caption {
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0; }

.mdl-typography--caption-force-preferred-font {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0; }

.mdl-typography--caption-color-contrast {
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  opacity: 0.54; }

.mdl-typography--caption-force-preferred-font-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  opacity: 0.54; }

.mdl-typography--menu {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0; }

.mdl-typography--menu-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--button {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: 0; }

.mdl-typography--button-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--text-left {
  text-align: left; }

.mdl-typography--text-right {
  text-align: right; }

.mdl-typography--text-center {
  text-align: center; }

.mdl-typography--text-justify {
  text-align: justify; }

.mdl-typography--text-nowrap {
  white-space: nowrap; }

.mdl-typography--text-lowercase {
  text-transform: lowercase; }

.mdl-typography--text-uppercase {
  text-transform: uppercase; }

.mdl-typography--text-capitalize {
  text-transform: capitalize; }

.mdl-typography--font-thin {
  font-weight: 200 !important; }

.mdl-typography--font-light {
  font-weight: 300 !important; }

.mdl-typography--font-regular {
  font-weight: 400 !important; }

.mdl-typography--font-medium {
  font-weight: 500 !important; }

.mdl-typography--font-bold {
  font-weight: 700 !important; }

.mdl-typography--font-black {
  font-weight: 900 !important; }

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  word-wrap: normal;
  font-feature-settings: 'liga';
  -webkit-font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-color-text--red {
  color: rgb(244,67,54) !important; }

.mdl-color--red {
  background-color: rgb(244,67,54) !important; }

.mdl-color-text--red-50 {
  color: rgb(255,235,238) !important; }

.mdl-color--red-50 {
  background-color: rgb(255,235,238) !important; }

.mdl-color-text--red-100 {
  color: rgb(255,205,210) !important; }

.mdl-color--red-100 {
  background-color: rgb(255,205,210) !important; }

.mdl-color-text--red-200 {
  color: rgb(239,154,154) !important; }

.mdl-color--red-200 {
  background-color: rgb(239,154,154) !important; }

.mdl-color-text--red-300 {
  color: rgb(229,115,115) !important; }

.mdl-color--red-300 {
  background-color: rgb(229,115,115) !important; }

.mdl-color-text--red-400 {
  color: rgb(239,83,80) !important; }

.mdl-color--red-400 {
  background-color: rgb(239,83,80) !important; }

.mdl-color-text--red-500 {
  color: rgb(244,67,54) !important; }

.mdl-color--red-500 {
  background-color: rgb(244,67,54) !important; }

.mdl-color-text--red-600 {
  color: rgb(229,57,53) !important; }

.mdl-color--red-600 {
  background-color: rgb(229,57,53) !important; }

.mdl-color-text--red-700 {
  color: rgb(211,47,47) !important; }

.mdl-color--red-700 {
  background-color: rgb(211,47,47) !important; }

.mdl-color-text--red-800 {
  color: rgb(198,40,40) !important; }

.mdl-color--red-800 {
  background-color: rgb(198,40,40) !important; }

.mdl-color-text--red-900 {
  color: rgb(183,28,28) !important; }

.mdl-color--red-900 {
  background-color: rgb(183,28,28) !important; }

.mdl-color-text--red-A100 {
  color: rgb(255,138,128) !important; }

.mdl-color--red-A100 {
  background-color: rgb(255,138,128) !important; }

.mdl-color-text--red-A200 {
  color: rgb(255,82,82) !important; }

.mdl-color--red-A200 {
  background-color: rgb(255,82,82) !important; }

.mdl-color-text--red-A400 {
  color: rgb(255,23,68) !important; }

.mdl-color--red-A400 {
  background-color: rgb(255,23,68) !important; }

.mdl-color-text--red-A700 {
  color: rgb(213,0,0) !important; }

.mdl-color--red-A700 {
  background-color: rgb(213,0,0) !important; }

.mdl-color-text--pink {
  color: rgb(233,30,99) !important; }

.mdl-color--pink {
  background-color: rgb(233,30,99) !important; }

.mdl-color-text--pink-50 {
  color: rgb(252,228,236) !important; }

.mdl-color--pink-50 {
  background-color: rgb(252,228,236) !important; }

.mdl-color-text--pink-100 {
  color: rgb(248,187,208) !important; }

.mdl-color--pink-100 {
  background-color: rgb(248,187,208) !important; }

.mdl-color-text--pink-200 {
  color: rgb(244,143,177) !important; }

.mdl-color--pink-200 {
  background-color: rgb(244,143,177) !important; }

.mdl-color-text--pink-300 {
  color: rgb(240,98,146) !important; }

.mdl-color--pink-300 {
  background-color: rgb(240,98,146) !important; }

.mdl-color-text--pink-400 {
  color: rgb(236,64,122) !important; }

.mdl-color--pink-400 {
  background-color: rgb(236,64,122) !important; }

.mdl-color-text--pink-500 {
  color: rgb(233,30,99) !important; }

.mdl-color--pink-500 {
  background-color: rgb(233,30,99) !important; }

.mdl-color-text--pink-600 {
  color: rgb(216,27,96) !important; }

.mdl-color--pink-600 {
  background-color: rgb(216,27,96) !important; }

.mdl-color-text--pink-700 {
  color: rgb(194,24,91) !important; }

.mdl-color--pink-700 {
  background-color: rgb(194,24,91) !important; }

.mdl-color-text--pink-800 {
  color: rgb(173,20,87) !important; }

.mdl-color--pink-800 {
  background-color: rgb(173,20,87) !important; }

.mdl-color-text--pink-900 {
  color: rgb(136,14,79) !important; }

.mdl-color--pink-900 {
  background-color: rgb(136,14,79) !important; }

.mdl-color-text--pink-A100 {
  color: rgb(255,128,171) !important; }

.mdl-color--pink-A100 {
  background-color: rgb(255,128,171) !important; }

.mdl-color-text--pink-A200 {
  color: rgb(255,64,129) !important; }

.mdl-color--pink-A200 {
  background-color: rgb(255,64,129) !important; }

.mdl-color-text--pink-A400 {
  color: rgb(245,0,87) !important; }

.mdl-color--pink-A400 {
  background-color: rgb(245,0,87) !important; }

.mdl-color-text--pink-A700 {
  color: rgb(197,17,98) !important; }

.mdl-color--pink-A700 {
  background-color: rgb(197,17,98) !important; }

.mdl-color-text--purple {
  color: rgb(156,39,176) !important; }

.mdl-color--purple {
  background-color: rgb(156,39,176) !important; }

.mdl-color-text--purple-50 {
  color: rgb(243,229,245) !important; }

.mdl-color--purple-50 {
  background-color: rgb(243,229,245) !important; }

.mdl-color-text--purple-100 {
  color: rgb(225,190,231) !important; }

.mdl-color--purple-100 {
  background-color: rgb(225,190,231) !important; }

.mdl-color-text--purple-200 {
  color: rgb(206,147,216) !important; }

.mdl-color--purple-200 {
  background-color: rgb(206,147,216) !important; }

.mdl-color-text--purple-300 {
  color: rgb(186,104,200) !important; }

.mdl-color--purple-300 {
  background-color: rgb(186,104,200) !important; }

.mdl-color-text--purple-400 {
  color: rgb(171,71,188) !important; }

.mdl-color--purple-400 {
  background-color: rgb(171,71,188) !important; }

.mdl-color-text--purple-500 {
  color: rgb(156,39,176) !important; }

.mdl-color--purple-500 {
  background-color: rgb(156,39,176) !important; }

.mdl-color-text--purple-600 {
  color: rgb(142,36,170) !important; }

.mdl-color--purple-600 {
  background-color: rgb(142,36,170) !important; }

.mdl-color-text--purple-700 {
  color: rgb(123,31,162) !important; }

.mdl-color--purple-700 {
  background-color: rgb(123,31,162) !important; }

.mdl-color-text--purple-800 {
  color: rgb(106,27,154) !important; }

.mdl-color--purple-800 {
  background-color: rgb(106,27,154) !important; }

.mdl-color-text--purple-900 {
  color: rgb(74,20,140) !important; }

.mdl-color--purple-900 {
  background-color: rgb(74,20,140) !important; }

.mdl-color-text--purple-A100 {
  color: rgb(234,128,252) !important; }

.mdl-color--purple-A100 {
  background-color: rgb(234,128,252) !important; }

.mdl-color-text--purple-A200 {
  color: rgb(224,64,251) !important; }

.mdl-color--purple-A200 {
  background-color: rgb(224,64,251) !important; }

.mdl-color-text--purple-A400 {
  color: rgb(213,0,249) !important; }

.mdl-color--purple-A400 {
  background-color: rgb(213,0,249) !important; }

.mdl-color-text--purple-A700 {
  color: rgb(170,0,255) !important; }

.mdl-color--purple-A700 {
  background-color: rgb(170,0,255) !important; }

.mdl-color-text--deep-purple {
  color: rgb(103,58,183) !important; }

.mdl-color--deep-purple {
  background-color: rgb(103,58,183) !important; }

.mdl-color-text--deep-purple-50 {
  color: rgb(237,231,246) !important; }

.mdl-color--deep-purple-50 {
  background-color: rgb(237,231,246) !important; }

.mdl-color-text--deep-purple-100 {
  color: rgb(209,196,233) !important; }

.mdl-color--deep-purple-100 {
  background-color: rgb(209,196,233) !important; }

.mdl-color-text--deep-purple-200 {
  color: rgb(179,157,219) !important; }

.mdl-color--deep-purple-200 {
  background-color: rgb(179,157,219) !important; }

.mdl-color-text--deep-purple-300 {
  color: rgb(149,117,205) !important; }

.mdl-color--deep-purple-300 {
  background-color: rgb(149,117,205) !important; }

.mdl-color-text--deep-purple-400 {
  color: rgb(126,87,194) !important; }

.mdl-color--deep-purple-400 {
  background-color: rgb(126,87,194) !important; }

.mdl-color-text--deep-purple-500 {
  color: rgb(103,58,183) !important; }

.mdl-color--deep-purple-500 {
  background-color: rgb(103,58,183) !important; }

.mdl-color-text--deep-purple-600 {
  color: rgb(94,53,177) !important; }

.mdl-color--deep-purple-600 {
  background-color: rgb(94,53,177) !important; }

.mdl-color-text--deep-purple-700 {
  color: rgb(81,45,168) !important; }

.mdl-color--deep-purple-700 {
  background-color: rgb(81,45,168) !important; }

.mdl-color-text--deep-purple-800 {
  color: rgb(69,39,160) !important; }

.mdl-color--deep-purple-800 {
  background-color: rgb(69,39,160) !important; }

.mdl-color-text--deep-purple-900 {
  color: rgb(49,27,146) !important; }

.mdl-color--deep-purple-900 {
  background-color: rgb(49,27,146) !important; }

.mdl-color-text--deep-purple-A100 {
  color: rgb(179,136,255) !important; }

.mdl-color--deep-purple-A100 {
  background-color: rgb(179,136,255) !important; }

.mdl-color-text--deep-purple-A200 {
  color: rgb(124,77,255) !important; }

.mdl-color--deep-purple-A200 {
  background-color: rgb(124,77,255) !important; }

.mdl-color-text--deep-purple-A400 {
  color: rgb(101,31,255) !important; }

.mdl-color--deep-purple-A400 {
  background-color: rgb(101,31,255) !important; }

.mdl-color-text--deep-purple-A700 {
  color: rgb(98,0,234) !important; }

.mdl-color--deep-purple-A700 {
  background-color: rgb(98,0,234) !important; }

.mdl-color-text--indigo {
  color: rgb(63,81,181) !important; }

.mdl-color--indigo {
  background-color: rgb(63,81,181) !important; }

.mdl-color-text--indigo-50 {
  color: rgb(232,234,246) !important; }

.mdl-color--indigo-50 {
  background-color: rgb(232,234,246) !important; }

.mdl-color-text--indigo-100 {
  color: rgb(197,202,233) !important; }

.mdl-color--indigo-100 {
  background-color: rgb(197,202,233) !important; }

.mdl-color-text--indigo-200 {
  color: rgb(159,168,218) !important; }

.mdl-color--indigo-200 {
  background-color: rgb(159,168,218) !important; }

.mdl-color-text--indigo-300 {
  color: rgb(121,134,203) !important; }

.mdl-color--indigo-300 {
  background-color: rgb(121,134,203) !important; }

.mdl-color-text--indigo-400 {
  color: rgb(92,107,192) !important; }

.mdl-color--indigo-400 {
  background-color: rgb(92,107,192) !important; }

.mdl-color-text--indigo-500 {
  color: rgb(63,81,181) !important; }

.mdl-color--indigo-500 {
  background-color: rgb(63,81,181) !important; }

.mdl-color-text--indigo-600 {
  color: rgb(57,73,171) !important; }

.mdl-color--indigo-600 {
  background-color: rgb(57,73,171) !important; }

.mdl-color-text--indigo-700 {
  color: rgb(48,63,159) !important; }

.mdl-color--indigo-700 {
  background-color: rgb(48,63,159) !important; }

.mdl-color-text--indigo-800 {
  color: rgb(40,53,147) !important; }

.mdl-color--indigo-800 {
  background-color: rgb(40,53,147) !important; }

.mdl-color-text--indigo-900 {
  color: rgb(26,35,126) !important; }

.mdl-color--indigo-900 {
  background-color: rgb(26,35,126) !important; }

.mdl-color-text--indigo-A100 {
  color: rgb(140,158,255) !important; }

.mdl-color--indigo-A100 {
  background-color: rgb(140,158,255) !important; }

.mdl-color-text--indigo-A200 {
  color: rgb(83,109,254) !important; }

.mdl-color--indigo-A200 {
  background-color: rgb(83,109,254) !important; }

.mdl-color-text--indigo-A400 {
  color: rgb(61,90,254) !important; }

.mdl-color--indigo-A400 {
  background-color: rgb(61,90,254) !important; }

.mdl-color-text--indigo-A700 {
  color: rgb(48,79,254) !important; }

.mdl-color--indigo-A700 {
  background-color: rgb(48,79,254) !important; }

.mdl-color-text--blue {
  color: rgb(33,150,243) !important; }

.mdl-color--blue {
  background-color: rgb(33,150,243) !important; }

.mdl-color-text--blue-50 {
  color: rgb(227,242,253) !important; }

.mdl-color--blue-50 {
  background-color: rgb(227,242,253) !important; }

.mdl-color-text--blue-100 {
  color: rgb(187,222,251) !important; }

.mdl-color--blue-100 {
  background-color: rgb(187,222,251) !important; }

.mdl-color-text--blue-200 {
  color: rgb(144,202,249) !important; }

.mdl-color--blue-200 {
  background-color: rgb(144,202,249) !important; }

.mdl-color-text--blue-300 {
  color: rgb(100,181,246) !important; }

.mdl-color--blue-300 {
  background-color: rgb(100,181,246) !important; }

.mdl-color-text--blue-400 {
  color: rgb(66,165,245) !important; }

.mdl-color--blue-400 {
  background-color: rgb(66,165,245) !important; }

.mdl-color-text--blue-500 {
  color: rgb(33,150,243) !important; }

.mdl-color--blue-500 {
  background-color: rgb(33,150,243) !important; }

.mdl-color-text--blue-600 {
  color: rgb(30,136,229) !important; }

.mdl-color--blue-600 {
  background-color: rgb(30,136,229) !important; }

.mdl-color-text--blue-700 {
  color: rgb(25,118,210) !important; }

.mdl-color--blue-700 {
  background-color: rgb(25,118,210) !important; }

.mdl-color-text--blue-800 {
  color: rgb(21,101,192) !important; }

.mdl-color--blue-800 {
  background-color: rgb(21,101,192) !important; }

.mdl-color-text--blue-900 {
  color: rgb(13,71,161) !important; }

.mdl-color--blue-900 {
  background-color: rgb(13,71,161) !important; }

.mdl-color-text--blue-A100 {
  color: rgb(130,177,255) !important; }

.mdl-color--blue-A100 {
  background-color: rgb(130,177,255) !important; }

.mdl-color-text--blue-A200 {
  color: rgb(68,138,255) !important; }

.mdl-color--blue-A200 {
  background-color: rgb(68,138,255) !important; }

.mdl-color-text--blue-A400 {
  color: rgb(41,121,255) !important; }

.mdl-color--blue-A400 {
  background-color: rgb(41,121,255) !important; }

.mdl-color-text--blue-A700 {
  color: rgb(41,98,255) !important; }

.mdl-color--blue-A700 {
  background-color: rgb(41,98,255) !important; }

.mdl-color-text--light-blue {
  color: rgb(3,169,244) !important; }

.mdl-color--light-blue {
  background-color: rgb(3,169,244) !important; }

.mdl-color-text--light-blue-50 {
  color: rgb(225,245,254) !important; }

.mdl-color--light-blue-50 {
  background-color: rgb(225,245,254) !important; }

.mdl-color-text--light-blue-100 {
  color: rgb(179,229,252) !important; }

.mdl-color--light-blue-100 {
  background-color: rgb(179,229,252) !important; }

.mdl-color-text--light-blue-200 {
  color: rgb(129,212,250) !important; }

.mdl-color--light-blue-200 {
  background-color: rgb(129,212,250) !important; }

.mdl-color-text--light-blue-300 {
  color: rgb(79,195,247) !important; }

.mdl-color--light-blue-300 {
  background-color: rgb(79,195,247) !important; }

.mdl-color-text--light-blue-400 {
  color: rgb(41,182,246) !important; }

.mdl-color--light-blue-400 {
  background-color: rgb(41,182,246) !important; }

.mdl-color-text--light-blue-500 {
  color: rgb(3,169,244) !important; }

.mdl-color--light-blue-500 {
  background-color: rgb(3,169,244) !important; }

.mdl-color-text--light-blue-600 {
  color: rgb(3,155,229) !important; }

.mdl-color--light-blue-600 {
  background-color: rgb(3,155,229) !important; }

.mdl-color-text--light-blue-700 {
  color: rgb(2,136,209) !important; }

.mdl-color--light-blue-700 {
  background-color: rgb(2,136,209) !important; }

.mdl-color-text--light-blue-800 {
  color: rgb(2,119,189) !important; }

.mdl-color--light-blue-800 {
  background-color: rgb(2,119,189) !important; }

.mdl-color-text--light-blue-900 {
  color: rgb(1,87,155) !important; }

.mdl-color--light-blue-900 {
  background-color: rgb(1,87,155) !important; }

.mdl-color-text--light-blue-A100 {
  color: rgb(128,216,255) !important; }

.mdl-color--light-blue-A100 {
  background-color: rgb(128,216,255) !important; }

.mdl-color-text--light-blue-A200 {
  color: rgb(64,196,255) !important; }

.mdl-color--light-blue-A200 {
  background-color: rgb(64,196,255) !important; }

.mdl-color-text--light-blue-A400 {
  color: rgb(0,176,255) !important; }

.mdl-color--light-blue-A400 {
  background-color: rgb(0,176,255) !important; }

.mdl-color-text--light-blue-A700 {
  color: rgb(0,145,234) !important; }

.mdl-color--light-blue-A700 {
  background-color: rgb(0,145,234) !important; }

.mdl-color-text--cyan {
  color: rgb(0,188,212) !important; }

.mdl-color--cyan {
  background-color: rgb(0,188,212) !important; }

.mdl-color-text--cyan-50 {
  color: rgb(224,247,250) !important; }

.mdl-color--cyan-50 {
  background-color: rgb(224,247,250) !important; }

.mdl-color-text--cyan-100 {
  color: rgb(178,235,242) !important; }

.mdl-color--cyan-100 {
  background-color: rgb(178,235,242) !important; }

.mdl-color-text--cyan-200 {
  color: rgb(128,222,234) !important; }

.mdl-color--cyan-200 {
  background-color: rgb(128,222,234) !important; }

.mdl-color-text--cyan-300 {
  color: rgb(77,208,225) !important; }

.mdl-color--cyan-300 {
  background-color: rgb(77,208,225) !important; }

.mdl-color-text--cyan-400 {
  color: rgb(38,198,218) !important; }

.mdl-color--cyan-400 {
  background-color: rgb(38,198,218) !important; }

.mdl-color-text--cyan-500 {
  color: rgb(0,188,212) !important; }

.mdl-color--cyan-500 {
  background-color: rgb(0,188,212) !important; }

.mdl-color-text--cyan-600 {
  color: rgb(0,172,193) !important; }

.mdl-color--cyan-600 {
  background-color: rgb(0,172,193) !important; }

.mdl-color-text--cyan-700 {
  color: rgb(0,151,167) !important; }

.mdl-color--cyan-700 {
  background-color: rgb(0,151,167) !important; }

.mdl-color-text--cyan-800 {
  color: rgb(0,131,143) !important; }

.mdl-color--cyan-800 {
  background-color: rgb(0,131,143) !important; }

.mdl-color-text--cyan-900 {
  color: rgb(0,96,100) !important; }

.mdl-color--cyan-900 {
  background-color: rgb(0,96,100) !important; }

.mdl-color-text--cyan-A100 {
  color: rgb(132,255,255) !important; }

.mdl-color--cyan-A100 {
  background-color: rgb(132,255,255) !important; }

.mdl-color-text--cyan-A200 {
  color: rgb(24,255,255) !important; }

.mdl-color--cyan-A200 {
  background-color: rgb(24,255,255) !important; }

.mdl-color-text--cyan-A400 {
  color: rgb(0,229,255) !important; }

.mdl-color--cyan-A400 {
  background-color: rgb(0,229,255) !important; }

.mdl-color-text--cyan-A700 {
  color: rgb(0,184,212) !important; }

.mdl-color--cyan-A700 {
  background-color: rgb(0,184,212) !important; }

.mdl-color-text--teal {
  color: rgb(0,150,136) !important; }

.mdl-color--teal {
  background-color: rgb(0,150,136) !important; }

.mdl-color-text--teal-50 {
  color: rgb(224,242,241) !important; }

.mdl-color--teal-50 {
  background-color: rgb(224,242,241) !important; }

.mdl-color-text--teal-100 {
  color: rgb(178,223,219) !important; }

.mdl-color--teal-100 {
  background-color: rgb(178,223,219) !important; }

.mdl-color-text--teal-200 {
  color: rgb(128,203,196) !important; }

.mdl-color--teal-200 {
  background-color: rgb(128,203,196) !important; }

.mdl-color-text--teal-300 {
  color: rgb(77,182,172) !important; }

.mdl-color--teal-300 {
  background-color: rgb(77,182,172) !important; }

.mdl-color-text--teal-400 {
  color: rgb(38,166,154) !important; }

.mdl-color--teal-400 {
  background-color: rgb(38,166,154) !important; }

.mdl-color-text--teal-500 {
  color: rgb(0,150,136) !important; }

.mdl-color--teal-500 {
  background-color: rgb(0,150,136) !important; }

.mdl-color-text--teal-600 {
  color: rgb(0,137,123) !important; }

.mdl-color--teal-600 {
  background-color: rgb(0,137,123) !important; }

.mdl-color-text--teal-700 {
  color: rgb(0,121,107) !important; }

.mdl-color--teal-700 {
  background-color: rgb(0,121,107) !important; }

.mdl-color-text--teal-800 {
  color: rgb(0,105,92) !important; }

.mdl-color--teal-800 {
  background-color: rgb(0,105,92) !important; }

.mdl-color-text--teal-900 {
  color: rgb(0,77,64) !important; }

.mdl-color--teal-900 {
  background-color: rgb(0,77,64) !important; }

.mdl-color-text--teal-A100 {
  color: rgb(167,255,235) !important; }

.mdl-color--teal-A100 {
  background-color: rgb(167,255,235) !important; }

.mdl-color-text--teal-A200 {
  color: rgb(100,255,218) !important; }

.mdl-color--teal-A200 {
  background-color: rgb(100,255,218) !important; }

.mdl-color-text--teal-A400 {
  color: rgb(29,233,182) !important; }

.mdl-color--teal-A400 {
  background-color: rgb(29,233,182) !important; }

.mdl-color-text--teal-A700 {
  color: rgb(0,191,165) !important; }

.mdl-color--teal-A700 {
  background-color: rgb(0,191,165) !important; }

.mdl-color-text--green {
  color: rgb(76,175,80) !important; }

.mdl-color--green {
  background-color: rgb(76,175,80) !important; }

.mdl-color-text--green-50 {
  color: rgb(232,245,233) !important; }

.mdl-color--green-50 {
  background-color: rgb(232,245,233) !important; }

.mdl-color-text--green-100 {
  color: rgb(200,230,201) !important; }

.mdl-color--green-100 {
  background-color: rgb(200,230,201) !important; }

.mdl-color-text--green-200 {
  color: rgb(165,214,167) !important; }

.mdl-color--green-200 {
  background-color: rgb(165,214,167) !important; }

.mdl-color-text--green-300 {
  color: rgb(129,199,132) !important; }

.mdl-color--green-300 {
  background-color: rgb(129,199,132) !important; }

.mdl-color-text--green-400 {
  color: rgb(102,187,106) !important; }

.mdl-color--green-400 {
  background-color: rgb(102,187,106) !important; }

.mdl-color-text--green-500 {
  color: rgb(76,175,80) !important; }

.mdl-color--green-500 {
  background-color: rgb(76,175,80) !important; }

.mdl-color-text--green-600 {
  color: rgb(67,160,71) !important; }

.mdl-color--green-600 {
  background-color: rgb(67,160,71) !important; }

.mdl-color-text--green-700 {
  color: rgb(56,142,60) !important; }

.mdl-color--green-700 {
  background-color: rgb(56,142,60) !important; }

.mdl-color-text--green-800 {
  color: rgb(46,125,50) !important; }

.mdl-color--green-800 {
  background-color: rgb(46,125,50) !important; }

.mdl-color-text--green-900 {
  color: rgb(27,94,32) !important; }

.mdl-color--green-900 {
  background-color: rgb(27,94,32) !important; }

.mdl-color-text--green-A100 {
  color: rgb(185,246,202) !important; }

.mdl-color--green-A100 {
  background-color: rgb(185,246,202) !important; }

.mdl-color-text--green-A200 {
  color: rgb(105,240,174) !important; }

.mdl-color--green-A200 {
  background-color: rgb(105,240,174) !important; }

.mdl-color-text--green-A400 {
  color: rgb(0,230,118) !important; }

.mdl-color--green-A400 {
  background-color: rgb(0,230,118) !important; }

.mdl-color-text--green-A700 {
  color: rgb(0,200,83) !important; }

.mdl-color--green-A700 {
  background-color: rgb(0,200,83) !important; }

.mdl-color-text--light-green {
  color: rgb(139,195,74) !important; }

.mdl-color--light-green {
  background-color: rgb(139,195,74) !important; }

.mdl-color-text--light-green-50 {
  color: rgb(241,248,233) !important; }

.mdl-color--light-green-50 {
  background-color: rgb(241,248,233) !important; }

.mdl-color-text--light-green-100 {
  color: rgb(220,237,200) !important; }

.mdl-color--light-green-100 {
  background-color: rgb(220,237,200) !important; }

.mdl-color-text--light-green-200 {
  color: rgb(197,225,165) !important; }

.mdl-color--light-green-200 {
  background-color: rgb(197,225,165) !important; }

.mdl-color-text--light-green-300 {
  color: rgb(174,213,129) !important; }

.mdl-color--light-green-300 {
  background-color: rgb(174,213,129) !important; }

.mdl-color-text--light-green-400 {
  color: rgb(156,204,101) !important; }

.mdl-color--light-green-400 {
  background-color: rgb(156,204,101) !important; }

.mdl-color-text--light-green-500 {
  color: rgb(139,195,74) !important; }

.mdl-color--light-green-500 {
  background-color: rgb(139,195,74) !important; }

.mdl-color-text--light-green-600 {
  color: rgb(124,179,66) !important; }

.mdl-color--light-green-600 {
  background-color: rgb(124,179,66) !important; }

.mdl-color-text--light-green-700 {
  color: rgb(104,159,56) !important; }

.mdl-color--light-green-700 {
  background-color: rgb(104,159,56) !important; }

.mdl-color-text--light-green-800 {
  color: rgb(85,139,47) !important; }

.mdl-color--light-green-800 {
  background-color: rgb(85,139,47) !important; }

.mdl-color-text--light-green-900 {
  color: rgb(51,105,30) !important; }

.mdl-color--light-green-900 {
  background-color: rgb(51,105,30) !important; }

.mdl-color-text--light-green-A100 {
  color: rgb(204,255,144) !important; }

.mdl-color--light-green-A100 {
  background-color: rgb(204,255,144) !important; }

.mdl-color-text--light-green-A200 {
  color: rgb(178,255,89) !important; }

.mdl-color--light-green-A200 {
  background-color: rgb(178,255,89) !important; }

.mdl-color-text--light-green-A400 {
  color: rgb(118,255,3) !important; }

.mdl-color--light-green-A400 {
  background-color: rgb(118,255,3) !important; }

.mdl-color-text--light-green-A700 {
  color: rgb(100,221,23) !important; }

.mdl-color--light-green-A700 {
  background-color: rgb(100,221,23) !important; }

.mdl-color-text--lime {
  color: rgb(205,220,57) !important; }

.mdl-color--lime {
  background-color: rgb(205,220,57) !important; }

.mdl-color-text--lime-50 {
  color: rgb(249,251,231) !important; }

.mdl-color--lime-50 {
  background-color: rgb(249,251,231) !important; }

.mdl-color-text--lime-100 {
  color: rgb(240,244,195) !important; }

.mdl-color--lime-100 {
  background-color: rgb(240,244,195) !important; }

.mdl-color-text--lime-200 {
  color: rgb(230,238,156) !important; }

.mdl-color--lime-200 {
  background-color: rgb(230,238,156) !important; }

.mdl-color-text--lime-300 {
  color: rgb(220,231,117) !important; }

.mdl-color--lime-300 {
  background-color: rgb(220,231,117) !important; }

.mdl-color-text--lime-400 {
  color: rgb(212,225,87) !important; }

.mdl-color--lime-400 {
  background-color: rgb(212,225,87) !important; }

.mdl-color-text--lime-500 {
  color: rgb(205,220,57) !important; }

.mdl-color--lime-500 {
  background-color: rgb(205,220,57) !important; }

.mdl-color-text--lime-600 {
  color: rgb(192,202,51) !important; }

.mdl-color--lime-600 {
  background-color: rgb(192,202,51) !important; }

.mdl-color-text--lime-700 {
  color: rgb(175,180,43) !important; }

.mdl-color--lime-700 {
  background-color: rgb(175,180,43) !important; }

.mdl-color-text--lime-800 {
  color: rgb(158,157,36) !important; }

.mdl-color--lime-800 {
  background-color: rgb(158,157,36) !important; }

.mdl-color-text--lime-900 {
  color: rgb(130,119,23) !important; }

.mdl-color--lime-900 {
  background-color: rgb(130,119,23) !important; }

.mdl-color-text--lime-A100 {
  color: rgb(244,255,129) !important; }

.mdl-color--lime-A100 {
  background-color: rgb(244,255,129) !important; }

.mdl-color-text--lime-A200 {
  color: rgb(238,255,65) !important; }

.mdl-color--lime-A200 {
  background-color: rgb(238,255,65) !important; }

.mdl-color-text--lime-A400 {
  color: rgb(198,255,0) !important; }

.mdl-color--lime-A400 {
  background-color: rgb(198,255,0) !important; }

.mdl-color-text--lime-A700 {
  color: rgb(174,234,0) !important; }

.mdl-color--lime-A700 {
  background-color: rgb(174,234,0) !important; }

.mdl-color-text--yellow {
  color: rgb(255,235,59) !important; }

.mdl-color--yellow {
  background-color: rgb(255,235,59) !important; }

.mdl-color-text--yellow-50 {
  color: rgb(255,253,231) !important; }

.mdl-color--yellow-50 {
  background-color: rgb(255,253,231) !important; }

.mdl-color-text--yellow-100 {
  color: rgb(255,249,196) !important; }

.mdl-color--yellow-100 {
  background-color: rgb(255,249,196) !important; }

.mdl-color-text--yellow-200 {
  color: rgb(255,245,157) !important; }

.mdl-color--yellow-200 {
  background-color: rgb(255,245,157) !important; }

.mdl-color-text--yellow-300 {
  color: rgb(255,241,118) !important; }

.mdl-color--yellow-300 {
  background-color: rgb(255,241,118) !important; }

.mdl-color-text--yellow-400 {
  color: rgb(255,238,88) !important; }

.mdl-color--yellow-400 {
  background-color: rgb(255,238,88) !important; }

.mdl-color-text--yellow-500 {
  color: rgb(255,235,59) !important; }

.mdl-color--yellow-500 {
  background-color: rgb(255,235,59) !important; }

.mdl-color-text--yellow-600 {
  color: rgb(253,216,53) !important; }

.mdl-color--yellow-600 {
  background-color: rgb(253,216,53) !important; }

.mdl-color-text--yellow-700 {
  color: rgb(251,192,45) !important; }

.mdl-color--yellow-700 {
  background-color: rgb(251,192,45) !important; }

.mdl-color-text--yellow-800 {
  color: rgb(249,168,37) !important; }

.mdl-color--yellow-800 {
  background-color: rgb(249,168,37) !important; }

.mdl-color-text--yellow-900 {
  color: rgb(245,127,23) !important; }

.mdl-color--yellow-900 {
  background-color: rgb(245,127,23) !important; }

.mdl-color-text--yellow-A100 {
  color: rgb(255,255,141) !important; }

.mdl-color--yellow-A100 {
  background-color: rgb(255,255,141) !important; }

.mdl-color-text--yellow-A200 {
  color: rgb(255,255,0) !important; }

.mdl-color--yellow-A200 {
  background-color: rgb(255,255,0) !important; }

.mdl-color-text--yellow-A400 {
  color: rgb(255,234,0) !important; }

.mdl-color--yellow-A400 {
  background-color: rgb(255,234,0) !important; }

.mdl-color-text--yellow-A700 {
  color: rgb(255,214,0) !important; }

.mdl-color--yellow-A700 {
  background-color: rgb(255,214,0) !important; }

.mdl-color-text--amber {
  color: rgb(255,193,7) !important; }

.mdl-color--amber {
  background-color: rgb(255,193,7) !important; }

.mdl-color-text--amber-50 {
  color: rgb(255,248,225) !important; }

.mdl-color--amber-50 {
  background-color: rgb(255,248,225) !important; }

.mdl-color-text--amber-100 {
  color: rgb(255,236,179) !important; }

.mdl-color--amber-100 {
  background-color: rgb(255,236,179) !important; }

.mdl-color-text--amber-200 {
  color: rgb(255,224,130) !important; }

.mdl-color--amber-200 {
  background-color: rgb(255,224,130) !important; }

.mdl-color-text--amber-300 {
  color: rgb(255,213,79) !important; }

.mdl-color--amber-300 {
  background-color: rgb(255,213,79) !important; }

.mdl-color-text--amber-400 {
  color: rgb(255,202,40) !important; }

.mdl-color--amber-400 {
  background-color: rgb(255,202,40) !important; }

.mdl-color-text--amber-500 {
  color: rgb(255,193,7) !important; }

.mdl-color--amber-500 {
  background-color: rgb(255,193,7) !important; }

.mdl-color-text--amber-600 {
  color: rgb(255,179,0) !important; }

.mdl-color--amber-600 {
  background-color: rgb(255,179,0) !important; }

.mdl-color-text--amber-700 {
  color: rgb(255,160,0) !important; }

.mdl-color--amber-700 {
  background-color: rgb(255,160,0) !important; }

.mdl-color-text--amber-800 {
  color: rgb(255,143,0) !important; }

.mdl-color--amber-800 {
  background-color: rgb(255,143,0) !important; }

.mdl-color-text--amber-900 {
  color: rgb(255,111,0) !important; }

.mdl-color--amber-900 {
  background-color: rgb(255,111,0) !important; }

.mdl-color-text--amber-A100 {
  color: rgb(255,229,127) !important; }

.mdl-color--amber-A100 {
  background-color: rgb(255,229,127) !important; }

.mdl-color-text--amber-A200 {
  color: rgb(255,215,64) !important; }

.mdl-color--amber-A200 {
  background-color: rgb(255,215,64) !important; }

.mdl-color-text--amber-A400 {
  color: rgb(255,196,0) !important; }

.mdl-color--amber-A400 {
  background-color: rgb(255,196,0) !important; }

.mdl-color-text--amber-A700 {
  color: rgb(255,171,0) !important; }

.mdl-color--amber-A700 {
  background-color: rgb(255,171,0) !important; }

.mdl-color-text--orange {
  color: rgb(255,152,0) !important; }

.mdl-color--orange {
  background-color: rgb(255,152,0) !important; }

.mdl-color-text--orange-50 {
  color: rgb(255,243,224) !important; }

.mdl-color--orange-50 {
  background-color: rgb(255,243,224) !important; }

.mdl-color-text--orange-100 {
  color: rgb(255,224,178) !important; }

.mdl-color--orange-100 {
  background-color: rgb(255,224,178) !important; }

.mdl-color-text--orange-200 {
  color: rgb(255,204,128) !important; }

.mdl-color--orange-200 {
  background-color: rgb(255,204,128) !important; }

.mdl-color-text--orange-300 {
  color: rgb(255,183,77) !important; }

.mdl-color--orange-300 {
  background-color: rgb(255,183,77) !important; }

.mdl-color-text--orange-400 {
  color: rgb(255,167,38) !important; }

.mdl-color--orange-400 {
  background-color: rgb(255,167,38) !important; }

.mdl-color-text--orange-500 {
  color: rgb(255,152,0) !important; }

.mdl-color--orange-500 {
  background-color: rgb(255,152,0) !important; }

.mdl-color-text--orange-600 {
  color: rgb(251,140,0) !important; }

.mdl-color--orange-600 {
  background-color: rgb(251,140,0) !important; }

.mdl-color-text--orange-700 {
  color: rgb(245,124,0) !important; }

.mdl-color--orange-700 {
  background-color: rgb(245,124,0) !important; }

.mdl-color-text--orange-800 {
  color: rgb(239,108,0) !important; }

.mdl-color--orange-800 {
  background-color: rgb(239,108,0) !important; }

.mdl-color-text--orange-900 {
  color: rgb(230,81,0) !important; }

.mdl-color--orange-900 {
  background-color: rgb(230,81,0) !important; }

.mdl-color-text--orange-A100 {
  color: rgb(255,209,128) !important; }

.mdl-color--orange-A100 {
  background-color: rgb(255,209,128) !important; }

.mdl-color-text--orange-A200 {
  color: rgb(255,171,64) !important; }

.mdl-color--orange-A200 {
  background-color: rgb(255,171,64) !important; }

.mdl-color-text--orange-A400 {
  color: rgb(255,145,0) !important; }

.mdl-color--orange-A400 {
  background-color: rgb(255,145,0) !important; }

.mdl-color-text--orange-A700 {
  color: rgb(255,109,0) !important; }

.mdl-color--orange-A700 {
  background-color: rgb(255,109,0) !important; }

.mdl-color-text--deep-orange {
  color: rgb(255,87,34) !important; }

.mdl-color--deep-orange {
  background-color: rgb(255,87,34) !important; }

.mdl-color-text--deep-orange-50 {
  color: rgb(251,233,231) !important; }

.mdl-color--deep-orange-50 {
  background-color: rgb(251,233,231) !important; }

.mdl-color-text--deep-orange-100 {
  color: rgb(255,204,188) !important; }

.mdl-color--deep-orange-100 {
  background-color: rgb(255,204,188) !important; }

.mdl-color-text--deep-orange-200 {
  color: rgb(255,171,145) !important; }

.mdl-color--deep-orange-200 {
  background-color: rgb(255,171,145) !important; }

.mdl-color-text--deep-orange-300 {
  color: rgb(255,138,101) !important; }

.mdl-color--deep-orange-300 {
  background-color: rgb(255,138,101) !important; }

.mdl-color-text--deep-orange-400 {
  color: rgb(255,112,67) !important; }

.mdl-color--deep-orange-400 {
  background-color: rgb(255,112,67) !important; }

.mdl-color-text--deep-orange-500 {
  color: rgb(255,87,34) !important; }

.mdl-color--deep-orange-500 {
  background-color: rgb(255,87,34) !important; }

.mdl-color-text--deep-orange-600 {
  color: rgb(244,81,30) !important; }

.mdl-color--deep-orange-600 {
  background-color: rgb(244,81,30) !important; }

.mdl-color-text--deep-orange-700 {
  color: rgb(230,74,25) !important; }

.mdl-color--deep-orange-700 {
  background-color: rgb(230,74,25) !important; }

.mdl-color-text--deep-orange-800 {
  color: rgb(216,67,21) !important; }

.mdl-color--deep-orange-800 {
  background-color: rgb(216,67,21) !important; }

.mdl-color-text--deep-orange-900 {
  color: rgb(191,54,12) !important; }

.mdl-color--deep-orange-900 {
  background-color: rgb(191,54,12) !important; }

.mdl-color-text--deep-orange-A100 {
  color: rgb(255,158,128) !important; }

.mdl-color--deep-orange-A100 {
  background-color: rgb(255,158,128) !important; }

.mdl-color-text--deep-orange-A200 {
  color: rgb(255,110,64) !important; }

.mdl-color--deep-orange-A200 {
  background-color: rgb(255,110,64) !important; }

.mdl-color-text--deep-orange-A400 {
  color: rgb(255,61,0) !important; }

.mdl-color--deep-orange-A400 {
  background-color: rgb(255,61,0) !important; }

.mdl-color-text--deep-orange-A700 {
  color: rgb(221,44,0) !important; }

.mdl-color--deep-orange-A700 {
  background-color: rgb(221,44,0) !important; }

.mdl-color-text--brown {
  color: rgb(121,85,72) !important; }

.mdl-color--brown {
  background-color: rgb(121,85,72) !important; }

.mdl-color-text--brown-50 {
  color: rgb(239,235,233) !important; }

.mdl-color--brown-50 {
  background-color: rgb(239,235,233) !important; }

.mdl-color-text--brown-100 {
  color: rgb(215,204,200) !important; }

.mdl-color--brown-100 {
  background-color: rgb(215,204,200) !important; }

.mdl-color-text--brown-200 {
  color: rgb(188,170,164) !important; }

.mdl-color--brown-200 {
  background-color: rgb(188,170,164) !important; }

.mdl-color-text--brown-300 {
  color: rgb(161,136,127) !important; }

.mdl-color--brown-300 {
  background-color: rgb(161,136,127) !important; }

.mdl-color-text--brown-400 {
  color: rgb(141,110,99) !important; }

.mdl-color--brown-400 {
  background-color: rgb(141,110,99) !important; }

.mdl-color-text--brown-500 {
  color: rgb(121,85,72) !important; }

.mdl-color--brown-500 {
  background-color: rgb(121,85,72) !important; }

.mdl-color-text--brown-600 {
  color: rgb(109,76,65) !important; }

.mdl-color--brown-600 {
  background-color: rgb(109,76,65) !important; }

.mdl-color-text--brown-700 {
  color: rgb(93,64,55) !important; }

.mdl-color--brown-700 {
  background-color: rgb(93,64,55) !important; }

.mdl-color-text--brown-800 {
  color: rgb(78,52,46) !important; }

.mdl-color--brown-800 {
  background-color: rgb(78,52,46) !important; }

.mdl-color-text--brown-900 {
  color: rgb(62,39,35) !important; }

.mdl-color--brown-900 {
  background-color: rgb(62,39,35) !important; }

.mdl-color-text--grey {
  color: rgb(158,158,158) !important; }

.mdl-color--grey {
  background-color: rgb(158,158,158) !important; }

.mdl-color-text--grey-50 {
  color: rgb(250,250,250) !important; }

.mdl-color--grey-50 {
  background-color: rgb(250,250,250) !important; }

.mdl-color-text--grey-100 {
  color: rgb(245,245,245) !important; }

.mdl-color--grey-100 {
  background-color: rgb(245,245,245) !important; }

.mdl-color-text--grey-200 {
  color: rgb(238,238,238) !important; }

.mdl-color--grey-200 {
  background-color: rgb(238,238,238) !important; }

.mdl-color-text--grey-300 {
  color: rgb(224,224,224) !important; }

.mdl-color--grey-300 {
  background-color: rgb(224,224,224) !important; }

.mdl-color-text--grey-400 {
  color: rgb(189,189,189) !important; }

.mdl-color--grey-400 {
  background-color: rgb(189,189,189) !important; }

.mdl-color-text--grey-500 {
  color: rgb(158,158,158) !important; }

.mdl-color--grey-500 {
  background-color: rgb(158,158,158) !important; }

.mdl-color-text--grey-600 {
  color: rgb(117,117,117) !important; }

.mdl-color--grey-600 {
  background-color: rgb(117,117,117) !important; }

.mdl-color-text--grey-700 {
  color: rgb(97,97,97) !important; }

.mdl-color--grey-700 {
  background-color: rgb(97,97,97) !important; }

.mdl-color-text--grey-800 {
  color: rgb(66,66,66) !important; }

.mdl-color--grey-800 {
  background-color: rgb(66,66,66) !important; }

.mdl-color-text--grey-900 {
  color: rgb(33,33,33) !important; }

.mdl-color--grey-900 {
  background-color: rgb(33,33,33) !important; }

.mdl-color-text--blue-grey {
  color: rgb(96,125,139) !important; }

.mdl-color--blue-grey {
  background-color: rgb(96,125,139) !important; }

.mdl-color-text--blue-grey-50 {
  color: rgb(236,239,241) !important; }

.mdl-color--blue-grey-50 {
  background-color: rgb(236,239,241) !important; }

.mdl-color-text--blue-grey-100 {
  color: rgb(207,216,220) !important; }

.mdl-color--blue-grey-100 {
  background-color: rgb(207,216,220) !important; }

.mdl-color-text--blue-grey-200 {
  color: rgb(176,190,197) !important; }

.mdl-color--blue-grey-200 {
  background-color: rgb(176,190,197) !important; }

.mdl-color-text--blue-grey-300 {
  color: rgb(144,164,174) !important; }

.mdl-color--blue-grey-300 {
  background-color: rgb(144,164,174) !important; }

.mdl-color-text--blue-grey-400 {
  color: rgb(120,144,156) !important; }

.mdl-color--blue-grey-400 {
  background-color: rgb(120,144,156) !important; }

.mdl-color-text--blue-grey-500 {
  color: rgb(96,125,139) !important; }

.mdl-color--blue-grey-500 {
  background-color: rgb(96,125,139) !important; }

.mdl-color-text--blue-grey-600 {
  color: rgb(84,110,122) !important; }

.mdl-color--blue-grey-600 {
  background-color: rgb(84,110,122) !important; }

.mdl-color-text--blue-grey-700 {
  color: rgb(69,90,100) !important; }

.mdl-color--blue-grey-700 {
  background-color: rgb(69,90,100) !important; }

.mdl-color-text--blue-grey-800 {
  color: rgb(55,71,79) !important; }

.mdl-color--blue-grey-800 {
  background-color: rgb(55,71,79) !important; }

.mdl-color-text--blue-grey-900 {
  color: rgb(38,50,56) !important; }

.mdl-color--blue-grey-900 {
  background-color: rgb(38,50,56) !important; }

.mdl-color--black {
  background-color: rgb(0,0,0) !important; }

.mdl-color-text--black {
  color: rgb(0,0,0) !important; }

.mdl-color--white {
  background-color: rgb(255,255,255) !important; }

.mdl-color-text--white {
  color: rgb(255,255,255) !important; }

.mdl-color--primary {
  background-color: rgb(63,81,181) !important; }

.mdl-color--primary-contrast {
  background-color: rgb(255,255,255) !important; }

.mdl-color--primary-dark {
  background-color: rgb(48,63,159) !important; }

.mdl-color--accent {
  background-color: rgb(255,64,129) !important; }

.mdl-color--accent-contrast {
  background-color: rgb(255,255,255) !important; }

.mdl-color-text--primary {
  color: rgb(63,81,181) !important; }

.mdl-color-text--primary-contrast {
  color: rgb(255,255,255) !important; }

.mdl-color-text--primary-dark {
  color: rgb(48,63,159) !important; }

.mdl-color-text--accent {
  color: rgb(255,64,129) !important; }

.mdl-color-text--accent-contrast {
  color: rgb(255,255,255) !important; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-ripple {
  background: rgb(0,0,0);
  border-radius: 50%;
  height: 50px;
  left: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  transform: translate(-50%, -50%);
  width: 50px;
  overflow: hidden; }
  .mdl-ripple.is-animating {
    transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1), width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1); }
  .mdl-ripple.is-visible {
    opacity: 0.3; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-animation--default {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.mdl-animation--fast-out-slow-in {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.mdl-animation--linear-out-slow-in {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }

.mdl-animation--fast-out-linear-in {
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1); }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-badge {
  position: relative;
  white-space: nowrap;
  margin-right: 24px; }
  .mdl-badge:not([data-badge]) {
    margin-right: auto; }
  .mdl-badge[data-badge]:after {
    content: attr(data-badge);
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-content: center;
    align-items: center;
    position: absolute;
    top: -11px;
    right: -24px;
    font-family: "Roboto", "Helvetica", "Arial", sans-serif;
    font-weight: 600;
    font-size: 12px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgb(255,64,129);
    color: rgb(255,255,255); }
    .mdl-button .mdl-badge[data-badge]:after {
      top: -10px;
      right: -5px; }
  .mdl-badge.mdl-badge--no-background[data-badge]:after {
    color: rgb(255,64,129);
    background: rgba(255,255,255,0.2);
    box-shadow: 0 0 1px gray; }
  .mdl-badge.mdl-badge--overlap {
    margin-right: 10px; }
    .mdl-badge.mdl-badge--overlap:after {
      right: -10px; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-button {
  background: transparent;
  border: none;
  border-radius: 2px;
  color: rgb(0,0,0);
  position: relative;
  height: 36px;
  margin: 0;
  min-width: 64px;
  padding: 0 16px;
  display: inline-block;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: 0;
  overflow: hidden;
  will-change: box-shadow;
  transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  outline: none;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  line-height: 36px;
  vertical-align: middle; }
  .mdl-button::-moz-focus-inner {
    border: 0; }
  .mdl-button:hover {
    background-color: rgba(158,158,158, 0.20); }
  .mdl-button:focus:not(:active) {
    background-color: rgba(0,0,0, 0.12); }
  .mdl-button:active {
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button.mdl-button--colored {
    color: rgb(63,81,181); }
    .mdl-button.mdl-button--colored:focus:not(:active) {
      background-color: rgba(0,0,0, 0.12); }

input.mdl-button[type="submit"] {
  -webkit-appearance: none; }

.mdl-button--raised {
  background: rgba(158,158,158, 0.20);
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }
  .mdl-button--raised:active {
    box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button--raised:focus:not(:active) {
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button--raised.mdl-button--colored {
    background: rgb(63,81,181);
    color: rgb(255,255,255); }
    .mdl-button--raised.mdl-button--colored:hover {
      background-color: rgb(63,81,181); }
    .mdl-button--raised.mdl-button--colored:active {
      background-color: rgb(63,81,181); }
    .mdl-button--raised.mdl-button--colored:focus:not(:active) {
      background-color: rgb(63,81,181); }
    .mdl-button--raised.mdl-button--colored .mdl-ripple {
      background: rgb(255,255,255); }

.mdl-button--fab {
  border-radius: 50%;
  font-size: 24px;
  height: 56px;
  margin: auto;
  min-width: 56px;
  width: 56px;
  padding: 0;
  overflow: hidden;
  background: rgba(158,158,158, 0.20);
  box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, 0.12), 0 1px 1px 0 rgba(0, 0, 0, 0.24);
  position: relative;
  line-height: normal; }
  .mdl-button--fab .material-icons {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-12px, -12px);
    line-height: 24px;
    width: 24px; }
  .mdl-button--fab.mdl-button--mini-fab {
    height: 40px;
    min-width: 40px;
    width: 40px; }
  .mdl-button--fab .mdl-button__ripple-container {
    border-radius: 50%;
    -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
  .mdl-button--fab:active {
    box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button--fab:focus:not(:active) {
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button--fab.mdl-button--colored {
    background: rgb(255,64,129);
    color: rgb(255,255,255); }
    .mdl-button--fab.mdl-button--colored:hover {
      background-color: rgb(255,64,129); }
    .mdl-button--fab.mdl-button--colored:focus:not(:active) {
      background-color: rgb(255,64,129); }
    .mdl-button--fab.mdl-button--colored:active {
      background-color: rgb(255,64,129); }
    .mdl-button--fab.mdl-button--colored .mdl-ripple {
      background: rgb(255,255,255); }

.mdl-button--icon {
  border-radius: 50%;
  font-size: 24px;
  height: 32px;
  margin-left: 0;
  margin-right: 0;
  min-width: 32px;
  width: 32px;
  padding: 0;
  overflow: hidden;
  color: inherit;
  line-height: normal; }
  .mdl-button--icon .material-icons {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-12px, -12px);
    line-height: 24px;
    width: 24px; }
  .mdl-button--icon.mdl-button--mini-icon {
    height: 24px;
    min-width: 24px;
    width: 24px; }
    .mdl-button--icon.mdl-button--mini-icon .material-icons {
      top: 0px;
      left: 0px; }
  .mdl-button--icon .mdl-button__ripple-container {
    border-radius: 50%;
    -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }

.mdl-button__ripple-container {
  display: block;
  height: 100%;
  left: 0px;
  position: absolute;
  top: 0px;
  width: 100%;
  z-index: 0;
  overflow: hidden; }
  .mdl-button[disabled] .mdl-button__ripple-container .mdl-ripple, .mdl-button.mdl-button--disabled .mdl-button__ripple-container .mdl-ripple {
    background-color: transparent; }

.mdl-button--primary.mdl-button--primary {
  color: rgb(63,81,181); }
  .mdl-button--primary.mdl-button--primary .mdl-ripple {
    background: rgb(255,255,255); }
  .mdl-button--primary.mdl-button--primary.mdl-button--raised, .mdl-button--primary.mdl-button--primary.mdl-button--fab {
    color: rgb(255,255,255);
    background-color: rgb(63,81,181); }

.mdl-button--accent.mdl-button--accent {
  color: rgb(255,64,129); }
  .mdl-button--accent.mdl-button--accent .mdl-ripple {
    background: rgb(255,255,255); }
  .mdl-button--accent.mdl-button--accent.mdl-button--raised, .mdl-button--accent.mdl-button--accent.mdl-button--fab {
    color: rgb(255,255,255);
    background-color: rgb(255,64,129); }

.mdl-button[disabled][disabled], .mdl-button.mdl-button--disabled.mdl-button--disabled {
  color: rgba(0,0,0, 0.26);
  cursor: default;
  background-color: transparent; }

.mdl-button--fab[disabled][disabled], .mdl-button--fab.mdl-button--disabled.mdl-button--disabled {
  background-color: rgba(0,0,0, 0.12);
  color: rgba(0,0,0, 0.26); }

.mdl-button--raised[disabled][disabled], .mdl-button--raised.mdl-button--disabled.mdl-button--disabled {
  background-color: rgba(0,0,0, 0.12);
  color: rgba(0,0,0, 0.26);
  box-shadow: none; }

.mdl-button--colored[disabled][disabled], .mdl-button--colored.mdl-button--disabled.mdl-button--disabled {
  color: rgba(0,0,0, 0.26); }

.mdl-button .material-icons {
  vertical-align: middle; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-card {
  display: flex;
  flex-direction: column;
  font-size: 16px;
  font-weight: 400;
  min-height: 200px;
  overflow: hidden;
  width: 330px;
  z-index: 1;
  position: relative;
  background: rgb(255,255,255);
  border-radius: 2px;
  box-sizing: border-box; }

.mdl-card__media {
  background-color: rgb(255,64,129);
  background-repeat: repeat;
  background-position: 50% 50%;
  background-size: cover;
  background-origin: padding-box;
  background-attachment: scroll;
  box-sizing: border-box; }

.mdl-card__title {
  align-items: center;
  color: rgb(0,0,0);
  display: block;
  display: flex;
  justify-content: stretch;
  line-height: normal;
  padding: 16px 16px;
  perspective-origin: 165px 56px;
  transform-origin: 165px 56px;
  box-sizing: border-box; }
  .mdl-card__title.mdl-card--border {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1); }

.mdl-card__title-text {
  align-self: flex-end;
  color: inherit;
  display: block;
  display: flex;
  font-size: 24px;
  font-weight: 300;
  line-height: normal;
  overflow: hidden;
  transform-origin: 149px 48px;
  margin: 0; }

.mdl-card__subtitle-text {
  font-size: 14px;
  color: rgba(0,0,0, 0.54);
  margin: 0; }

.mdl-card__supporting-text {
  color: rgba(0,0,0, 0.54);
  font-size: 1rem;
  line-height: 18px;
  overflow: hidden;
  padding: 16px 16px;
  width: 90%; }

.mdl-card__actions {
  font-size: 16px;
  line-height: normal;
  width: 100%;
  background-color: transparent;
  padding: 8px;
  box-sizing: border-box; }
  .mdl-card__actions.mdl-card--border {
    border-top: 1px solid rgba(0, 0, 0, 0.1); }

.mdl-card--expand {
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; }

.mdl-card__menu {
  position: absolute;
  right: 16px;
  top: 16px; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-checkbox {
  position: relative;
  z-index: 1;
  vertical-align: middle;
  display: inline-block;
  box-sizing: border-box;
  width: 100%;
  height: 24px;
  margin: 0;
  padding: 0; }
  .mdl-checkbox.is-upgraded {
    padding-left: 24px; }

.mdl-checkbox__input {
  line-height: 24px; }
  .mdl-checkbox.is-upgraded .mdl-checkbox__input {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -ms-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none; }

.mdl-checkbox__box-outline {
  position: absolute;
  top: 3px;
  left: 0;
  display: inline-block;
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
  overflow: hidden;
  border: 2px solid rgba(0,0,0, 0.54);
  border-radius: 2px;
  z-index: 2; }
  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {
    border: 2px solid rgb(63,81,181); }
  fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline, .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
    border: 2px solid rgba(0,0,0, 0.26);
    cursor: auto; }

.mdl-checkbox__focus-helper {
  position: absolute;
  top: 3px;
  left: 0;
  display: inline-block;
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: transparent; }
  .mdl-checkbox.is-focused .mdl-checkbox__focus-helper {
    box-shadow: 0 0 0px 8px rgba(0, 0, 0, 0.1);
    background-color: rgba(0, 0, 0, 0.1); }
  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {
    box-shadow: 0 0 0px 8px rgba(63,81,181, 0.26);
    background-color: rgba(63,81,181, 0.26); }

.mdl-checkbox__tick-outline {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  -webkit-mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg==");
          mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg==");
  background: transparent;
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: background; }
  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {
    background: rgb(63,81,181) url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K"); }
  fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline, .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {
    background: rgba(0,0,0, 0.26) url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K"); }

.mdl-checkbox__label {
  position: relative;
  cursor: pointer;
  font-size: 16px;
  line-height: 24px;
  margin: 0; }
  fieldset[disabled] .mdl-checkbox .mdl-checkbox__label, .mdl-checkbox.is-disabled .mdl-checkbox__label {
    color: rgba(0,0,0, 0.26);
    cursor: auto; }

.mdl-checkbox__ripple-container {
  position: absolute;
  z-index: 2;
  top: -6px;
  left: -10px;
  box-sizing: border-box;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
  .mdl-checkbox__ripple-container .mdl-ripple {
    background: rgb(63,81,181); }
  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container, .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container {
    cursor: auto; }
  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple, .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {
    background: transparent; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-chip {
  height: 32px;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  line-height: 32px;
  padding: 0 12px;
  border: 0;
  border-radius: 16px;
  background-color: #dedede;
  display: inline-block;
  color: rgba(0,0,0, 0.87);
  margin: 2px 0;
  font-size: 0;
  white-space: nowrap; }
  .mdl-chip__text {
    font-size: 13px;
    vertical-align: middle;
    display: inline-block; }
  .mdl-chip__action {
    height: 24px;
    width: 24px;
    background: transparent;
    opacity: 0.54;
    display: inline-block;
    cursor: pointer;
    text-align: center;
    vertical-align: middle;
    padding: 0;
    margin: 0 0 0 4px;
    font-size: 13px;
    text-decoration: none;
    color: rgba(0,0,0, 0.87);
    border: none;
    outline: none;
    overflow: hidden; }
  .mdl-chip__contact {
    height: 32px;
    width: 32px;
    border-radius: 16px;
    display: inline-block;
    vertical-align: middle;
    margin-right: 8px;
    overflow: hidden;
    text-align: center;
    font-size: 18px;
    line-height: 32px; }
  .mdl-chip:focus {
    outline: 0;
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }
  .mdl-chip:active {
    background-color: #d6d6d6; }
  .mdl-chip--deletable {
    padding-right: 4px; }
  .mdl-chip--contact {
    padding-left: 0; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-data-table {
  position: relative;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-collapse: collapse;
  white-space: nowrap;
  font-size: 13px;
  background-color: rgb(255,255,255); }
  .mdl-data-table thead {
    padding-bottom: 3px; }
    .mdl-data-table thead .mdl-data-table__select {
      margin-top: 0; }
  .mdl-data-table tbody tr {
    position: relative;
    height: 48px;
    transition-duration: 0.28s;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-property: background-color; }
    .mdl-data-table tbody tr.is-selected {
      background-color: #e0e0e0; }
    .mdl-data-table tbody tr:hover {
      background-color: #eeeeee; }
  .mdl-data-table td, .mdl-data-table th {
    padding: 0 18px 12px 18px;
    text-align: right; }
    .mdl-data-table td:first-of-type, .mdl-data-table th:first-of-type {
      padding-left: 24px; }
    .mdl-data-table td:last-of-type, .mdl-data-table th:last-of-type {
      padding-right: 24px; }
  .mdl-data-table td {
    position: relative;
    vertical-align: middle;
    height: 48px;
    border-top: 1px solid rgba(0, 0, 0, 0.12);
    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
    padding-top: 12px;
    box-sizing: border-box; }
    .mdl-data-table td .mdl-data-table__select {
      vertical-align: middle; }
  .mdl-data-table th {
    position: relative;
    vertical-align: bottom;
    text-overflow: ellipsis;
    font-size: 14px;
    font-weight: bold;
    line-height: 24px;
    letter-spacing: 0;
    height: 48px;
    font-size: 12px;
    color: rgba(0, 0, 0, 0.54);
    padding-bottom: 8px;
    box-sizing: border-box; }
    .mdl-data-table th.mdl-data-table__header--sorted-ascending, .mdl-data-table th.mdl-data-table__header--sorted-descending {
      color: rgba(0, 0, 0, 0.87); }
      .mdl-data-table th.mdl-data-table__header--sorted-ascending:before, .mdl-data-table th.mdl-data-table__header--sorted-descending:before {
        font-family: 'Material Icons';
        font-weight: normal;
        font-style: normal;
        font-size: 24px;
        line-height: 1;
        letter-spacing: normal;
        text-transform: none;
        display: inline-block;
        word-wrap: normal;
        font-feature-settings: 'liga';
        -webkit-font-feature-settings: 'liga';
        -webkit-font-smoothing: antialiased;
        font-size: 16px;
        content: "\e5d8";
        margin-right: 5px;
        vertical-align: sub; }
      .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover, .mdl-data-table th.mdl-data-table__header--sorted-descending:hover {
        cursor: pointer; }
        .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover:before, .mdl-data-table th.mdl-data-table__header--sorted-descending:hover:before {
          color: rgba(0, 0, 0, 0.26); }
    .mdl-data-table th.mdl-data-table__header--sorted-descending:before {
      content: "\e5db"; }

.mdl-data-table__select {
  width: 16px; }

.mdl-data-table__cell--non-numeric.mdl-data-table__cell--non-numeric {
  text-align: left; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-dialog {
  border: none;
  box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2);
  width: 280px; }
  .mdl-dialog__title {
    padding: 24px 24px 0;
    margin: 0;
    font-size: 2.5rem; }
  .mdl-dialog__actions {
    padding: 8px 8px 8px 24px;
    display: flex;
    flex-direction: row-reverse;
    flex-wrap: wrap; }
    .mdl-dialog__actions > * {
      margin-right: 8px;
      height: 36px; }
      .mdl-dialog__actions > *:first-child {
        margin-right: 0; }
    .mdl-dialog__actions--full-width {
      padding: 0 0 8px 0; }
      .mdl-dialog__actions--full-width > * {
        height: 48px;
        flex: 0 0 100%;
        padding-right: 16px;
        margin-right: 0;
        text-align: right; }
  .mdl-dialog__content {
    padding: 20px 24px 24px 24px;
    color: rgba(0,0,0, 0.54); }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-mega-footer {
  padding: 16px 40px;
  color: rgb(158,158,158);
  background-color: rgb(66,66,66); }

.mdl-mega-footer--top-section:after, .mdl-mega-footer--middle-section:after, .mdl-mega-footer--bottom-section:after, .mdl-mega-footer__top-section:after, .mdl-mega-footer__middle-section:after, .mdl-mega-footer__bottom-section:after {
  content: '';
  display: block;
  clear: both; }

.mdl-mega-footer--left-section, .mdl-mega-footer__left-section {
  margin-bottom: 16px; }

.mdl-mega-footer--right-section, .mdl-mega-footer__right-section {
  margin-bottom: 16px; }

.mdl-mega-footer--right-section a, .mdl-mega-footer__right-section a {
  display: block;
  margin-bottom: 16px;
  color: inherit;
  text-decoration: none; }

.mdl-mega-footer--social-btn, .mdl-mega-footer__social-btn {
  width: 36px;
  height: 36px;
  padding: 0;
  margin: 0;
  background-color: rgb(158,158,158);
  border: none; }

.mdl-mega-footer--drop-down-section, .mdl-mega-footer__drop-down-section {
  display: block;
  position: relative; }

.mdl-mega-footer--heading-checkbox, .mdl-mega-footer__heading-checkbox {
  position: absolute;
  width: 100%;
  height: 55.8px;
  padding: 32px;
  margin: 0;
  margin-top: -16px;
  cursor: pointer;
  z-index: 1;
  opacity: 0; }
  .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after, .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after, .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after, .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {
    font-family: 'Material Icons';
    content: '\E5CE'; }

.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list, .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list, .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list, .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list, .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list, .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list, .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list, .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list {
  display: none; }

.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after, .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after, .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after, .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {
  font-family: 'Material Icons';
  content: '\E5CF'; }

.mdl-mega-footer--heading, .mdl-mega-footer__heading {
  position: relative;
  width: 100%;
  padding-right: 39.8px;
  margin-bottom: 16px;
  box-sizing: border-box;
  font-size: 14px;
  line-height: 23.8px;
  font-weight: 500;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  color: rgb(224,224,224); }

.mdl-mega-footer--heading:after, .mdl-mega-footer__heading:after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  width: 23.8px;
  height: 23.8px;
  background-size: cover; }

.mdl-mega-footer--link-list, .mdl-mega-footer__link-list {
  list-style: none;
  margin: 0;
  padding: 0;
  margin-bottom: 32px; }
  .mdl-mega-footer--link-list:after, .mdl-mega-footer__link-list:after {
    clear: both;
    display: block;
    content: ''; }

.mdl-mega-footer--link-list li, .mdl-mega-footer__link-list li {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  line-height: 20px; }

.mdl-mega-footer--link-list a, .mdl-mega-footer__link-list a {
  color: inherit;
  text-decoration: none;
  white-space: nowrap; }

.mdl-mega-footer--bottom-section, .mdl-mega-footer__bottom-section {
  padding-top: 16px;
  margin-bottom: 16px; }

.mdl-logo {
  margin-bottom: 16px;
  color: white; }

.mdl-mega-footer--bottom-section .mdl-mega-footer--link-list li, .mdl-mega-footer__bottom-section .mdl-mega-footer__link-list li {
  float: left;
  margin-bottom: 0;
  margin-right: 16px; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-mini-footer {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  padding: 32px 16px;
  color: rgb(158,158,158);
  background-color: rgb(66,66,66); }
  .mdl-mini-footer:after {
    content: '';
    display: block; }
  .mdl-mini-footer .mdl-logo {
    line-height: 36px; }

.mdl-mini-footer--link-list, .mdl-mini-footer__link-list {
  display: flex;
  flex-flow: row nowrap;
  list-style: none;
  margin: 0;
  padding: 0; }
  .mdl-mini-footer--link-list li, .mdl-mini-footer__link-list li {
    margin-bottom: 0;
    margin-right: 16px; }
  .mdl-mini-footer--link-list a, .mdl-mini-footer__link-list a {
    color: inherit;
    text-decoration: none;
    white-space: nowrap; }

.mdl-mini-footer--left-section, .mdl-mini-footer__left-section {
  display: inline-block;
  order: 0; }

.mdl-mini-footer--right-section, .mdl-mini-footer__right-section {
  display: inline-block;
  order: 1; }

.mdl-mini-footer--social-btn, .mdl-mini-footer__social-btn {
  width: 36px;
  height: 36px;
  padding: 0;
  margin: 0;
  background-color: rgb(158,158,158);
  border: none; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-icon-toggle {
  position: relative;
  z-index: 1;
  vertical-align: middle;
  display: inline-block;
  height: 32px;
  margin: 0;
  padding: 0; }

.mdl-icon-toggle__input {
  line-height: 32px; }
  .mdl-icon-toggle.is-upgraded .mdl-icon-toggle__input {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -ms-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none; }

.mdl-icon-toggle__label {
  display: inline-block;
  position: relative;
  cursor: pointer;
  height: 32px;
  width: 32px;
  min-width: 32px;
  color: rgb(97,97,97);
  border-radius: 50%;
  padding: 0;
  margin-left: 0;
  margin-right: 0;
  text-align: center;
  background-color: transparent;
  will-change: background-color;
  transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1); }
  .mdl-icon-toggle__label.material-icons {
    line-height: 32px;
    font-size: 24px; }
  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {
    color: rgb(63,81,181); }
  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {
    color: rgba(0,0,0, 0.26);
    cursor: auto;
    transition: none; }
  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {
    background-color: rgba(0,0,0, 0.12); }
  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {
    background-color: rgba(63,81,181, 0.26); }

.mdl-icon-toggle__ripple-container {
  position: absolute;
  z-index: 2;
  top: -2px;
  left: -2px;
  box-sizing: border-box;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
  .mdl-icon-toggle__ripple-container .mdl-ripple {
    background: rgb(97,97,97); }
  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container {
    cursor: auto; }
  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {
    background: transparent; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-list {
  display: block;
  padding: 8px 0;
  list-style: none; }

.mdl-list__item {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.04em;
  line-height: 1;
  display: flex;
  min-height: 48px;
  box-sizing: border-box;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  padding: 16px;
  cursor: default;
  color: rgba(0,0,0, 0.87);
  overflow: hidden; }
  .mdl-list__item .mdl-list__item-primary-content {
    order: 0;
    -webkit-flex-grow: 2;
        -ms-flex-positive: 2;
            flex-grow: 2;
    text-decoration: none;
    box-sizing: border-box;
    display: flex;
    align-items: center; }
    .mdl-list__item .mdl-list__item-primary-content .mdl-list__item-icon {
      margin-right: 32px; }
    .mdl-list__item .mdl-list__item-primary-content .mdl-list__item-avatar {
      margin-right: 16px; }
  .mdl-list__item .mdl-list__item-secondary-content {
    display: flex;
    flex-flow: column;
    align-items: flex-end;
    margin-left: 16px; }
    .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-action label {
      display: inline; }
    .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-info {
      font-size: 12px;
      font-weight: 400;
      line-height: 1;
      letter-spacing: 0;
      color: rgba(0,0,0, 0.54); }
    .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-sub-header {
      padding: 0 0 0 16px; }

.mdl-list__item-icon, .mdl-list__item-icon.material-icons {
  height: 24px;
  width: 24px;
  font-size: 24px;
  box-sizing: border-box;
  color: rgb(117,117,117); }

.mdl-list__item-avatar, .mdl-list__item-avatar.material-icons {
  height: 40px;
  width: 40px;
  box-sizing: border-box;
  border-radius: 50%;
  background-color: rgb(117,117,117);
  font-size: 40px;
  color: white; }

.mdl-list__item--two-line {
  height: 72px; }
  .mdl-list__item--two-line .mdl-list__item-primary-content {
    height: 36px;
    line-height: 20px;
    display: block; }
    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-avatar {
      float: left; }
    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-icon {
      float: left;
      margin-top: 6px; }
    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-secondary-content {
      height: 36px; }
    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-sub-title {
      font-size: 14px;
      font-weight: 400;
      line-height: 24px;
      letter-spacing: 0;
      line-height: 18px;
      color: rgba(0,0,0, 0.54);
      display: block;
      padding: 0; }

.mdl-list__item--three-line {
  height: 88px; }
  .mdl-list__item--three-line .mdl-list__item-primary-content {
    height: 52px;
    line-height: 20px;
    display: block; }
    .mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-avatar, .mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-icon {
      float: left; }
  .mdl-list__item--three-line .mdl-list__item-secondary-content {
    height: 52px; }
  .mdl-list__item--three-line .mdl-list__item-text-body {
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: 0;
    line-height: 18px;
    height: 52px;
    color: rgba(0,0,0, 0.54);
    display: block;
    padding: 0; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-menu__container {
  display: block;
  margin: 0;
  padding: 0;
  border: none;
  position: absolute;
  overflow: visible;
  height: 0;
  width: 0;
  visibility: hidden;
  z-index: -1; }
  .mdl-menu__container.is-visible, .mdl-menu__container.is-animating {
    z-index: 999;
    visibility: visible; }

.mdl-menu__outline {
  display: block;
  background: rgb(255,255,255);
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 2px;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  opacity: 0;
  transform: scale(0);
  transform-origin: 0 0;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  will-change: transform;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: -1; }
  .mdl-menu__container.is-visible .mdl-menu__outline {
    opacity: 1;
    transform: scale(1);
    z-index: 999; }
  .mdl-menu__outline.mdl-menu--bottom-right {
    transform-origin: 100% 0; }
  .mdl-menu__outline.mdl-menu--top-left {
    transform-origin: 0 100%; }
  .mdl-menu__outline.mdl-menu--top-right {
    transform-origin: 100% 100%; }

.mdl-menu {
  position: absolute;
  list-style: none;
  top: 0;
  left: 0;
  height: auto;
  width: auto;
  min-width: 124px;
  padding: 8px 0;
  margin: 0;
  opacity: 0;
  clip: rect(0 0 0 0);
  z-index: -1; }
  .mdl-menu__container.is-visible .mdl-menu {
    opacity: 1;
    z-index: 999; }
  .mdl-menu.is-animating {
    transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), clip 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
  .mdl-menu.mdl-menu--bottom-right {
    left: auto;
    right: 0; }
  .mdl-menu.mdl-menu--top-left {
    top: auto;
    bottom: 0; }
  .mdl-menu.mdl-menu--top-right {
    top: auto;
    left: auto;
    bottom: 0;
    right: 0; }
  .mdl-menu.mdl-menu--unaligned {
    top: auto;
    left: auto; }

.mdl-menu__item {
  display: block;
  border: none;
  color: rgba(0,0,0, 0.87);
  background-color: transparent;
  text-align: left;
  margin: 0;
  padding: 0 16px;
  outline-color: rgb(189,189,189);
  position: relative;
  overflow: hidden;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  text-decoration: none;
  cursor: pointer;
  height: 48px;
  line-height: 48px;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-user-select: none;
          user-select: none; }
  .mdl-menu__container.is-visible .mdl-menu__item {
    opacity: 1; }
  .mdl-menu__item::-moz-focus-inner {
    border: 0; }
  .mdl-menu__item--full-bleed-divider {
    border-bottom: 1px solid rgba(0,0,0, 0.12); }
  .mdl-menu__item[disabled], .mdl-menu__item[data-mdl-disabled] {
    color: rgb(189,189,189);
    background-color: transparent;
    cursor: auto; }
    .mdl-menu__item[disabled]:hover, .mdl-menu__item[data-mdl-disabled]:hover {
      background-color: transparent; }
    .mdl-menu__item[disabled]:focus, .mdl-menu__item[data-mdl-disabled]:focus {
      background-color: transparent; }
    .mdl-menu__item[disabled] .mdl-ripple, .mdl-menu__item[data-mdl-disabled] .mdl-ripple {
      background: transparent; }
  .mdl-menu__item:hover {
    background-color: rgb(238,238,238); }
  .mdl-menu__item:focus {
    outline: none;
    background-color: rgb(238,238,238); }
  .mdl-menu__item:active {
    background-color: rgb(224,224,224); }

.mdl-menu__item--ripple-container {
  display: block;
  height: 100%;
  left: 0px;
  position: absolute;
  top: 0px;
  width: 100%;
  z-index: 0;
  overflow: hidden; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-progress {
  display: block;
  position: relative;
  height: 4px;
  width: 500px;
  max-width: 100%; }

.mdl-progress > .bar {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  width: 0%;
  transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1); }

.mdl-progress > .progressbar {
  background-color: rgb(63,81,181);
  z-index: 1;
  left: 0; }

.mdl-progress > .bufferbar {
  background-image: linear-gradient(to right, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181));
  z-index: 0;
  left: 0; }

.mdl-progress > .auxbar {
  right: 0; }

@supports (-webkit-appearance: none) {
  .mdl-progress:not(.mdl-progress--indeterminate):not(.mdl-progress--indeterminate) > .auxbar, .mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate) > .auxbar {
    background-image: linear-gradient(to right, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181));
    -webkit-mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo=");
            mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo="); } }

.mdl-progress:not(.mdl-progress--indeterminate) > .auxbar, .mdl-progress:not(.mdl-progress__indeterminate) > .auxbar {
  background-image: linear-gradient(to right, rgba(255,255,255, 0.9), rgba(255,255,255, 0.9)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181)); }

.mdl-progress.mdl-progress--indeterminate > .bar1, .mdl-progress.mdl-progress__indeterminate > .bar1 {
  background-color: rgb(63,81,181);
  animation-name: indeterminate1;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-timing-function: linear; }

.mdl-progress.mdl-progress--indeterminate > .bar3, .mdl-progress.mdl-progress__indeterminate > .bar3 {
  background-image: none;
  background-color: rgb(63,81,181);
  animation-name: indeterminate2;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-timing-function: linear; }

@keyframes indeterminate1 {
  0% {
    left: 0%;
    width: 0%; }
  50% {
    left: 25%;
    width: 75%; }
  75% {
    left: 100%;
    width: 0%; } }

@keyframes indeterminate2 {
  0% {
    left: 0%;
    width: 0%; }
  50% {
    left: 0%;
    width: 0%; }
  75% {
    left: 0%;
    width: 25%; }
  100% {
    left: 100%;
    width: 0%; } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-navigation {
  display: flex;
  flex-wrap: nowrap;
  box-sizing: border-box; }

.mdl-navigation__link {
  color: rgb(66,66,66);
  text-decoration: none;
  margin: 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }
  .mdl-navigation__link .material-icons {
    vertical-align: middle; }

.mdl-layout {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
  -webkit-overflow-scrolling: touch; }

.mdl-layout.is-small-screen .mdl-layout--large-screen-only {
  display: none; }

.mdl-layout:not(.is-small-screen) .mdl-layout--small-screen-only {
  display: none; }

.mdl-layout__container {
  position: absolute;
  width: 100%;
  height: 100%; }

.mdl-layout__title, .mdl-layout-title {
  display: block;
  position: relative;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  font-weight: 400;
  box-sizing: border-box; }

.mdl-layout-spacer {
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; }

.mdl-layout__drawer {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  width: 240px;
  height: 100%;
  max-height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  box-sizing: border-box;
  border-right: 1px solid rgb(224,224,224);
  background: rgb(250,250,250);
  transform: translateX(-250px);
  transform-style: preserve-3d;
  will-change: transform;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: transform;
  color: rgb(66,66,66);
  overflow: visible;
  overflow-y: auto;
  z-index: 5; }
  .mdl-layout__drawer.is-visible {
    transform: translateX(0); }
    .mdl-layout__drawer.is-visible ~ .mdl-layout__content.mdl-layout__content {
      overflow: hidden; }
  .mdl-layout__drawer > * {
    flex-shrink: 0; }
  .mdl-layout__drawer > .mdl-layout__title, .mdl-layout__drawer > .mdl-layout-title {
    line-height: 64px;
    padding-left: 40px; }
  .mdl-layout__drawer .mdl-navigation {
    flex-direction: column;
    -webkit-align-items: stretch;
        -ms-flex-align: stretch;
                -ms-grid-row-align: stretch;
            align-items: stretch;
    padding-top: 16px; }
    .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {
      display: block;
      flex-shrink: 0;
      padding: 16px 40px;
      margin: 0;
      color: #757575; }
      .mdl-layout__drawer .mdl-navigation .mdl-navigation__link:hover {
        background-color: rgb(224,224,224); }
      .mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current {
        background-color: rgb(224,224,224);
        color: rgb(0,0,0); }

.mdl-layout__drawer-button {
  display: block;
  position: absolute;
  height: 48px;
  width: 48px;
  border: 0;
  flex-shrink: 0;
  overflow: hidden;
  text-align: center;
  cursor: pointer;
  font-size: 26px;
  line-height: 56px;
  font-family: Helvetica, Arial, sans-serif;
  margin: 8px 12px;
  top: 0;
  left: 0;
  color: rgb(255,255,255);
  z-index: 4; }
  .mdl-layout__header .mdl-layout__drawer-button {
    position: absolute;
    color: rgb(255,255,255);
    background-color: inherit; }

.mdl-layout__header {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  box-sizing: border-box;
  flex-shrink: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  min-height: 64px;
  max-height: 1000px;
  z-index: 3;
  background-color: rgb(63,81,181);
  color: rgb(255,255,255);
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: max-height, box-shadow; }
  .mdl-layout--fixed-drawer.is-upgraded:not(.is-small-screen) > .mdl-layout__header {
    margin-left: 240px;
    width: calc(100% - 240px); }
  .mdl-layout__header > .mdl-layout-icon {
    position: absolute;
    left: 40px;
    top: 16px;
    height: 32px;
    width: 32px;
    overflow: hidden;
    z-index: 3;
    display: block; }
  .mdl-layout.has-drawer .mdl-layout__header > .mdl-layout-icon {
    display: none; }
  .mdl-layout__header.is-compact {
    max-height: 64px; }
  .mdl-layout__header.is-compact.has-tabs {
    height: 112px; }

.mdl-layout__header--transparent.mdl-layout__header--transparent {
  background-color: transparent;
  box-shadow: none; }

.mdl-layout__header--seamed {
  box-shadow: none; }

.mdl-layout__header--scroll {
  box-shadow: none; }

.mdl-layout__header--waterfall {
  box-shadow: none;
  overflow: hidden; }
  .mdl-layout__header--waterfall.is-casting-shadow {
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }
  .mdl-layout__header--waterfall.mdl-layout__header--waterfall-hide-top {
    justify-content: flex-end; }

.mdl-layout__header-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  flex-shrink: 0;
  box-sizing: border-box;
  align-self: stretch;
  align-items: center;
  height: 64px;
  margin: 0;
  padding: 0 40px 0 80px; }
  .mdl-layout--no-drawer-button .mdl-layout__header-row {
    padding-left: 40px; }
  .mdl-layout__header-row > * {
    flex-shrink: 0; }
  .mdl-layout__header--scroll .mdl-layout__header-row {
    width: 100%; }
  .mdl-layout__header-row .mdl-navigation {
    margin: 0;
    padding: 0;
    height: 64px;
    flex-direction: row;
    -webkit-align-items: center;
        -ms-flex-align: center;
                -ms-grid-row-align: center;
            align-items: center; }
  .mdl-layout__header-row .mdl-navigation__link {
    display: block;
    color: rgb(255,255,255);
    line-height: 64px;
    padding: 0 24px; }

.mdl-layout__obfuscator {
  background-color: transparent;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 4;
  visibility: hidden;
  transition-property: background-color;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
  .mdl-layout__obfuscator.is-visible {
    background-color: rgba(0, 0, 0, 0.5);
    visibility: visible; }
  @supports (pointer-events: auto) {
    .mdl-layout__obfuscator {
      background-color: rgba(0, 0, 0, 0.5);
      opacity: 0;
      transition-property: opacity;
      visibility: visible;
      pointer-events: none; }
      .mdl-layout__obfuscator.is-visible {
        pointer-events: auto;
        opacity: 1; } }

.mdl-layout__content {
  -ms-flex: 0 1 auto;
  position: relative;
  display: inline-block;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  z-index: 1;
  -webkit-overflow-scrolling: touch; }
  .mdl-layout--fixed-drawer > .mdl-layout__content {
    margin-left: 240px; }
  .mdl-layout__container.has-scrolling-header .mdl-layout__content {
    overflow: visible; }

.mdl-layout__tab-bar {
  height: 96px;
  margin: 0;
  width: calc(100% - 112px);
  padding: 0 0 0 56px;
  display: flex;
  background-color: rgb(63,81,181);
  overflow-y: hidden;
  overflow-x: scroll; }
  .mdl-layout__tab-bar::-webkit-scrollbar {
    display: none; }
  .mdl-layout--no-drawer-button .mdl-layout__tab-bar {
    padding-left: 16px;
    width: calc(100% - 32px); }
  .mdl-layout--fixed-tabs .mdl-layout__tab-bar {
    padding: 0;
    overflow: hidden;
    width: 100%; }

.mdl-layout__tab-bar-container {
  position: relative;
  height: 48px;
  width: 100%;
  border: none;
  margin: 0;
  z-index: 2;
  -webkit-flex-grow: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
  flex-shrink: 0;
  overflow: hidden; }
  .mdl-layout__container > .mdl-layout__tab-bar-container {
    position: absolute;
    top: 0;
    left: 0; }

.mdl-layout__tab-bar-button {
  display: inline-block;
  position: absolute;
  top: 0;
  height: 48px;
  width: 56px;
  z-index: 4;
  text-align: center;
  background-color: rgb(63,81,181);
  color: transparent;
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none; }
  .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button, .mdl-layout--no-drawer-button .mdl-layout__tab-bar-button {
    width: 16px; }
    .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button .material-icons, .mdl-layout--no-drawer-button .mdl-layout__tab-bar-button .material-icons {
      position: relative;
      left: -4px; }
  .mdl-layout--fixed-tabs .mdl-layout__tab-bar-button {
    display: none; }
  .mdl-layout__tab-bar-button .material-icons {
    line-height: 48px; }
  .mdl-layout__tab-bar-button.is-active {
    color: rgb(255,255,255); }

.mdl-layout__tab-bar-left-button {
  left: 0; }

.mdl-layout__tab-bar-right-button {
  right: 0; }

.mdl-layout__tab {
  margin: 0;
  border: none;
  padding: 0 24px 0 24px;
  float: left;
  position: relative;
  display: block;
  -webkit-flex-grow: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
  flex-shrink: 0;
  text-decoration: none;
  height: 48px;
  line-height: 48px;
  text-align: center;
  font-weight: 500;
  font-size: 14px;
  text-transform: uppercase;
  color: rgba(255,255,255, 0.6);
  overflow: hidden; }
  .mdl-layout--fixed-tabs .mdl-layout__tab {
    float: none;
    -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    padding: 0; }
  .mdl-layout.is-upgraded .mdl-layout__tab.is-active {
    color: rgb(255,255,255); }
  .mdl-layout.is-upgraded .mdl-layout__tab.is-active::after {
    height: 2px;
    width: 100%;
    display: block;
    content: " ";
    bottom: 0;
    left: 0;
    position: absolute;
    background: rgb(255,64,129);
    animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
    transition: all 1s cubic-bezier(0.4, 0, 1, 1); }
  .mdl-layout__tab .mdl-layout__tab-ripple-container {
    display: block;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    z-index: 1;
    overflow: hidden; }
    .mdl-layout__tab .mdl-layout__tab-ripple-container .mdl-ripple {
      background-color: rgb(255,255,255); }

.mdl-layout__tab-panel {
  display: block; }
  .mdl-layout.is-upgraded .mdl-layout__tab-panel {
    display: none; }
  .mdl-layout.is-upgraded .mdl-layout__tab-panel.is-active {
    display: block; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-radio {
  position: relative;
  font-size: 16px;
  line-height: 24px;
  display: inline-block;
  box-sizing: border-box;
  margin: 0;
  padding-left: 0; }
  .mdl-radio.is-upgraded {
    padding-left: 24px; }

.mdl-radio__button {
  line-height: 24px; }
  .mdl-radio.is-upgraded .mdl-radio__button {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -ms-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none; }

.mdl-radio__outer-circle {
  position: absolute;
  top: 4px;
  left: 0;
  display: inline-block;
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
  border: 2px solid rgba(0,0,0, 0.54);
  border-radius: 50%;
  z-index: 2; }
  .mdl-radio.is-checked .mdl-radio__outer-circle {
    border: 2px solid rgb(63,81,181); }
  .mdl-radio__outer-circle fieldset[disabled] .mdl-radio, .mdl-radio.is-disabled .mdl-radio__outer-circle {
    border: 2px solid rgba(0,0,0, 0.26);
    cursor: auto; }

.mdl-radio__inner-circle {
  position: absolute;
  z-index: 1;
  margin: 0;
  top: 8px;
  left: 4px;
  box-sizing: border-box;
  width: 8px;
  height: 8px;
  cursor: pointer;
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: transform;
  transform: scale3d(0, 0, 0);
  border-radius: 50%;
  background: rgb(63,81,181); }
  .mdl-radio.is-checked .mdl-radio__inner-circle {
    transform: scale3d(1, 1, 1); }
  fieldset[disabled] .mdl-radio .mdl-radio__inner-circle, .mdl-radio.is-disabled .mdl-radio__inner-circle {
    background: rgba(0,0,0, 0.26);
    cursor: auto; }
  .mdl-radio.is-focused .mdl-radio__inner-circle {
    box-shadow: 0 0 0px 10px rgba(0, 0, 0, 0.1); }

.mdl-radio__label {
  cursor: pointer; }
  fieldset[disabled] .mdl-radio .mdl-radio__label, .mdl-radio.is-disabled .mdl-radio__label {
    color: rgba(0,0,0, 0.26);
    cursor: auto; }

.mdl-radio__ripple-container {
  position: absolute;
  z-index: 2;
  top: -9px;
  left: -13px;
  box-sizing: border-box;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  cursor: pointer;
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
  .mdl-radio__ripple-container .mdl-ripple {
    background: rgb(63,81,181); }
  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container, .mdl-radio.is-disabled .mdl-radio__ripple-container {
    cursor: auto; }
  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple, .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {
    background: transparent; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
_:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded {
  -ms-appearance: none;
  height: 32px;
  margin: 0; }

.mdl-slider {
  width: calc(100% - 40px);
  margin: 0 20px; }
  .mdl-slider.is-upgraded {
    -webkit-appearance: none;
    appearance: none;
    height: 2px;
    background: transparent;
    -webkit-user-select: none;
        user-select: none;
    outline: 0;
    padding: 0;
    color: rgb(63,81,181);
    align-self: center;
    z-index: 1;
    cursor: pointer;
    /**************************** Tracks ****************************/
    /**************************** Thumbs ****************************/
    /**************************** 0-value ****************************/
    /**************************** Disabled ****************************/ }
    .mdl-slider.is-upgraded::-moz-focus-outer {
      border: 0; }
    .mdl-slider.is-upgraded::-ms-tooltip {
      display: none; }
    .mdl-slider.is-upgraded::-webkit-slider-runnable-track {
      background: transparent; }
    .mdl-slider.is-upgraded::-moz-range-track {
      background: transparent;
      border: none; }
    .mdl-slider.is-upgraded::-ms-track {
      background: none;
      color: transparent;
      height: 2px;
      width: 100%;
      border: none; }
    .mdl-slider.is-upgraded::-ms-fill-lower {
      padding: 0;
      background: linear-gradient(to right, transparent, transparent 16px, rgb(63,81,181) 16px, rgb(63,81,181) 0); }
    .mdl-slider.is-upgraded::-ms-fill-upper {
      padding: 0;
      background: linear-gradient(to left, transparent, transparent 16px, rgba(0,0,0, 0.26) 16px, rgba(0,0,0, 0.26) 0); }
    .mdl-slider.is-upgraded::-webkit-slider-thumb {
      -webkit-appearance: none;
      width: 12px;
      height: 12px;
      box-sizing: border-box;
      border-radius: 50%;
      background: rgb(63,81,181);
      border: none;
      transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); }
    .mdl-slider.is-upgraded::-moz-range-thumb {
      -moz-appearance: none;
      width: 12px;
      height: 12px;
      box-sizing: border-box;
      border-radius: 50%;
      background-image: none;
      background: rgb(63,81,181);
      border: none; }
    .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {
      box-shadow: 0 0 0 10px rgba(63,81,181, 0.26); }
    .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {
      box-shadow: 0 0 0 10px rgba(63,81,181, 0.26); }
    .mdl-slider.is-upgraded:active::-webkit-slider-thumb {
      background-image: none;
      background: rgb(63,81,181);
      transform: scale(1.5); }
    .mdl-slider.is-upgraded:active::-moz-range-thumb {
      background-image: none;
      background: rgb(63,81,181);
      transform: scale(1.5); }
    .mdl-slider.is-upgraded::-ms-thumb {
      width: 32px;
      height: 32px;
      border: none;
      border-radius: 50%;
      background: rgb(63,81,181);
      transform: scale(0.375);
      transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); }
    .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {
      background: radial-gradient(circle closest-side, rgb(63,81,181) 0%, rgb(63,81,181) 37.5%, rgba(63,81,181, 0.26) 37.5%, rgba(63,81,181, 0.26) 100%);
      transform: scale(1); }
    .mdl-slider.is-upgraded:active::-ms-thumb {
      background: rgb(63,81,181);
      transform: scale(0.5625); }
    .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {
      border: 2px solid rgba(0,0,0, 0.26);
      background: transparent; }
    .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {
      border: 2px solid rgba(0,0,0, 0.26);
      background: transparent; }
    .mdl-slider.is-upgraded.is-lowest-value +
.mdl-slider__background-flex > .mdl-slider__background-upper {
      left: 6px; }
    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {
      box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);
      background: rgba(0,0,0, 0.12); }
    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {
      box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);
      background: rgba(0,0,0, 0.12); }
    .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {
      border: 1.6px solid rgba(0,0,0, 0.26);
      transform: scale(1.5); }
    .mdl-slider.is-upgraded.is-lowest-value:active +
.mdl-slider__background-flex > .mdl-slider__background-upper {
      left: 9px; }
    .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {
      border: 1.5px solid rgba(0,0,0, 0.26);
      transform: scale(1.5); }
    .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {
      background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(0,0,0, 0.26) 66.67%, rgba(0,0,0, 0.26) 100%); }
    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {
      background: radial-gradient(circle closest-side, rgba(0,0,0, 0.12) 0%, rgba(0,0,0, 0.12) 25%, rgba(0,0,0, 0.26) 25%, rgba(0,0,0, 0.26) 37.5%, rgba(0,0,0, 0.12) 37.5%, rgba(0,0,0, 0.12) 100%);
      transform: scale(1); }
    .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {
      transform: scale(0.5625);
      background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(0,0,0, 0.26) 77.78%, rgba(0,0,0, 0.26) 100%); }
    .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {
      background: transparent; }
    .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-upper {
      margin-left: 6px; }
    .mdl-slider.is-upgraded.is-lowest-value:active::-ms-fill-upper {
      margin-left: 9px; }
    .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {
      transform: scale(0.667);
      background: rgba(0,0,0, 0.26); }
    .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded:disabled::-moz-range-thumb {
      transform: scale(0.667);
      background: rgba(0,0,0, 0.26); }
    .mdl-slider.is-upgraded:disabled +
.mdl-slider__background-flex > .mdl-slider__background-lower {
      background-color: rgba(0,0,0, 0.26);
      left: -6px; }
    .mdl-slider.is-upgraded:disabled +
.mdl-slider__background-flex > .mdl-slider__background-upper {
      left: 6px; }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {
      border: 3px solid rgba(0,0,0, 0.26);
      background: transparent;
      transform: scale(0.667); }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {
      border: 3px solid rgba(0,0,0, 0.26);
      background: transparent;
      transform: scale(0.667); }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:active +
.mdl-slider__background-flex > .mdl-slider__background-upper {
      left: 6px; }
    .mdl-slider.is-upgraded:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded:disabled:active::-ms-thumb, .mdl-slider.is-upgraded:disabled::-ms-thumb {
      transform: scale(0.25);
      background: rgba(0,0,0, 0.26); }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {
      transform: scale(0.25);
      background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(0,0,0, 0.26) 50%, rgba(0,0,0, 0.26) 100%); }
    .mdl-slider.is-upgraded:disabled::-ms-fill-lower {
      margin-right: 6px;
      background: linear-gradient(to right, transparent, transparent 25px, rgba(0,0,0, 0.26) 25px, rgba(0,0,0, 0.26) 0); }
    .mdl-slider.is-upgraded:disabled::-ms-fill-upper {
      margin-left: 6px; }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-fill-upper {
      margin-left: 6px; }

.mdl-slider__ie-container {
  height: 18px;
  overflow: visible;
  border: none;
  margin: none;
  padding: none; }

.mdl-slider__container {
  height: 18px;
  position: relative;
  background: none;
  display: flex;
  flex-direction: row; }

.mdl-slider__background-flex {
  background: transparent;
  position: absolute;
  height: 2px;
  width: calc(100% - 52px);
  top: 50%;
  left: 0;
  margin: 0 26px;
  display: flex;
  overflow: hidden;
  border: 0;
  padding: 0;
  transform: translate(0, -1px); }

.mdl-slider__background-lower {
  background: rgb(63,81,181);
  flex: 0;
  position: relative;
  border: 0;
  padding: 0; }

.mdl-slider__background-upper {
  background: rgba(0,0,0, 0.26);
  flex: 0;
  position: relative;
  border: 0;
  padding: 0;
  transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1); }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-snackbar {
  position: fixed;
  bottom: 0;
  left: 50%;
  cursor: default;
  background-color: #323232;
  z-index: 3;
  display: block;
  display: flex;
  justify-content: space-between;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  will-change: transform;
  transform: translate(0, 80px);
  transition: transform 0.25s cubic-bezier(0.4, 0, 1, 1);
  pointer-events: none; }
  .mdl-snackbar--active {
    transform: translate(0, 0);
    pointer-events: auto;
    transition: transform 0.25s cubic-bezier(0, 0, 0.2, 1); }
  .mdl-snackbar__text {
    padding: 14px 12px 14px 24px;
    vertical-align: middle;
    color: white;
    float: left; }
  .mdl-snackbar__action {
    background: transparent;
    border: none;
    color: rgb(255,64,129);
    float: right;
    text-transform: uppercase;
    padding: 14px 24px 14px 12px;
    font-family: "Roboto", "Helvetica", "Arial", sans-serif;
    font-size: 14px;
    font-weight: 500;
    text-transform: uppercase;
    line-height: 1;
    letter-spacing: 0;
    overflow: hidden;
    outline: none;
    opacity: 0;
    pointer-events: none;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    align-self: center; }
    .mdl-snackbar__action::-moz-focus-inner {
      border: 0; }
    .mdl-snackbar__action:not([aria-hidden]) {
      opacity: 1;
      pointer-events: auto; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-spinner {
  display: inline-block;
  position: relative;
  width: 28px;
  height: 28px; }
  .mdl-spinner:not(.is-upgraded).is-active:after {
    content: "Loading..."; }
  .mdl-spinner.is-upgraded.is-active {
    animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite; }

@keyframes mdl-spinner__container-rotate {
  to {
    transform: rotate(360deg); } }

.mdl-spinner__layer {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0; }

.mdl-spinner__layer-1 {
  border-color: rgb(66,165,245); }
  .mdl-spinner--single-color .mdl-spinner__layer-1 {
    border-color: rgb(63,81,181); }
  .mdl-spinner.is-active .mdl-spinner__layer-1 {
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

.mdl-spinner__layer-2 {
  border-color: rgb(244,67,54); }
  .mdl-spinner--single-color .mdl-spinner__layer-2 {
    border-color: rgb(63,81,181); }
  .mdl-spinner.is-active .mdl-spinner__layer-2 {
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

.mdl-spinner__layer-3 {
  border-color: rgb(253,216,53); }
  .mdl-spinner--single-color .mdl-spinner__layer-3 {
    border-color: rgb(63,81,181); }
  .mdl-spinner.is-active .mdl-spinner__layer-3 {
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

.mdl-spinner__layer-4 {
  border-color: rgb(76,175,80); }
  .mdl-spinner--single-color .mdl-spinner__layer-4 {
    border-color: rgb(63,81,181); }
  .mdl-spinner.is-active .mdl-spinner__layer-4 {
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

@keyframes mdl-spinner__fill-unfill-rotate {
  12.5% {
    transform: rotate(135deg); }
  25% {
    transform: rotate(270deg); }
  37.5% {
    transform: rotate(405deg); }
  50% {
    transform: rotate(540deg); }
  62.5% {
    transform: rotate(675deg); }
  75% {
    transform: rotate(810deg); }
  87.5% {
    transform: rotate(945deg); }
  to {
    transform: rotate(1080deg); } }

/**
* HACK: Even though the intention is to have the current .mdl-spinner__layer-N
* at `opacity: 1`, we set it to `opacity: 0.99` instead since this forces Chrome
* to do proper subpixel rendering for the elements being animated. This is
* especially visible in Chrome 39 on Ubuntu 14.04. See:
*
* - https://github.com/Polymer/paper-spinner/issues/9
* - https://code.google.com/p/chromium/issues/detail?id=436255
*/
@keyframes mdl-spinner__layer-1-fade-in-out {
  from {
    opacity: 0.99; }
  25% {
    opacity: 0.99; }
  26% {
    opacity: 0; }
  89% {
    opacity: 0; }
  90% {
    opacity: 0.99; }
  100% {
    opacity: 0.99; } }

@keyframes mdl-spinner__layer-2-fade-in-out {
  from {
    opacity: 0; }
  15% {
    opacity: 0; }
  25% {
    opacity: 0.99; }
  50% {
    opacity: 0.99; }
  51% {
    opacity: 0; } }

@keyframes mdl-spinner__layer-3-fade-in-out {
  from {
    opacity: 0; }
  40% {
    opacity: 0; }
  50% {
    opacity: 0.99; }
  75% {
    opacity: 0.99; }
  76% {
    opacity: 0; } }

@keyframes mdl-spinner__layer-4-fade-in-out {
  from {
    opacity: 0; }
  65% {
    opacity: 0; }
  75% {
    opacity: 0.99; }
  90% {
    opacity: 0.99; }
  100% {
    opacity: 0; } }

/**
* Patch the gap that appear between the two adjacent
* div.mdl-spinner__circle-clipper while the spinner is rotating
* (appears on Chrome 38, Safari 7.1, and IE 11).
*
* Update: the gap no longer appears on Chrome when .mdl-spinner__layer-N's
* opacity is 0.99, but still does on Safari and IE.
*/
.mdl-spinner__gap-patch {
  position: absolute;
  box-sizing: border-box;
  top: 0;
  left: 45%;
  width: 10%;
  height: 100%;
  overflow: hidden;
  border-color: inherit; }
  .mdl-spinner__gap-patch .mdl-spinner__circle {
    width: 1000%;
    left: -450%; }

.mdl-spinner__circle-clipper {
  display: inline-block;
  position: relative;
  width: 50%;
  height: 100%;
  overflow: hidden;
  border-color: inherit; }
  .mdl-spinner__circle-clipper .mdl-spinner__circle {
    width: 200%; }

.mdl-spinner__circle {
  box-sizing: border-box;
  height: 100%;
  border-width: 3px;
  border-style: solid;
  border-color: inherit;
  border-bottom-color: transparent !important;
  border-radius: 50%;
  animation: none;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0; }
  .mdl-spinner__left .mdl-spinner__circle {
    border-right-color: transparent !important;
    transform: rotate(129deg); }
    .mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle {
      animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }
  .mdl-spinner__right .mdl-spinner__circle {
    left: -100%;
    border-left-color: transparent !important;
    transform: rotate(-129deg); }
    .mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle {
      animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

@keyframes mdl-spinner__left-spin {
  from {
    transform: rotate(130deg); }
  50% {
    transform: rotate(-5deg); }
  to {
    transform: rotate(130deg); } }

@keyframes mdl-spinner__right-spin {
  from {
    transform: rotate(-130deg); }
  50% {
    transform: rotate(5deg); }
  to {
    transform: rotate(-130deg); } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-switch {
  position: relative;
  z-index: 1;
  vertical-align: middle;
  display: inline-block;
  box-sizing: border-box;
  width: 100%;
  height: 24px;
  margin: 0;
  padding: 0;
  overflow: visible;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none; }
  .mdl-switch.is-upgraded {
    padding-left: 28px; }

.mdl-switch__input {
  line-height: 24px; }
  .mdl-switch.is-upgraded .mdl-switch__input {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -ms-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none; }

.mdl-switch__track {
  background: rgba(0,0,0, 0.26);
  position: absolute;
  left: 0;
  top: 5px;
  height: 14px;
  width: 36px;
  border-radius: 14px;
  cursor: pointer; }
  .mdl-switch.is-checked .mdl-switch__track {
    background: rgba(63,81,181, 0.5); }
  .mdl-switch__track fieldset[disabled] .mdl-switch, .mdl-switch.is-disabled .mdl-switch__track {
    background: rgba(0,0,0, 0.12);
    cursor: auto; }

.mdl-switch__thumb {
  background: rgb(250,250,250);
  position: absolute;
  left: 0;
  top: 2px;
  height: 20px;
  width: 20px;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: left; }
  .mdl-switch.is-checked .mdl-switch__thumb {
    background: rgb(63,81,181);
    left: 16px;
    box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12); }
  .mdl-switch__thumb fieldset[disabled] .mdl-switch, .mdl-switch.is-disabled .mdl-switch__thumb {
    background: rgb(189,189,189);
    cursor: auto; }

.mdl-switch__focus-helper {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-4px, -4px);
  display: inline-block;
  box-sizing: border-box;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: transparent; }
  .mdl-switch.is-focused .mdl-switch__focus-helper {
    box-shadow: 0 0 0px 20px rgba(0, 0, 0, 0.1);
    background-color: rgba(0, 0, 0, 0.1); }
  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {
    box-shadow: 0 0 0px 20px rgba(63,81,181, 0.26);
    background-color: rgba(63,81,181, 0.26); }

.mdl-switch__label {
  position: relative;
  cursor: pointer;
  font-size: 16px;
  line-height: 24px;
  margin: 0;
  left: 24px; }
  .mdl-switch__label fieldset[disabled] .mdl-switch, .mdl-switch.is-disabled .mdl-switch__label {
    color: rgb(189,189,189);
    cursor: auto; }

.mdl-switch__ripple-container {
  position: absolute;
  z-index: 2;
  top: -12px;
  left: -14px;
  box-sizing: border-box;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  cursor: pointer;
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(circle, white, black);
  transition-duration: 0.40s;
  transition-timing-function: step-end;
  transition-property: left; }
  .mdl-switch__ripple-container .mdl-ripple {
    background: rgb(63,81,181); }
  .mdl-switch__ripple-container fieldset[disabled] .mdl-switch, .mdl-switch.is-disabled .mdl-switch__ripple-container {
    cursor: auto; }
  fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple, .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {
    background: transparent; }
  .mdl-switch.is-checked .mdl-switch__ripple-container {
    left: 2px; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-tabs {
  display: block;
  width: 100%; }

.mdl-tabs__tab-bar {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-content: space-between;
  align-items: flex-start;
  height: 48px;
  padding: 0 0 0 0;
  margin: 0;
  border-bottom: 1px solid rgb(224,224,224); }

.mdl-tabs__tab {
  margin: 0;
  border: none;
  padding: 0 24px 0 24px;
  float: left;
  position: relative;
  display: block;
  text-decoration: none;
  height: 48px;
  line-height: 48px;
  text-align: center;
  font-weight: 500;
  font-size: 14px;
  text-transform: uppercase;
  color: rgba(0,0,0, 0.54);
  overflow: hidden; }
  .mdl-tabs.is-upgraded .mdl-tabs__tab.is-active {
    color: rgba(0,0,0, 0.87); }
  .mdl-tabs.is-upgraded .mdl-tabs__tab.is-active:after {
    height: 2px;
    width: 100%;
    display: block;
    content: " ";
    bottom: 0px;
    left: 0px;
    position: absolute;
    background: rgb(63,81,181);
    animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
    transition: all 1s cubic-bezier(0.4, 0, 1, 1); }
  .mdl-tabs__tab .mdl-tabs__ripple-container {
    display: block;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0px;
    top: 0px;
    z-index: 1;
    overflow: hidden; }
    .mdl-tabs__tab .mdl-tabs__ripple-container .mdl-ripple {
      background: rgb(63,81,181); }

.mdl-tabs__panel {
  display: block; }
  .mdl-tabs.is-upgraded .mdl-tabs__panel {
    display: none; }
  .mdl-tabs.is-upgraded .mdl-tabs__panel.is-active {
    display: block; }

@keyframes border-expand {
  0% {
    opacity: 0;
    width: 0; }
  100% {
    opacity: 1;
    width: 100%; } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-textfield {
  position: relative;
  font-size: 16px;
  display: inline-block;
  box-sizing: border-box;
  width: 300px;
  max-width: 100%;
  margin: 0;
  padding: 20px 0; }
  .mdl-textfield .mdl-button {
    position: absolute;
    bottom: 20px; }

.mdl-textfield--align-right {
  text-align: right; }

.mdl-textfield--full-width {
  width: 100%; }

.mdl-textfield--expandable {
  min-width: 32px;
  width: auto;
  min-height: 32px; }
  .mdl-textfield--expandable .mdl-button--icon {
    top: 16px; }

.mdl-textfield__input {
  border: none;
  border-bottom: 1px solid rgba(0,0,0, 0.12);
  display: block;
  font-size: 16px;
  font-family: "Helvetica", "Arial", sans-serif;
  margin: 0;
  padding: 4px 0;
  width: 100%;
  background: none;
  text-align: left;
  color: inherit; }
  .mdl-textfield__input[type="number"] {
    -moz-appearance: textfield; }
  .mdl-textfield__input[type="number"]::-webkit-inner-spin-button, .mdl-textfield__input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0; }
  .mdl-textfield.is-focused .mdl-textfield__input {
    outline: none; }
  .mdl-textfield.is-invalid .mdl-textfield__input {
    border-color: rgb(213,0,0);
    box-shadow: none; }
  fieldset[disabled] .mdl-textfield .mdl-textfield__input, .mdl-textfield.is-disabled .mdl-textfield__input {
    background-color: transparent;
    border-bottom: 1px dotted rgba(0,0,0, 0.12);
    color: rgba(0,0,0, 0.26); }

.mdl-textfield textarea.mdl-textfield__input {
  display: block; }

.mdl-textfield__label {
  bottom: 0;
  color: rgba(0,0,0, 0.26);
  font-size: 16px;
  left: 0;
  right: 0;
  pointer-events: none;
  position: absolute;
  display: block;
  top: 24px;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-align: left; }
  .mdl-textfield.is-dirty .mdl-textfield__label, .mdl-textfield.has-placeholder .mdl-textfield__label {
    visibility: hidden; }
  .mdl-textfield--floating-label .mdl-textfield__label {
    transition-duration: 0.2s;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
    transition: none; }
  fieldset[disabled] .mdl-textfield .mdl-textfield__label, .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {
    color: rgba(0,0,0, 0.26); }
  .mdl-textfield--floating-label.is-focused .mdl-textfield__label, .mdl-textfield--floating-label.is-dirty .mdl-textfield__label, .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
    color: rgb(63,81,181);
    font-size: 12px;
    top: 4px;
    visibility: visible; }
  .mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder .mdl-textfield__label, .mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label, .mdl-textfield--floating-label.has-placeholder .mdl-textfield__expandable-holder .mdl-textfield__label {
    top: -16px; }
  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
    color: rgb(213,0,0);
    font-size: 12px; }
  .mdl-textfield__label:after {
    background-color: rgb(63,81,181);
    bottom: 20px;
    content: '';
    height: 2px;
    left: 45%;
    position: absolute;
    transition-duration: 0.2s;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    visibility: hidden;
    width: 10px; }
  .mdl-textfield.is-focused .mdl-textfield__label:after {
    left: 0;
    visibility: visible;
    width: 100%; }
  .mdl-textfield.is-invalid .mdl-textfield__label:after {
    background-color: rgb(213,0,0); }

.mdl-textfield__error {
  color: rgb(213,0,0);
  position: absolute;
  font-size: 12px;
  margin-top: 3px;
  visibility: hidden;
  display: block; }
  .mdl-textfield.is-invalid .mdl-textfield__error {
    visibility: visible; }

.mdl-textfield__expandable-holder {
  display: inline-block;
  position: relative;
  margin-left: 32px;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  display: inline-block;
  max-width: 0.1px; }
  .mdl-textfield.is-focused .mdl-textfield__expandable-holder, .mdl-textfield.is-dirty .mdl-textfield__expandable-holder {
    max-width: 600px; }
  .mdl-textfield__expandable-holder .mdl-textfield__label:after {
    bottom: 0; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-tooltip {
  transform: scale(0);
  transform-origin: top center;
  z-index: 999;
  background: rgba(97,97,97, 0.9);
  border-radius: 2px;
  color: rgb(255,255,255);
  display: inline-block;
  font-size: 10px;
  font-weight: 500;
  line-height: 14px;
  max-width: 170px;
  position: fixed;
  top: -500px;
  left: -500px;
  padding: 8px;
  text-align: center; }

.mdl-tooltip.is-active {
  animation: pulse 200ms cubic-bezier(0, 0, 0.2, 1) forwards; }

.mdl-tooltip--large {
  line-height: 14px;
  font-size: 14px;
  padding: 16px; }

@keyframes pulse {
  0% {
    transform: scale(0);
    opacity: 0; }
  50% {
    transform: scale(0.99); }
  100% {
    transform: scale(1);
    opacity: 1;
    visibility: visible; } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/* Dialog */
.mdl-shadow--2dp {
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }

.mdl-shadow--3dp {
  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12); }

.mdl-shadow--4dp {
  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2); }

.mdl-shadow--6dp {
  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.2); }

.mdl-shadow--8dp {
  box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2); }

.mdl-shadow--16dp {
  box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2); }

.mdl-shadow--24dp {
  box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2); }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*
* NOTE: Some rules here are applied using duplicate selectors.
* This is on purpose to increase their specificity when applied.
* For example: `.mdl-cell--1-col-phone.mdl-cell--1-col-phone`
*/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-grid {
  display: flex;
  flex-flow: row wrap;
  margin: 0 auto 0 auto;
  align-items: stretch; }
  .mdl-grid.mdl-grid--no-spacing {
    padding: 0; }

.mdl-cell {
  box-sizing: border-box; }

.mdl-cell--top {
  align-self: flex-start; }

.mdl-cell--middle {
  align-self: center; }

.mdl-cell--bottom {
  align-self: flex-end; }

.mdl-cell--stretch {
  align-self: stretch; }

.mdl-grid.mdl-grid--no-spacing > .mdl-cell {
  margin: 0; }

.mdl-cell--order-1 {
  order: 1; }

.mdl-cell--order-2 {
  order: 2; }

.mdl-cell--order-3 {
  order: 3; }

.mdl-cell--order-4 {
  order: 4; }

.mdl-cell--order-5 {
  order: 5; }

.mdl-cell--order-6 {
  order: 6; }

.mdl-cell--order-7 {
  order: 7; }

.mdl-cell--order-8 {
  order: 8; }

.mdl-cell--order-9 {
  order: 9; }

.mdl-cell--order-10 {
  order: 10; }

.mdl-cell--order-11 {
  order: 11; }

.mdl-cell--order-12 {
  order: 12; }
@charset "UTF-8";.fancybox-enabled{overflow:hidden}.fancybox-enabled body{overflow:visible;height:100%}.fancybox-is-hidden{position:absolute;top:-9999px;left:-9999px;visibility:hidden}.fancybox-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:99993;-webkit-tap-highlight-color:transparent;backface-visibility:hidden;transform:translateZ(0)}.fancybox-container~.fancybox-container{z-index:99992}.fancybox-bg, .fancybox-inner, .fancybox-outer, .fancybox-stage{position:absolute;top:0;right:0;bottom:0;left:0}.fancybox-outer{overflow-y:auto;-webkit-overflow-scrolling:touch}.fancybox-bg{background:#1e1e1e;opacity:0;transition-duration:inherit;transition-property:opacity;transition-timing-function:cubic-bezier(.47,0,.74,.71)}.fancybox-is-open .fancybox-bg{opacity:.87;transition-timing-function:cubic-bezier(.22,.61,.36,1)}.fancybox-caption-wrap, .fancybox-infobar, .fancybox-toolbar{position:absolute;direction:ltr;z-index:99997;opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s linear .25s;box-sizing:border-box}.fancybox-show-caption .fancybox-caption-wrap, .fancybox-show-infobar .fancybox-infobar, .fancybox-show-toolbar .fancybox-toolbar{opacity:1;visibility:visible;transition:opacity .25s,visibility 0s}.fancybox-infobar{top:0;left:50%;margin-left:-79px}.fancybox-infobar__body{display:inline-block;width:70px;line-height:44px;font-size:13px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;text-align:center;color:#ddd;background-color:rgba(30,30,30,.7);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:subpixel-antialiased}.fancybox-toolbar{top:0;right:0}.fancybox-stage{overflow:hidden;direction:ltr;z-index:99994;-webkit-transform:translateZ(0)}.fancybox-slide{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;overflow:auto;outline:none;white-space:normal;box-sizing:border-box;text-align:center;z-index:99994;-webkit-overflow-scrolling:touch;display:none;backface-visibility:hidden;transition-property:transform,opacity;transform-style:preserve-3d}.fancybox-slide:before{content:"";display:inline-block;vertical-align:middle;height:100%;width:0}.fancybox-is-sliding .fancybox-slide, .fancybox-slide--current, .fancybox-slide--next, .fancybox-slide--previous{display:block}.fancybox-slide--image{overflow:visible}.fancybox-slide--image:before{display:none}.fancybox-slide--video .fancybox-content, .fancybox-slide--video iframe{background:#000}.fancybox-slide--map .fancybox-content, .fancybox-slide--map iframe{background:#e5e3df}.fancybox-slide--next{z-index:99995}.fancybox-slide>*{display:inline-block;position:relative;padding:24px;margin:44px 0;border-width:0;vertical-align:middle;text-align:left;background-color:#fff;overflow:auto;box-sizing:border-box}.fancybox-slide .fancybox-image-wrap{position:absolute;top:0;left:0;margin:0;padding:0;border:0;z-index:99995;background:transparent;cursor:default;overflow:visible;transform-origin:top left;background-size:100% 100%;background-repeat:no-repeat;backface-visibility:hidden}.fancybox-can-zoomOut .fancybox-image-wrap{cursor:zoom-out}.fancybox-can-zoomIn .fancybox-image-wrap{cursor:zoom-in}.fancybox-can-drag .fancybox-image-wrap{cursor:grab}.fancybox-is-dragging .fancybox-image-wrap{cursor:grabbing}.fancybox-image, .fancybox-spaceball{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;border:0;max-width:none;max-height:none}.fancybox-spaceball{z-index:1}.fancybox-slide--iframe .fancybox-content{padding:0;width:80%;height:80%;max-width:calc(100% - 100px);max-height:calc(100% - 88px);overflow:visible;background:#fff}.fancybox-iframe{display:block;padding:0;border:0;height:100%}.fancybox-error, .fancybox-iframe{margin:0;width:100%;background:#fff}.fancybox-error{padding:40px;max-width:380px;cursor:default}.fancybox-error p{margin:0;padding:0;color:#444;font:16px/20px Helvetica Neue,Helvetica,Arial,sans-serif}.fancybox-close-small{position:absolute;top:0;right:0;width:44px;height:44px;padding:0;margin:0;border:0;border-radius:0;outline:none;background:transparent;z-index:10;cursor:pointer}.fancybox-close-small:after{content:"×";position:absolute;top:5px;right:5px;width:30px;height:30px;font:20px/30px Arial,Helvetica Neue,Helvetica,sans-serif;color:#888;font-weight:300;text-align:center;border-radius:50%;border-width:0;background:#fff;transition:background .25s;box-sizing:border-box;z-index:2}.fancybox-close-small:focus:after{outline:1px dotted #888}.fancybox-close-small:hover:after{color:#555;background:#eee}.fancybox-slide--iframe .fancybox-close-small{top:0;right:-44px}.fancybox-slide--iframe .fancybox-close-small:after{background:transparent;font-size:35px;color:#aaa}.fancybox-slide--iframe .fancybox-close-small:hover:after{color:#fff}.fancybox-caption-wrap{bottom:0;left:0;right:0;padding:60px 30px 0;background:linear-gradient(180deg,transparent 0,rgba(0,0,0,.1) 20%,rgba(0,0,0,.2) 40%,rgba(0,0,0,.6) 80%,rgba(0,0,0,.8));pointer-events:none}.fancybox-caption{padding:30px 0;border-top:1px solid hsla(0,0%,100%,.4);font-size:14px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;color:#fff;line-height:20px;-webkit-text-size-adjust:none}.fancybox-caption a, .fancybox-caption button, .fancybox-caption select{pointer-events:all}.fancybox-caption a{color:#fff;text-decoration:underline}.fancybox-button{display:inline-block;position:relative;margin:0;padding:0;border:0;width:44px;height:44px;line-height:44px;text-align:center;background:transparent;color:#ddd;border-radius:0;cursor:pointer;vertical-align:top;outline:none}.fancybox-button[disabled]{cursor:default;pointer-events:none}.fancybox-button, .fancybox-infobar__body{background:rgba(30,30,30,.6)}.fancybox-button:hover:not([disabled]){color:#fff;background:rgba(0,0,0,.8)}.fancybox-button:after, .fancybox-button:before{content:"";pointer-events:none;position:absolute;background-color:currentColor;color:currentColor;opacity:.9;box-sizing:border-box;display:inline-block}.fancybox-button[disabled]:after, .fancybox-button[disabled]:before{opacity:.3}.fancybox-button--left:after, .fancybox-button--right:after{top:18px;width:6px;height:6px;background:transparent;border-top:2px solid currentColor;border-right:2px solid currentColor}.fancybox-button--left:after{left:20px;transform:rotate(-135deg)}.fancybox-button--right:after{right:20px;transform:rotate(45deg)}.fancybox-button--left{border-bottom-left-radius:5px}.fancybox-button--right{border-bottom-right-radius:5px}.fancybox-button--close:after, .fancybox-button--close:before{content:"";display:inline-block;position:absolute;height:2px;width:16px;top:calc(50% - 1px);left:calc(50% - 8px)}.fancybox-button--close:before{transform:rotate(45deg)}.fancybox-button--close:after{transform:rotate(-45deg)}.fancybox-arrow{position:absolute;top:50%;margin:-50px 0 0;height:100px;width:54px;padding:0;border:0;outline:none;background:none;cursor:pointer;z-index:99995;opacity:0;-webkit-user-select:none;user-select:none;transition:opacity .25s}.fancybox-arrow:after{content:"";position:absolute;top:28px;width:44px;height:44px;background-color:rgba(30,30,30,.8);background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSI0OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgNGwtMS40MSAxLjQxTDE2LjE3IDExSDR2MmgxMi4xN2wtNS41OCA1LjU5TDEyIDIwbDgtOHoiLz48L3N2Zz4=);background-repeat:no-repeat;background-position:50%;background-size:24px 24px}.fancybox-arrow--right{right:0}.fancybox-arrow--left{left:0;transform:scaleX(-1)}.fancybox-arrow--left:after, .fancybox-arrow--right:after{left:0}.fancybox-show-nav .fancybox-arrow{opacity:.6}.fancybox-show-nav .fancybox-arrow[disabled]{opacity:.3}.fancybox-loading{border:6px solid hsla(0,0%,39%,.4);border-top:6px solid hsla(0,0%,100%,.6);border-radius:100%;height:50px;width:50px;animation:a .8s infinite linear;background:transparent;position:absolute;top:50%;left:50%;margin-top:-25px;margin-left:-25px;z-index:99999}.fancybox-animated{transition-timing-function:cubic-bezier(0,0,.25,1)}.fancybox-fx-slide.fancybox-slide--previous{transform:translate3d(-100%,0,0);opacity:0}.fancybox-fx-slide.fancybox-slide--next{transform:translate3d(100%,0,0);opacity:0}.fancybox-fx-slide.fancybox-slide--current{transform:translateZ(0);opacity:1}.fancybox-fx-fade.fancybox-slide--next, .fancybox-fx-fade.fancybox-slide--previous{opacity:0;transition-timing-function:cubic-bezier(.19,1,.22,1)}.fancybox-fx-fade.fancybox-slide--current{opacity:1}.fancybox-fx-zoom-in-out.fancybox-slide--previous{transform:scale3d(1.5,1.5,1.5);opacity:0}.fancybox-fx-zoom-in-out.fancybox-slide--next{transform:scale3d(.5,.5,.5);opacity:0}.fancybox-fx-zoom-in-out.fancybox-slide--current{transform:scaleX(1);opacity:1}.fancybox-fx-rotate.fancybox-slide--previous{transform:rotate(-1turn);opacity:0}.fancybox-fx-rotate.fancybox-slide--next{transform:rotate(1turn);opacity:0}.fancybox-fx-rotate.fancybox-slide--current{transform:rotate(0deg);opacity:1}.fancybox-fx-circular.fancybox-slide--previous{transform:scale3d(0,0,0) translate3d(-100%,0,0);opacity:0}.fancybox-fx-circular.fancybox-slide--next{transform:scale3d(0,0,0) translate3d(100%,0,0);opacity:0}.fancybox-fx-circular.fancybox-slide--current{transform:scaleX(1) translateZ(0);opacity:1}.fancybox-fx-tube.fancybox-slide--previous{transform:translate3d(-100%,0,0) scale(.1) skew(-10deg)}.fancybox-fx-tube.fancybox-slide--next{transform:translate3d(100%,0,0) scale(.1) skew(10deg)}.fancybox-fx-tube.fancybox-slide--current{transform:translateZ(0) scale(1)}.fancybox-button--fullscreen:before{width:15px;height:11px;left:calc(50% - 7px);top:calc(50% - 6px);border:2px solid;background:none}.fancybox-button--pause:before, .fancybox-button--play:before{top:calc(50% - 6px);left:calc(50% - 4px);background:transparent}.fancybox-button--play:before{width:0;height:0;border-top:6px inset transparent;border-bottom:6px inset transparent;border-left:10px solid;border-radius:1px}.fancybox-button--pause:before{width:7px;height:11px;border-style:solid;border-width:0 2px}.fancybox-button--thumbs, .fancybox-thumbs{display:none}

.fancybox-slide script{
  display: none;
}
.fancybox-slide--iframe .fancybox-close-small{
  right: 0;
}
.fancybox-blocVideo{
  position: relative;
  cursor: pointer;
  display: block;
}
.fancybox-blocVideo:after{
  content: " ";
  background-image: url('../../assets/images/common/buttonPlay.png');
  position: absolute;
  top: 50%;
  left: 50%;
  width: 5.625rem;
  height: 4rem;
  margin-left: -2.8125rem;
  margin-top: -2rem;
  z-index: 100;
}

.hasCartouche.fancybox-blocVideo:after{
  top: 42%;
}

.fancybox-slide--iframe .fancybox-content{
  min-height: 12.5rem;
}

/* hack safari pour gérer le pb de scroll du contenu derrière la popin lorsqu'une fancybox est ouverte */

button.fancybox-close-small:after{
  font-size: 1.75rem;
}

.lightCottageDetails .fancybox-bg {
  transition: none !important;
  opacity: .5;
}

.lightCottageDetails .fancybox-slide--iframe {
  text-align: right;
}

.lightCottageDetails .fancybox-slide--iframe:before {
  display: none;
}

.lightCottageDetails .fancybox-slide--iframe .fancybox-content {
  max-height: none;
  max-width: none;
  width: 100vw !important;
}

.lightCottageDetails .fancybox-slide {
  left: auto;
  right: -100%;
  transition: .7s;
  transition-timing-function: ease;
  width: 100vw;
}

.lightCottageDetails .fancybox-slide.fancybox-slide--complete {
  right: 0;
}

.fancybox-arrow[disabled] {
  opacity: 0.3 !important;
}

.fancybox-inner .fancybox-arrow {
  display: block;
  background-color: #ffffff;
  border-radius: 50%;
  width: 2.25rem;
  height: 2.25rem;
  transform: translateY(-50%);
  box-shadow: 0 0 8.8px 0.2px rgba(0, 0, 0, 0.13);
  vertical-align: middle;
  opacity: 1;
  overflow: hidden;
  top: 50%;
  margin: 0;
  transition: color 0.5s ease;
}

.fancybox-inner .fancybox-arrow[disabled~="true"]{
  opacity: 0.6;
}

.fancybox-inner .fancybox-arrow:hover{
  color: #78B13E;
}

.fancybox-inner .fancybox-arrow::after{
  font-family: "icons";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-feature-settings: normal;
  font-variant: normal;
  font-weight: normal;
  text-decoration: none;
  text-transform: none;
  display: inline-block;
  position: initial;
  top: 1.75rem;
  width: 2.375rem;
  height: 0;
  font-size: 1.25rem;
  line-height: 1.5;
}

.fancybox-inner .fancybox-arrow--right::after{
  width: 2.375rem;
}

.fancybox-inner .fancybox-arrow--left::after{
  width: 2.25rem;
}

.fancybox-inner .fancybox-arrow--right{
  right: 0.9375rem;
}

.fancybox-inner .fancybox-arrow--left{
  left: 0.9375rem;
}

.fancybox-toolbar {
  opacity: 1 !important;
  visibility: visible !important;
}

.fancybox-html5-container{
  padding: 0;
  width: 80%;
  height: 80%;
  max-width: calc(100% - 100px);
  max-height: calc(100% - 88px);
  overflow: visible;
  min-height: 12.5rem;
}

.fancybox-html5-content{
  margin: 0;
  width: 100%;
  background: black;
  padding: 0;
  border: 0;
  height: 100%;
  vertical-align: middle;
}

.fancybox-html5-content video{
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  max-height: 100%;
  max-width: 100%;
  margin: auto;
  background: black;
}
html {
  box-sizing: border-box;
  font-size: 1rem;/* to reset mdl values */
}

*, *:before, *:after {
  box-sizing: inherit;
}

body {
  color: #3D4246;
  font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
  overflow-x: hidden;
  font-weight:normal;
}

p, label, input, button, li, a, span {
  margin: 0;
  padding: 0;
  font-size: 13px;
}

p{
  line-height: 1rem;
}

option{
  font-size: 13px;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  color: #9ea0a2;
}

a{outline: none;color: #00733A;text-decoration:none;font-family: 'BentonSans', Arial, Helvetica, sans-serif; font-weight: inherit;}

ul{
  margin: 0;
  padding: 0;
  font-size: 0;
  list-style: none;
}

button{
  color: #3D4246;
}

button:focus {
  outline: none;
}

img {
  width: 100%;
  height: auto;
}

img:not([src]) {
  visibility: hidden;
}

@-moz-document url-prefix() {
  img:-moz-loading {
    visibility: hidden;
  }
}

h1, h2, h3, h4, h5, h6{
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  font-weight: 500;
}

h1, .h1-like{
  font-size: 3.75rem;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
}

h2, .h2-like{
  font-size: 2.8125rem;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  line-height: 3.25rem;
}

h3, .h3-like{
  font-size: 1.875rem;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  line-height: 1.2em;
  margin: 1em 0;
}

h4, .h4-like{
  font-size:1.125rem;
  font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  line-height: 1.25rem;
  margin: 0 0 1.25rem;
}

.dottedBackground{
  background: url(../../assets/images/backgrounds/background-points.png);
}

.u-promoInfo{
  margin : 0.625rem 0;
  font-family: 'DomaineText-Italic', Arial, Helvetica, sans-serif;
}

.u-relative{position:relative;}
.u-block{display: block;}
.u-mainFont{font-family: 'BentonSans', Arial, Helvetica, sans-serif;}
.u-mainFontMedium{font-family: 'BentonSans', Arial, Helvetica, sans-serif;font-weight:500;}
.u-mainFontBold{font-family: 'BentonSans', Arial, Helvetica, sans-serif;font-weight:700;}
.u-italic{font-family: 'DomaineText-Italic', Arial, Helvetica, sans-serif;}
.u-italicMedium{font-family: 'DomaineText-Italic', Arial, Helvetica, sans-serif;font-weight:500;}
.u-italicBold{font-family: 'DomaineText-Italic', Arial, Helvetica, sans-serif;font-weight:700;}
.u-strong{font-weight: bold;}
.u-color--green{color: #00733A;}
.u-color--red{color: #D7532C;}
.u-color--yellowSand{color: #ECCE52;}
.u-color--white{color: white;}
.u-displayTable{display:table;}
.u-displayTableCell{display:table-cell;}
.u-displayTableRow{display:table-row;}
.u-disabled{
  opacity: 0.5;
  pointer-events: none;
  cursor: default;
}
.u-simpleDisabled{
  pointer-events: none;
  cursor: default;
}
/* custom ol counters, to add css style effect to counters */
.u-customCounter{margin-left: 0;padding-right: 0;list-style-type: none;}
.u-customCounter li{counter-increment: step-counter;}
.u-customCounter li:before{
  content: counter(step-counter)".";
  margin-right: 5px;
  font-style: italic;
}
.u-iconAlert span {
  display: inline-block;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 0.75rem;
  line-height: 1.5rem;
  color: #D7532C;
  font-weight: bold;
  padding: 0 0.75rem 0 1.875rem;
  position: relative;
  border-radius: 0.9375rem;
}
.u-iconAlert span:before {
  content: "!";
  position: absolute;
  top: 0;
  left: 0;
  line-height: 1.0625rem;
  height: 1.5rem;
  width: 1.5rem;
  border: 0.25rem solid #D7532C;
  background: white;
  border-radius: 50%;
  text-align: center;
}

.commonLayout{
  font-size: 0;
  padding: 0 7%;
}

/*   @media screen and (min-width: 1200px) and (max-width: 1400px) {
  padding: 0 1%;
}
 */

.engineOutside .searchDomain-top .commonLayout {
  padding: 0;
}

.cpe-Icon.cpe-Icon--close:hover::before, .cpe-Icon.cpe-Icon--information:hover::before{
  color: #78B13E;
}

.desktopPaddingContainer{
  font-size: 0;
}

/*** LIGHTVIEW ***/
#lightviewContainer{
  margin : 1.25rem 0rem;
}

.pseudoIco-alert:before{
  content: "!";
  font-family: arial, sans-serif;
  font-size: 0.875rem;
  font-weight: bold;
  display: inline-block;
  height: 1.5rem;
  width: 1.5rem;
  text-align: center;
  line-height: 1.125rem;
  margin-right: 0.625rem;
  border-radius: 50%;
  border: 3px #D7532C solid;
}

/*** Safari fixes ***/
_::-webkit-full-page-media .deviceIsDesktop .searchForm-sitePin:before, _:future .deviceIsDesktop .searchForm-sitePin:before, :root .deviceIsDesktop .searchForm-sitePin:before {
  margin-top: 0.3125rem;
}
_::-webkit-full-page-media .deviceIsDesktop .iconWaysToDine-picto, _:future .deviceIsDesktop .iconWaysToDine-picto, :root .deviceIsDesktop .iconWaysToDine-picto {
  margin-top: 1.25rem;
}
_::-webkit-full-page-media .deviceIsDesktop .cp-eatDrinkRestaurants .iconWaysToDine-picto, _:future .deviceIsDesktop .cp-eatDrinkRestaurants .iconWaysToDine-picto, :root .deviceIsDesktop .cp-eatDrinkRestaurants .iconWaysToDine-picto {
  margin-top: 1.875rem;
}
_::-webkit-full-page-media .deviceIsDesktop .iconWaysToDine-text, _:future .deviceIsDesktop .iconWaysToDine-text, :root .deviceIsDesktop .iconWaysToDine-text {
  margin-top: 10%;
}
_::-webkit-full-page-media .deviceIsDesktop .thematicsList .thematicIcon, _:future .deviceIsDesktop .thematicsList .thematicIcon, :root .deviceIsDesktop .thematicsList .thematicIcon {
  top: -20%;
}
_::-webkit-full-page-media .deviceIsDesktop .footer-news #newsletterForm .inputContainer, _:future .deviceIsDesktop .footer-news #newsletterForm .inputContainer, :root .deviceIsDesktop .footer-news #newsletterForm .inputContainer {
  height: 2.5rem;
}
_::-webkit-full-page-media .deviceIsDesktop .headband-content .domain-playVideoBtn .cpe-Icon:before, _::-webkit-full-page-media .deviceIsDesktop .headband-content .domain-openVirtualTourBtn  .cpe-Icon:before, _:future .deviceIsDesktop .headband-content .domain-playVideoBtn .cpe-Icon:before, _:future .deviceIsDesktop .headband-content .domain-openVirtualTourBtn  .cpe-Icon:before, :root .deviceIsDesktop .headband-content .domain-playVideoBtn .cpe-Icon:before, :root .deviceIsDesktop .headband-content .domain-openVirtualTourBtn  .cpe-Icon:before {
  margin-top: 0.5rem;
}

/* fixing IOS mdl effect */
.mdl-ripple {
  background: #000; opacity: 0.001;
}
.cookiesBanner {
  background-color: rgba(29, 29, 29, 0.8);
  color: #FFF;
  width: 100%;
  font-size: 0.8125rem;
  padding: 0.9375rem 0;
  position: fixed;
  z-index: 100;
  left: 0;
  bottom: 0;
  line-height: 1.4;
  text-align: center;
  z-index: 1099;
  display: none;
}
.cookiesBanner-text {
  display: inline-block;
  width: 55%;
  vertical-align: middle;
  margin-right: 1.875rem;
}
.cookiesBanner-text span {
  font-size: 0.6875rem;
}
.cookiesBanner-text p {
  font-weight: bold;
}
.cookiesBanner-text a {
  color: #FFF;
  font-size: 0.6875rem;
  text-decoration: underline;
}
.cookiesBanner button {
  background: #FFF;
  color: #3D4246;
  font-weight: bold;
  padding: 0.125rem 1.25rem;
  font-size: 0.75rem;
  vertical-align: middle;
  border-radius: 0.9375rem;
  border: 0.125rem solid white;
}
.cookiesBanner button:hover {
  background: transparent;
  color: white;
}

body {
  padding: 0 3.75vw;
}

.u-shadowBox{box-shadow: 0px 2px 7px rgba(0,0,0,.2);}
.u-center{text-align:center;}

/*** CHEVRON GENERIQUES QUI CHANGE D'ASPECT A L'OUVERTURE ***/
.u-cpeIcon--chevron{
  font-size: 0.9375rem;
}

.errorMsg{
  color: #D7532C;
  margin-top: 0.3125rem;
}

@media (max-width: 2000px) {

  .r-maxXL--1of12 {
    width: 8.33333%;
  }

  .r-maxXL--1of10 {
    width: 10%;
  }

  .r-maxXL--1of8 {
    width: 12.5%;
  }

  .r-maxXL--1of6, .r-maxXL--2of12 {
    width: 16.66667%;
  }

  .r-maxXL--1of5, .r-maxXL--2of10 {
    width: 20%;
  }

  .r-maxXL--1of4, .r-maxXL--2of8, .r-maxXL--3of12 {
    width: 25%;
  }

  .r-maxXL--3of10 {
    width: 30%;
  }

  .r-maxXL--1of3, .r-maxXL--2of6, .r-maxXL--4of12 {
    width: 33.33333%;
  }

  .r-maxXL--3of8 {
    width: 37.5%;
  }

  .r-maxXL--2of5, .r-maxXL--4of10 {
    width: 40%;
  }

  .r-maxXL--5of12 {
    width: 41.66667%;
  }

  .r-maxXL--1of2, .r-maxXL--2of4, .r-maxXL--3of6, .r-maxXL--4of8, .r-maxXL--5of10, .r-maxXL--6of12 {
    width: 50%;
  }

  .r-maxXL--7of12 {
    width: 58.33333%;
  }

  .r-maxXL--3of5, .r-maxXL--6of10 {
    width: 60%;
  }

  .r-maxXL--5of8 {
    width: 62.5%;
  }

  .r-maxXL--2of3, .r-maxXL--4of6, .r-maxXL--8of12 {
    width: 66.66667%;
  }

  .r-maxXL--7of10 {
    width: 70%;
  }

  .r-maxXL--3of4, .r-maxXL--6of8, .r-maxXL--9of12 {
    width: 75%;
  }

  .r-maxXL--4of5, .r-maxXL--8of10 {
    width: 80%;
  }

  .r-maxXL--5of6, .r-maxXL--10of12 {
    width: 83.33333%;
  }

  .r-maxXL--7of8 {
    width: 87.5%;
  }

  .r-maxXL--9of10 {
    width: 90%;
  }

  .r-maxXL--11of12 {
    width: 91.66667%;
  }

  .r-maxXL--1of1, .r-maxXL--2of2, .r-maxXL--3of3, .r-maxXL--4of4, .r-maxXL--5of5, .r-maxXL--6of6, .r-maxXL--8of8, .r-maxXL--10of10, .r-maxXL--12of12 {
    width: 100%;
  }

  .r-maxXL--hidden {
    display: none;
  }

  .r-maxXL--visible {
    display: inline-block;
  }

  .r-maxL--1of12 {
    width: 8.33333%;
  }

  .r-maxL--1of10 {
    width: 10%;
  }

  .r-maxL--1of8 {
    width: 12.5%;
  }

  .r-maxL--1of6, .r-maxL--2of12 {
    width: 16.66667%;
  }

  .r-maxL--1of5, .r-maxL--2of10 {
    width: 20%;
  }

  .r-maxL--1of4, .r-maxL--2of8, .r-maxL--3of12 {
    width: 25%;
  }

  .r-maxL--3of10 {
    width: 30%;
  }

  .r-maxL--1of3, .r-maxL--2of6, .r-maxL--4of12 {
    width: 33.33333%;
  }

  .r-maxL--3of8 {
    width: 37.5%;
  }

  .r-maxL--2of5, .r-maxL--4of10 {
    width: 40%;
  }

  .r-maxL--5of12 {
    width: 41.66667%;
  }

  .r-maxL--1of2, .r-maxL--2of4, .r-maxL--3of6, .r-maxL--4of8, .r-maxL--5of10, .r-maxL--6of12 {
    width: 50%;
  }

  .r-maxL--7of12 {
    width: 58.33333%;
  }

  .r-maxL--3of5, .r-maxL--6of10 {
    width: 60%;
  }

  .r-maxL--5of8 {
    width: 62.5%;
  }

  .r-maxL--2of3, .r-maxL--4of6, .r-maxL--8of12 {
    width: 66.66667%;
  }

  .r-maxL--7of10 {
    width: 70%;
  }

  .r-maxL--3of4, .r-maxL--6of8, .r-maxL--9of12 {
    width: 75%;
  }

  .r-maxL--4of5, .r-maxL--8of10 {
    width: 80%;
  }

  .r-maxL--5of6, .r-maxL--10of12 {
    width: 83.33333%;
  }

  .r-maxL--7of8 {
    width: 87.5%;
  }

  .r-maxL--9of10 {
    width: 90%;
  }

  .r-maxL--11of12 {
    width: 91.66667%;
  }

  .r-maxL--1of1, .r-maxL--2of2, .r-maxL--3of3, .r-maxL--4of4, .r-maxL--5of5, .r-maxL--6of6, .r-maxL--8of8, .r-maxL--10of10, .r-maxL--12of12 {
    width: 100%;
  }

  .r-maxL--hidden {
    display: none;
  }

  .r-maxL--visible {
    display: inline-block;
  }
}

@media (max-width: 1199px) {

  .r-maxM--1of12 {
    width: 8.33333%;
  }

  .r-maxM--1of10 {
    width: 10%;
  }

  .r-maxM--1of8 {
    width: 12.5%;
  }

  .r-maxM--1of6, .r-maxM--2of12 {
    width: 16.66667%;
  }

  .r-maxM--1of5, .r-maxM--2of10 {
    width: 20%;
  }

  .r-maxM--1of4, .r-maxM--2of8, .r-maxM--3of12 {
    width: 25%;
  }

  .r-maxM--3of10 {
    width: 30%;
  }

  .r-maxM--1of3, .r-maxM--2of6, .r-maxM--4of12 {
    width: 33.33333%;
  }

  .r-maxM--3of8 {
    width: 37.5%;
  }

  .r-maxM--2of5, .r-maxM--4of10 {
    width: 40%;
  }

  .r-maxM--5of12 {
    width: 41.66667%;
  }

  .r-maxM--1of2, .r-maxM--2of4, .r-maxM--3of6, .r-maxM--4of8, .r-maxM--5of10, .r-maxM--6of12 {
    width: 50%;
  }

  .r-maxM--7of12 {
    width: 58.33333%;
  }

  .r-maxM--3of5, .r-maxM--6of10 {
    width: 60%;
  }

  .r-maxM--5of8 {
    width: 62.5%;
  }

  .r-maxM--2of3, .r-maxM--4of6, .r-maxM--8of12 {
    width: 66.66667%;
  }

  .r-maxM--7of10 {
    width: 70%;
  }

  .r-maxM--3of4, .r-maxM--6of8, .r-maxM--9of12 {
    width: 75%;
  }

  .r-maxM--4of5, .r-maxM--8of10 {
    width: 80%;
  }

  .r-maxM--5of6, .r-maxM--10of12 {
    width: 83.33333%;
  }

  .r-maxM--7of8 {
    width: 87.5%;
  }

  .r-maxM--9of10 {
    width: 90%;
  }

  .r-maxM--11of12 {
    width: 91.66667%;
  }

  .r-maxM--1of1, .r-maxM--2of2, .r-maxM--3of3, .r-maxM--4of4, .r-maxM--5of5, .r-maxM--6of6, .r-maxM--8of8, .r-maxM--10of10, .r-maxM--12of12 {
    width: 100%;
  }

  .r-maxM--hidden {
    display: none;
  }

  .r-maxM--visible {
    display: inline-block;
  }

  .r-maxM--1of2b {
    width: 49.99%;
  }

  .u-Visible-desktop {
    display: none !important;
  }

  .blockNew .blockNewItem {
    padding: 0.625rem;
    line-height: 0.625rem;
  }

  .form-label:active {
    color: #78B13E;
  }

  .form-checkboxLabel:active:before {
    border-color: #78B13E;
  }

  .header-logo {
    top: 50%;
    transform: translate(-50%, -50%);
  }

  .header-navigation {
    position: absolute;
    background-color: white;
    list-style: none;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    transform: translate(-100%);
    transition-duration: 0s;
    padding-top: 4.0625rem;
    z-index: 905;
  }

  .header-navigation .header-navItem:not(:last-child) {
    visibility: hidden;
  }

  .header-navItem {
    padding: 0;
    padding-left: 1rem;
    border-bottom: 1px solid #9ea0a2;
  }

  .header-navItem a {
    display: block;
    padding: 1.3125rem 1.25rem;
    font-size: 1.25rem;
    position: relative;
  }

  .header-navItem a .cpe-Icon {
    position: absolute;
    right: 7%;
    top: 50%;
    transform: translateY(-46%);
  }

  .header-navItem a.active {
    background: #00733A;
    color: #ffffff;
  }

  .header-navItem a.active .cpe-Icon--menu_plus {
    display: none;
  }

  .header-navItem a.active:after {
    margin-top: -0.25rem;
  }

  .header-navItem a.header-arrow--display:after {
    content: "";
  }

  .header-navItem.header-navItem--other {
    padding-left: 0;
  }

  .header-navItem.header-navItem--other a:after {
    display: none;
  }

  .header-navItem a {
    font-weight: 500;
  }

  .header-navItem--lastminute.header-navItem--step1.header-navItem a .cpe-Icon--last_minute {
    position: static;
    transform: translateY(-13%);
  }

  .header-navItem--other {
    right: -100%;
    top: 2.25rem;
  }

  .header-navItem--other.header-navItem {
    border: 0;
  }

  .header-navItem--other .header-navBlockInfo {
    float: left;
  }

  .header-navItem--other .header-navBlockInfoItem--faq, .header-navItem--other .header-navBlockInfoItem--besoin_d_aide {
    display: none;
  }

  .header-navItem--other .header-navBlockInfoItem--tel {
    overflow: hidden;
    padding: 0.3125rem 0.875rem 0.3125rem 2.75rem;
    font-size: 2.75rem;
    width: auto;
    position: relative;
    display: inline-block;
    border: 1px #144486 solid;
    border-radius: 1.6875rem;
    line-height: 1.25rem;
    text-align: left;
  }

  .header-navItem--other .header-navBlockInfoItem--tel .cpe-Icon {
    color: #144486;
    font-size: 1.625rem;
    position: absolute;
    left: 0.625rem;
    right: auto;
    top: 50%;
    transform: translateY(-50%);
  }

  .header-navItem--other .header-navBlockInfoItem--tel .cpe-Icon:before {
    color: #144486;
  }

  .header-navItem--other .header-navBlockInfoItem--tel span {
    display: block;
    line-height: 1rem;
    font-size: 0.8125rem;
    color: #144486;
  }

  .header-navItem--other .header-navBlockInfo {
    display: inline-block;
  }

  .header-navItem--other .header-navBlockOther {
    overflow: hidden;
    text-align: center;
    padding-top: 0;
    margin-left: 0;
    margin-top: 1.25rem;
  }

  .header-navItem--other .header-navBlockOther .button--whiteGreen {
    position: relative;
    width: 1.5rem;
    height: 1.5rem;
    padding: 0;
    vertical-align: middle;
  }

  .header-navItem--other .header-navBlockOther .buttonContainer {
    padding: 0.3125rem;
    font-size: 2.125rem;
    width: auto;
    height: 3.125rem;
    position: relative;
  }

  .header-navItem--other .header-navBlockOther .buttonContainer .cpe-Icon {
    position: static;
    left: auto;
    right: auto;
    font-size: 0.875rem;
    transform: none;
  }

  .header-offersLink--color {
    color: #00733A;
  }

  .header-offersLink--color:after {
    content: none;
  }

  .header-subNav .header-section {
    background-color: #f9fbfb;
  }

  .header-subNav .header-section.ui-tabs-active a.header-linksLevel2 {
    color: #00733A;
  }

  .header-subNav .header-linksLevel2 {
    padding-left: 3.125rem;
    font-size: 1rem;
  }

  .header-subNav .header-linksLevel2 .cpe-Icon {
    top: 50%;
    transform: translateY(-46%);
  }

  .header-subNav .header-linksLevel2.toggle-active {
    background: inherit;
    color: #00733A;
  }

  .headerNav-toggle:before {
    font-size: 1.875rem;
    color: #00733A;
  }

  .headerNav-toggle.cpe-Icon {
    position: absolute;
    top: 50%;
    transform: translateY(-46%);
  }

  @media (max-width: 767px) {

    .headerNav-toggle:before {
      font-size: 1.5625rem;
    }
  }

  .header-linkBorder .header-linksLevel3 {
    background: inherit;
    color: #3D4246;
    padding-left: 5.625rem;
    font-size: 1rem;
  }

  .header-section:first-child {
    border-top: 0.0625rem solid #9ea0a2;
  }

  .header-section:first-child a {
    border-top: none;
  }

  .header-link--borderBottom {
    border-bottom: 0.0625rem solid #9ea0a2;
  }

  .header-linklevel2--borderTop {
    border-top: 0.0625rem solid #ffffff;
  }

  .header-link1Line--paddingBottom {
    padding-bottom: 0rem;
  }

  .header-offers {
    padding: 0;
  }

  .header-offers .header-subNav a {
    color: #ffffff;
  }

  .header-offers .header-linksLevel2 {
    background-color: #f9fbfb;
    color: #3D4246;
  }

  .headerNav-container.opened .header-navigation {
    display: block;
  }

  .headerDomains-Tabs.dottedBackground {
    background: white;
  }

  .header-section .header-linkSection {
    display: none;
  }

  .header-section .subnav--display {
    display: block;
  }

  .ui-state-active .cpe-Icon--menu_plus {
    display: none;
  }

  .ui-state-active .header-linkSection {
    display: block;
  }

  .header-navItem ul {
    display: none;
  }

  .header-navItem .header-subNav.active, .header-navItem .header-subNav.active ul {
    display: block;
  }

  .header-navItem .discover--display {
    display: block;
  }

  .header-navItem .discover--display .headerDomains-Tabs, .header-navItem .discover--display .header-link1Line--paddingBottom ul {
    display: block;
  }

  .header-navItem--secondaryNav a {
    color: #3D4246;
  }

  body:not(.navDisplayed) .header-navItem--other .header-navBlockOther {
    display: inline-block;
    margin-top: 0;
  }

  body:not(.navDisplayed) .header-navItem--other .header-navBlockOther--myCP {
    display: inline-block;
  }

  body:not(.navDisplayed) .header-navItem--other .header-navBlockOther--myCP a.buttonContainer {
    position: static;
    top: auto;
    right: auto;
    padding: 0 0 0;
    line-height: 2.75rem;
  }

  body:not(.navDisplayed) .header-navItem--other .header-navBlockOther--myCP a.buttonContainer .button {
    width: 2.75rem;
    height: 2.75rem;
    border: none;
    border-radius: 0;
    line-height: 2.75rem;
  }

  body:not(.navDisplayed) .header-navItem--other .header-navBlockOther--myCP a.buttonContainer .cpe-Icon {
    font-size: 2rem;
    vertical-align: top;
  }

  body:not(.navDisplayed) .header-navItem--other .header-navBlockOther--myCP a.buttonContainer span.u-Hidden-desktop {
    display: none;
  }

  body:not(.navDisplayed) .header-navItem--other .header-navBlockOther .header-navBlockInfoItem--tel {
    padding: 0;
    height: 2.75rem;
    width: 2.75rem;
    text-align: center;
    border: none;
    border-radius: 0;
    vertical-align: middle;
    display: inline-block;
  }

  body:not(.navDisplayed) .header-navItem--other .header-navBlockOther .header-navBlockInfoItem--tel span {
    display: none;
  }

  body:not(.navDisplayed) .header-navItem--other .header-navBlockOther .header-navBlockInfoItem--tel .cpe-Icon {
    position: relative;
    left: 0;
    top: auto;
    transform: none;
    font-size: 1.75rem;
    padding: 0;
  }

  body:not(.navDisplayed) .header-navItem--other .header-navBlockOther .header-navBlockInfoItem--tel .cpe-Icon:before {
    color: #00733A;
  }

  body:not(.navDisplayed) .header-navItem--other .header-navBlockOther--FAQ {
    display: none;
  }

  body.navDisplayed {
    overflow: hidden;
  }

  body.navDisplayed:before {
    content: "";
    display: block;
    width: 100%;
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background: #030404;
    opacity: 0.5;
    z-index: 902;
    transition-duration: 1s;
  }

  body.navDisplayed .header-navigation {
    position: fixed;

    /* visibility: visible;*/
    transform: translate(-5%);
    transition-duration: 1s;
    height: 100vh;
  }

  body.navDisplayed .header-navigation .header-navItem:not(:last-child) {
    visibility: visible;
  }

  body.navDisplayed .header-navigation .mCSB_container {
    margin-right: 0.5rem!important;
  }

  body.navDisplayed .header-navigation .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
    background-color: #9ea0a2;
  }

  body.navDisplayed .header-navigation--container {
    border-top: 0.0625rem solid #9ea0a2;
    overflow-y: scroll;
  }

  body.navDisplayed .headerNav-container {
    position: relative;
    background: #ffffff;
  }

  body.navDisplayed .headerNav-toggle.toggle-active {
    position: fixed;
    top: 1.125rem;
    left: 1rem;
    z-index: 999;
    margin: 0.5rem;
    transition-duration: 0s;
    transform: translateY(0);
  }

  body.navDisplayed .headerNav-toggle.toggle-active:before {
    font-size: 2rem;
    content: "\EA26";
  }

  body.navDisplayed .header-navBlockOther {
    display: block;
  }

  body.navDisplayed .header-navBlockOther--myCP {
    display: none;
  }

  body.navDisplayed .header-navItem--other {
    position: static;
    right: 0;
    padding-left: 2rem;
  }

  body.navDisplayed .header-navItem--other .header-navBlockInfo {
    display: block;
    float: none;
  }

  body.navDisplayed .header-navItem--other .header-navBlockInfo .header-navBlockInfoItem--tel {
    width: 12rem;
    height: auto;
    font-size: 1rem;
    position: relative;
    margin: 2rem auto;
    border: 1px solid #144486;
    border-radius: 3rem;
    padding: 0;
    color: #144486;
  }

  body.navDisplayed .header-navItem--other .header-navBlockInfo .header-navBlockInfoItem--tel span {
    display: block;
    margin-left: 3rem;
  }

  body.navDisplayed .header-navItem--other .header-navBlockInfo .header-navBlockInfoItem--tel .cpe-Icon {
    left: 0.75rem;
    font-size: 2rem;
  }

  body.navDisplayed .header-navItem--other .header-navBlockInfo .header-navBlockInfoItem--faq {
    display: block;
    padding: 0;
    color: #00733A;
  }

  body.navDisplayed .header-navItem--other .header-navBlockInfo .header-navBlockInfoItem--faq .cpe-Icon {
    font-size: 2.25rem;
    position: static;
    width: 2.25rem;
    height: 2.25rem;
    transform: translateY(0);
    margin-right: 0.625rem;
  }

  body.navDisplayed .header-navItem--other .header-navBlockInfo .header-navBlockInfoItem--faq span {
    display: inline-block;
    padding-bottom: 0.1875rem;
  }

  @media (max-width: 767px) {

    body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther:not(:first-child) {
      margin-left: 6.25vw;
    }

    body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther .header-navBlockInfoItem--tel {
      width: auto;
      height: auto;
    }

    body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther .header-navBlockInfoItem--tel .cpe-Icon {
      display: block;
    }

    body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther .header-navBlockInfoItem--tel .cpe-Icon:before {
      font-size: 1.375rem;
      content: "\EA5D";
    }

    body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther--myCP a.buttonContainer {
      height: auto;
      display: flex;
      align-items: center;
      justify-content: flex-end;
    }

    body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther--myCP a.buttonContainer .button {
      width: auto;
      height: auto;
    }

    body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther--myCP a.buttonContainer .cpe-Icon {
      display: flex;
      align-items: center;
      justify-content: flex-end;
    }

    body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther--myCP a.buttonContainer .cpe-Icon:before {
      font-size: 1.375rem;
      content: "\EA59";
    }
  }

  @media (max-width: 767px) {

    body:not(.isVn):before {
      content: "";
      display: block;
      width: 100%;
      position: fixed;
      left: 0;
      right: 0;
      top: 3.5rem;
      bottom: 0;
      background: #030404;
      z-index: 902;
      transition: opacity 0.3s ease-in-out;
      pointer-events: none;
      opacity: 0;
    }
  }

  @media (max-width: 767px) {

    body.navDisplayed:not(.isVn):before {
      opacity: 0.5;
      pointer-events: auto;
    }
  }

  @media (max-width: 767px) {

    body.navDisplayed .header:not(.isVn) .header-navigation {
      transition: transform 0.3s ease-in-out;
      height: calc(100vh - 3.5rem);
      transform: none;
      max-width: 95%;
      overflow: auto;
    }

    body.navDisplayed .header:not(.isVn) .header-navigation--container {
      height: auto !important;
      overflow: auto;
    }
  }

  @media (max-width: 1199px) {

    body.navDisplayed .headerNav-toggle.toggle-active {
      top: 1rem;
      margin: 0 0.5rem;
    }
  }

  body.navDisplayed .headerNav-toggle.toggle-active {
    top: 1rem;
    margin: 0 0.5rem;
  }

  body.navDisplayed .header-linksLevel2 span {
    font-size: 1rem;
  }

  .footer-greyColor {
    padding-bottom: 0;
  }

  .footer-green .footer-news .footer-newsWrapper p span {
    display: block;
    line-height: 1.5rem;
  }

  .footer-green .footer-news .footer-newsWrapper {
    background: url(../../assets/images/backgrounds/background-points.png);
    margin: 0;
    border-radius: 0;
    -moz-border-radius: 0;
    -webkit-border-radius: 0;
    border: none;
    width: 100%;
    float: left;
  }

  .footer-green .footer-brochure {
    margin-top: 0;
  }

  .footer-green .footer-app {
    margin-top: 0;
  }

  .footer-darkGreen .footer-conditions .footer-languageChoice {
    overflow-y: scroll;
    height: 12.5rem;
  }

  .footer-grey {
    padding: 1% 2%;
  }

  .footer-brands {
    white-space: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    width: 100%;
  }

  .footerSeo {
    padding: 1.25rem 0;
  }

  .footerSeo ul {
    display: inline;
  }

  .footerSeo ul li {
    display: inline;
  }

  .footerSeo ul li a {
    padding: 0 0.625rem;
    border-right: 0.0625rem solid #3D4246;
  }

  .animatedIconContainer .cpe-Icon {
    top: 1.5rem;
  }

  .button--withToggleArrow:before {
    top: 0.6875rem;
  }

  .searchForm-globalDateContainer .date-container.opened.searchForm-inputContainer input {
    background: transparent;
    text-overflow: ellipsis;
  }

  .popin-close {
    padding: 0.625rem;
    right: 0.625rem;
    top: 0.625rem;
  }

  .deviceIsDesktop .lightCottageDetails .fancybox-slide--iframe .fancybox-content {
    width: 100% !important;
  }
}

@media (max-width: 767px) {

  .r-maxS--1of12 {
    width: 8.33333%;
  }

  .r-maxS--1of10 {
    width: 10%;
  }

  .r-maxS--1of8 {
    width: 12.5%;
  }

  .r-maxS--1of6, .r-maxS--2of12 {
    width: 16.66667%;
  }

  .r-maxS--1of5, .r-maxS--2of10 {
    width: 20%;
  }

  .r-maxS--1of4, .r-maxS--2of8, .r-maxS--3of12 {
    width: 25%;
  }

  .r-maxS--3of10 {
    width: 30%;
  }

  .r-maxS--1of3, .r-maxS--2of6, .r-maxS--4of12 {
    width: 33.33333%;
  }

  .r-maxS--3of8 {
    width: 37.5%;
  }

  .r-maxS--2of5, .r-maxS--4of10 {
    width: 40%;
  }

  .r-maxS--5of12 {
    width: 41.66667%;
  }

  .r-maxS--1of2, .r-maxS--2of4, .r-maxS--3of6, .r-maxS--4of8, .r-maxS--5of10, .r-maxS--6of12 {
    width: 50%;
  }

  .r-maxS--7of12 {
    width: 58.33333%;
  }

  .r-maxS--3of5, .r-maxS--6of10 {
    width: 60%;
  }

  .r-maxS--5of8 {
    width: 62.5%;
  }

  .r-maxS--2of3, .r-maxS--4of6, .r-maxS--8of12 {
    width: 66.66667%;
  }

  .r-maxS--7of10 {
    width: 70%;
  }

  .r-maxS--3of4, .r-maxS--6of8, .r-maxS--9of12 {
    width: 75%;
  }

  .r-maxS--4of5, .r-maxS--8of10 {
    width: 80%;
  }

  .r-maxS--5of6, .r-maxS--10of12 {
    width: 83.33333%;
  }

  .r-maxS--7of8 {
    width: 87.5%;
  }

  .r-maxS--9of10 {
    width: 90%;
  }

  .r-maxS--11of12 {
    width: 91.66667%;
  }

  .r-maxS--1of1, .r-maxS--2of2, .r-maxS--3of3, .r-maxS--4of4, .r-maxS--5of5, .r-maxS--6of6, .r-maxS--8of8, .r-maxS--10of10, .r-maxS--12of12 {
    width: 100%;
  }

  .r-maxS--hidden {
    display: none;
  }

  .r-maxS--visible {
    display: inline-block;
  }

  .u-Hidden-mobile, .u-Visible-tablet {
    display: none !important;
  }

  .cp-spinner {
    height: 4.0625rem;
    line-height: 4.5rem;
  }

  .slick-list {
    width: 80%;
    display: inline-block;
  }

  .slick-prev {
    left: 1.25rem;
  }

  .slick-next {
    right: 1.25rem;
  }

  .blockNew {
    top: initial;
    bottom: 0;
  }

  .blockNew .blockNewItem {
    padding: 0.3125rem;
    font-size: 0.6875rem;
    line-height: 0.625rem;
  }

  .form-QuantityContainer .form-QuantityLabel p.form-QuantityFirstLabel {
    font-size: 1rem;
    font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  }

  .form-QuantityContainer .form-QuantityLabel p.form-QuantitySecondLabel {
    color: #9ea0a2;
  }

  .form-QuantityContainer .form-QuantityValue {
    font-size: 1rem;
    font-family: 'BentonSans', Arial, Helvetica, sans-serif;
    font-weight: 500;
  }

  .pika-single {
    padding-top: 0;
    border: none;
    min-height: 100%;
  }

  .pika-single.is-bound {
    top: 0 !important;
    left: 0!important;
    right: 0;
    box-shadow: none;
    padding-top: 8.625rem;
  }

  .pika-lendar {
    width: 100%;
  }

  .pika-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    font-size: 0;
    text-align: center;
    background-color: #f9fbfb;
    z-index: 881;
  }

  .pika-headerLine {
    background-color: white;
    text-align: left;
  }

  .pika-header-close.cpe-Icon {
    height: 3.75rem;
    color: #3D4246;
    display: block;
    line-height: 3.75rem;
    font-size: 1.125rem;
    text-align: center;
    border-bottom: 1px solid #E9E9E9;
    font-weight: 500;
  }

  .pika-header-close.cpe-Icon:before {
    position: absolute;
    top: 1.375rem;
    left: 5%;
    font-size: 0.9375rem;
  }

  .pika-header-reset {
    display: inline-block;
    width: 12%;
    height: 3.375rem;
    line-height: 3.375rem;
    text-align: left;
    font-size: 1.125rem;
    vertical-align: middle;
  }

  .pika-header-reset .cpe-Icon {
    color: #3D4246;
    font-size: 0.625rem;
    margin-top: -0.375rem;
  }

  .pika-header .pikaHeaderTab {
    color: #78B13E;
    text-align: center;
    line-height: 3.375rem;
    width: 38%;
    height: 3.375rem;
    font-size: 1rem;
    font-weight: 500;
  }

  .pika-header .pikaHeaderTab.disabled {
    color: #3D4246;
  }

  .pika-header .cpe-Icon--arrow2 {
    background-color: white;
    display: inline-block;
    width: 8%;
    font-size: 0.875rem;
    color: #9ea0a2;
    height: 3.375rem;
    line-height: 3.375rem;
  }

  .pika-header .cpe-Icon--arrow2:before {
    margin-top: 0.25rem;
    vertical-align: text-top;
    margin-top: -0.125rem;
    display: inline-block;
  }

  .pika-header .pikaHeaderDays {
    background-color: white;
    padding: 0 5%;
    line-height: 2rem;
    height: 2rem;
  }

  .pika-header .pikaHeaderDays abbr[title] {
    border-bottom: none;
    font-size: 0.625rem;
    width: 14.1%;
    display: inline-block;
    text-decoration: none;
    font-weight: 700;
  }

  @media(max-width: 767px) {

    .pika-header .cpe-Icon--arrow2:before {
      margin-top: 0.125rem;
    }
  }

  .pika-header .cpe-Icon--arrow2:before {
    margin-top: 0.125rem;
  }

  .pika-prev, .pika-next {
    display: none;
  }

  .pika-table {
    margin-bottom: 1.25rem;
  }

  .pika-table thead {
    display: none;
  }

  .pika-table td {
    width: 12.9vw;
    height: 12.9vw;
  }

  .pika-button {
    padding: 11px;
    display: inline-block;
    width: 12.9vw;
    height: 12.9vw;
  }

  .pika-next, .is-rtl .pika-prev {
    right: 5px;
  }

  .departure .pika-table td.pika-tFooterLeft, .departure .pika-table td.pika-tFooterRight {
    width: 80%;
    position: static;
    padding-top: 1.25rem;
  }

  .searchForm-countrySelector .form-checkboxContainer .form-checkboxLabel {
    font-size: 0.9375rem;
  }

  .searchForm-container .searchForm-region {
    display: none;
  }

  .searchForm-container .opened .searchForm-region {
    display: block;
    font-size: 0.75rem;
    font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
    font-weight: normal;
    line-height: 0.8rem;
    color: #9ea0a2;
  }

  .form-rangeContainer {
    margin-bottom: 10px;
    width: 78vw;
    margin: 0 auto;
    display: block;
  }

  .form-rangeLegend #form-rangeMin {
    left: 0.25rem;
  }

  .form-rangeLegend {
    width: 78vw;
    margin: 0 auto;
    display: block;
  }

  .form-range.noUi-target {
    height: 0.875rem;
    border-radius: 0.4375rem;
  }

  .form-range .noUi-handle {
    top: -0.3125rem;
  }

  .form-range .noUi-tooltip {
    font-size: 0.875rem;
    margin-left: -0.3125rem;
  }

  .header {
    padding: 0 3.75%;
    background-color: #ffffff;
  }

  .header:not(.isVn) {
    padding: 0 4.6875vw;
    box-shadow: 0.125rem 0 0.5625rem 0 rgba(0, 0, 0, 0.25);
  }

  .header-content {
    margin-top: 0;
    height: 4.0625rem;
  }

  .header:not(.isVn) .header-content {
    height: 3.5rem;
  }

  .header:not(.isVn) .header-logo {
    transform: translateY(-50%);
    left: calc(4.6875vw * 2 + 1.875rem);
    width: 3.1875rem;
  }

  .header:not(.isVn) .header-logo:before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    height: 2.5rem;
    border-right: 0.0625rem solid #d2d3d3;
    transform: translate(-4.6875vw, -50%);
  }

  .header.isSck:not(.isVn) .header-logo {
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .header.isSck:not(.isVn) .header-logo:before {
    content: none;
  }

  .header:not(.isVn) .header-navigation {
    top: 3.5rem;
    padding-top: 0;
  }

  .header:not(.isVn) .header-navItem {
    padding-left: 0;
  }

  .header-navItem--other {
    top: 0.5rem;
  }

  body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other.header-navItem {
    top: -3.5rem;
    height: 3.5rem;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }

  body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockInfoItem--tel {
    display: block;
  }

  .header-subNav .header-section.ui-tabs-active a.header-linksLevel2 {
    padding: 1.25rem 0.9375rem 0.25rem 1.875rem;
  }

  .header-subNav .header-linksLevel2 {
    padding-left: 1.875rem;
  }

  .headerNav-toggle:before {
    font-size: 1.5625rem;
  }

  .header:not(.isVn) .headerNav-toggle.cpe-Icon {
    left: 0;
    width: 1.875rem;
    height: 1.5rem;
    transform: translateY(-50%);
    top: 1.75rem;
    margin: 0;
    position: absolute;
  }

  .header:not(.isVn) .headerNav-toggle.cpe-Icon:before {
    display: none;
  }

  .header:not(.isVn) .headerNav-toggle.cpe-Icon span {
    display: block;
    position: absolute;
    height: 0.125rem;
    width: 100%;
    background: #00733A;
    border-radius: 0.28125rem;
    opacity: 1;
    left: 0;
    transform: rotate(0deg);
    transition: .25s ease-in-out;
  }

  .header:not(.isVn) .headerNav-toggle.cpe-Icon span:nth-child(1) {
    top: 0;
  }

  .header:not(.isVn) .headerNav-toggle.cpe-Icon span:nth-child(2), .header:not(.isVn) .headerNav-toggle.cpe-Icon span:nth-child(3) {
    top: 0.6875rem;
  }

  .header:not(.isVn) .headerNav-toggle.cpe-Icon span:nth-child(4) {
    top: 1.375rem;
  }

  .header:not(.isVn) .headerNav-toggle.cpe-Icon.toggle-active span:nth-child(1) {
    top: 0.6875rem;
    width: 0;
    left: 50%;
  }

  .header:not(.isVn) .headerNav-toggle.cpe-Icon.toggle-active span:nth-child(2) {
    transform: rotate(45deg);
  }

  .header:not(.isVn) .headerNav-toggle.cpe-Icon.toggle-active span:nth-child(3) {
    transform: rotate(-45deg);
  }

  .header:not(.isVn) .headerNav-toggle.cpe-Icon.toggle-active span:nth-child(4) {
    top: 0.6875rem;
    width: 0;
    left: 50%;
  }

  .header-linkBorder .header-linksLevel3 {
    font-size: 0.8125rem;
    padding: 0.9375rem 1.125rem 0.875rem 2.8125rem;
  }

  body.navDisplayed .header:not(.isVn) .headerNav-mobile-right-container {
    display: flex;
  }

  li.headerDomain-Country.header-section {
    border-bottom: 0.0625rem solid #E9E9E9;
  }

  li.headerDomain-Country .headerDomain-item.header-linkBorder {
    border-bottom: 0.0625rem solid #E9E9E9;
  }

  li.headerDomain-Country .headerDomain-item.header-linkBorder:last-child {
    border-bottom: none;
  }

  li.headerDomain-Country .headerDomain-region {
    display: block;
    font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
    font-size: 0.75rem;
    font-weight: normal;
    line-height: 0.5rem;
    color: #9ea0a2;
  }

  .headerDomain .header-subNav .headerDomains-Tabs li:last-child a {
    background-color: green;
    color: #ffffff;
  }

  .headerDomain .header-subNav .headerDomains-Tabs li:last-child a:after {
    content: "";
  }

  body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther:not(:first-child) {
    margin-left: 6.25vw;
  }

  body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther .header-navBlockInfoItem--tel {
    width: auto;
    height: auto;
  }

  body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther .header-navBlockInfoItem--tel .cpe-Icon {
    display: block;
  }

  body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther .header-navBlockInfoItem--tel .cpe-Icon:before {
    font-size: 1.375rem;
    content: "\EA5D";
  }

  body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther--myCP a.buttonContainer {
    height: auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }

  body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther--myCP a.buttonContainer .button {
    width: auto;
    height: auto;
  }

  body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther--myCP a.buttonContainer .cpe-Icon {
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }

  body:not(.navDisplayed) .header:not(.isVn) .header-navItem--other .header-navBlockOther--myCP a.buttonContainer .cpe-Icon:before {
    font-size: 1.375rem;
    content: "\EA59";
  }

  body:not(.isVn):before {
    content: "";
    display: block;
    width: 100%;
    position: fixed;
    left: 0;
    right: 0;
    top: 3.5rem;
    bottom: 0;
    background: #030404;
    z-index: 902;
    transition: opacity 0.3s ease-in-out;
    pointer-events: none;
    opacity: 0;
  }

  body.navDisplayed:not(.isVn):before {
    opacity: 0.5;
    pointer-events: auto;
  }

  body.navDisplayed .header:not(.isVn) .header-navigation {
    transition: transform 0.3s ease-in-out;
    height: calc(100vh - 3.5rem);
    transform: none;
    max-width: 95%;
    overflow: auto;
  }

  body.navDisplayed .header:not(.isVn) .header-navigation--container {
    height: auto !important;
    overflow: auto;
  }

  body.navDisplayed .headerNav-toggle.toggle-active {
    top: 2.5%;
    transform: translate(0,2.5%);
  }

  .footer-background {
    display: none;
  }

  .footer-greenColor {
    padding-bottom: 0rem;
    background-color: white;
  }

  .footer-green .footer-news {
    position: initial;
    margin-top: 0;
    padding: 0 3%;
  }

  .footer-green .footer-news .footer-newsWrapper p.footer-newsText {
    text-align: center;
    width: 62.5%;
    margin: 0 auto;
    padding-bottom: 0.625rem;
  }

  .footer-green .footer-news .footer-newsWrapper p.footer-newsText strong {
    font-size: 1.625rem;
  }

  .footer-green .footer-news .footer-newsWrapper .footer-newsletterForm {
    margin-top: 0.625rem;
  }

  .footer-green .footer-news .footer-newsWrapper {
    padding: 1.5rem 0 1.875rem;
    text-align: center;
  }

  .footer-green .footer-news .footer-newsWrapper p {
    text-align: center;
  }

  @media (max-width: 1199px) {

    .footer-green .footer-news .footer-newsWrapper p span {
      display: block;
      line-height: 1.5rem;
    }
  }

  .footer-green .footer-news {
    float: none;
    width: 100%;
    text-align: center;
  }

  .footer-green .footer-news .inputContainer .mdl-textfield.is-invalid.is-dirty .mdl-textfield__error {
    width: 4.75rem;
    right: -0.625rem;
  }

  .footer-green .footer-news .mdl-textfield--floating-label.is-dirty .mdl-textfield__label {
    text-align: left;
  }

  .footer-green .footer-news .inputContainer .mdl-textfield--floating-label.is-focused .mdl-textfield__label {
    text-align: left;
  }

  .footer-green .footer-news .gridContainer {
    margin-top: 1.25rem;
  }

  .footer-green .footer-brochure a picture img {
    border-radius: 50%;
    width: 4.375rem;
    height: 4.375rem;
    margin-bottom: 0.625rem;
  }

  .footer-green .footer-brochure p {
    margin-top: 0.625rem;
  }

  .footer-green .footer-app a picture img {
    border-radius: 50%;
    width: 4.375rem;
    height: 4.375rem;
    margin-bottom: 0.625rem;
  }

  .footer-green .footer-app p {
    margin-top: 0.625rem;
  }

  .footer-green .inputContainer {
    width: 75%;
    border-radius: 0;
    margin-left: -0.75rem;
    background: white;
  }

  .footer-green #newsletterForm .buttonContainer .button {
    border-radius: 3.125rem;
  }

  .footer-green .footer-cpBrochure {
    background: #00733A;
    padding: 1.5625rem 0 0.625rem 0;
  }

  .footer-green .footer-usps {
    margin-bottom: 0.625rem;
  }

  .footer-green .footer-usps {
    display: none;
  }

  .footer-darkGreen {
    padding: 0 4%;
  }

  .footer-darkGreen .footer-title {
    font-size: 1rem;
  }

  .footer-darkGreen .footer-conditions {
    background: #00733A;
    padding: 0 4%;
    margin: 0 -4%;
  }

  .footer-darkGreen .footer-conditions .footer-languageSelect {
    margin: 0.625rem 0;
  }

  .footer-darkGreen .footer-conditions .footer-languageSelection {
    width: auto;
  }

  .footer-darkGreen .footer-conditions .footer-languageChoice {
    width: auto;
  }

  .footer-darkGreen .footer-conditions .footer-listBloc {
    padding: 0.9375rem 0.625rem;
    border-bottom: 0.0625rem solid white;
  }

  .footer-darkGreen .footer-conditions .footer-listBloc .footer-title.api_toggle {
    position: relative;
    cursor: pointer;
  }

  .footer-darkGreen .footer-conditions .footer-listBloc .footer-title.api_toggle:after {
    font-family: 'icons';
    font-size: 0.5rem;
    margin-top: -0.25rem;
    position: absolute;
    right: 0;
    top: 0.3125rem;
    content: "\EA0F";
  }

  .footer-darkGreen .footer-conditions .footer-listBloc .footer-title.api_toggle.toggle-active:after {
    content: "\EA0E";
  }

  .footer-darkGreen .footer-conditions .footer-listBloc ul.api_toggle_content {
    margin-top: 0.9375rem;
  }

  .footer-darkGreen .footer-conditions .footer-listBloc ul.api_toggle_content li {
    margin: 0.3125rem 0.625rem 0.3125rem 0;
  }

  .footer-darkGreen .footer-conditions .footer-listBloc--last {
    border: 0;
  }

  .footer-darkGreen .footer-paymentCertif {
    border: 0;
  }

  .footer-darkGreen .footer-paymentCertif .footer-certifications img {
    height: 2.1875rem;
  }

  .footer-darkGreen .footer-paymentCertif .footerTable-listEnd {
    text-align: center;
    margin-bottom: 1.25rem;
  }

  .footer-darkGreen .certifications-list a {
    display: inline-block;
  }

  .footer-darkGreen .certifications-listPicture img {
    float: none;
    height: 2.1875rem;
  }

  .footer-grey {
    padding: 1.125rem 2%;
  }

  .footer-grey .certifications-listPicture img {
    width: 5.625rem;
  }

  .certifications-list {
    text-align: center;
  }

  .footer-greyLanguages {
    padding: 4% 2%;
  }

  .footer-greyLanguages li a {
    font-size: 1.125rem;
    line-height: 3.125rem;
  }

  .languagesForm .languagesForm-toggler {
    display: block;
    font-size: 1.125rem;
    bottom: 0;
    width: 100%;
    padding-top: 3%;
    text-align: center;
    color: #9ea0a2;
  }

  .languagesForm .languagesForm-toggler:after {
    font-family: 'icons';
    padding: 0 5% 0 5%;
    font-size: 1.25rem;
    vertical-align: bottom;
    display: inline-block;
    float: right;
    line-height: 2.5;
    content: "\EA0F";
  }

  .languagesForm .languagesForm-toggler.toggle-active:after {
    content: "\EA0E";
  }

  .languagesForm.open .languagesForm-globalInputContainer {
    height: 90%;
    width: 100%;
    display: block;
    padding-top: 5%;
  }

  .footer-social {
    margin-top: 0;
  }

  .footer-social .footer-title {
    margin: 0;
  }

  .footerTable-listEnd li {
    margin: 0% 2%;
  }

  .footerTable-listEnd img {
    padding: 0;
  }

  .footerTable-listEnd .cpe-Icon {
    font-size: 2rem;
  }

  .footer-myCP {
    margin: 1.25rem -0.625rem 0 -0.625rem;
    padding: 0.9375rem 0.625rem 0 0.625rem;
    border-top: 0.0625rem solid #ffffff;
  }

  .footer-myCP-Link {
    position: relative;
  }

  .footer-myCP-Link, .footer-myCP-Link-title {
    font-size: 1rem;
  }

  .buttonContainer .animatedIconContainer .cpe-Icon--arrow_cta {
    margin-top: -0.625rem;
  }

  .button--withDiagonalArrow:before {
    margin-top: 0.0625rem;
  }

  .abtest_durationCalendar .pika-single.is-bound {
    padding-top: 15rem;
  }

  .abtest_durationCalendar .searchForm-durationContainer {
    padding: 1.25rem 1.25rem 0;
    text-align: left;
  }

  .abtest_durationCalendar .searchForm-durationListContainer {
    width: calc(100% + 20px);
    padding: 0.3125rem 0 1.25rem;
    overflow-x: auto;
    overflow-y: hidden;
    display: block;
  }

  .abtest_durationCalendar .searchForm-durationList {
    height: 2rem;
    text-align: left;
    list-style: none;
    white-space: nowrap;
    padding-right: 1.25rem;
  }

  .abtest_durationCalendar .searchForm-durationList li:first-child .searchForm-durationButton {
    margin-left: 0;
  }

  .abtest_durationCalendar .searchForm-durationUnik {
    font-size: 0.8125rem;
  }

  .searchForm-globalInputContainer {
    height: 90%;
    width: 100%;
    display: none;
  }

  .searchForm-dataOpener {
    padding: 0% 3.75%;
    vertical-align: middle;
    width: 100%;
    height: 100%;
    font-size: 0.75rem;
  }

  .searchForm input.searchForm-dataOpener {
    width: 100%;
    height: 100%;
    font-size: 1.4375rem;
    position: absolute;
    top: 0;
    left: 0;
  }

  .searchForm-dataList .searchForm-optionsList {
    display: none;
  }

  .searchForm-dataList .checkbox-selectAll {
    font-style: italic;
  }

  .searchForm-dataListContainer {
    position: static;
    background-color: #f9fbfb;
  }

  .searchForm-parkSelectContainer .form-label {
    font-size: 0.8125rem;
    font-weight: 500;
  }

  .searchForm-parkSelectContainer .searchForm-dataListContainer {
    position: fixed;
    margin-left: 0;
    padding: 0;
  }

  .searchForm-parkSelectContainer a.searchForm-parkSelector .cpe-Icon.arrow {
    top: 0.9375rem;
    font-size: 0.875rem;
  }

  .searchForm-country {
    margin-bottom: 0.625rem;
    background-color: white;
    border: 2px solid #F4F5F5;
    border-radius: 0.625rem;
  }

  .searchForm-countryList {
    text-align: left;
    padding: 0;
    background-color: transparent;
    height: calc(100% - 148px);
    overflow-y: auto;
  }

  .searchForm-countryOptionsList {
    padding: 0.625rem 0.5rem 0rem 0.5rem;
  }

  .searchForm-countryOptionsList li {
    margin-bottom: 0.9375rem;
  }

  .searchForm-countryOptionsList li .form-checkbox {
    position: relative;
  }

  .searchForm a.searchForm-listHeader {
    background-color: #F4F5F5;
    padding: 0.25rem 0.9375rem;
    font-size: 1rem;
  }

  .searchForm a.searchForm-listHeader .cpe-Icon {
    width: 0.875rem;
    right: 1.5625rem;
    font-size: 0.5rem;
  }

  .searchForm-globalDateContainer .cpe-Icon--arrow2 {
    position: relative;
    line-height: 2.5rem;
    color: #9ea0a2;
    height: 2.5rem;
    margin-top: -0.5rem;
    width: 8%;
  }

  .searchForm-globalDateContainer .cpe-Icon--arrow2:before {
    vertical-align: top;
  }

  .searchForm-globalDateContainer .date-container .searchForm-dateContainer {
    position: static;
  }

  .searchForm-globalDateContainer .date-container .dirty {
    height: 100%;
  }

  .searchForm-capacity.searchForm-block a.searchForm-dataOpener {
    line-height: 2.5rem;
    margin-top: 0;
    font-size: 1rem;
    height: 2.5rem;
  }

  .searchForm-capacity .searchForm-capacityNb {
    font-size: 1rem;
    display: block;
    margin-top: 0;
  }

  .searchForm-capacity .searchForm-dataListContainer .kidsAgesContainer {
    line-height: 0;
    font-size: 0;
  }

  .searchForm-capacity .cpe-Icon.arrow.u-cpeIcon--chevron {
    top: 0.9375rem;
    font-size: 0.875rem;
  }

  .searchForm-submitContainer {
    position: fixed;
    bottom: 0;
    left: 0;
    text-align: center;
    padding: 0.875rem 0;
    border-radius: 0;
    height: 5.5rem;
    border-top: 0.125rem solid #E9E9E9;
    box-shadow: 0 -0.1875rem 0.4375rem #E9E9E9;
    width: 100%;
    background-color: white;
    z-index: 861;
  }

  .searchForm-submitContainer .submitSearchEngine {
    display: inline-block;
    background-color: #D7532C;
    line-height: 3.75rem;
    color: white;
    font-size: 1.125rem;
    border-radius: 0.3125rem;
    box-shadow: 0 0.125rem 0.375rem #9ea0a2;
    width: 90%;
    cursor: pointer;
    font-weight: 500;
  }

  .searchForm-submitContainer .submitSearchEngine.hasReset {
    width: 58%;
  }

  .searchForm .cpe-Icon.arrow {
    right: 0.5625rem;
    top: 1.75rem;
  }

  body.body-searchEngineOpen {
    background: white;
  }

  body.body-searchEngineOpen #mainContainer header, body.body-searchEngineOpen #mainContainer footer, body.body-searchEngineOpen #mainContainer .js-filters, body.body-searchEngineOpen #mainContainer .headbandPicture, body.body-searchEngineOpen #mainContainer .headband-content, body.body-searchEngineOpen #mainContainer .headband .headbandPicture, body.body-searchEngineOpen #mainContainer .headbandThin .headbandPicture, body.body-searchEngineOpen #mainContainer .headbandThin .headbandPicture:not(.domainheadbandPicture), body.body-searchEngineOpen #mainContainer .mainContent, body.body-searchEngineOpen #mainContainer .bannerSCK-container, body.body-searchEngineOpen #mainContainer .sck-introTop, body.body-searchEngineOpen #mainContainer .sck-results, body.body-searchEngineOpen #mainContainer .introductionSCK-container {
    display: none;

    /* visibility: hidden; */
  }

  body.body-searchEngineOpen #mainContainer .searchForm-container {
    transform: none;
    bottom: auto;
    position: fixed;
    top: 0;
    left: 0;
  }

  body.body-searchEngineOpen #mainContainer .headbandPictureLink {
    display: none;
  }

  /** gestion du positionnement **/

  body.body-searchEngineOpen #mainContainer.searchEngineOpened section.headband, body.body-searchEngineOpen #mainContainer.searchEngineOpened section.headbandThin, body.body-searchEngineOpen #mainContainer .searchForm-globalInputContainer, body.body-searchEngineOpen #mainContainer .searchForm {
    display: block !important;
    position: static;
    top: auto;
  }

  body.body-searchEngineOpen #mainContainer .searchForm {
    z-index: 800;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-globalInputContainer {
    padding: 3.75rem 0.625rem 0 0.625rem;
    z-index: 801;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-labelMobile {
    display: block;
    font-size: 0.8125rem;
    text-align: left;
    line-height: 1.25rem;
    margin-top: 0.875rem;
    font-weight: 400;
    font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-data {
    display: block;
    line-height: 2.5rem;
    font-size: 1rem;
    margin-top: -0.625rem;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-dataList {
    line-height: 2.625rem;
    padding: 0.9375rem 0.625rem 1.25rem 0.625rem;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-dataListContainer {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: white;
    z-index: 861;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-dataListCloser {
    display: block;
    line-height: 3.75rem;
    font-size: 1.125rem;
    text-align: center;
    border-bottom: 1px solid #E9E9E9;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-dataListCloser:before {
    position: absolute;
    top: 1.375rem;
    left: 5%;
    font-size: 0.9375rem;
  }

  /** gestion du toggler **/

  body.body-searchEngineOpen #mainContainer .searchForm-toggler {
    position: absolute;
    top: 0;
    display: block;
    background-color: white;
    line-height: 3.75rem;
    color: #3D4246;
    font-weight: 500;
    font-size: 1.125rem;
    font-family: 'BentonSans', Arial, Helvetica, sans-serif;
    z-index: 804;
    border-radius: 0;
    box-shadow: none;
    width: 100%;
    border: 0;
    border-bottom: 1px solid #E9E9E9;
    margin: 0;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-toggler .cpe-Icon.cpe-Icon--zoom-tool {
    display: none;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-toggler .cpe-Icon.cpe-Icon--close {
    display: inline-block;
    position: absolute;
    top: 0.25rem;
    right: 5%;
    font-size: 1.25rem;
  }

  /** gestion des champ de facette **/

  body.body-searchEngineOpen #mainContainer .searchForm-block:not(.searchForm-submitContainer):not(.date-container), body.body-searchEngineOpen #mainContainer .searchForm-inputContainer {
    margin: 1.25rem auto;
    position: relative;
    border-radius: 0.625rem;
    background-color: white;
    box-shadow: 0px 0px 9px #d2d3d3;
    height: 4.375rem;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-dataOpener {
    text-align: left;
    padding-left: 0.625rem;
    margin-top: 0;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-globalDateContainer {
    position: relative;
    border-radius: 0.625rem;
    height: 4.375rem;
    background-color: white;
    box-shadow: 0px 0px 9px #d2d3d3;
    text-align: left;
    padding-left: 0.625rem;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-globalDateContainer .searchForm-labelMobile {
    padding-left: 0.625rem;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-globalDateContainer .searchForm-inputContainer {
    display: inline-block;
    width: 44%;
    height: 2.5rem;
    margin-top: -0.625rem;
    box-shadow: none;
    background-color: transparent;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-globalDateContainer input.searchForm-dataOpener {
    font-size: 1rem;
    padding-left: 0.625rem;
  }

  body.body-searchEngineOpen #mainContainer.body-displaySearchList .searchForm-toggler {
    display: none;
  }

  /** disable animation when search engine open **/

  body.body-searchEngineOpen #mainContainer .searchForm-toggler.u-Visible-mobile.stickySearch {
    transition: none;
    animation: none;
  }

  body.body-searchEngineOpen #mainContainer .searchForm-toggler.u-Visible-mobile.unstickySearch {
    transition: none;
    animation: none;
  }

  body.body-searchEngineOpen #mainContainer .lastSearch {
    text-align: left;
    font-size: 0.8125rem;
  }

  body.body-searchEngineOpen #mainContainer .lastSearch-title {
    width: 89%;
    text-align: left;
    display: block;
    margin: 0.625rem auto 0.9375rem auto;
    font-size: 0.75rem;
    font-weight: 500;
    font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  }

  body.body-searchEngineOpen #mainContainer .lastSearch-title .cpe-Icon {
    font-size: 1rem;
    margin-right: 0.375rem;
    vertical-align: -0.1875rem;
  }

  body.body-searchEngineOpen #mainContainer .lastSearch button {
    color: #3D4246;
    position: relative;
    width: 100%;
  }

  body.body-searchEngineOpen #mainContainer .lastSearch button.mdl-button {
    border-radius: 0.25rem;
    height: auto;
    text-align: left;
    font-family: 'BentonSans', Arial, Helvetica, sans-serif;
    font-size: 0.8125rem;
    font-weight: normal;
    text-transform: none;
    line-height: 1.25rem;
    padding: 0.3125rem 5%;
  }

  body.body-searchEngineOpen #mainContainer .lastSearch button:after {
    position: absolute;
    right: 5%;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1rem;
    font-family: "icons";
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-style: normal;
    font-feature-settings: normal;
    font-variant: normal;
    line-height: 1;
    font-weight: normal;
    text-decoration: none;
    text-transform: none;
    display: inline-block;
    content: "\EA0D";
  }

  body.body-searchEngineOpen #mainContainer .lastSearch-cartouche {
    width: 90%;
    margin: 0.3125rem auto;
    position: relative;
    padding-bottom: 0.3125rem;
  }

  body.body-searchEngineOpen #mainContainer .lastSearch-cartouche:after {
    content: ' ';
    width: 90%;
    height: 0.0625rem;
    border-bottom: 1px solid #d2d3d3;
    position: absolute;
    bottom: 0;
    left: 5%;
  }

  body.body-searchEngineOpen #mainContainer .lastSearch-cartouche-parks {
    font-weight: 500;
  }

  body.body-searchEngineOpen #mainContainer .lastSearch-cartouche-dates.not-specified {
    opacity: 0.5;
  }

  body.body-searchEngineOpen #mainContainer .lastSearch-cartouche-capacity {
    font-size: 0.75rem;
  }

  body.body-searchEngineOpen #mainContainer .lastSearch-cartouche.is-last:after {
    display: none;
  }

  body.body-searchEngineOpen #mainContainer .lastSearchesList {

    /*** ABTEST_LAST_SEARCHES RELATED ***/
    display: block;
  }

  body.body-searchEngineOpen #mainContainer .searchFiltersOpened .searchFilters {
    width: 100vw;
  }

  .body-searchEngineOpen.abtest_lastSearches .searchForm-container {
    height: 100vh;
    overflow-y: scroll;
  }

  .searchBlock {
    margin-bottom: 0;
  }

  .searchBlock .searchForm-container .searchForm-toggler.u-Visible-mobile {
    margin-bottom: 0;
  }

  .engineOutside .searchDomain-top {
    padding: 0.625rem 0 0.125rem;
  }

  .engineOutside .geoSearchDomain.searchDomain-result {
    margin-top: 0;
  }

  .engineOutside .searchDomain-result .resultList-Header {
    padding: 1.0625rem 0 0 0.9375rem;
    margin-top: 0;
  }

  .engineOutside .searchDomain-result .resultList-HeaderSort #resultList-HeaderSortSelector.dropDownList-container {
    top: -4.625rem;
  }

  .engineOutside.body-searchEngineOpen #mainContainer.searchEngineOpened .searchForm-container {
    position: fixed;
    top: 0;
  }

  .engineOutside.body-searchEngineOpen .submenu-content, .engineOutside.body-searchEngineOpen .contentHeader, .engineOutside.body-searchEngineOpen .searchDomain-result, .engineOutside.body-searchEngineOpen .searchDomain-headband, .engineOutside.body-searchEngineOpen .tags-ideasHolidays, .engineOutside.body-searchEngineOpen .sck-results, .engineOutside.body-searchEngineOpen .offersTitle, .engineOutside.body-searchEngineOpen .overviewBanner-headbandContainer, .engineOutside.body-searchEngineOpen .overviewBanner-title, .engineOutside.body-searchEngineOpen .whatsNewBlock, .engineOutside.body-searchEngineOpen .whatsNewBlock-title, .engineOutside.body-searchEngineOpen .domainAccommodations-results, .engineOutside.body-searchEngineOpen .stickyNavFpContainer, .engineOutside.body-searchEngineOpen .stickyGoToFilters {
    display: none;
  }

  .engineOutside.body-searchEngineOpen .searchForm-toggler--home {
    z-index: -1;
  }

  .engineOutside.body-searchEngineOpen .searchDomain-top {
    border: 0;
    padding-bottom: 0;
  }

  .engineOutside.body-searchEngineOpen .paddingBottom--tags {
    padding: 0 !important;
  }

  .engineOutside.body-searchEngineOpen .searchBlock {
    margin: 0;
  }

  .engineOutside.body-searchEngineOpen .searchFiltersContainer {
    position: static;
  }

  .engineOutside.body-searchEngineOpen.domainAccommodations .searchForm-container {
    padding: 0;
  }

  @media(max-width: 767px) {

    .engineOutside .searchDomain-result {
      margin-top: 0.75rem;
    }
  }

  @media(max-width: 767px) {

    .engineOutside.body-searchEngineOpen.widthFixedGoToFilters .stickyGoToFilters {
      display: none;
    }
  }

  .engineOutside .searchDomain-result {
    margin-top: 0.75rem;
  }

  .engineOutside.body-searchEngineOpen.widthFixedGoToFilters .stickyGoToFilters {
    display: none;
  }

  .widthFixedGoToFilters .stickyGoToFilters {
    right: 3vw;
    bottom: 10vh;
    width: 2.5625rem;
    height: 2.5625rem;
    font-size: 1rem;
    background-color: #9ea0a2;
  }

  .widthFixedGoToFilters .stickyGoToFilters .cpe-Icon--go-back {
    font-size: 1rem;
    color: white;
    transform: rotate(90deg);
    position: absolute;
    top: 0.5625rem;
    left: 0.6875rem;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile {
    display: block;
    color: #3D4246;
    line-height: 3.4375rem;
    font-size: 0.875rem;
    cursor: pointer;
    text-align: left;
    height: 5.125rem;
    background-color: white;
    text-align: left;
    margin: 0.625rem 1rem 0.6875rem 1rem;
    border-radius: 0.625rem;
    box-shadow: 0.125rem 0 0.5625rem 0 rgba(0, 0, 0, 0.13);
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile .searchForm-toggler--formHidden {
    display: block;
    margin: 0 0.9375rem;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile.toggle-active {
    border-color: #F4F5F5;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile .searchForm-toggler--formDisplayed {
    display: none;
    padding-left: 0;
    text-align: center;
    font-weight: 500;
    font-size: 1.125rem;
    font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile .searchFormToggler-participants .cpe-Icon.cpe-Icon--couple {
    font-size: 0.875rem;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile .cpe-Icon {
    vertical-align: middle;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile .cpe-Icon.cpe-Icon--close {
    display: none;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile .cpe-Icon.cpe-Icon--couple {
    font-size: 1.4375rem;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile.stickySearch {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 841;
    width: 100%;
    height: 4.4375rem;
    margin: 0;
    border-radius: 0 0 0.625rem 0.625rem;
    box-shadow: 0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.5);
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile.stickySearch .searchForm-toggler--formHidden {
    padding-left: 0;
    height: 2.5rem;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile.stickySearch .searchForm-toggler--formHidden .cpe-Icon {
    padding-left: 0.375rem;
    font-size: 0.875rem;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile.stickySearch .searchForm-toggler--formHidden .searchFormToggler-element {
    line-height: 1.25rem;
    padding: 0;
    height: 2.1875rem;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile.stickySearch .searchForm-toggler--formHidden .searchFormToggler-park {
    border-bottom: 0.125rem solid #F4F5F5;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile.stickySearch .searchForm-toggler--formHidden .searchFormToggler-park .cpe-Icon.cpe-Icon--zoom-tool {
    font-size: 1rem;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile.stickySearch .searchForm-toggler--formHidden .searchFormToggler-date {
    height: 1.6875rem;
  }

  body:not(.home) .searchForm-toggler.u-Visible-mobile.stickySearch.inFooter {
    right: -31.25rem;
  }

  body:not(.home) .searchForm-toggler--home.u-Visible-mobile {
    display: none;
  }

  body:not(.home) .searchFormToggler-element {
    padding: 0;
  }

  body:not(.home) .searchFormToggler-element .cpe-Icon--house_mobile {
    font-size: 0.875rem;
  }

  body:not(.home) .searchFormToggler-park {
    padding: 0;
    height: 2.625rem;
    line-height: 1.25rem;
    border-bottom: 0.125rem solid #F4F5F5;
  }

  body:not(.home) .searchFormToggler-park span {
    margin: 0.625rem 0;
  }

  body:not(.home) .searchFormToggler-park #searchFormToggler-domaines {
    vertical-align: middle;
  }

  body:not(.home) .searchFormToggler-dateParticipants {
    display: flex;
    justify-content: space-between;
    height: 2.5rem;
    line-height: 1.25rem;
  }

  body:not(.home) .searchFormToggler-text {
    padding: 0 0 0 0.625rem;
  }

  body:not(.home) .searchFormToggler-date {
    width: 74%;
    height: 1.25rem;
    margin: 0.625rem 0;
  }

  body:not(.home) .searchFormToggler-date .cpe-Icon--calendar_mobile {
    font-size: 0.875rem;
  }

  body:not(.home) .searchFormToggler-date #searchFormToggler-dates .cpe-Icon--transfer1 {
    color: #9ea0a2;
    font-size: 0.5rem;
    padding: 0 0.125rem;
    top: -0.125rem;
  }

  body:not(.home) .searchFormToggler-participants {
    height: 1.25rem;
    margin: 0.625rem 0;
    padding-left: 0.9375rem;
    border-left: 0.125rem solid #F4F5F5;
  }

  body.home #mainContainer .searchForm-toggler--home {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, +50%);
    min-width: 15.625rem;
    text-align: center;
    display: inline-block;
    color: white;
    padding: 0 1.25rem;
    background-color: #D7532C;
    height: 3.25rem;
    border-radius: 1.625rem;
    line-height: 3.25rem;
    box-shadow: 1px 3px rgba(0, 0, 0, 0.2);
    font-size: 1rem;
    z-index: 800;
    cursor: pointer;
    white-space: nowrap;
  }

  body.home #mainContainer .searchForm-toggler--home .cpe-Icon {
    padding-left: 0.625rem;
    font-size: 1.625rem;
    vertical-align: middle;
  }

  body.home #mainContainer .searchForm-toggler--home .cpe-Icon.cpe-Icon--close {
    display: none;
  }

  body.home #mainContainer .searchForm-toggler--home.stickySearch {
    position: fixed;
    left: 0;
    bottom: 0;
    right: 0;
    animation: stickyBottomToTop 1s;
    animation-iteration-count: 1;
    min-width: auto;
    height: auto;
    transform: none;
    border-radius: 0;
    padding: 0.9375rem;
    margin: 0;
    background-color: white;
    line-height: 2.8125rem;
  }

  body.home #mainContainer .searchForm-toggler--home.stickySearch div {
    background-color: #D7532C;
  }

  body.home #mainContainer .searchForm-toggler--home.stickySearch span {
    transition: padding 1s;
    top: 0.1875rem;
  }

  body.home #mainContainer .searchForm-toggler--home.stickySearch.inFooter {
    right: -31.25rem;
  }

  body.home #mainContainer .searchForm-toggler--home.unstickySearch {
    transition: font-size 0.5s, padding 0.5s;
    animation: unstickyElement 0.5s;
    animation-iteration-count: 1;
  }

  body.home #mainContainer .searchForm-toggler--home.unstickySearch span {
    padding-left: 0.625rem;
    transition: padding 0.5s;
  }

  body.home #mainContainer:not(.searchEngineOpened) .searchForm-container {
    display: none;
  }

  body.body-searchEngineOpen #mainContainer.searchEngineOpened .searchForm-toggler {
    height: 3.75rem;
  }

  body.body-searchEngineOpen #mainContainer.searchEngineOpened .searchForm-toggler .searchForm-toggler--formHidden {
    display: none;
  }

  body.body-searchEngineOpen #mainContainer.searchEngineOpened .searchForm-toggler .searchForm-toggler--formDisplayed {
    display: block;
  }

  body.body-searchEngineOpen #mainContainer.searchEngineOpened .searchForm-toggler--home {
    visibility: hidden;
  }

  .form-quantityErrorMessage {
    right: -1rem;
  }

  .form-quantityErrorMessage:before, .form-quantityErrorMessage:after {
    right: 3.75rem;
  }

  .home .searchForm-container .searchForm-capacityContainer .kidsAgesContainer .selectKidAge {
    width: 32vw;
    padding-right: 13vw;
  }

  .home .searchForm-container .searchForm-capacityContainer .kidsAgesContainer .selectKidAge option {
    color: black;
  }

  .home .searchForm-container .searchForm-capacityContainer .kidsAgesContainer .selectKidAge-container {
    width: 26vw;
    overflow: hidden;
    border-radius: 0.3125rem;
    margin-bottom: 0.625rem;
    border: 1px solid #9ea0a2;
  }

  .contentHeader {
    padding: 0 0.3125rem;
  }

  .contentHeader-title {
    margin-bottom: 1.25rem;
  }

  .contentTitle--noMarginBottomMobile h1, .contentTitle--noMarginBottomMobile h2 {
    margin-bottom: 1.25rem;
  }

  .popin-box {
    width: 80%;
  }

  .dropDownList-container .api_toggle_content {
    width: 70vw;
  }

  .dropDownList-container .api_toggle_content ul li[data-sort=distance].u-disabled {
    line-height: 1rem !important;
  }

  h1, .h1-like {
    font-size: 1.5625rem;
    line-height: 1.625rem;
    margin-top: 0.625rem;
  }

  h2, .h2-like {
    font-size: 1.3125rem;
    line-height: 1.25;
  }

  h3, .h3-like {
    font-size: 1.125rem;
  }

  h4, .h4-like {
    font-size: 1rem;
    line-height: 1rem;
  }

  .u-mobileBorderBottom--White20 {
    border-bottom: 0.625rem solid white;
  }

  #mainContainer {
    width: 100vw;
  }

  .commonLayout {
    padding: 0;
  }

  .cookiesBanner-text {
    width: 93%;
    margin: 0 0 0.625rem;
  }

  body {
    padding: 0;
    background-color: #F4F5F5;
  }

  .u-cpeIcon--chevron:before {

    /* ouveture right / fermeture left sous mobile */
    content: "\EA0D";
  }

  .opened .u-cpeIcon--chevron:before {

    /* ouveture right / fermeture left sous mobile */
    content: "\EA0C";
  }

  .mainContainerWithGutteOnMobile #mainContainer {
    padding: 0 3vw;
    background: white;
  }

  .mainContainerWithGutteOnMobile footer {
    margin: 0 -3vw;
  }

  .heightForFullWidth_16_9 {
    height: 44vw;
  }

  .heightForFullWidth_16_9 picture {
    height: 44vw;
  }
}

@media (min-width: 0) {

  .r-minS--1of12 {
    width: 8.33333%;
  }

  .r-minS--1of10 {
    width: 10%;
  }

  .r-minS--1of8 {
    width: 12.5%;
  }

  .r-minS--1of6, .r-minS--2of12 {
    width: 16.66667%;
  }

  .r-minS--1of5, .r-minS--2of10 {
    width: 20%;
  }

  .r-minS--1of4, .r-minS--2of8, .r-minS--3of12 {
    width: 25%;
  }

  .r-minS--3of10 {
    width: 30%;
  }

  .r-minS--1of3, .r-minS--2of6, .r-minS--4of12 {
    width: 33.33333%;
  }

  .r-minS--3of8 {
    width: 37.5%;
  }

  .r-minS--2of5, .r-minS--4of10 {
    width: 40%;
  }

  .r-minS--5of12 {
    width: 41.66667%;
  }

  .r-minS--1of2, .r-minS--2of4, .r-minS--3of6, .r-minS--4of8, .r-minS--5of10, .r-minS--6of12 {
    width: 50%;
  }

  .r-minS--7of12 {
    width: 58.33333%;
  }

  .r-minS--3of5, .r-minS--6of10 {
    width: 60%;
  }

  .r-minS--5of8 {
    width: 62.5%;
  }

  .r-minS--2of3, .r-minS--4of6, .r-minS--8of12 {
    width: 66.66667%;
  }

  .r-minS--7of10 {
    width: 70%;
  }

  .r-minS--3of4, .r-minS--6of8, .r-minS--9of12 {
    width: 75%;
  }

  .r-minS--4of5, .r-minS--8of10 {
    width: 80%;
  }

  .r-minS--5of6, .r-minS--10of12 {
    width: 83.33333%;
  }

  .r-minS--7of8 {
    width: 87.5%;
  }

  .r-minS--9of10 {
    width: 90%;
  }

  .r-minS--11of12 {
    width: 91.66667%;
  }

  .r-minS--1of1, .r-minS--2of2, .r-minS--3of3, .r-minS--4of4, .r-minS--5of5, .r-minS--6of6, .r-minS--8of8, .r-minS--10of10, .r-minS--12of12 {
    width: 100%;
  }

  .r-minS--hidden {
    display: none;
  }

  .r-minS--visible {
    display: inline-block;
  }
}

@media (min-width: 768px) {

  .r-minM--1of12 {
    width: 8.33333%;
  }

  .r-minM--1of10 {
    width: 10%;
  }

  .r-minM--1of8 {
    width: 12.5%;
  }

  .r-minM--1of6, .r-minM--2of12 {
    width: 16.66667%;
  }

  .r-minM--1of5, .r-minM--2of10 {
    width: 20%;
  }

  .r-minM--1of4, .r-minM--2of8, .r-minM--3of12 {
    width: 25%;
  }

  .r-minM--3of10 {
    width: 30%;
  }

  .r-minM--1of3, .r-minM--2of6, .r-minM--4of12 {
    width: 33.33333%;
  }

  .r-minM--3of8 {
    width: 37.5%;
  }

  .r-minM--2of5, .r-minM--4of10 {
    width: 40%;
  }

  .r-minM--5of12 {
    width: 41.66667%;
  }

  .r-minM--1of2, .r-minM--2of4, .r-minM--3of6, .r-minM--4of8, .r-minM--5of10, .r-minM--6of12 {
    width: 50%;
  }

  .r-minM--7of12 {
    width: 58.33333%;
  }

  .r-minM--3of5, .r-minM--6of10 {
    width: 60%;
  }

  .r-minM--5of8 {
    width: 62.5%;
  }

  .r-minM--2of3, .r-minM--4of6, .r-minM--8of12 {
    width: 66.66667%;
  }

  .r-minM--7of10 {
    width: 70%;
  }

  .r-minM--3of4, .r-minM--6of8, .r-minM--9of12 {
    width: 75%;
  }

  .r-minM--4of5, .r-minM--8of10 {
    width: 80%;
  }

  .r-minM--5of6, .r-minM--10of12 {
    width: 83.33333%;
  }

  .r-minM--7of8 {
    width: 87.5%;
  }

  .r-minM--9of10 {
    width: 90%;
  }

  .r-minM--11of12 {
    width: 91.66667%;
  }

  .r-minM--1of1, .r-minM--2of2, .r-minM--3of3, .r-minM--4of4, .r-minM--5of5, .r-minM--6of6, .r-minM--8of8, .r-minM--10of10, .r-minM--12of12 {
    width: 100%;
  }

  .r-minM--hidden {
    display: none;
  }

  .r-minM--visible {
    display: inline-block;
  }
}

@media (min-width: 1200px) {

  .r-minL--1of12 {
    width: 8.33333%;
  }

  .r-minL--1of10 {
    width: 10%;
  }

  .r-minL--1of8 {
    width: 12.5%;
  }

  .r-minL--1of6, .r-minL--2of12 {
    width: 16.66667%;
  }

  .r-minL--1of5, .r-minL--2of10 {
    width: 20%;
  }

  .r-minL--1of4, .r-minL--2of8, .r-minL--3of12 {
    width: 25%;
  }

  .r-minL--3of10 {
    width: 30%;
  }

  .r-minL--1of3, .r-minL--2of6, .r-minL--4of12 {
    width: 33.33333%;
  }

  .r-minL--3of8 {
    width: 37.5%;
  }

  .r-minL--2of5, .r-minL--4of10 {
    width: 40%;
  }

  .r-minL--5of12 {
    width: 41.66667%;
  }

  .r-minL--1of2, .r-minL--2of4, .r-minL--3of6, .r-minL--4of8, .r-minL--5of10, .r-minL--6of12 {
    width: 50%;
  }

  .r-minL--7of12 {
    width: 58.33333%;
  }

  .r-minL--3of5, .r-minL--6of10 {
    width: 60%;
  }

  .r-minL--5of8 {
    width: 62.5%;
  }

  .r-minL--2of3, .r-minL--4of6, .r-minL--8of12 {
    width: 66.66667%;
  }

  .r-minL--7of10 {
    width: 70%;
  }

  .r-minL--3of4, .r-minL--6of8, .r-minL--9of12 {
    width: 75%;
  }

  .r-minL--4of5, .r-minL--8of10 {
    width: 80%;
  }

  .r-minL--5of6, .r-minL--10of12 {
    width: 83.33333%;
  }

  .r-minL--7of8 {
    width: 87.5%;
  }

  .r-minL--9of10 {
    width: 90%;
  }

  .r-minL--11of12 {
    width: 91.66667%;
  }

  .r-minL--1of1, .r-minL--2of2, .r-minL--3of3, .r-minL--4of4, .r-minL--5of5, .r-minL--6of6, .r-minL--8of8, .r-minL--10of10, .r-minL--12of12 {
    width: 100%;
  }

  .r-minL--hidden {
    display: none;
  }

  .r-minL--visible {
    display: inline-block;
  }

  .r-minXL--1of12 {
    width: 8.33333%;
  }

  .r-minXL--1of10 {
    width: 10%;
  }

  .r-minXL--1of8 {
    width: 12.5%;
  }

  .r-minXL--1of6, .r-minXL--2of12 {
    width: 16.66667%;
  }

  .r-minXL--1of5, .r-minXL--2of10 {
    width: 20%;
  }

  .r-minXL--1of4, .r-minXL--2of8, .r-minXL--3of12 {
    width: 25%;
  }

  .r-minXL--3of10 {
    width: 30%;
  }

  .r-minXL--1of3, .r-minXL--2of6, .r-minXL--4of12 {
    width: 33.33333%;
  }

  .r-minXL--3of8 {
    width: 37.5%;
  }

  .r-minXL--2of5, .r-minXL--4of10 {
    width: 40%;
  }

  .r-minXL--5of12 {
    width: 41.66667%;
  }

  .r-minXL--1of2, .r-minXL--2of4, .r-minXL--3of6, .r-minXL--4of8, .r-minXL--5of10, .r-minXL--6of12 {
    width: 50%;
  }

  .r-minXL--7of12 {
    width: 58.33333%;
  }

  .r-minXL--3of5, .r-minXL--6of10 {
    width: 60%;
  }

  .r-minXL--5of8 {
    width: 62.5%;
  }

  .r-minXL--2of3, .r-minXL--4of6, .r-minXL--8of12 {
    width: 66.66667%;
  }

  .r-minXL--7of10 {
    width: 70%;
  }

  .r-minXL--3of4, .r-minXL--6of8, .r-minXL--9of12 {
    width: 75%;
  }

  .r-minXL--4of5, .r-minXL--8of10 {
    width: 80%;
  }

  .r-minXL--5of6, .r-minXL--10of12 {
    width: 83.33333%;
  }

  .r-minXL--7of8 {
    width: 87.5%;
  }

  .r-minXL--9of10 {
    width: 90%;
  }

  .r-minXL--11of12 {
    width: 91.66667%;
  }

  .r-minXL--1of1, .r-minXL--2of2, .r-minXL--3of3, .r-minXL--4of4, .r-minXL--5of5, .r-minXL--6of6, .r-minXL--8of8, .r-minXL--10of10, .r-minXL--12of12 {
    width: 100%;
  }

  .r-minXL--hidden {
    display: none;
  }

  .r-minXL--visible {
    display: inline-block;
  }

  .r-minL--1of2b {
    width: 49.99%;
  }

  .r-minL--1of2c {
    width: 49%;
  }

  .u-Hidden-desktop {
    display: none;
  }

  .u-Hidden-allDesktop, .u-Visible-mobileToTablet, .u-Visible-tablet, .u-Visible-mobile {
    display: none;
  }

  .u-Hidden-desktop--forced {
    display: none !important;
  }

  .u-img-rollover {
    overflow: hidden;
    position: relative;
    display: inline-block;
    width: 100%;
  }

  .u-img-rollover picture > img {
    transition: all 0.5s;
    width: 100%;
  }

  .u-img-rollover:hover picture > img {
    transform: scale(1.05);
  }

  /*.u-img-rollover:after{
    content: " ";
    position: absolute;
    top:0;left:0;right:0;bottom:0;
    background-image:
      linear-gradient(-30deg, transparent 45%, rgba(255,255,255,0.5) 50%, transparent 50%, transparent 100%);
    background-size: 9px 5px;
  }
  .u-img-rollover:hover:after{display:none;}*/

  /* hack Chrome / Safari */

  /*@media screen and (-webkit-min-device-pixel-ratio:0) {
    .u-img-rollover:after {
      background-image:
        linear-gradient(-45deg, transparent 45%, rgba(255,255,255,0.5) 50%, transparent 50%, transparent 100%);
      background-size: 8px 8px;
    }
  }*/

  .pika-single.is-bound {

    /* forcing position because of a misplace on tiny desktop */
    max-width: 47.5rem;
    left: 50% !important;
    transform: translate(-50%,0);
  }

  .pika-lendar {
    margin: 0 6%;
  }

  .pika-table td .pika-day:hover:not(.pika-selectedRange) {
    background-color: #78B13E;
    color: white;
    border-radius: 50%;
  }

  .pika-table td:not(.is-disabled) .pika-button:hover {
    color: #fff;
    background: #78B13E;
  }

  .pika-button {
    height: 2.5rem;
  }

  .doubleTextField__input_2 {
    margin-left: -10px;
  }

  .form-label:hover {
    color: #78B13E;
  }

  .form-checkboxLabel:hover:before {
    border-color: #78B13E;
  }

  .header-content {
    z-index: 902;
  }

  .header-logo {
    width: 5.125rem;
    left: 0;
    margin-top: 3rem;
    transform: translateY(-50%);
  }

  .header-navigation {
    padding: 0 8.125rem 0 8.125rem;
  }

  .header-navItem {
    display: inline-block;
  }

  .header-navItem .u-Hidden-desktop.cpe-Icon {
    display: none;
  }

  .header-navItem.header-navItem--other {
    padding-bottom: 0;
  }

  .header-navItem:after {
    content: "•";
    display: inline-block;
    color: #E9E9E9;
  }

  .header-navItem:last-child:after, .header-navItem:nth-last-child(2):after {
    content: none;
  }

  .header-navItem a {
    position: relative;
    display: inline-block;
    padding: 0;
    margin: 0 0.5625rem;
    font-size: 1rem;
    color: #3D4246;
  }

  .header-navItem:hover .header-subNav {
    position: absolute;
    display: inline-block !important;
    background-color: #e9e9e9;
    left: 0;
    top: 6rem;
    height: 21rem;
    z-index: 100;
  }

  .header-navItem.header-navItem--offers:hover .header-subNav, .header-navItem.header-navItem--discover:hover .header-subNav {
    background-color: #f9fbfb;
  }

  .header-navItem a.header-arrow--display span:hover {
    color: #3D4246;
  }

  .header-navItem--closeNav.u-Hidden-allDesktop {
    display: none;
  }

  .header-navItem.header-navItem--step1 {
    line-height: 6rem;
    height: 6rem;
  }

  .header-navItem.header-navItem--step1:hover a.header-mainLink {
    border-bottom: 5px solid #00733A;
    height: 6rem;
  }

  .header-navItem.header-navItem--step1 > a {
    font-weight: 500;
  }

  @media(min-width: 1200px) {

    .header-navItem.header-navItem--step1:first-child {
      display: none;
    }
  }

  .header-navItem.header-navItem--step1:first-child {
    display: none;
  }

  .header-navItem--lastminute.header-navItem--step1.header-navItem a:hover {
    border-bottom: 5px solid #D7532C;
  }

  .header-navItem--lastminute.header-navItem--step1.header-navItem a.header-mainLink {
    height: 6rem;
  }

  .header-navItem .header-linksLevel3--noBorderBottom:before {
    content: "";
    display: block;
    width: 1.75rem;
    height: 0.0625rem;
    border-bottom: 0.0625rem solid #9ea0a2;
    margin: 0.375rem auto 0.8125rem;
  }

  .header-navItem .header-linksLevel3--all {
    font-weight: 500;
  }

  .header-navItem--other {
    line-height: 6rem;
  }

  .header-navItem--other .header-navBlockOther {
    display: inline-block;
    padding-top: 0;
  }

  .header-navItem--other .header-navBlockOther .button--whiteGreen {
    width: 3rem;
    height: 3rem;
    border-radius: 1.5rem;
    font-size: 1.125rem;
    padding: 0;
    line-height: 3rem;
  }

  .header-navItem--other .header-navBlockOther .button--whiteGreen i {
    margin-top: -0.1875rem;
  }

  .header-navItem--other .header-navBlockOther .buttonContainer {
    margin: 0 0.125rem !important;
  }

  .header-subNav {
    display: none;
    width: 60.125rem;
  }

  .headerNav-toggle.cpe-Icon--menuburger {
    display: none;
  }

  .headerNav-toggle.cpe-Icon--menuburger:before {
    content: "";
  }

  .header-linkBorder {
    margin-bottom: 0.3125rem;
  }

  .header-linkBorder:first-child:before {
    border-width: 0;
  }

  .header-linkBorder a {
    color: #3D4246;
  }

  .header-linkBorder a:hover {
    color: #3D4246;
  }

  .header-section {
    text-align: center;
    padding: 5.625rem 0 3.125rem 0;
  }

  .header-section li a {
    color: #3D4246;
  }

  .header-section li a:hover {
    color: #00733A;
  }

  .header-section a .header-linkslevel2Discover {
    color: #3D4246;
  }

  .header-section a:hover .header-linkslevel2Discover {
    color: #00733A;
  }

  .header .cpe-Icon--arrow_cta {
    visibility: hidden;
    position: absolute;
    font-size: initial;
    left: calc(50% - 0.5rem);
    bottom: 1.25rem;
  }

  .header-linkSection {
    margin-top: 1rem;
  }

  .header-linksLevel2 .header-linkslevel2Discover {
    font-size: 1.1875rem;
    margin-top: 0.9375rem;
    margin-bottom: 0.9375rem;
    display: block;
    font-weight: 500;
  }

  .header-offersBackground--padding {
    padding: 3.75rem 0;
  }

  .header-offersLinkLine {
    margin-bottom: 0.625rem;
  }

  .header-offersLink--center {
    text-align: center;
  }

  .header-iconText--center {
    text-align: center;
  }

  .header-navigation .header-navItem--offers .header-subNav .header-offersLink--color {
    color: #3D4246;
  }

  .header-navigation .header-navItem--offers .header-subNav .header-offersLink--color:hover {
    color: #00733A;
    background: #f4f5f5;
  }

  .header-navItem--offers ul li ul .header-linklevel2--borderTop .header-linksLevel2 {
    height: 10.4375rem;
    margin: 0;
    display: block;
    padding: 1.875rem 0 0.625rem 0;
  }

  .header-navItem--discover ul.ui-tabs-nav {
    padding: 2.5rem 0;
    height: 21rem;
  }

  .header-navItem--discover ul.ui-tabs-nav li.header-section {
    height: 16rem;
    border-right: solid 1px #d2d3d3;
    padding: 0;
  }

  .header-navItem--discover ul.ui-tabs-nav li.header-section a.header-linksLevel2 {
    margin-top: -0.625rem;
  }

  .header-navItem--discover ul.ui-tabs-nav li.header-section a.header-linksLevel3 {
    line-height: 1.125rem;
  }

  .headerDomains-Tabs {
    text-align: center;
    line-height: 3.125rem;
    width: 17.8125rem;
    margin-top: 1.5rem;
  }

  .ui-state-active a.headerDomain-CountryName {
    color: #00733A;
    background-color: #ffffff;
  }

  li.headerDomain-Country {
    display: block;
    font-size: 13px;
  }

  li.headerDomain-Country a {
    display: inline-block;
    padding: 0 0 0 1.5rem;
    color: #3D4246;
    height: 2.75rem;
    line-height: 2.75rem;
    width: 90%;
    margin: 0 0 0 1.75rem;
    border-radius: 2.75rem 0 0 2.75rem;
    z-index: 900;
    text-align: left;
    font-weight: bold;
  }

  li.headerDomain-Country a .ui-tabs-active {
    color: #00733A;
  }

  li.headerDomain-Country a .cpe-Icon {
    position: absolute;
    right: 1.25rem;
    top: 0.125rem;
  }

  li.headerDomain-Country img {
    position: absolute;
    width: auto;
    height: 21rem;
    right: 0;
    bottom: 0;
  }

  li.headerDomain-Country .headerDomain-content {
    position: absolute;
    left: 17.8125rem;
    top: 0;
    width: 42.3125rem;
    height: 21rem;
    background-color: #f9fbfb;
    overflow: hidden;
  }

  li.headerDomain-Country .headerDomain-map {
    width: 100%;
  }

  li.headerDomain-Country .headerDomain-map picture {
    position: static;
  }

  li.headerDomain-Country .headerDomain-listContainer {
    position: absolute;
    width: 100%;
    left: 0%;
    top: 0;
    height: 100%;
    padding: 2% 0 0 7%;
  }

  li.headerDomain-Country .headerDomain-listContainer .headerDomain-capitalInfo {
    position: absolute;
    display: inline-block;
    line-height: 1em;
  }

  li.headerDomain-Country .headerDomain-listContainer .headerDomain-capitalInfo:before {
    content: "•";
    display: block;
    text-align: center;
    font-size: 1.25rem;
  }

  li.headerDomain-Country .headerDomain-listContainer.country-FR .headerDomain-capitalInfo {
    left: 70%;
    top: 38%;
  }

  li.headerDomain-Country .headerDomain-listContainer.country-FR .headerDomain-capitalInfo:before {
    width: 2.125rem;
  }

  li.headerDomain-Country .headerDomain-listContainer.country-BE .headerDomain-capitalInfo {
    left: 63%;
    top: 36%;
  }

  li.headerDomain-Country .headerDomain-listContainer.country-BE .headerDomain-capitalInfo:before {
    width: 3.875rem;
  }

  li.headerDomain-Country .headerDomain-listContainer.country-NL .headerDomain-capitalInfo {
    left: 57%;
    top: 44%;
  }

  li.headerDomain-Country .headerDomain-listContainer.country-NL .headerDomain-capitalInfo:before {
    width: 4.8125rem;
  }

  li.headerDomain-Country .headerDomain-listContainer.country-DE .headerDomain-capitalInfo {
    left: 80%;
    top: 31%;
  }

  li.headerDomain-Country .headerDomain-listContainer.country-DE .headerDomain-capitalInfo:before {
    width: 2.4375rem;
  }

  li.headerDomain-Country .headerDomain-list {
    display: table-cell;
    vertical-align: middle;
  }

  li.headerDomain-Country .headerDomain-pin {
    display: inline-block;
    width: 1.5rem;
    height: 1.875rem;
    background: url(../images/sprites/common_icos.png) -3.875rem -2.5rem no-repeat;
    position: absolute;
    margin-top: -2.6875rem;
  }

  li.headerDomain-Country .headerDomain-proximities {
    display: none;
    position: absolute;
    line-height: 0.9375rem;
    font-family: 'DomaineText-Italic', Arial, Helvetica, sans-serif;
    font-size: 13px;
    color: #00733A;
  }

  li.headerDomain-Country .headerDomain-proximities .headerDomain-ProximityDistance {
    display: block;
    position: absolute;
    z-index: 901;
    min-width: 12.5rem;
  }

  li.headerDomain-Country .headerDomain-proximities .headerDomain-ProximityDistance.headerDomain-Proximities--upper {
    text-align: center;
    bottom: 0.375rem;
    left: -6.4375rem;
  }

  li.headerDomain-Country .headerDomain-proximities .headerDomain-ProximityDistance.headerDomain-Proximities--lower {
    text-align: center;
    top: 0.375rem;
    left: -6.4375rem;
  }

  li.headerDomain-Country .headerDomain-proximities .headerDomain-ProximityDistance.headerDomain-Proximities--middle {
    margin-top: -1em;
    margin-right: 0;
  }

  li.headerDomain-Country .headerDomain-proximities .headerDomain-ProximityDistance.headerDomain-Proximities--middle.headerDomain-Proximities--right {
    text-align: left;
    left: 0.75rem;
  }

  li.headerDomain-Country .headerDomain-proximities .headerDomain-ProximityDistance.headerDomain-Proximities--middle.headerDomain-Proximities--left {
    text-align: right;
    right: 0.75rem;
  }

  li.headerDomain-Country .headerDomain-proximities:after {
    content: "";
    position: absolute;
    width: 0.375rem;
    height: 0.375rem;
    background: url(../images/sprites/common_icos.png) -0.6875rem -5.5625rem no-repeat;
    left: 0%;
    top: 0;
    margin-left: 0.1875rem;
    margin-top: -0.1875rem;
  }

  li.headerDomain-Country .headerDomain-item {
    line-height: 1.625rem;
    margin: 0;
    padding: 0;
  }

  li.headerDomain-Country .headerDomain-item a {
    width: 100%;
    position: static;
    height: 2rem;
    line-height: 2rem;
    padding: 0;
    margin: 0;
    font-weight: normal;
  }

  li.headerDomain-Country .headerDomain-item:last-child a {
    font-weight: bold;
  }

  li.headerDomain-Country .headerDomain-item:hover .headerDomain-pin {
    background-position: -5.5rem -2.5rem;
    z-index: 903;
  }

  li.headerDomain-Country.header-section {
    padding: 0;
  }

  @media (max-width: 767px) {

    li.headerDomain-Country.header-section {
      border-bottom: 0.0625rem solid #E9E9E9;
    }
  }

  @media (max-width: 767px) {

    li.headerDomain-Country .headerDomain-item.header-linkBorder {
      border-bottom: 0.0625rem solid #E9E9E9;
    }
  }

  @media (max-width: 767px) {

    li.headerDomain-Country .headerDomain-item.header-linkBorder:last-child {
      border-bottom: none;
    }
  }

  @media (min-width: 1200px) {

    li.headerDomain-Country .headerDomain-item.header-linkBorder:before {
      font-size: 0;
      margin: 0.375rem auto;
    }
  }

  @media (max-width: 767px) {

    li.headerDomain-Country .headerDomain-region {
      display: block;
      font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
      font-size: 0.75rem;
      font-weight: normal;
      line-height: 0.5rem;
      color: #9ea0a2;
    }
  }

  li.headerDomain-Country .headerDomain-item.header-linkBorder:before {
    font-size: 0;
    margin: 0.375rem auto;
  }

  .header-linkSection {
    display: table-cell !important;
    width: inherit;
  }

  .cp-Overlay {
    position: absolute;
    top: 6rem;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(34,34,34,.65);
    z-index: 900;
  }

  .footer-green .footer-usps .footer-uspsWrapper .r-minL--1of6 {
    width: 16.66%;
  }

  .certifications-list {
    padding-right: 0.33%;
  }

  .certifications-listText {
    padding-left: 15%;
  }

  .footer-myCP {
    padding-top: 1.875rem;
  }

  .searchForm-globalInputContainer {
    width: 51rem;
  }

  .searchForm-globalInputContainer.widthSearchForm-countrySite {
    width: 68.75rem;
  }

  .searchForm-container {
    bottom: 4.0625rem;
  }

  .searchForm-inputContainer {
    height: 2.5rem;
  }

  .searchForm-inputContainer:after {
    margin-top: -1.375rem;
  }

  .searchForm-dataListContainer {
    width: 51rem;
  }

  .searchForm-dataListContainer.js-country:after {
    left: 4.375rem;
  }

  .searchForm-parkSelectContainer .searchForm-dataListContainer {
    width: 68.75rem;
    margin-left: -0.625rem;
  }

  .searchForm-country_FR .countryMap-container {
    width: 33%;
  }

  .searchForm-country_FR .countryMap-container picture {
    margin-top: -1.25rem;
  }

  .searchForm-country_FR .searchForm-referencePin {
    top: 42%;
    left: 50%;
  }

  .searchForm-country_DE {
    height: 18.75rem;
  }

  .searchForm-country_DE .countryMap-container {
    width: 33%;
  }

  .searchForm-country_NL {
    min-height: 22.8125rem;
  }

  .searchForm-country_NL .countryMap-container {
    width: 40%;
  }

  .searchForm-country_NL .countryMap-container img {
    margin-left: 10%;
  }

  .searchForm-globalDateContainer {
    width: 45%;
    text-align: left;
  }

  .searchForm-globalDateContainer .cpe-Icon--arrow2 {
    margin: 0 0.59375rem;
  }

  .searchForm-globalDateContainer .date-container {
    width: calc((100% - 4.3125rem) / 2);
  }

  .searchForm-globalDateContainer .date-container .searchForm-dataOpener {
    padding: 1.25rem 1.1875rem;
  }

  .searchForm-globalDateContainer .date-container .searchForm-dataOpener.js-search-date_begin {
    padding-right: 0.59375rem;
  }

  .searchForm-globalDateContainer .date-container .searchForm-dataOpener.js-search-date_end {
    padding-left: 0.59375rem;
  }

  .searchForm .widthSearchForm-countrySite .searchForm-globalDateContainer {
    width: 30%;
  }

  .searchForm .widthSearchForm-countrySite .searchForm-capacity {
    width: 26%;
  }

  .searchForm-capacity {
    width: 37%;
  }

  .searchForm-capacity .searchForm-dataListContainer {
    position: absolute;
    left: -3.125rem;
    top: 4.375rem;
    width: 24.0625rem;
    background-color: white;
  }

  .contentHeader {
    padding: 0.625rem 0 0.625rem;
  }

  .contentHeader--noPaddingTop {
    padding-top: 0;
  }

  .contentHeader-text {
    padding: 0 20%;
  }

  .dropDownList-container .api_toggle_content {
    width: 100%;
  }

  .fancybox-blocVideo.videoInsideBanner {
    display: none !important;

    /* hidding play button when video is displayed inside the page */
  }

  .lightCottageDetails .fancybox-slide--iframe .fancybox-content {
    width: 95% !important;
  }

  .fancybox-inner .fancybox-arrow--right {
    right: 4.375rem;
  }

  .fancybox-inner .fancybox-arrow--left {
    left: 4.375rem;
  }

  .desktopPaddingContainer {
    padding: 0 7%;
  }

  .heightForFullWidth_16_9 {
    height: 40.5vw;
  }

  .heightForFullWidth_16_9 picture {
    height: 40.5vw;
  }
}

@media (min-width:  768px) {

  .r-minM--offset-2of5 {
    margin-left: 40%;
  }

  .u-Visible-mobile {
    display: none!important;
  }

  .form-QuantityContainer {
    margin-right: 0.625rem;
  }

  .pika-single {
    border-radius: 0.3125rem;
  }

  .pika-single.is-bound:before {

    /*trait de séparation entre deux mois*/
    content: "";
    position: absolute;
    left: 49%;
    top: 6.875rem;
    height: 14.0625rem;
    border-right: 1px solid #E9E9E9;
    width: 0px;
  }

  .pika-single .cpe-Icon--close {
    position: absolute;
    top: 0.3125rem;
    right: 0.5rem;
    cursor: pointer;
    font-size: 0.75rem;
    color: #3D4246;
  }

  .pika-header {
    display: none;
  }

  .footer-darkGreen .footer-conditions p {
    margin-bottom: 0.625rem;
  }

  .languagesForm.open a.languagesForm-dataOpener:after {
    margin-top: -0.75rem;
  }

  .animatedIconContainer .cpe-Icon:before {
    line-height: 0;
  }

  .abtest_durationCalendar .pika-headerLine {
    display: none;
  }

  .abtest_durationCalendar .searchForm-durationLabel {
    display: inline-block;
    text-align: right;
  }

  .abtest_durationCalendar .searchForm-durationLabel--main {
    display: block;
  }

  .searchForm {
    height: 3.75rem;
    display: inline-block;
    border-radius: 0.5rem;
    width: auto;
    margin: 0 auto;
    box-shadow: 1px 2px rgba(0, 0, 0, 0.2);
  }

  .searchForm-globalInputContainer {
    display: inline-block;
    vertical-align: top;
    text-align: center;
    height: 3.75rem;
  }

  .searchForm-inputContainer.opened:before {
    content: "";
    border-width: 0px 12px 12px 12px;
    border-style: solid;
    border-color: transparent transparent white transparent;
    position: absolute;
    bottom: -0.75rem;
    left: 50%;
    margin-left: -0.625rem;
  }

  .searchForm-dataOpener {
    padding: 0.625rem 1rem 0.625rem 0.625rem;
    line-height: 2.5rem;
    display: block;
    height: 3.75rem;
    font-size: 13px;
    width: 100%;
  }

  .searchForm-dataOpener.opened {
    color: #3D4246;
  }

  .searchForm-dataOpener.opened:after {
    color: #3D4246;
  }

  .searchForm-dataOpener input {
    font-size: 13px;
    position: relative;
    z-index: 802;
    width: 7.5rem;
    height: 1.25rem;
  }

  .searchForm a.searchForm-dataOpener.opened:before {
    content: "";
    border-width: 0px 10px 10px 10px;
    border-style: solid;
    border-color: transparent transparent white transparent;
    position: absolute;
    bottom: -10px;
    left: 50%;
    margin-left: -10px;
    z-index: 850;
  }

  .searchForm a.searchForm-dataOpener.searchForm-parkSelector.opened:before {
    border-color: transparent transparent #E9E9E9 transparent;
  }

  .searchForm .searchForm-dateContainer.dirty input.searchForm-dataOpener {
    text-overflow: clip;
    white-space: normal;
    overflow: visible;
  }

  .searchForm .searchForm-dateContainer:not(.dirty) input.searchForm-dataOpener {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }

  .searchForm .opened.searchForm-inputContainer .searchForm-dataOpener {
    background-color: white;
    color: #3D4246;
  }

  .searchForm-dataList {
    color: #3D4246;
    background-color: #E9E9E9;
    z-index: 840;
    border-radius: 0.5rem;
  }

  .searchForm-dataList a {
    color: #3D4246;
  }

  .searchForm-parkSelectContainer {
    width: 26%;
    position: static;
    border-right: 1px solid #9ea0a2;
    border-radius: 0.3125rem 0 0 0.3125rem;
  }

  .searchForm-country {
    width: 25%;
  }

  .searchForm-country .form-checkboxContainer {
    padding-left: 1.25rem;
  }

  .searchForm-countryOptionsList {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: 1.25rem 2.5rem 1.25rem 25%;
    overflow: hidden;
    background-color: white;
    background-image: linear-gradient(to right, #EDEDED, #EDEDED 25%, #FFFFFF 25.1%, #FFFFFF 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#EDEDED',endColorstr='#FFFFFF', GradientType=0);
    border-radius: 0.5rem;
    box-shadow: 0px 2px 7px rgba(0,0,0,.2);
  }

  .searchForm-country_BE {
    height: 18.125rem;
  }

  .searchForm a.searchForm-listHeader {
    margin: 0.125rem 0;
    padding-left: 1.0625rem;
    border-radius: 0.875rem 0 0 0.875rem;
    line-height: 2.5rem;
    height: 2.5rem;
    z-index: 841;
  }

  .searchForm a.searchForm-listHeader.opened {
    background-color: white;
    color: green;
  }

  .searchForm-globalDateContainer {
    border-right: 1px solid #9ea0a2;
    height: 3.75rem;
  }

  .searchForm-globalDateContainer .cpe-Icon--arrow2 {
    margin: 0 0.3125rem;
  }

  .searchForm-globalDateContainer .cpe-Icon--arrow2:before {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
  }

  @media (min-width: 1200px) {

    .searchForm-globalDateContainer .cpe-Icon--arrow2 {
      margin: 0 0.59375rem;
    }
  }

  .searchForm-globalDateContainer .date-container {
    display: inline-block;
    height: 3.75rem;
  }

  .searchForm-globalDateContainer .date-container .searchForm-dataOpener {
    line-height: 1.25rem;
    margin: 0;
  }

  .searchForm-globalDateContainer .date-container:hover .searchForm-dataOpener:not(.disabled) {
    border-bottom: 0.25rem solid #78B13E;
    color: #78B13E;
    padding-bottom: 1rem;
  }

  .searchForm-globalDateContainer .date-container:hover .searchForm-dayLabel {
    color: #78B13E;
  }

  .searchForm-globalDateContainer .date-container .dirty {
    height: 3.75rem;
  }

  .searchForm-globalDateContainer .date-container .dirty .searchForm-dayLabel {
    position: absolute;
    left: 1.1875rem;
    bottom: 0.75rem;
    height: 1rem;
    line-height: 1rem;
    z-index: 840;
    display: inline-block;
    cursor: pointer;
    font-size: 0.8125rem;
    font-family: 'BentonSans', Arial, Helvetica, sans-serif;
  }

  .searchForm-globalDateContainer .date-container .dirty .searchForm-dayLabel.js-search-departureDay {
    left: 0.59375rem;
  }

  .searchForm-globalDateContainer .date-container .dirty .searchForm-dataOpener {
    padding-top: 0.3125rem;
  }

  @media (min-width: 768px) and (max-width: 1199px) {

    .searchForm-globalDateContainer .date-container .dirty .searchForm-dayLabel.js-search-departureDay {
      left: 0;
    }
  }

  @media (min-width: 768px) and (max-width: 1199px) {

    .searchForm-globalDateContainer .date-container .dirty .searchForm-dayLabel {
      left: 0;
    }
  }

  .searchForm-capacity .searchForm-petsNb {
    display: block;
    font-size: 0.875rem;
    font-weight: normal;
  }

  .searchForm-submitContainer {
    height: 3.75rem;
    background-color: #D7532C;
    padding: 0;
    border-radius: 0 0.5rem 0.5rem 0;
    width: 18%;
    text-align: center;
  }

  .searchForm-submitContainer:hover {
    background-color: #C23207;
  }

  .searchForm-submitContainer .submitSearchEngine {
    color: white;
    line-height: 3.75rem;
    display: block;
    padding: 0 1.25rem;
    font-size: 1rem;
    font-weight: 500;
  }

  .cp-loading.searchFilters-filterContent .cp-spinner {
    top: 12.5rem;
  }

  .engineOutside .searchDomain-top {
    padding-bottom: 3.125rem;
  }

  .engineOutside .searchDomain-result, .engineOutside .sck-results {
    padding-top: 3.125rem;
  }

  .searchForm-parkSelectContainer .delayClickLayer {
    width: 26%;
    right: auto;
  }

  .stickySearchDesktop .searchForm-container, .stickySearchDesktop .headbandThin .searchForm-container, .domainAccommodations.stickySearchDesktop .searchForm-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    background-color: white;
    border-bottom: 5px solid #00733A;
    z-index: 980;
    height: 4.0625rem;
    padding: 0;
    margin: 0;
  }

  .stickySearchDesktop .searchForm, .stickySearchDesktop .headbandThin .searchForm, .domainAccommodations.stickySearchDesktop .searchForm {
    box-shadow: none;
    border-radius: 0;
  }

  .stickySearchDesktop .searchForm-parkSelectContainer, .stickySearchDesktop .searchForm-submitContainer, .stickySearchDesktop .headbandThin .searchForm-parkSelectContainer, .stickySearchDesktop .headbandThin .searchForm-submitContainer, .domainAccommodations.stickySearchDesktop .searchForm-parkSelectContainer, .domainAccommodations.stickySearchDesktop .searchForm-submitContainer {
    border-radius: 0;
  }

  .stickySearchDesktop .searchForm-parkSelectContainer, .stickySearchDesktop .headbandThin .searchForm-parkSelectContainer, .domainAccommodations.stickySearchDesktop .searchForm-parkSelectContainer {
    border-left: 0.0625rem solid #9ea0a2;
  }

  .domainAccommodations.stickySearchDesktop .searchFiltersContainer {
    margin-top: 6.875rem;
  }

  .stickySearchDesktop.singleclick .sck-introTop {
    margin-top: 4.75rem;
  }

  /* fixed datepicker */

  .stickySearchDesktop .pika-single {
    position: fixed !important;
    top: 4.5rem !important;
  }

  .widthFixedGoToFilters .stickyGoToFilters {
    right: 3.75%;
    top: 50%;
    transform: translate(50%, -50%);
    color: white;
    padding: 0 1.25rem;
    background-color: #D7532C;
    box-shadow: 1px 3px rgba(0, 0, 0, 0.2);
    font-size: 1rem;
    width: 5.3125rem;
    height: 5.3125rem;
  }

  .preventScroll #mainContainer {
    height: 300px;
    overflow: hidden;
  }

  body {
    font-size: 15px;
  }

  p, label, input, button, li, a, span {
    font-size: 15px;
  }

  p {
    line-height: 1.25rem;
  }

  .u-cpeIcon--chevron:before {

    /* ouveture bottom / fermeture top sous tablet et desktop */
    content: "\EA0F";
  }

  .opened .u-cpeIcon--chevron:before {

    /* ouveture bottom / fermeture top sous tablet et desktop */
    content: "\EA0E";
  }
}

@media (min-width: 768px) and (max-width: 1199px) {

  .u-Hidden-tablet {
    display: none;
  }

  .legendLabel {
    bottom: 0.1875rem;
  }

  .pika-single.is-bound {
    left: 5.5% !important;
    right: 5.5% !important;
    width: 89%;
  }

  .pika-lendar {
    margin: 0 2.4vw;
    width: 37vw;
  }

  .pika-button {
    padding: 10px;
    height: 5vw;
  }

  .pika-reset {
    right: 0.125rem;
  }

  .header-content {
    margin-top: 0;
  }

  .header-logo {
    width: 6.25rem;
  }

  .header-navItem a {
    padding-left: 3rem;
  }

  body.navDisplayed .header-navItem--other .header-navBlockInfo .header-navBlockInfoItem--faq {
    padding-left: 1.25rem;
    margin-left: 0.625rem;
  }

  body.navDisplayed .header-navItem .header-subNav .header-linksLevel2 {
    padding-left: 3.75rem;
  }

  .footer-background {
    display: none;
  }

  .footer-greenColor {
    padding-bottom: 2.5rem;
  }

  .footer-green {
    margin-top: 1.25rem;
  }

  .footer-green img {
    margin: 0;
    margin-top: 1.25rem;
    width: 3.5rem;
    float: left;
  }

  .footer-green img:first-child {
    margin-left: 1.875rem;
  }

  .footer-green .footer-news .footer-newsWrapper p.footer-newsText {
    float: left;
    width: 35%;
    padding-left: 0.625rem;
  }

  .footer-green .footer-news .footer-newsWrapper .footer-newsletterForm {
    margin-top: 0rem;
  }

  .footer-green .footer-news .footer-newsWrapper .row {
    float: left;
    width: 58%;
    margin-left: 1.875rem;
  }

  .footer-green .footer-news .footer-newsWrapper {
    padding: 2.25rem 1.875rem;
  }

  .footer-green .footer-news {
    margin-top: 0;
    position: relative;
    border-bottom: 2.5rem solid #fff;
  }

  .footer-green .footer-brochure a picture img {
    margin-left: 1.875rem;
  }

  .footer-green .footer-brochure p {
    text-align: left;
    padding-left: 7.25rem;
    padding-top: 1.125rem;
    font-size: 0.9375rem;
  }

  .footer-green .footer-app a picture img {
    margin-left: 1.875rem;
  }

  .footer-green .footer-app p {
    text-align: left;
    padding-left: 7.25rem;
    padding-top: 1.125rem;
    font-size: 0.9375rem;
  }

  .footer-green .inputContainer {
    border-radius: 0;
    background: white;
  }

  .footer-green .footer-cpBrochure {
    border-bottom: 0.0625rem solid #fff;
    padding-bottom: 1.25rem;
  }

  .footer-green .footer-usps-margin {
    margin-top: 2.5rem;
    padding: 0 1.25rem;
  }

  .footer-green .footer-usps p {
    margin-bottom: 0.625rem;
  }

  .footer-green .footer-usps .footer-uspsWrapper img {
    width: 85%;
    margin: 0 auto;
    margin-bottom: 1.25rem;
    float: none;
  }

  .footer-green .footer-usps .footer-uspsWrapper .footerAlways {
    margin: 0;
    font-size: 0.6875rem;
    padding: 0 0.3125rem;
  }

  .footer-darkGreen {
    padding: 0 3%;
  }

  .footer-darkGreen .footer-conditionsList {
    margin-top: 0.9375rem;
  }

  .footer-darkGreen .footer-paymentCertif .footer-certifications {
    text-align: center;
  }

  .footer-grey .certifications-listPicture {
    vertical-align: middle;
  }

  .footer-grey .certifications-listPicture img {
    height: auto;
  }

  .certifications-list {
    vertical-align: top;
  }

  .certifications-list a {
    display: block;
  }

  .certifications-listText {
    font-size: 0.6875rem;
    padding-top: 0.5rem;
    line-height: 1.0625rem;
    display: block;
  }

  .certifications-listText:before {
    content: none;
  }

  .certifications-listPicture {
    display: block;
  }

  .certifications-listPicture img {
    float: none;
    height: 1.875rem;
  }

  .footer-greyLanguages {
    padding: 3% 2%;
  }

  .footerTable-listEnd p {
    margin-bottom: 0.625rem;
  }

  .footerTable-listEnd .cpe-Icon {
    font-size: 1.375rem;
    margin-top: -0.75rem;
  }

  .footer-myCP {
    margin-top: 7.0625rem;
  }

  .searchForm {
    width: 96%;
  }

  .searchForm-globalInputContainer {
    width: 100%;
    position: relative;
  }

  .searchForm-block {
    padding: 0 0.3125rem;
  }

  .searchForm input.searchForm-dataOpener {
    width: 100%;
    padding-right: 0.8125rem;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }

  .searchForm-dataListContainer {
    margin-left: -0.3125rem;
  }

  .searchForm-dataListContainer.js-country:after {
    left: 15%;
  }

  .searchForm-dataListContainer .searchForm-listContainer {
    padding-bottom: 0.4em;
  }

  .searchForm-dataListContainer .searchForm-listContainer:last-child {
    padding-bottom: 0;
  }

  .searchForm-parkSelectContainer .searchForm-dataListContainer {
    position: absolute;
    width: 100%;
  }

  .searchForm-country_FR .countryMap-container {
    width: 35%;
  }

  .searchForm-country_FR .searchForm-referencePin {
    top: 42%;
    left: 50%;
  }

  .searchForm-country_DE {
    height: 18.75rem;
  }

  .searchForm-country_DE .countryMap-container {
    width: 38%;
  }

  .searchForm-country_NL .countryMap-container {
    width: 40%;
  }

  .searchForm-country_NL .countryMap-container picture {
    margin-top: -0.625rem;
  }

  .searchForm-country_NL .countryMap-container img {
    margin-left: 10%;
  }

  .searchForm-globalDateContainer {
    padding: 0;
    width: 50%;
  }

  .searchForm-globalDateContainer .pika-reset {
    right: 0.9375rem;
  }

  .searchForm-globalDateContainer .date-container {
    width: calc((100% - 5.8125rem) / 2);
    margin: 0 0.875rem;
  }

  .searchForm-globalDateContainer .date-container.date-start {
    margin-right: 0.3125rem;
  }

  .searchForm-globalDateContainer .date-container.date-end {
    margin-left: 0.3125rem;
  }

  .searchForm-globalDateContainer .date-container .searchForm-dataOpener {
    padding: 1.25rem 0;
    font-size: 0.875rem;
  }

  .searchForm-globalDateContainer .date-container .dirty .searchForm-dayLabel.js-search-departureDay {
    left: 0;
  }

  .searchForm-globalDateContainer .date-container .dirty .searchForm-dayLabel {
    left: 0;
  }

  .searchForm .widthSearchForm-countrySite .searchForm-globalDateContainer {
    width: 35%;
    text-align: left;
    padding: 0;
  }

  .searchForm .widthSearchForm-countrySite .searchForm-capacity {
    width: 21%;
  }

  .searchForm .widthSearchForm-countrySite .searchForm-submitContainer {
    width: 18%;
  }

  .searchForm-capacity {
    width: 26%;
  }

  .searchForm-capacity .searchForm-dataListContainer {
    position: absolute;
    left: -5rem;
    top: 4.375rem;
    width: 23.125rem;
  }

  .searchForm-submitContainer {
    width: 24%;
  }

  .deviceIsDesktop .searchForm .cpe-Icon.arrow, .deviceIsDesktop .searchForm-parkSelectContainer a.searchForm-parkSelector .cpe-Icon.arrow {
    top: 0.625rem;
  }

  .widthFixedGoToFilters .stickyGoToFilters {
    width: 4.375rem;
    height: 4.375rem;
    right: 6.75%;
  }

  .widthFixedGoToFilters .stickyGoToFilters .cpe-Icon--filter {
    top: 0.875rem;
    font-size: 1.25rem;
  }

  .widthFixedGoToFilters .stickyGoToFilters-text {
    bottom: 0.75rem;
    font-size: 0.625rem;
  }

  body.body-searchEngineOpen #mainContainer.searchEngineOpened .searchForm-toggler .searchForm-container {
    height: 7.5rem;
  }

  .contentHeader-title {
    margin-bottom: 0.5em;
  }

  .contentHeader-text {
    padding: 0 10%;
  }

  .popin-box {
    width: 60%;
  }

  .bodyNoPaddingTablet {
    padding: 0!important;
  }

  .dropDownList-container {
    letter-spacing: 0.0625rem;
    position: relative;
  }

  .dropDownList-container .api_toggle_content {
    width: 34vw !important;
  }

  .fancybox-blocVideoGlobal {
    padding-bottom: 3.125rem;
  }

  h1, .h1-like {
    font-size: 2.375rem;
    line-height: 2.375rem;
    padding: 0.3125rem 0;
  }

  h2, .h2-like {
    font-size: 1.875rem;
    line-height: 1.35;
    padding: 0.4375rem 0;
  }

  h3, .h3-like {
    font-size: 1.5rem;
  }

  h4, .h4-like {
    font-size: 1.125rem;
    line-height: 1.25rem;
  }

  .u-tabletBorderBottom--White40 {
    border-bottom: 2.5rem solid white;
  }

  .commonLayout {
    padding: 0 3%;
  }

  .cookiesBanner-text {
    width: 70%;
  }

  .heightForFullWidth_16_9 {
    height: 41vw;
  }

  .heightForFullWidth_16_9 picture {
    height: 41vw;
  }
}

@media screen {

  .u-Visible-print {
    display: none;
  }
}

@media print {

  .u-Visible-print {
    display: block;
  }

  .u-Hidden-print {
    display: none;
  }

  *, *:before, *:after, *:first-letter {
    background: transparent !important;
    color: #000 !important;

    /* Black prints faster: http://www.sanbeiji.com/archives/953 */
    box-shadow: none !important;
  }

  a, a:visited {
    text-decoration: underline;
  }

  a[href]:after {
    content: " (" attr(href) ")";
  }

  abbr[title]:after {
    content: " (" attr(title) ")";
  }

  /*
     * Don't show links that are fragment identifiers,
     * or use the `javascript:` pseudo protocol
     */

  a[href^="#"]:after, a[href^="javascript:"]:after {
    content: "";
  }

  pre, blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }

  /*
     * Printing Tables:
     * http://css-discuss.incutio.com/wiki/Printing_Tables
     */

  thead {
    display: table-header-group;
  }

  tr, img {
    page-break-inside: avoid;
  }

  img {
    max-width: 100% !important;
  }

  p, h2, h3 {
    orphans: 3;
    widows: 3;
  }

  h2, h3 {
    page-break-after: avoid;
  }
}

@media (max-width: 767px) and (orientation: landscape ) {

  .pika-single.is-bound {
    position: absolute !important;
    height: 170%;
  }
}

@media screen and (min-width: 300px) and (max-width: 767px) {

  .kidsAgesContainer .select2-container--open .select2-dropdown--above {
    width: 4.0625rem !important;
  }

  .kidsAgesContainer .select2-container--default .select2-selection--single {
    width: 4.0625rem;
  }

  .home .select2-container--open .select2-dropdown--below {
    width: 4.0625rem !important;
  }
}

@media (max-width: 767px) and (orientation: landscape) {

  .header-navItem a {
    padding-left: 2.5rem;
  }
}

@media (min-width: 1200px) and (max-width: 1400px) {

  .certifications-list {
    padding-bottom: 1%;
  }

  .certifications-listText {
    line-height: 1.25rem;
  }

  body {
    padding: 0 2rem;
  }

  .commonLayout {
    padding: 0 2%;
  }
}

@media(max-width: 800px) {

  .searchForm-country_FR .countryMap-container {
    margin-top: 1.25rem;
  }

  .searchForm-country_DE .countryMap-container {
    margin-top: 1.25rem;
  }

  .searchForm-country_BE .countryMap-container {
    margin-top: 1.25rem;
  }

  .searchForm-country_NL .countryMap-container {
    margin-top: 4.0625rem;
  }
}

@media screen and (min-width: 400px) and (max-width: 767px) {

  .searchForm-capacity .searchForm-dataListContainer .kidsAgesContainer {
    max-width: 25rem;
    margin: auto;
  }
}

@media only screen and (min-width: 35em) {

  /* Style adjustments for viewports that meet the condition */
}

@media print, (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 1.25dppx), (min-resolution: 120dpi) {

  /* Style adjustments for high resolution devices */
}

@media screen and (min-width: 760px) {

  .mdl-mega-footer--left-section, .mdl-mega-footer__left-section {
    float: left;
  }

  .mdl-mega-footer--right-section, .mdl-mega-footer__right-section {
    float: right;
  }

  .mdl-mega-footer--right-section a, .mdl-mega-footer__right-section a {
    display: inline-block;
    margin-left: 16px;
    line-height: 36px;
    vertical-align: middle;
  }

  .mdl-mega-footer--drop-down-section, .mdl-mega-footer__drop-down-section {
    width: 33%;
  }

  .mdl-mega-footer--drop-down-section:nth-child(1), .mdl-mega-footer--drop-down-section:nth-child(2), .mdl-mega-footer__drop-down-section:nth-child(1), .mdl-mega-footer__drop-down-section:nth-child(2) {
    float: left;
  }

  .mdl-mega-footer--drop-down-section:nth-child(3), .mdl-mega-footer__drop-down-section:nth-child(3) {
    float: right;
  }

  .mdl-mega-footer--drop-down-section:nth-child(3):after, .mdl-mega-footer__drop-down-section:nth-child(3):after {
    clear: right;
  }

  .mdl-mega-footer--drop-down-section:nth-child(4), .mdl-mega-footer__drop-down-section:nth-child(4) {
    clear: right;
    float: right;
  }

  .mdl-mega-footer--middle-section:after, .mdl-mega-footer__middle-section:after {
    content: '';
    display: block;
    clear: both;
  }

  .mdl-mega-footer--bottom-section, .mdl-mega-footer__bottom-section {
    padding-top: 0;
  }

  .mdl-mega-footer--heading-checkbox, .mdl-mega-footer__heading-checkbox {
    display: none;
  }

  .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after, .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after, .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after, .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {
    content: '';
  }

  .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list, .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list, .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list, .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list, .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list, .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list, .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list, .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list {
    display: block;
  }

  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after, .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after, .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after, .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {
    content: '';
  }

  .mdl-logo {
    float: left;
    margin-bottom: 0;
    margin-right: 16px;
  }

  .mdl-mini-footer--link-list li, .mdl-mini-footer__link-list li {
    line-height: 36px;
  }
}

@media screen and (min-width: 1024px) {

  .mdl-mega-footer--drop-down-section, .mdl-mega-footer--drop-down-section:nth-child(3), .mdl-mega-footer--drop-down-section:nth-child(4), .mdl-mega-footer__drop-down-section, .mdl-mega-footer__drop-down-section:nth-child(3), .mdl-mega-footer__drop-down-section:nth-child(4) {
    width: 24%;
    float: left;
  }
}

@media screen and (max-width: 1024px) {

  .mdl-layout__drawer > .mdl-layout__title, .mdl-layout__drawer > .mdl-layout-title {
    line-height: 56px;
    padding-left: 16px;
  }

  .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {
    padding: 16px 16px;
  }

  .mdl-layout__header .mdl-layout__drawer-button {
    margin: 4px;
  }

  .mdl-layout__drawer-button {
    margin: 4px;
    color: rgba(0, 0, 0, 0.5);
  }

  .mdl-layout__header {
    min-height: 56px;
  }

  .mdl-layout__header > .mdl-layout-icon {
    left: 16px;
    top: 12px;
  }

  .mdl-layout__header.is-compact {
    max-height: 56px;
  }

  .mdl-layout__header.is-compact.has-tabs {
    min-height: 104px;
  }

  .mdl-layout__header {
    display: none;
  }

  .mdl-layout--fixed-header > .mdl-layout__header {
    display: flex;
  }

  .mdl-layout__header-row {
    height: 56px;
    padding: 0 16px 0 72px;
  }

  .mdl-layout--no-drawer-button .mdl-layout__header-row {
    padding-left: 16px;
  }

  .mdl-layout__header-row .mdl-navigation {
    height: 56px;
  }

  .mdl-layout__header-row .mdl-navigation__link {
    line-height: 56px;
    padding: 0 16px;
  }

  .mdl-layout--fixed-drawer > .mdl-layout__content {
    margin-left: 0;
  }

  .mdl-layout__container.has-scrolling-header .mdl-layout__content {
    overflow-y: auto;
    overflow-x: hidden;
  }

  .mdl-layout__tab-bar {
    width: calc(100% - 60px);
    padding: 0 0 0 60px;
  }

  .mdl-layout--no-drawer-button .mdl-layout__tab-bar {
    width: calc(100% - 8px);
    padding-left: 4px;
  }

  .mdl-layout__tab-bar-button {
    width: 60px;
  }

  .mdl-layout__tab {
    padding: 0 12px 0 12px;
  }
}

@media screen and (min-width: 1025px) {

  .mdl-layout--fixed-drawer > .mdl-layout__drawer {
    transform: translateX(0);
  }

  .mdl-layout__drawer-button {
    line-height: 54px;
  }

  .mdl-layout--no-desktop-drawer-button .mdl-layout__drawer-button, .mdl-layout--fixed-drawer > .mdl-layout__drawer-button, .mdl-layout--no-drawer-button .mdl-layout__drawer-button {
    display: none;
  }

  .mdl-layout--fixed-drawer > .mdl-layout__header .mdl-layout__header-row {
    padding-left: 40px;
  }

  .mdl-layout--no-desktop-drawer-button .mdl-layout__header-row {
    padding-left: 40px;
  }

  .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar {
    padding-left: 16px;
    width: calc(100% - 32px);
  }
}

@media (max-width: 479px) {

  .mdl-snackbar {
    width: 100%;
    left: 0;
    min-height: 48px;
    max-height: 80px;
  }

  .mdl-grid {
    padding: 8px;
  }

  .mdl-cell {
    margin: 8px;
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell {
    width: 100%;
  }

  .mdl-cell--hide-phone {
    display: none !important;
  }

  .mdl-cell--order-1-phone.mdl-cell--order-1-phone {
    order: 1;
  }

  .mdl-cell--order-2-phone.mdl-cell--order-2-phone {
    order: 2;
  }

  .mdl-cell--order-3-phone.mdl-cell--order-3-phone {
    order: 3;
  }

  .mdl-cell--order-4-phone.mdl-cell--order-4-phone {
    order: 4;
  }

  .mdl-cell--order-5-phone.mdl-cell--order-5-phone {
    order: 5;
  }

  .mdl-cell--order-6-phone.mdl-cell--order-6-phone {
    order: 6;
  }

  .mdl-cell--order-7-phone.mdl-cell--order-7-phone {
    order: 7;
  }

  .mdl-cell--order-8-phone.mdl-cell--order-8-phone {
    order: 8;
  }

  .mdl-cell--order-9-phone.mdl-cell--order-9-phone {
    order: 9;
  }

  .mdl-cell--order-10-phone.mdl-cell--order-10-phone {
    order: 10;
  }

  .mdl-cell--order-11-phone.mdl-cell--order-11-phone {
    order: 11;
  }

  .mdl-cell--order-12-phone.mdl-cell--order-12-phone {
    order: 12;
  }

  .mdl-cell--1-col, .mdl-cell--1-col-phone.mdl-cell--1-col-phone {
    width: calc(25% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >
    .mdl-cell--1-col-phone.mdl-cell--1-col-phone {
    width: 25%;
  }

  .mdl-cell--2-col, .mdl-cell--2-col-phone.mdl-cell--2-col-phone {
    width: calc(50% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >
    .mdl-cell--2-col-phone.mdl-cell--2-col-phone {
    width: 50%;
  }

  .mdl-cell--3-col, .mdl-cell--3-col-phone.mdl-cell--3-col-phone {
    width: calc(75% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >
    .mdl-cell--3-col-phone.mdl-cell--3-col-phone {
    width: 75%;
  }

  .mdl-cell--4-col, .mdl-cell--4-col-phone.mdl-cell--4-col-phone {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >
    .mdl-cell--4-col-phone.mdl-cell--4-col-phone {
    width: 100%;
  }

  .mdl-cell--5-col, .mdl-cell--5-col-phone.mdl-cell--5-col-phone {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >
    .mdl-cell--5-col-phone.mdl-cell--5-col-phone {
    width: 100%;
  }

  .mdl-cell--6-col, .mdl-cell--6-col-phone.mdl-cell--6-col-phone {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >
    .mdl-cell--6-col-phone.mdl-cell--6-col-phone {
    width: 100%;
  }

  .mdl-cell--7-col, .mdl-cell--7-col-phone.mdl-cell--7-col-phone {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >
    .mdl-cell--7-col-phone.mdl-cell--7-col-phone {
    width: 100%;
  }

  .mdl-cell--8-col, .mdl-cell--8-col-phone.mdl-cell--8-col-phone {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >
    .mdl-cell--8-col-phone.mdl-cell--8-col-phone {
    width: 100%;
  }

  .mdl-cell--9-col, .mdl-cell--9-col-phone.mdl-cell--9-col-phone {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >
    .mdl-cell--9-col-phone.mdl-cell--9-col-phone {
    width: 100%;
  }

  .mdl-cell--10-col, .mdl-cell--10-col-phone.mdl-cell--10-col-phone {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >
    .mdl-cell--10-col-phone.mdl-cell--10-col-phone {
    width: 100%;
  }

  .mdl-cell--11-col, .mdl-cell--11-col-phone.mdl-cell--11-col-phone {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >
    .mdl-cell--11-col-phone.mdl-cell--11-col-phone {
    width: 100%;
  }

  .mdl-cell--12-col, .mdl-cell--12-col-phone.mdl-cell--12-col-phone {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >
    .mdl-cell--12-col-phone.mdl-cell--12-col-phone {
    width: 100%;
  }

  .mdl-cell--1-offset, .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone {
    margin-left: calc(25% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone {
    margin-left: 25%;
  }

  .mdl-cell--2-offset, .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone {
    margin-left: calc(50% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone {
    margin-left: 50%;
  }

  .mdl-cell--3-offset, .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone {
    margin-left: calc(75% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone {
    margin-left: 75%;
  }
}

@media (min-width: 480px) {

  .mdl-snackbar {
    min-width: 288px;
    max-width: 568px;
    border-radius: 2px;
    transform: translate(-50%, 80px);
  }

  .mdl-snackbar--active {
    transform: translate(-50%, 0);
  }
}

@media (min-width: 480px) and (max-width: 839px) {

  .mdl-grid {
    padding: 8px;
  }

  .mdl-cell {
    margin: 8px;
    width: calc(50% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell {
    width: 50%;
  }

  .mdl-cell--hide-tablet {
    display: none !important;
  }

  .mdl-cell--order-1-tablet.mdl-cell--order-1-tablet {
    order: 1;
  }

  .mdl-cell--order-2-tablet.mdl-cell--order-2-tablet {
    order: 2;
  }

  .mdl-cell--order-3-tablet.mdl-cell--order-3-tablet {
    order: 3;
  }

  .mdl-cell--order-4-tablet.mdl-cell--order-4-tablet {
    order: 4;
  }

  .mdl-cell--order-5-tablet.mdl-cell--order-5-tablet {
    order: 5;
  }

  .mdl-cell--order-6-tablet.mdl-cell--order-6-tablet {
    order: 6;
  }

  .mdl-cell--order-7-tablet.mdl-cell--order-7-tablet {
    order: 7;
  }

  .mdl-cell--order-8-tablet.mdl-cell--order-8-tablet {
    order: 8;
  }

  .mdl-cell--order-9-tablet.mdl-cell--order-9-tablet {
    order: 9;
  }

  .mdl-cell--order-10-tablet.mdl-cell--order-10-tablet {
    order: 10;
  }

  .mdl-cell--order-11-tablet.mdl-cell--order-11-tablet {
    order: 11;
  }

  .mdl-cell--order-12-tablet.mdl-cell--order-12-tablet {
    order: 12;
  }

  .mdl-cell--1-col, .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {
    width: calc(12.5% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >
    .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {
    width: 12.5%;
  }

  .mdl-cell--2-col, .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {
    width: calc(25% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >
    .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {
    width: 25%;
  }

  .mdl-cell--3-col, .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {
    width: calc(37.5% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >
    .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {
    width: 37.5%;
  }

  .mdl-cell--4-col, .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {
    width: calc(50% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >
    .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {
    width: 50%;
  }

  .mdl-cell--5-col, .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {
    width: calc(62.5% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >
    .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {
    width: 62.5%;
  }

  .mdl-cell--6-col, .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {
    width: calc(75% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >
    .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {
    width: 75%;
  }

  .mdl-cell--7-col, .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {
    width: calc(87.5% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >
    .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {
    width: 87.5%;
  }

  .mdl-cell--8-col, .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >
    .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {
    width: 100%;
  }

  .mdl-cell--9-col, .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >
    .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {
    width: 100%;
  }

  .mdl-cell--10-col, .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >
    .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {
    width: 100%;
  }

  .mdl-cell--11-col, .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >
    .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {
    width: 100%;
  }

  .mdl-cell--12-col, .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >
    .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {
    width: 100%;
  }

  .mdl-cell--1-offset, .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet {
    margin-left: calc(12.5% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet {
    margin-left: 12.5%;
  }

  .mdl-cell--2-offset, .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet {
    margin-left: calc(25% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet {
    margin-left: 25%;
  }

  .mdl-cell--3-offset, .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet {
    margin-left: calc(37.5% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet {
    margin-left: 37.5%;
  }

  .mdl-cell--4-offset, .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet {
    margin-left: calc(50% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet {
    margin-left: 50%;
  }

  .mdl-cell--5-offset, .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet {
    margin-left: calc(62.5% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet {
    margin-left: 62.5%;
  }

  .mdl-cell--6-offset, .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet {
    margin-left: calc(75% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet {
    margin-left: 75%;
  }

  .mdl-cell--7-offset, .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet {
    margin-left: calc(87.5% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet {
    margin-left: 87.5%;
  }
}

@media (min-width: 840px) {

  .mdl-grid {
    padding: 8px;
  }

  .mdl-cell {
    margin: 8px;
    width: calc(33.3333333333% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell {
    width: 33.3333333333%;
  }

  .mdl-cell--hide-desktop {
    display: none !important;
  }

  .mdl-cell--order-1-desktop.mdl-cell--order-1-desktop {
    order: 1;
  }

  .mdl-cell--order-2-desktop.mdl-cell--order-2-desktop {
    order: 2;
  }

  .mdl-cell--order-3-desktop.mdl-cell--order-3-desktop {
    order: 3;
  }

  .mdl-cell--order-4-desktop.mdl-cell--order-4-desktop {
    order: 4;
  }

  .mdl-cell--order-5-desktop.mdl-cell--order-5-desktop {
    order: 5;
  }

  .mdl-cell--order-6-desktop.mdl-cell--order-6-desktop {
    order: 6;
  }

  .mdl-cell--order-7-desktop.mdl-cell--order-7-desktop {
    order: 7;
  }

  .mdl-cell--order-8-desktop.mdl-cell--order-8-desktop {
    order: 8;
  }

  .mdl-cell--order-9-desktop.mdl-cell--order-9-desktop {
    order: 9;
  }

  .mdl-cell--order-10-desktop.mdl-cell--order-10-desktop {
    order: 10;
  }

  .mdl-cell--order-11-desktop.mdl-cell--order-11-desktop {
    order: 11;
  }

  .mdl-cell--order-12-desktop.mdl-cell--order-12-desktop {
    order: 12;
  }

  .mdl-cell--1-col, .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {
    width: calc(8.3333333333% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >
    .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {
    width: 8.3333333333%;
  }

  .mdl-cell--2-col, .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {
    width: calc(16.6666666667% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >
    .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {
    width: 16.6666666667%;
  }

  .mdl-cell--3-col, .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {
    width: calc(25% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >
    .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {
    width: 25%;
  }

  .mdl-cell--4-col, .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {
    width: calc(33.3333333333% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >
    .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {
    width: 33.3333333333%;
  }

  .mdl-cell--5-col, .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {
    width: calc(41.6666666667% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >
    .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {
    width: 41.6666666667%;
  }

  .mdl-cell--6-col, .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {
    width: calc(50% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >
    .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {
    width: 50%;
  }

  .mdl-cell--7-col, .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {
    width: calc(58.3333333333% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >
    .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {
    width: 58.3333333333%;
  }

  .mdl-cell--8-col, .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {
    width: calc(66.6666666667% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >
    .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {
    width: 66.6666666667%;
  }

  .mdl-cell--9-col, .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {
    width: calc(75% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >
    .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {
    width: 75%;
  }

  .mdl-cell--10-col, .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {
    width: calc(83.3333333333% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >
    .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {
    width: 83.3333333333%;
  }

  .mdl-cell--11-col, .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {
    width: calc(91.6666666667% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >
    .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {
    width: 91.6666666667%;
  }

  .mdl-cell--12-col, .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {
    width: calc(100% - 16px);
  }

  .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >
    .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {
    width: 100%;
  }

  .mdl-cell--1-offset, .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop {
    margin-left: calc(8.3333333333% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop {
    margin-left: 8.3333333333%;
  }

  .mdl-cell--2-offset, .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop {
    margin-left: calc(16.6666666667% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop {
    margin-left: 16.6666666667%;
  }

  .mdl-cell--3-offset, .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop {
    margin-left: calc(25% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop {
    margin-left: 25%;
  }

  .mdl-cell--4-offset, .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop {
    margin-left: calc(33.3333333333% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop {
    margin-left: 33.3333333333%;
  }

  .mdl-cell--5-offset, .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop {
    margin-left: calc(41.6666666667% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop {
    margin-left: 41.6666666667%;
  }

  .mdl-cell--6-offset, .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop {
    margin-left: calc(50% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop {
    margin-left: 50%;
  }

  .mdl-cell--7-offset, .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop {
    margin-left: calc(58.3333333333% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop {
    margin-left: 58.3333333333%;
  }

  .mdl-cell--8-offset, .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop {
    margin-left: calc(66.6666666667% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--8-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop {
    margin-left: 66.6666666667%;
  }

  .mdl-cell--9-offset, .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop {
    margin-left: calc(75% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--9-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop {
    margin-left: 75%;
  }

  .mdl-cell--10-offset, .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop {
    margin-left: calc(83.3333333333% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--10-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop {
    margin-left: 83.3333333333%;
  }

  .mdl-cell--11-offset, .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop {
    margin-left: calc(91.6666666667% + 8px);
  }

  .mdl-grid.mdl-grid--no-spacing > .mdl-cell--11-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop {
    margin-left: 91.6666666667%;
  }
}

@media (max-width:800px) {

  .fancybox-infobar {
    left: 0;
    margin-left: 0;
  }

  .fancybox-button--left, .fancybox-button--right {
    display: none!important;
  }

  .fancybox-caption {
    padding: 20px 0;
    margin: 0;
  }
}

@media (min-width:800px) {

  .fancybox-button--thumbs {
    display: inline-block;
  }

  .fancybox-button--thumbs span {
    font-size: 23px;
  }

  .fancybox-button--thumbs:before {
    width: 3px;
    height: 3px;
    top: calc(50% - 2px);
    left: calc(50% - 2px);
    box-shadow: 0 -4px 0,-4px -4px 0,4px -4px 0,inset 0 0 0 32px,-4px 0 0,4px 0 0,0 4px 0,-4px 4px 0,4px 4px 0;
  }

  .fancybox-thumbs {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: auto;
    width: 220px;
    margin: 0;
    padding: 5px 5px 0 0;
    background: #fff;
    word-break: normal;
    -webkit-tap-highlight-color: transparent;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    box-sizing: border-box;
    z-index: 99995;
  }

  .fancybox-show-thumbs .fancybox-thumbs {
    display: block;
  }

  .fancybox-show-thumbs .fancybox-inner {
    right: 220px;
  }

  .fancybox-thumbs>ul {
    list-style: none;
    position: absolute;
    position: relative;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    overflow-y: auto;
    font-size: 0;
  }

  .fancybox-thumbs>ul>li {
    float: left;
    overflow: hidden;
    max-width: 50%;
    padding: 0;
    margin: 0;
    width: 105px;
    height: 75px;
    position: relative;
    cursor: pointer;
    outline: none;
    border: 5px solid transparent;
    border-top-width: 0;
    border-right-width: 0;
    -webkit-tap-highlight-color: transparent;
    backface-visibility: hidden;
    box-sizing: border-box;
  }

  li.fancybox-thumbs-loading {
    background: rgba(0,0,0,.1);
  }

  .fancybox-thumbs>ul>li>img {
    position: absolute;
    top: 0;
    left: 0;
    min-width: 100%;
    min-height: 100%;
    max-width: none;
    max-height: none;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
  }

  .fancybox-thumbs>ul>li:before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    border-radius: 2px;
    border: 4px solid #4ea7f9;
    z-index: 99991;
    opacity: 0;
    transition: all .2s cubic-bezier(.25,.46,.45,.94);
  }

  .fancybox-thumbs>ul>li.fancybox-thumbs-active:before {
    opacity: 1;
  }
}

@media(min-width: 768px) and (max-width: 1199px), @media(max-width: 767px) {

  .hasCartouche.fancybox-blocVideo:after {
    top: 50%;
  }
}

@media not all and (min-resolution:.001dpcm) {

  @supports (-webkit-appearance:none) {

    @media (min-width:  768px) {

      .preventScroll #mainContainer {
        height: 300px;
        overflow: hidden;
      }
    }
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ub3JtYWxpemUuY3NzL25vcm1hbGl6ZS5jc3MiLCIuLi91dGlscy9jc3MvbWVkaWFxdWVyaWVzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jc3NyZWNpcGVzLWRlZmF1bHRzL2xpYi9ib3JkZXItY29sbGFwc2UuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzc3JlY2lwZXMtZGVmYXVsdHMvbGliL2JveC1zaXppbmcuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzc3JlY2lwZXMtZGVmYXVsdHMvbGliL2RvY3VtZW50LXJlbW92ZS1tYXJnaW4tcGFkZGluZy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzcmVjaXBlcy1kZWZhdWx0cy9saWIvaGlkZGVuLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jc3NyZWNpcGVzLXJlc2V0L2xpYi9idXR0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzc3JlY2lwZXMtcmVzZXQvbGliL2lucHV0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jc3NyZWNpcGVzLXJlc2V0L2xpYi9saXN0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jc3NyZWNpcGVzLWdyaWQvaW5kZXguY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzc3JlY2lwZXMtdXRpbHMvbGliL3NpemVzL2FsbC5jc3MiLCIuLi91dGlscy9jc3MvdmFyaWFibGVzLmNzcyIsIi4uL3V0aWxzL2Nzcy9rZXlmcmFtZXMuY3NzIiwiLi4vdXRpbHMvY3NzL2dyaWQuY3NzIiwiLi4vdXRpbHMvY3NzL2ljb25zL2ljb25zLmNzcyIsIi4uL3V0aWxzL2Nzcy92ZXJ0aWNhbC1jZW50ZXJpbmcuY3NzIiwiLi4vdXRpbHMvY3NzL2Rpc3BsYXkuY3NzIiwiLi4vdXRpbHMvY3NzL2ZvbnRzLmNzcyIsIi4uL3V0aWxzL2Nzcy90b2dnbGUuY3NzIiwiLi4vdXRpbHMvY3NzL2ltYWdlLWVmZmVjdHMuY3NzIiwiLi4vdXRpbHMvY3NzL3NwaW5uZXIuY3NzIiwiLi4vdXRpbHMvY3NzL3NsaWNrLWNhcm91c2VsLmNzcyIsIi4uL3V0aWxzL2Nzcy9zY3JvbGxiYXIuY3NzIiwiLi4vY29tcG9uZW50cy9waWN0dXJlL19pbmRleC5jc3MiLCIuLi9jb21wb25lbnRzL2Zvcm0vcXVhbnRpdHlTZWxlY3Rvci9faW5kZXguY3NzIiwiLi4vY29tcG9uZW50cy9mb3JtL2RhdGVwaWNrZXIvX2luZGV4LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ub3Vpc2xpZGVyL3NyYy9ub3Vpc2xpZGVyLmNzcyIsIi4uL2NvbXBvbmVudHMvZm9ybS9faW5kZXguY3NzIiwiLi4vY29tcG9uZW50cy9mb3JtL3NlbGVjdC9faW5kZXguY3NzIiwiLi4vY29tcG9uZW50cy9oZWFkZXIvX2luZGV4LmNzcyIsIi4uL2Fzc2V0cy9zdHlsZXNoZWV0cy9zcHJpdGUuY3NzIiwiLi4vY29tcG9uZW50cy9mb290ZXIvX2luZGV4LmNzcyIsIi4uL2NvbXBvbmVudHMvYnV0dG9uL19pbmRleC5jc3MiLCIuLi9mYWNldHRlL3ZpZXdzL2R1cmF0aW9uLmNzcyIsIi4uL2NvbXBvbmVudHMvc2VhcmNoRWxhc3RpYy9tYWluL19pbmRleC5jc3MiLCIuLi9jb21wb25lbnRzL2NvbnRlbnRIZWFkZXIvX2luZGV4LmNzcyIsIi4uL2NvbXBvbmVudHMvcG9waW4vX2luZGV4LmNzcyIsIi4uL2NvbXBvbmVudHMvZHJvcERvd25MaXN0L19pbmRleC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvbWF0ZXJpYWwuY3NzIiwiLi4vbGlicy9mYW5jeWJveC9qcXVlcnkuZmFuY3lib3gubWluLmNzcyIsIi4uL2NvbXBvbmVudHMvZmFuY3lib3gvX2luZGV4LmNzcyIsIi4uL2NvbXBvbmVudHMvY29tbW9uL2NvbW1vbi5jc3MiLCIuLi9jb21wb25lbnRzL2Nvb2tpZXNCYW5uZXIvX2luZGV4LmNzcyIsImNvbW1vbi9jb21tb24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzc3JlY2lwZXMtdXRpbHMvbGliL3NpemVzL21heFhMLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jc3NyZWNpcGVzLXV0aWxzL2xpYi9zaXplcy9tYXhMLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jc3NyZWNpcGVzLXV0aWxzL2xpYi9zaXplcy9tYXhNLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jc3NyZWNpcGVzLXV0aWxzL2xpYi9zaXplcy9tYXhTLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jc3NyZWNpcGVzLXV0aWxzL2xpYi9zaXplcy9taW5TLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jc3NyZWNpcGVzLXV0aWxzL2xpYi9zaXplcy9taW5NLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jc3NyZWNpcGVzLXV0aWxzL2xpYi9zaXplcy9taW5MLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jc3NyZWNpcGVzLXV0aWxzL2xpYi9zaXplcy9taW5YTC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNEVBQTRFOztBQUU1RTs7OztHQUlHOztBQUVIO0VBQ0Usd0JBQXdCLENBQUMsT0FBTztFQUNoQywyQkFBMkIsQ0FBQyxPQUFPO0VBQ25DLCtCQUErQixDQUFDLE9BQU87Q0FDeEM7O0FBRUQ7O0dBRUc7O0FBRUg7RUFDRSxVQUFVO0NBQ1g7O0FBRUQ7Z0ZBQ2dGOztBQUVoRjs7Ozs7R0FLRzs7QUFFSDtFQWFFLGVBQWU7Q0FDaEI7O0FBRUQ7OztHQUdHOztBQUVIO0VBSUUsc0JBQXNCLENBQUMsT0FBTztFQUM5Qix5QkFBeUIsQ0FBQyxPQUFPO0NBQ2xDOztBQUVEOzs7R0FHRzs7QUFFSDtFQUNFLGNBQWM7RUFDZCxVQUFVO0NBQ1g7O0FBRUQ7OztHQUdHOztBQUVIO0VBRUUsY0FBYztDQUNmOztBQUVEO2dGQUNnRjs7QUFFaEY7O0dBRUc7O0FBRUg7RUFDRSw4QkFBOEI7Q0FDL0I7O0FBRUQ7OztHQUdHOztBQUVIO0VBRUUsV0FBVztDQUNaOztBQUVEO2dGQUNn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QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjtBQ3ZsQkQ7RUFDRSxlQUFlO0VBQ2YsWUFBWTtDQUNiOztFQUVD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QyxFQUFFOztBQUVsRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLCtCQUErQixFQUFFOztBQUVuQztFQUNFLDBDQUEwQyxFQUFFOztBQUU5QztFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLCtCQUErQixFQUFFOztBQUVuQztFQUNFLDBDQUEwQyxFQUFFOztBQUU5QztFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGlDQUFpQyxFQUFFOztBQUVyQztFQUNFLDRDQUE0QyxFQUFFOztBQUVoRDtFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLGdDQUFnQyxFQUFFOztBQUVwQztFQUNFLDJDQUEyQyxFQUFFOztBQUUvQztFQUNFLGtDQUFrQyxFQUFFOztBQUV0QztFQUNFLDZDQUE2QyxFQUFFOztBQUVqRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFtQyxFQUFFOztBQUV2QztFQUNFLDhDQUE4QyxFQUFFOztBQUVsRDtFQUNFLG1DQUFt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Wjs7RUFFRDtJQUNFLFdBQVc7R0FDWjs7RUFFRDtJQUdFLGlCQUEwQjtHQUMzQjs7RUFFRDtJQUNFLGFBQWE7R0FDZDs7RUFFRDtJQUVFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGlCQUEyQjtHQUM1Qjs7RUFFRDtJQU1FLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGlCQUEyQjtHQUM1Qjs7RUFFRDtJQUVFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGFBQWE7R0FDZDs7RUFFRDtJQUdFLGlCQUEwQjtHQUMzQjs7RUFFRDtJQUNFLFdBQVc7R0FDWjs7RUFFRDtJQUdFLFdBQVc7R0FDWjs7RUFFRDtJQUVFLFdBQVc7R0FDWjs7RUFFRDtJQUVFLGlCQUEwQjtHQUMzQjs7RUFFRDtJQUNFLGFBQWE7R0FDZDs7RUFFRDtJQUNFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGlCQUE0QjtHQUM3Qjs7RUFFRDtJQVNFLFlBQVk7R0FDYjs7RUFFRDtJQUNFLGNBQWM7R0FDZjs7RUFFRDtJQUNFLHNCQUFzQjtHQUN2QjtDRENGOztBRXBJRDs7RUFFRTtJQUNFLGdCQUEyQjtHQUM1Qjs7RUFFRDtJQUNFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGFBQWE7R0FDZDs7RUFFRDtJQUVFLGlCQUEwQjtHQUMzQjs7RUFFRDtJQUVFLFdBQVc7R0FDWjs7RUFFRDtJQUdFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLFdBQVc7R0FDWjs7RUFFRDtJQUdFLGlCQUEwQjtHQUMzQjs7RUFFRDtJQUNFLGFBQWE7R0FDZDs7RUFFRDtJQUVFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGlCQUEyQjtHQUM1Qjs7RUFFRDtJQU1FLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGlCQUEyQjtHQUM1Qjs7RUFFRDtJQUVFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGFBQWE7R0FDZDs7RUFFRDtJQUdFLGlCQUEwQjtHQUMzQjs7RUFFRDtJQUNFLFdBQVc7R0FDWjs7RUFFRDtJQUdFLFdBQVc7R0FDWjs7RUFFRDtJQUVFLFdBQVc7R0FDWjs7RUFFRDtJQUVFLGlCQUEwQjtHQUMzQjs7RUFF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QUNFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGlCQUE0QjtHQUM3Qjs7RUFFRDtJQVNFLFlBQVk7R0FDYjs7RUFFRDtJQUNFLGNBQWM7R0FDZjs7RUFFRDtJQUNFLHNCQUFzQjtHQUN2QjtDQUNGOztBQ3BJRDs7RUFFRTtJQUNFLGdCQUEyQjtHQUM1Qjs7RUFFRDtJQUNFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGFBQWE7R0FDZDs7RUFFRDtJQUVFLGlCQUEwQjtHQUMzQjs7RUFFRDtJQUVFLFdBQVc7R0FDWjs7RUFFRDtJQUdFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLFdBQVc7R0FDWjs7RUFFRDtJQUdFLGlCQUEwQjtHQUMzQjs7RUFFRDtJQUNFLGFBQWE7R0FDZDs7RUFFRDtJQUVFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGlCQUEyQjtHQUM1Qjs7RUFFRDtJQU1FLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGlCQUEyQjtHQUM1Qjs7RUFFRDtJQUVFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGFBQWE7R0FDZDs7RUFFRDtJQUdFLGlCQUEwQjtHQUMzQjs7RUFFRDtJQUNFLFdBQVc7R0FDWjs7RUFFRDtJQUdFLFdBQVc7R0FDWjs7RUFFRDtJQUVFLFdBQVc7R0FDWjs7RUFFRDtJQUVFLGlCQUEwQjtHQUMzQjs7RUFFRDtJQUNFLGFBQWE7R0FDZDs7RUFFRDtJQUNFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGlCQUE0QjtHQUM3Qjs7RUFFRDtJQVNFLFlBQVk7R0FDYjs7RUFFRDtJQUNFLGNBQWM7R0FDZjs7RUFFRDtJQUNFLHNCQUFzQjtHQUN2QjtDQUNGOztBQ3BJRDs7RUFFRTtJQUNFLGdCQUEyQjtHQUM1Qjs7RUFFRDtJQUNFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLGFBQWE7R0FDZDs7RUFFRDtJQUVFLGlCQUEwQjtHQUMzQjs7RUFFRDtJQUVFLFdBQVc7R0FDWjs7RUFFRDtJQUdFLFdBQVc7R0FDWjs7RUFFRDtJQUNFLFdBQVc7R0FDWjs7RUFFRDtJQUdFLGlCQUEwQjtHQUMzQjs7RUFFRDtJQUNFLGFBQWE7R0FDZDs7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QUEsOEJBQTZCO0lBQUEsb0JBQW1CO0lBQUEsc0JBQXFCO0lBQUEseUNBQXdDO0lBQW1DLDRCQUEyQjtJQUFBLHVCQUFxQjtHQUFDOztFQUFBO0lBQTJCLDJCQUF5QjtHQUFDOztFQUFBO0lBQTJCLG1CQUFrQjtJQUFBLE9BQU07SUFBQSxRQUFPO0lBQUEsZ0JBQWU7SUFBQSxpQkFBZ0I7SUFBQSxnQkFBZTtJQUFBLGlCQUFnQjtJQUFBLDRCQUEyQjtJQUFBLDBCQUF5QjtJQUEyQyxrQkFBZ0I7R0FBQzs7RUFBQTtJQUE4QixZQUFXO0lBQUEsbUJBQWtCO0lBQUEsT0FBTTtJQUFBLFNBQVE7SUFBQSxVQUFTO0lBQUEsUUFBTztJQUFBLG1CQUFrQjtJQUFBLDBCQUF5QjtJQUFBLGVBQWM7SUFBQSxXQUFVO0lBQUEsa0RBQWdEO0dBQUM7O0VBQUE7SUFBcUQsV0FBUztHQUFDO0NBQUM7O0FDMkNybmE7O0VBSEY7SUFJSSxTQUFTO0dBRVo7Q0FERTs7QUFTTDs7RUFDRTs7SUFFSTs7TUFERjtRQUVJLGNBQWU7UUFDZixpQkFBaUI7T0FFcEI7S0FERTtHQUVKO0NBQ0YiLCJmaWxlIjoiY29tbW9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbiAqIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCI6cm9vdCB7XG4gIC0tbW9iaWxlLW1pbldpZHRoOiAzMjBweDtcbiAgLS1tb2JpbGUtbWF4V2lkdGg6IDc2N3B4O1xuXG4gIC0tbWluaVNjcmVlbi1tYXhXaWR0aDogNTk5cHg7XG4gIC0tc21hbGxTY3JlZW4tbWluV2lkdGg6IDYwMHB4O1xuXG4gIC0tdGFibGV0LW1pbldpZHRoOiA3NjhweDtcbiAgLS10YWJsZXQtbWF4V2lkdGg6IDExOTlweDtcblxuICAtLXNtYWxsRGVza3RvcC1taW5XaXRoOiAxMjAwcHg7XG4gIC0tc21hbGxEZXNrdG9wLW1heFdpdGg6IDE0MDBweDtcblxuICAtLWRlc2t0b3AtbWluV2lkdGg6IDEyMDBweDtcbiAgLS1kZXNrdG9wLW1heFdpZHRoOiAyMDAwcHg7XG4gIC0tZGVza3RvcC1taW5XaXRoQmFubmVySGVpZ2h0Rml4OiAxNzQwcHg7XG5cbn1cblxuQGN1c3RvbS1tZWRpYSAtLW1xLXJldGluYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpO1xuXG5AY3VzdG9tLW1lZGlhIC0tbXEtbW9iaWxlIChtYXgtd2lkdGg6IHZhcigtLW1vYmlsZS1tYXhXaWR0aCkpO1xuQGN1c3RvbS1tZWRpYSAtLW1xLW1vYmlsZVRvVGFibGV0IChtYXgtd2lkdGg6IHZhcigtLXRhYmxldC1tYXhXaWR0aCkpO1xuXG5AY3VzdG9tLW1lZGlhIC0tbXEtdGFibGV0IChtaW4td2lkdGg6IHZhcigtLXRhYmxldC1taW5XaWR0aCkpIGFuZCAobWF4LXdpZHRoOiB2YXIoLS10YWJsZXQtbWF4V2lkdGgpKTtcbkBjdXN0b20tbWVkaWEgLS1tcS1taW5UYWJsZXQgKG1pbi13aWR0aDogIHZhcigtLXRhYmxldC1taW5XaWR0aCkpO1xuXG5AY3VzdG9tLW1lZGlhIC0tbXEtc21hbGxEZXNrdG9wIChtaW4td2lkdGg6IHZhcigtLXNtYWxsRGVza3RvcC1taW5XaXRoKSkgYW5kIChtYXgtd2lkdGg6IHZhcigtLXNtYWxsRGVza3RvcC1tYXhXaXRoKSk7XG5cbkBjdXN0b20tbWVkaWEgLS1tcS1kZXNrdG9wIChtaW4td2lkdGg6IHZhcigtLWRlc2t0b3AtbWluV2lkdGgpKTtcbkBjdXN0b20tbWVkaWEgLS1tcS1mdWxsRGVza3RvcCAobWF4LXdpZHRoOiB2YXIoLS1kZXNrdG9wLW1heFdpZHRoKSk7XG5AY3VzdG9tLW1lZGlhIC0tbXEtYmFubmVySGVpZ2h0Rml4IChtaW4td2lkdGg6IHZhcigtLWRlc2t0b3AtbWluV2l0aEJhbm5lckhlaWdodEZpeCkpO1xuXG5cblxuXG4vKiBncmlkIGNzcyByZWNpcGVzICovXG5AY3VzdG9tLW1lZGlhIC0tci1taW5TIChtaW4td2lkdGg6IDApO1xuQGN1c3RvbS1tZWRpYSAtLXItbWF4UyAobWF4LXdpZHRoOiB2YXIoLS1tb2JpbGUtbWF4V2lkdGgpKTsgLyo3NjcqL1xuXG5AY3VzdG9tLW1lZGlhIC0tci1taW5NIChtaW4td2lkdGg6IHZhcigtLXRhYmxldC1taW5XaWR0aCkpOyAvKjc2OCovXG5AY3VzdG9tLW1lZGlhIC0tci1tYXhNIChtYXgtd2lkdGg6IHZhcigtLXRhYmxldC1tYXhXaWR0aCkpOyAvKjExOTkqL1xuXG5AY3VzdG9tLW1lZGlhIC0tci1taW5MIChtaW4td2lkdGg6IHZhcigtLWRlc2t0b3AtbWluV2lkdGgpKTsgLyoxMjAwKi9cbkBjdXN0b20tbWVkaWEgLS1yLW1heEwgKG1heC13aWR0aDogdmFyKC0tZGVza3RvcC1tYXhXaWR0aCkpOyAvKjE2MDAqL1xuXG5AY3VzdG9tLW1lZGlhIC0tci1taW5YTCAobWluLXdpZHRoOiB2YXIoLS1kZXNrdG9wLW1pbldpZHRoKSk7IC8qMTIwMCovLyogY29uc2VydsOpIHVuaXF1ZW1lbnQgcGFyY2UgcXUndW5lIHLDqWbDqXJlbmNlIHkgZXN0IGZhaXRlIGRhbnMgY3NzcmVjaXBlcyAqL1xuQGN1c3RvbS1tZWRpYSAtLXItbWF4WEwgKG1heC13aWR0aDogdmFyKC0tZGVza3RvcC1tYXhXaWR0aCkpOyAvKjE2MDAqLyIsIi8qXG4gKiB0YWJsZXMgYm9yZGVycyBsaWtlIHRoZXkgc2hvdWxkIGJlXG4gKiBhcHBsaWVkIHRvICogdG8gYWxzbyB3b3JrcyBmb3IgZGlzcGxheTogdGFibGU7XG4gKi9cbmh0bWwge2JvcmRlci1jb2xsYXBzZTogY29sbGFwc2V9XG4qIHtib3JkZXItY29sbGFwc2U6IGluaGVyaXR9XG4iLCIvKlxuICogYm94IG1vZGVsIGxpa2UgaXQgc2hvdWxkIGJlXG4gKlxuICogaHR0cDovL3d3dy5wYXVsaXJpc2guY29tLzIwMTIvYm94LXNpemluZy1ib3JkZXItYm94LWZ0dy9cbiAqL1xuaHRtbCB7Ym94LXNpemluZzogYm9yZGVyLWJveH1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG4iLCIvKlxuICoga2lsbCBkb2N1bWVudCBkZWZhdWx0cyBtYXJnaW4gJiBwYWRkaW5nLiBXZSBhbGwgZG8gdGhhdCBhbGwgdGhlIHRpbWVzLCByaWdodCA/XG4gKi9cbmh0bWwsXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLypcbiAqIE1ha2VzIHRoZSBoaWRkZW4gYXR0cmlidXRlIHdvcmtzIGV2ZW4gd2hlbiBhbiBlbGVtZW50IGlzIHN0eWxlZCBkaXNwbGF5OiBmbGV4XG4gKiBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy9wdWJsaWMtd2hhdHdnLWFyY2hpdmUvMjAxNE1heS8wMDAxLmh0bWxcbiAqL1xuW2hpZGRlbl0ge2Rpc3BsYXk6IG5vbmUgIWltcG9ydGFudH1cbiIsIi5yLVJlc2V0QnV0dG9uIHtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAvKiBpbmhlcml0IGZvbnQgJiBjb2xvciBmcm9tIGFuY2VzdG9yICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250OiBpbmhlcml0O1xuXG4gIC8qIE5vcm1hbGl6ZSBgbGluZS1oZWlnaHRgLiBDYW5ub3QgYmUgY2hhbmdlZCBmcm9tIGBub3JtYWxgIGluIEZpcmVmb3ggNCsuICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgLyogQ29ycmVjdHMgZm9udCBzbW9vdGhpbmcgZm9yIHdlYmtpdCAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBpbmhlcml0O1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogaW5oZXJpdDtcblxuICAvKiBDb3JyZWN0cyBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TICovXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyogUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0KyAqL1xuLnItUmVzZXRCdXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIuci1SZXNldElucHV0IHtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuLnItUmVzZXRJbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbn1cbiIsIi5yLVJlc2V0TGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuIiwiOnJvb3Qge1xuICAtLXItR3JpZC1iYXNlRm9udFNpemU6IDFyZW07XG4gIC0tci1HcmlkLWJhc2VGb250U2l6ZUZhbGxiYWNrOiAxNnB4O1xuICAtLXItR3JpZC1ndXR0ZXI6IDFyZW07XG59XG5cbi5yLUdyaWQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwOyAvKiB3aGl0ZXNwYWNlIGNvbnRyb2wgKi9cbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xufVxuICAvKiBNb2RpZmllciAtLXdpdGhHdXR0ZXIgKi9cbiAgLnItR3JpZC0td2l0aEd1dHRlciB7IG1hcmdpbjogMCBjYWxjKC0wLjUgKiB2YXIoLS1yLUdyaWQtZ3V0dGVyKSkgfVxuXG4gICAgLnItR3JpZC0td2l0aEd1dHRlciA+IC5yLUdyaWQtY2VsbCB7IHBhZGRpbmc6IDAgY2FsYygwLjUgKiB2YXIoLS1yLUdyaWQtZ3V0dGVyKSkgfVxuICAgIFxuICAuci1HcmlkLWNlbGwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tci1HcmlkLWJhc2VGb250U2l6ZSwgdmFyKC0tci1HcmlkLWJhc2VGb250U2l6ZUZhbGxiYWNrKSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG5cbiAgICAuci1HcmlkLWNlbGwtLWFsaWduVG9wIHt2ZXJ0aWNhbC1hbGlnbjogdG9wIH1cbiAgICAuci1HcmlkLWNlbGwtLWFsaWduTWlkZGxlIHt2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlIH1cbiAgICAuci1HcmlkLWNlbGwtLWFsaWduQm90dG9tIHt2ZXJ0aWNhbC1hbGlnbjogYm90dG9tIH1cbiIsIi5yLWFsbC0tMW9mMTIge1xuICB3aWR0aDogY2FsYygxMDAlICogMSAvIDEyKTtcbn1cblxuLnItYWxsLS0xb2YxMCB7XG4gIHdpZHRoOiAxMCU7XG59XG5cbi5yLWFsbC0tMW9mOCB7XG4gIHdpZHRoOiAxMi41JTtcbn1cblxuLnItYWxsLS0xb2Y2LFxuLnItYWxsLS0yb2YxMiB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNik7XG59XG5cbi5yLWFsbC0tMW9mNSxcbi5yLWFsbC0tMm9mMTAge1xuICB3aWR0aDogMjAlO1xufVxuXG4uci1hbGwtLTFvZjQsXG4uci1hbGwtLTJvZjgsXG4uci1hbGwtLTNvZjEyIHtcbiAgd2lkdGg6IDI1JTtcbn1cblxuLnItYWxsLS0zb2YxMCB7XG4gIHdpZHRoOiAzMCU7XG59XG5cbi5yLWFsbC0tMW9mMyxcbi5yLWFsbC0tMm9mNixcbi5yLWFsbC0tNG9mMTIge1xuICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMpO1xufVxuXG4uci1hbGwtLTNvZjgge1xuICB3aWR0aDogMzcuNSU7XG59XG5cbi5yLWFsbC0tMm9mNSxcbi5yLWFsbC0tNG9mMTAge1xuICB3aWR0aDogNDAlO1xufVxuXG4uci1hbGwtLTVvZjEyIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAqIDUgLyAxMik7XG59XG5cbi5yLWFsbC0tMW9mMixcbi5yLWFsbC0tMm9mNCxcbi5yLWFsbC0tM29mNixcbi5yLWFsbC0tNG9mOCxcbi5yLWFsbC0tNW9mMTAsXG4uci1hbGwtLTZvZjEyIHtcbiAgd2lkdGg6IDUwJTtcbn1cblxuLnItYWxsLS03b2YxMiB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKiA3IC8gMTIpO1xufVxuXG4uci1hbGwtLTNvZjUsXG4uci1hbGwtLTZvZjEwIHtcbiAgd2lkdGg6IDYwJTtcbn1cblxuLnItYWxsLS01b2Y4IHtcbiAgd2lkdGg6IDYyLjUlO1xufVxuXG4uci1hbGwtLTJvZjMsXG4uci1hbGwtLTRvZjYsXG4uci1hbGwtLThvZjEyIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAqIDIgLyAzKTtcbn1cblxuLnItYWxsLS03b2YxMCB7XG4gIHdpZHRoOiA3MCU7XG59XG5cbi5yLWFsbC0tM29mNCxcbi5yLWFsbC0tNm9mOCxcbi5yLWFsbC0tOW9mMTIge1xuICB3aWR0aDogNzUlO1xufVxuXG4uci1hbGwtLTRvZjUsXG4uci1hbGwtLThvZjEwIHtcbiAgd2lkdGg6IDgwJTtcbn1cblxuLnItYWxsLS01b2Y2LFxuLnItYWxsLS0xMG9mMTIge1xuICB3aWR0aDogY2FsYygxMDAlICogNSAvIDYpO1xufVxuXG4uci1hbGwtLTdvZjgge1xuICB3aWR0aDogODcuNSU7XG59XG5cbi5yLWFsbC0tOW9mMTAge1xuICB3aWR0aDogOTAlO1xufVxuXG4uci1hbGwtLTExb2YxMiB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKiAxMSAvIDEyKTtcbn1cblxuLnItYWxsLS0xb2YxLFxuLnItYWxsLS0yb2YyLFxuLnItYWxsLS0zb2YzLFxuLnItYWxsLS00b2Y0LFxuLnItYWxsLS01b2Y1LFxuLnItYWxsLS02b2Y2LFxuLnItYWxsLS04b2Y4LFxuLnItYWxsLS0xMG9mMTAsXG4uci1hbGwtLTEyb2YxMiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uci1hbGwtLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5yLWFsbC0tdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIjpyb290IHtcclxuXHJcbiAgLyoqIGRlc2lnbiBzeXN0ZW0gY29sb3JzICoqL1xyXG4gIC0tbWFpbkJhY2tncm91bmRDb2xvcjogI2ZmZmZmZjtcclxuICAtLWdyZWVuOiAjMDA3MzNBOyAvKnZlcnQgc2FwaW4gKi9cclxuICAtLWdyZWVuTGlnaHRlckNvbG9yOiNlMGYwZDc7IC8qIHZlcnQgYW1hbmRlICovXHJcbiAgLS1ncmVlbkxpZ2h0Q29sb3I6ICM3OEIxM0U7LyogdmVydCBnYXpvbiAqL1xyXG4gIC0tZ3JlZW5LYWtpOiAjODZhMDZiOy8qIHZlcnQga2FraSAqL1xyXG4gIC0tcmVkOiAjRDc1MzJDOyAvKiByb3VnZSBjb3F1ZWxpY290ICovXHJcbiAgLS1yZWRSb2xsT3ZlcjogI0MyMzIwNzsgLyogcm91Z2UgY2FyZGluYWwgLSBcInJvbGxvdmVyIGJvdXRvblwiICovXHJcbiAgLS1ibHVlOiAjMTQ0NDg2OyAvKiBibGV1IG9jw6lhbiAqL1xyXG4gIC0tYmx1ZUxpZ2h0OiAjZDdlYmYxOyAvKiBibGV1IGNsYWlyICovXHJcbiAgLS1ncmV5TGlnaHRlckNvbG9yOiAjZjlmYmZiOyAvKiBncmlzIMOpY3VtZSAqL1xyXG4gIC0tZ3JleVBlYXJsQ29sb3I6ICNGNEY1RjU7IC8qIGdyaXMgcGVybGUgKi9cclxuICAtLWdyZXlNb3VzZUNvbG9yOiAjRTlFOUU5OyAvKiBncmlzIHNvdXJpcyAqL1xyXG4gIC0tZ3JleU1lZGl1bTogI2QyZDNkMzsgLyogZ3JpcyBkYXVwaGluICovXHJcbiAgLS1ncmV5TWVkaXVtXzI6ICM5ZWEwYTI7IC8qIGdyaXMgYWx1bWluaXVtICovXHJcbiAgLS1ncmV5U3RvbmU6ICMzRDQyNDY7IC8qIGdyaXMgcGllcnJlICovXHJcbiAgLS1ncmV5RGFya1JvbGxPdmVyOiAjMDMwNDA0OyAvKiBncmlzIGFudGhyYWNpdGUgKi9cclxuICAtLWJsYWNrOiAjMDAwOyAvKiBub2lyICovXHJcbiAgLS15ZWxsb3cgOiAjRUNDRTUyOyAvKiBqYXVuZSBzYWJsZSAqL1xyXG4gIC0tcGlua0xpZ2h0Q29sb3I6ICNGNUQ0Q0E7XHJcblxyXG5cclxuICAvKiogbm9uLWRlc2lnbiBzeXN0ZW0gY29sb3JzIHVzZWQgKiovXHJcbiAgLS1ncmVlbkRhcms6ICMwMDYxMzA7IC8qIHZlcnQgYm91dGVpbGxlID0+IGd1aWRlIG1lICYgd2Fsa2luICovXHJcblxyXG4gIC8qKiBmb250cyAqKi9cclxuICAtLWZvbnRTaXplRGVmYXVsdDogMTNweDtcclxuICAtLWZvbnRTaXplRGVmYXVsdERlc2t0b3A6IDE1cHg7XHJcbiAgLS1tYWluRm9udFNpemU6IDEzcHg7XHJcbiAgLS1tYWluRm9udFNpemVEZXNrdG9wIDogMTVweDtcclxuICAtLWRlZmF1bHRGb250OiBBcmlhbCwgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG4gIC0tbWFpbkZvbnQ6ICdCZW50b25TYW5zJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuICAtLXNlY29uZGFyeUZvbnQ6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgLS1pdGFsaWNGb250OiAnRG9tYWluZVRleHQtSXRhbGljJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuICAtLXRpdGxlRm9udDogJ0NlbnRlclBhcmNzU2NyaXB0LVJlZ3VsYXInLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG4gIC0tdGl0bGVGb250Qk5HOiAnUWFuZWxhcycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgLS1pY29Gb250OiAnaWNvbnMnO1xyXG5cclxuICAvKiogei1pbmRleCB1dGlsaXRpZXMgKi9cclxuICAtLXpJbmRleC0tbmVnYXRpdmUgICAgICAgICAgICAgIDogLTE7XHJcbiAgLS16SW5kZXgtLWNvbnRlbnQgICAgICAgICAgICAgICA6IDEwMDtcclxuICAtLXpJbmRleC0tYnV0dG9uICAgICAgICAgICAgICAgIDogMjAwO1xyXG4gIC0tekluZGV4LS1zbGlkZXIgICAgICAgICAgICAgICAgOiAzMDA7XHJcbiAgLS16SW5kZXgtLWRyb3BEb3duTGlzdCAgICAgICAgICA6IDQwMDtcclxuICAtLXpJbmRleC0tZ01hcCAgICAgICAgICAgICAgICAgIDogNTAwO1xyXG5cclxuICAtLXpJbmRleC0tc2Vjb25kYXJ5TmF2ICAgICAgICAgIDogNzAwO1xyXG4gIC0tekluZGV4LS1zZWFyY2ggICAgICAgICAgICAgICAgOiA4MDA7XHJcbiAgICAtLXpJbmRleC0tc2VhcmNoQ29udGVudCAgICAgICA6IDg0MDtcclxuICAgIC0tekluZGV4LS1zZWFyY2hQaWthICAgICAgICAgIDogODgwO1xyXG4gIC0tekluZGV4LS1uYXZpZ2F0aW9uICAgICAgICAgICAgOiA5MDA7XHJcbiAgLS16SW5kZXgtLXBvcGluICAgICAgICAgICAgICAgICA6IDEwMDA7XHJcbiAgLS16SW5kZXgtLXNwaW5uZXIgICAgICAgICAgICAgICA6IDExMDA7XHJcbn0iLCJcclxuQC13ZWJraXQta2V5ZnJhbWVzIGFycm93UmlnaHRUb0xlZnQge1xyXG4gIDAlICAge2xlZnQ6IHJlbSgwKTt9XHJcbiAgNTAlICB7bGVmdDogcmVtKDExKTt9XHJcbiAgNTElICB7bGVmdDogcmVtKC0xMSk7fVxyXG4gIDEwMCUge2xlZnQ6IHJlbSgwKTt9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYXJyb3dSaWdodFRvTGVmdCB7XHJcbiAgMCUgICB7bGVmdDogcmVtKDApO31cclxuICA1MCUgIHtsZWZ0OiByZW0oMTEpO31cclxuICA1MSUgIHtsZWZ0OiByZW0oLTExKTt9XHJcbiAgMTAwJSB7bGVmdDogcmVtKDApO31cclxufVxyXG5cclxuQGtleWZyYW1lcyBzay1ib3VuY2VkZWxheSB7XHJcbiAgMCUsIDgwJSwgMTAwJSB7IFxyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcclxuICB9IDQwJSB7IFxyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMCk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHN0aWNreUJvdHRvbVRvVG9wIHtcclxuICAwJXtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGJvdHRvbSA6IHJlbSgtNzUpO1xyXG4gIH1cclxuICAxMDAle1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgYm90dG9tOiByZW0oMCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHN0aWNreUJvdHRvbVRvVG9wU2xvdyB7XHJcbiAgMCV7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBib3R0b20gOiByZW0oLTc1KTtcclxuICB9XHJcbiAgNzAle1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgYm90dG9tIDogcmVtKC03NSk7XHJcbiAgfVxyXG4gIDEwMCV7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBib3R0b206IHJlbSgwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgc3RpY2t5RWxlbWVudCB7XHJcbiAgMCV7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3AgOiAwO1xyXG4gICAgYm90dG9tIDogYXV0bztcclxuICB9XHJcbiAgMiV7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3AgOiBhdXRvO1xyXG4gICAgYm90dG9tOiA5MCU7XHJcbiAgICByaWdodCA6IDIwJTtcclxuICB9XHJcbiAgMTAwJXtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGJvdHRvbTogcmVtKDIwKTtcclxuICAgIHJpZ2h0OiByZW0oNDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyB1bnN0aWNreUVsZW1lbnQge1xyXG4gIDAle1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgYm90dG9tOiByZW0oMjApO1xyXG4gICAgcmlnaHQ6IHJlbSg0MCk7XHJcbiAgfVxyXG4gIDIle1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wIDogOTAlO1xyXG4gICAgYm90dG9tOiBhdXRvO1xyXG4gICAgcmlnaHQgOiByZW0oNDUpO1xyXG4gIH1cclxuICA5NSV7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3AgOiByZW0oMTYwKTtcclxuICAgIGJvdHRvbTogYXV0bztcclxuICAgIHJpZ2h0IDogcmVtKDgwKTtcclxuICB9XHJcbiAgMTAwJXtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgd2F2ZXtcclxuICAwJXtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTUwJSAwO1xyXG4gIH1cclxuICAxMDAle1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzYwJSAwO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBwbGFjZUhvbGRlclNoaW1tZXJEZXNrdG9wIHtcclxuICAwJSB7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtdmFyKC0tZGVza3RvcC1tYXhXaWR0aCkgMFxyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHZhcigtLWRlc2t0b3AtbWF4V2lkdGgpIDBcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgcGxhY2VIb2xkZXJTaGltbWVyVGFibGV0IHtcclxuICAwJSB7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtdmFyKC0tdGFibGV0LW1heFdpZHRoKSAwXHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdmFyKC0tdGFibGV0LW1heFdpZHRoKSAwXHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHBsYWNlSG9sZGVyU2hpbW1lck1vYmlsZSB7XHJcbiAgMCUge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLXZhcigtLW1vYmlsZS1tYXhXaWR0aCkgMFxyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHZhcigtLW1vYmlsZS1tYXhXaWR0aCkgMFxyXG4gIH1cclxufSIsIi5ncmlkTWFpbiB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1heC13aWR0aDogdmFyKC0tZGVza3RvcC1tYXhXaWR0aCk7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbn1cclxuXHJcbi5ncmlkQ29udGFpbmVye1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXgtd2lkdGg6IHZhcigtLWRlc2t0b3AtbWF4V2lkdGgpO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4uci1HcmlkLWNlbGwuci1Hcmlke1xyXG4gIGZvbnQtc2l6ZTogMDtcclxufVxyXG5cclxuLnItbWluTS0tb2Zmc2V0LTJvZjV7XHJcbiAgQG1lZGlhICgtLW1xLW1pblRhYmxldCl7XHJcbiAgICBtYXJnaW4tbGVmdDogNDAlO1xyXG4gIH1cclxufVxyXG5cclxuLnItYWxsLS0xb2YyYntcclxuICB3aWR0aDogNDkuOTklO1xyXG59XHJcblxyXG4uci1taW5MLS0xb2YyYntcclxuICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XHJcbiAgICB3aWR0aDogNDkuOTklO1xyXG4gIH1cclxufVxyXG5cclxuLnItbWF4TS0tMW9mMmJ7XHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZVRvVGFibGV0KXtcclxuICAgIHdpZHRoOiA0OS45OSU7XHJcbiAgfVxyXG59XHJcblxyXG4uci1taW5MLS0xb2YyY3tcclxuICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XHJcbiAgICB3aWR0aDogNDklO1xyXG4gIH1cclxufSIsIkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBcImljb25zXCI7XHJcbiAgc3JjOiB1cmwoJy4uL2ljb25zL2ljb25zLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxyXG4gICAgICAgdXJsKCcuLi9pY29ucy9pY29ucy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbn1cclxuXHJcbi5jcGUtSWNvbiB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uY3BlLUljb246YmVmb3JlIHtcclxuICBmb250LWZhbWlseTogXCJpY29uc1wiO1xyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLmNwZS1JY29uLS1pbmxpbmU6YmVmb3JlIHtcclxuICBsaW5lLWhlaWdodDogMDtcclxufVxyXG5cclxuLmNwZS1JY29uV2hpdGVCYWNrZ3JvdW5kIHtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1tYWluQmFja2dyb3VuZENvbG9yKTtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHdpZHRoOiByZW0oNjApO1xyXG4gIGhlaWdodDogcmVtKDYwKTtcclxuICBwYWRkaW5nOiAyMCU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHotaW5kZXg6IHZhcigtLXpJbmRleC0tbmVnYXRpdmUpO1xyXG4gIHRvcDogIDEzJTtcclxuICByaWdodDogLTglO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG4uY3BlLUljb24tLTM2MDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTAxXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tYWN0aXZpdGllczpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTAyXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tYWN0aXZpdGllc19naWZ0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMDNcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1hY3Rpdml0eV9tb2JpbGU6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEwNFwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWFubnVsYXRpb246YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEwNVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWFxdWFsYWdvbjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTA2XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tYXF1YW11bmRvOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMDdcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1hcmJyZXM6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEwOFwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWFycm93LWJpZy1sZWZ0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMDlcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1hcnJvdy1iaWctcmlnaHQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEwQVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWFycm93LWRpYWdvbmFsOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMEJcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1hcnJvdy1sZWZ0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMENcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1hcnJvdy1yaWdodDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTBEXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tYXJyb3ctdG9wOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMEVcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1hcnJvdzpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTBGXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tYXJyb3cyOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMTBcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1hcnJvd19hbmNob3I6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUExMVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWFycm93X2N0YTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTEyXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tYmFiaWVzX2FsbG93ZWQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUExM1wiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWJhYmllc19ub3RfYWxsb3dlZDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTE0XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tYmFycmVzdGF1cmFudDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTE1XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tYmFycmVzdGF1cmFudF9tb2JpbGU6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUExNlwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWJhdGhyb29tOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMTdcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1iZWQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUExOFwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWJlZHJvb206YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUExOVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWJpZW5ldHJlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMUFcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1iaWtlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMUJcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1iaXJkaWVzOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMUNcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1ib29raW5nX3BheWluZzpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTFEXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tY2FsZW5kYXI6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUExRVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWNhbGVuZGFyX21vYmlsZTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTFGXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tY2FsbDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTIwXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tY2FtZXJhOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMjFcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1jYXBhY2l0eTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTIyXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tY2FyOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMjNcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1jaGVjazpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTI0XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tY2xvY2s6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEyNVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWNsb3NlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMjZcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1jbG9zZV9jaXJjbGU6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEyN1wiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWNvbW1lcmNlczpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTI4XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tY29tbWVyY2VzX21vYmlsZTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTI5XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tY29udGFjdDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTJBXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tY290dGFnZTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTJCXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tY290dGFnZXNfbmF0dXJlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMkNcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1jb3VwbGU6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEyRFwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWRlZXBuYXR1cmVzcGE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEyRVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWRlbGl2ZXJ5c2VydmljZXM6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEyRlwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWRlbGl2ZXJ5c2VydmljZXNfbW9iaWxlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMzBcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1kdXBsZXg6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEzMVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWVhcmx5X2Jvb2tpbmc6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEzMlwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWVuam95OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMzNcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1lbnRlcnRhaW5tZW50c2hvcHM6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEzNFwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWZhY2Vib29rOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMzVcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1mYW1pbHlfYWN0aXZpdHk6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEzNlwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWZhcTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTM3XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tZmlsdGVyLW1vYmlsZTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTM4XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tZmlsdGVyOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBMzlcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1mb3J0aGVraWRzOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBM0FcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1mcmllbmRzOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBM0JcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1nYXJiYWdlMjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTNDXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tZ28tYmFjazpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTNEXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0taGVscF9wYXNzd29yZDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTNFXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0taG9tZS1idXR0b246YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUEzRlwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWhvdXNlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNDBcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1ob3VzZV9tb2JpbGU6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE0MVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWluZm9ybWF0aW9uOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNDJcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1pbnN0YWdyYW06YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE0M1wiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWtpdGNoZW46YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE0NFwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLWxhc3RfbWludXRlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNDVcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1sZXNzOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNDZcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1sb2dvX0NQOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNDdcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1sb3VuZ2U6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE0OFwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLW1hbmFnaW5nX215X2Jvb2tpbmc6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE0OVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLW1hcHBvaW50MzpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTRBXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tbWVudS1haWRlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNEJcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1tZW51X21vaW5zOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNENcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1tZW51X3BsdXM6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE0RFwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLW1lbnVidXJnZXI6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE0RVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLW1ldGVvOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNEZcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1tb3JlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNTBcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1tdXRlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNTFcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1teV9zdGF5OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNTJcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1uYXR1cmU6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE1M1wiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLW5hdHVyZXNwYTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTU0XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tb3V0X2xpbms6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE1NVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLW91dHNpZGU6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE1NlwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLXBhcmM6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE1N1wiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLXBhdXNlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNThcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1wZW9wbGU6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE1OVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLXBlcnNvbjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTVBXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tcGV0c19hbGxvd2VkOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNUJcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1wZXRzX25vdF9hbGxvd2VkOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNUNcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1waG9uZTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTVEXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tcGludGVyZXN0OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNUVcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1wbGFjZWhvbGRlcjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTVGXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tcGxhbjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTYwXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tcGxhbmU6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE2MVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLXBsYXktYnV0dG9uOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNjJcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1wbGF5OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNjNcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1wbGF5MjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTY0XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tcG1yOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNjVcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1wb255OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNjZcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1wcmVwYXJpbmdfbXlfYXJyaXZhbDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTY3XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tcHJlcGFyaW5nX215X3N0YXk6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE2OFwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLXNhbnRlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNjlcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1zYW50ZV9tb2JpbGU6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE2QVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLXNjaG9vbF9ob2xpZGF5czpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTZCXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tc2VjdXJlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNkNcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1zZXJ2aWNlc2xpdjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTZEXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tc2VydmljZXNsaXZfbW9iaWxlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNkVcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1zaG9wOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNkZcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1zaG9wcGluZzpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTcwXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tc2l6ZTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTcxXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tc29sZWlsOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNzJcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1zb3VuZE9uOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNzNcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS1zcG9ydDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTc0XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tc3RhcjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTc1XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tc3VwZXJtYXJjaGU6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE3NlwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLXN1cGVybWFyY2hlX21vYmlsZTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTc3XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tc3dpbW1pbmdwb29sOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBNzhcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS10cmFpbjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTc5XCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tdHJhbnNmZXIxOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBN0FcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS10cmFzaDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTdCXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tdHJlZXM6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE3Q1wiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLXRyaTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTdEXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tdHdpdHRlcjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTdFXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tdXNlcjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTdGXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tdXNwLTE6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE4MFwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLXVzcC0yOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBODFcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS11c3AtMzpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQTgyXCI7XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tdXNwLTQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE4M1wiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLXVzcC01OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBODRcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS12ZWxvOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBODVcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS12aWV3X2FsbF9iaXJkaWVzOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBODZcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS12b2l0dXJlOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXEVBODdcIjtcclxufVxyXG5cclxuLmNwZS1JY29uLS13aWZpX2FsbG93ZWQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE4OFwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLXdpZmlfbm90X2FsbG93ZWQ6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE4OVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLXlvdXR1YmU6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcRUE4QVwiO1xyXG59XHJcblxyXG4uY3BlLUljb24tLXpvb20tdG9vbDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxFQThCXCI7XHJcbn0iLCIudS1WZXJ0aWNhbE1pZGRsZSB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuICAudS1WZXJ0aWNhbE1pZGRsZTpiZWZvcmUsXG4gIC51LVZlcnRpY2FsTWlkZGxlOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIC51LVZlcnRpY2FsTWlkZGxlLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuIiwiLnUtQ2xlYXJmaXg6YWZ0ZXIge1xuICBjb250ZW50OlwiXCI7XG4gIGRpc3BsYXk6dGFibGU7XG4gIGNsZWFyOmJvdGg7XG59XG5cbi51LUhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi51LUhpZGRlbi0tZm9yY2VkIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udS1JbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbkBtZWRpYSAoLS1tcS1tb2JpbGUpIHtcbiAgLnUtSGlkZGVuLW1vYmlsZSxcbiAgLnUtVmlzaWJsZS10YWJsZXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKC0tbXEtdGFibGV0KSB7XG4gIC51LUhpZGRlbi10YWJsZXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhICgtLW1xLWRlc2t0b3ApIHtcbiAgLnUtSGlkZGVuLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCkge1xuICAudS1WaXNpYmxlLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKC0tbXEtbWluVGFibGV0KSB7XG4gIC51LVZpc2libGUtbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBub25lIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKC0tbXEtZGVza3RvcCkge1xuICAudS1IaWRkZW4tYWxsRGVza3RvcCxcbiAgLnUtVmlzaWJsZS1tb2JpbGVUb1RhYmxldCxcbiAgLnUtVmlzaWJsZS10YWJsZXQsXG4gIC51LVZpc2libGUtbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4ge1xuICAudS1WaXNpYmxlLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIC51LVZpc2libGUtcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIC51LUhpZGRlbi1wcmludCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWVkaWEgKC0tbXEtZGVza3RvcCl7XG4gIC51LUhpZGRlbi1kZXNrdG9wLS1mb3JjZWQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdCZW50b25TYW5zJztcclxuICBzcmM6IHVybCgnLi4vZm9udHMvQmVudG9uU2Fucy1Cb29rLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxyXG4gICAgICAgdXJsKCcuLi9mb250cy9CZW50b25TYW5zLUJvb2sud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0JlbnRvblNhbnMnO1xyXG4gIHNyYzogdXJsKCcuLi9mb250cy9CZW50b25TYW5zLU1lZGl1bS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcclxuICAgICAgIHVybCgnLi4vZm9udHMvQmVudG9uU2Fucy1NZWRpdW0ud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0JlbnRvblNhbnMnO1xyXG4gIHNyYzogdXJsKCcuLi9mb250cy9CZW50b25TYW5zLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXHJcbiAgICAgICB1cmwoJy4uL2ZvbnRzL0JlbnRvblNhbnMtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnRG9tYWluZVRleHQtSXRhbGljJztcclxuICBzcmM6IHVybCgnLi4vZm9udHMvRG9tYWluZVRleHQtUmVndWxhckl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcclxuICAgICAgIHVybCgnLi4vZm9udHMvRG9tYWluZVRleHQtUmVndWxhckl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnRG9tYWluZVRleHQtSXRhbGljJztcclxuICBzcmM6IHVybCgnLi4vZm9udHMvRG9tYWluZVRleHQtSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxyXG4gICAgICAgdXJsKCcuLi9mb250cy9Eb21haW5lVGV4dC1JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdEb21haW5lVGV4dC1JdGFsaWMnO1xyXG4gIHNyYzogdXJsKCcuLi9mb250cy9Eb21haW5lVGV4dE1lZGl1bS1JdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXHJcbiAgICAgICB1cmwoJy4uL2ZvbnRzL0RvbWFpbmVUZXh0TWVkaXVtLUl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnRG9tYWluZVRleHQtSXRhbGljJztcclxuICBzcmM6IHVybCgnLi4vZm9udHMvRG9tYWluZVRleHQtQm9sZEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcclxuICAgICAgIHVybCgnLi4vZm9udHMvRG9tYWluZVRleHQtQm9sZEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnQ2VudGVyUGFyY3NTY3JpcHQtUmVndWxhcic7XHJcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL0NlbnRlclBhcmNzU2NyaXB0LVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXHJcbiAgICAgICB1cmwoJy4uL2ZvbnRzL0NlbnRlclBhcmNzU2NyaXB0LVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ1FhbmVsYXMnO1xyXG4gIHNyYzogdXJsKCcuLi9mb250cy9xYW5lbGFzc29mdC1leHRyYWJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXHJcbiAgICAgICB1cmwoJy4uL2ZvbnRzL3FhbmVsYXNzb2Z0LWV4dHJhYm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuXHJcbi51LUZvbnQtc2hhZG93IHtcclxuICB0ZXh0LXNoYWRvdzogMCAwIHJlbSgzKSBibGFjayAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udS1Gb250LWNyb3NzZWQge1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LUZvbnQtdXBwZXJjYXNlIHtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LUZvbnQtV2VpZ2h0LS1ub3JtYWwge1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnUtRm9udC1XZWlnaHQtLWJvbGQge1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnUtRm9udC1XZWlnaHQtLWJvbGRlciB7XHJcbiAgZm9udC13ZWlnaHQ6IDkwMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udS1Gb250LVN0eWxlLS1pdGFsaWMge1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYyAhaW1wb3J0YW50O1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1pdGFsaWNGb250KTtcclxufVxyXG5cclxuLnUtRm9udC1zZWNvbmRhcnlGb250IHtcclxuICBmb250LWZhbWlseTogdmFyKC0tc2Vjb25kYXJ5Rm9udCk7XHJcbn1cclxuXHJcbi51LUZvbnQtcHJvbW9Gb250IHtcclxuICBmb250LWZhbWlseTogdmFyKC0taXRhbGljRm9udCk7XHJcbn1cclxuXHJcbi51LUZvbnQtQ29sb3ItLWdyZWVuQ1Age1xyXG4gIGNvbG9yOiB2YXIoLS1ncmVlbikgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnUtRm9udC1HcmF5U3RvbmUge1xyXG4gIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LUZvbnQtUmVkIHtcclxuICBjb2xvcjogdmFyKC0tcmVkKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udS1Gb250LUdyZWVuIHtcclxuICBjb2xvcjogdmFyKC0tZ3JlZW4pICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LUZvbnQtQmx1ZSB7XHJcbiAgY29sb3I6IHZhcigtLWJsdWUpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LUZvbnQtR3JheUxpZ2h0ZXJDb2xvciB7XHJcbiAgY29sb3I6IHZhcigtLWdyZXlMaWdodGVyQ29sb3IpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LUZvbnQtR3JlZW5MaWdodENvbG9yIHtcclxuICBjb2xvcjogdmFyKC0tZ3JlZW5MaWdodENvbG9yKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udS1Gb250LVllbGxvdyB7XHJcbiAgY29sb3I6IHZhcigtLXllbGxvdykgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnUtRm9udC1TaXplLS0xMHB4e1xyXG4gIGZvbnQtc2l6ZTogcmVtKDEwKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udS1Gb250LVNpemUtLTExcHh7XHJcbiAgZm9udC1zaXplOiByZW0oMTEpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LUZvbnQtU2l6ZS0tMTJweHtcclxuICBmb250LXNpemU6IHJlbSgxMikgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnUtRm9udC1TaXplLS0xM3B4e1xyXG4gIGZvbnQtc2l6ZTogcmVtKDEzKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udS1Gb250LVNpemUtLTE0cHh7XHJcbiAgZm9udC1zaXplOiByZW0oMTQpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LUZvbnQtU2l6ZS0tMTVweHtcclxuICBmb250LXNpemU6IHJlbSgxNSkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnUtRm9udC1TaXplLS0xNnB4e1xyXG4gIGZvbnQtc2l6ZTogcmVtKDE2KSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udS1Gb250LVNpemUtLTE4cHh7XHJcbiAgZm9udC1zaXplOiByZW0oMTgpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LUZvbnQtU2l6ZS0tMjBweHtcclxuICBmb250LXNpemU6IHJlbSgyMCkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnUtRm9udC1TaXplLS0yMnB4e1xyXG4gIGZvbnQtc2l6ZTogcmVtKDIyKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udS1Gb250LVNpemUtLTI0cHh7XHJcbiAgZm9udC1zaXplOiByZW0oMjQpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LUZvbnQtU2l6ZS0tMjVweHtcclxuICBmb250LXNpemU6IHJlbSgyNSkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnUtRm9udC1TaXplLS0yNnB4e1xyXG4gIGZvbnQtc2l6ZTogcmVtKDI2KSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udS1Gb250LVNpemUtLTI4cHh7XHJcbiAgZm9udC1zaXplOiByZW0oMjgpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LUZvbnQtU2l6ZS0tMzBweHtcclxuICBmb250LXNpemU6IHJlbSgzMCkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnUtRm9udC1TaXplLS01MHB4e1xyXG4gIGZvbnQtc2l6ZTogcmVtKDUwKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udS1Gb250LVNpemUtLTcwcHh7XHJcbiAgZm9udC1zaXplOiByZW0oNzApICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51LUZvbnQtU2l6ZS0tMTEycHh7XHJcbiAgZm9udC1zaXplOiByZW0oMTEyKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udS1saXN0LXN0eWxlLWRpc2N7XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lICFpbXBvcnRhbnQ7XHJcblxyXG4gIGxpOmJlZm9yZXtcclxuICAgIGNvbnRlbnQ6IFwi4oCiXCI7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IHJlbSg4KTtcclxuICAgIGZvbnQtc2l6ZTogcmVtKDIwKTtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG59IiwiLnRvZ2dsZU9wZW5lZCAuY2Flc3VyYSwgLmpzLXRvZ2dsZS10YXJnZXQge1xyXG4gIGRpc3BsYXk6bm9uZTtcclxufVxyXG5cclxuLmpzLXRvZ2dsZS0tdmlzaWJsZSB7XHJcbiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XHJcbn0iLCIvKiB1LXRleHQtdW5kZXJsYXkgcG91ciBhZmZpY2hlciB1biBjYWxxdWUgdHJhbnNwYXJlbnQgbm9pciDDoCAyMCUgc291cyBsZXMgdGV4dGVzICovXHJcbi51LXRleHQtdW5kZXJsYXksIC51LXRleHQtdW5kZXJsYXkgKntwb3NpdGlvbjpyZWxhdGl2ZTt9XHJcbi51LXRleHQtdW5kZXJsYXk6YmVmb3Jle2NvbnRlbnQ6XCIgXCI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO31cclxuLnUtdGV4dE92ZXJJbWFnZXt0ZXh0LWFsaWduOmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTp0YWJsZS1jZWxsO2hlaWdodDoxMDAlO31cclxuXHJcbi8qIHUtaW1nLXJvbGxvdmVyIHBvdXIgdW4gZWZmZXQgem9vbSDDoCAxMDUlIHN1ciB1bmUgaW1hZ2UgYXUgcm9sbG92ZXIgc3VyIGNlbGxlLWNpLCBhdmVjIGhhY2h1cmUgdHJhbnN2ZXJzYWxlIHF1aSBkaXNwYXJhaXNzZW50IGF1IHJvbGxvdmVyICovXHJcbkBtZWRpYSAoLS1tcS1kZXNrdG9wKSB7XHJcbiAgLnUtaW1nLXJvbGxvdmVye292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlO31cclxuICAudS1pbWctcm9sbG92ZXIgcGljdHVyZSA+IGltZ3t0cmFuc2l0aW9uOiBhbGwgMC41czt3aWR0aDoxMDAlO31cclxuICAudS1pbWctcm9sbG92ZXI6aG92ZXIgcGljdHVyZSA+IGltZ3t0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO31cclxuICAvKi51LWltZy1yb2xsb3ZlcjphZnRlcntcclxuICAgIGNvbnRlbnQ6IFwiIFwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOlxyXG4gICAgICBsaW5lYXItZ3JhZGllbnQoLTMwZGVnLCB0cmFuc3BhcmVudCA0NSUsIHJnYmEoMjU1LDI1NSwyNTUsMC41KSA1MCUsIHRyYW5zcGFyZW50IDUwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA1cHg7XHJcbiAgfVxyXG4gIC51LWltZy1yb2xsb3Zlcjpob3ZlcjphZnRlcntkaXNwbGF5Om5vbmU7fSovXHJcblxyXG4gIC8qIGhhY2sgQ2hyb21lIC8gU2FmYXJpICovXHJcbiAgLypAbWVkaWEgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApIHtcclxuICAgIC51LWltZy1yb2xsb3ZlcjphZnRlciB7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6XHJcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQgNDUlLCByZ2JhKDI1NSwyNTUsMjU1LDAuNSkgNTAlLCB0cmFuc3BhcmVudCA1MCUsIHRyYW5zcGFyZW50IDEwMCUpO1xyXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDhweCA4cHg7XHJcbiAgICB9XHJcbiAgfSovXHJcbn0iLCIuY3AtbG9hZGluZ3tcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICY6YmVmb3Jle1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDowO1xyXG4gICAgYm90dG9tOjA7XHJcbiAgICByaWdodDowO1xyXG4gICAgbGVmdDowO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG4gICAgei1pbmRleDogdmFyKC0tekluZGV4LS1zcGlubmVyKTtcclxuICB9XHJcblxyXG4gIC5jcC1zcGlubmVye1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIH1cclxufVxyXG5cclxuLmNwLXNwaW5uZXIge1xyXG4gIGRpc3BsYXk6bm9uZTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbGVmdDogMDtcclxuICBtYXJnaW4tdG9wOiByZW0oLTI0KTtcclxuICBtYXJnaW4tcmlnaHQ6IHJlbSgtODUpO1xyXG4gIGhlaWdodDogcmVtKDQ3KTtcclxuICBsaW5lLWhlaWdodDogcmVtKDQ3KTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgei1pbmRleDogY2FsYyh2YXIoLS16SW5kZXgtLXNwaW5uZXIpICsgMSk7XHJcblxyXG4gIEBtZWRpYSAoLS1tcS1tb2JpbGUpIHtcclxuICAgIGhlaWdodDogcmVtKDY1KTtcclxuICAgIGxpbmUtaGVpZ2h0OiByZW0oNzIpO1xyXG4gIH1cclxuXHJcbiAgJiA+IGRpdiB7XHJcbiAgICB3aWR0aDogcmVtKDE0KTtcclxuICAgIGhlaWdodDogcmVtKDE0KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgICBtYXJnaW46IDAgcmVtKDEwKTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGFuaW1hdGlvbjogc2stYm91bmNlZGVsYXkgMS40cyBpbmZpbml0ZSBlYXNlLWluLW91dCBib3RoO1xyXG4gIH1cclxuXHJcbiAgJi0tYm91bmNlMSB7XHJcbiAgICBhbmltYXRpb24tZGVsYXk6IC0wLjMycyAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleU1vdXNlQ29sb3IpO1xyXG4gIH1cclxuXHJcbiAgJi0tYm91bmNlMiB7XHJcbiAgICBhbmltYXRpb24tZGVsYXk6IC0wLjE2cyAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleU1lZGl1bSk7XHJcbiAgfVxyXG5cclxuICAmLS1ib3VuY2UzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgfVxyXG59IiwiLnNsaWNre1xyXG5cclxuICAmLXNsaWRlcntcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcbiAgJi1saXN0e1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgd2lkdGg6IDgwJTtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi1zbGlkZXtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICBtYXJnaW4tbGVmdDogMXB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogMXB4O1xyXG4gIH1cclxuXHJcbiAgJi1hcnJvd3tcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgZm9udC1zaXplOiByZW0oMjApO1xyXG4gICAgd2lkdGg6IHJlbSgyMCk7XHJcbiAgICBoZWlnaHQ6IHJlbSgzMCk7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB6LWluZGV4OiAxO1xyXG5cclxuICAgICYuY3BlLUljb257XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtcHJldntcclxuICAgIGxlZnQ6IHJlbSgwKTtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgbGVmdDogcmVtKDIwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtbmV4dHtcclxuICAgIHJpZ2h0OiByZW0oMCk7XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgIHJpZ2h0OiByZW0oMjApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi1kaXNhYmxlZHtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgb3BhY2l0eTogMC41ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4iLCIvKiBDc3MgUG91ciBsYSBzY3JvbGxiYXIgXHJcbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuMS4gQkFTSUMgU1RZTEUgIFxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcblxyXG4gICAgLm1DdXN0b21TY3JvbGxiYXJ7IC1tcy10b3VjaC1hY3Rpb246IHBpbmNoLXpvb207IHRvdWNoLWFjdGlvbjogcGluY2gtem9vbTsgLyogZGlyZWN0IHBvaW50ZXIgZXZlbnRzIHRvIGpzICovIH1cclxuICAgIC5tQ3VzdG9tU2Nyb2xsYmFyLm1DU19ub19zY3JvbGxiYXIsIC5tQ3VzdG9tU2Nyb2xsYmFyLm1DU190b3VjaF9hY3Rpb257IC1tcy10b3VjaC1hY3Rpb246IGF1dG87IHRvdWNoLWFjdGlvbjogYXV0bzsgfVxyXG4gICAgXHJcbiAgICAubUN1c3RvbVNjcm9sbEJveHsgLyogY29udGFpbnMgcGx1Z2luJ3MgbWFya3VwICovXHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgIGRpcmVjdGlvbjogbHRyO1xyXG4gICAgfVxyXG5cclxuICAgIC5tQ1NCX2NvbnRhaW5lcnsgLyogY29udGFpbnMgdGhlIG9yaWdpbmFsIGNvbnRlbnQgKi9cclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxuXHJcbi8qIFxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuMi4gVkVSVElDQUwgU0NST0xMQkFSIFxyXG55LWF4aXNcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiovXHJcblxyXG4gICAgLm1DU0JfaW5zaWRlID4gLm1DU0JfY29udGFpbmVyeyBtYXJnaW4tcmlnaHQ6IDMwcHg7IH1cclxuXHJcbiAgICAubUNTQl9jb250YWluZXIubUNTX25vX3Njcm9sbGJhcl95Lm1DU195X2hpZGRlbnsgbWFyZ2luLXJpZ2h0OiAwOyB9IC8qIG5vbi12aXNpYmxlIHNjcm9sbGJhciAqL1xyXG4gICAgXHJcbiAgICAubUNTLWRpci1ydGwgPiAubUNTQl9pbnNpZGUgPiAubUNTQl9jb250YWluZXJ7IC8qIFJUTCBkaXJlY3Rpb24vbGVmdC1zaWRlIHNjcm9sbGJhciAqL1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMzBweDtcclxuICAgIH1cclxuXHJcbiAgICAubUNTLWRpci1ydGwgPiAubUNTQl9pbnNpZGUgPiAubUNTQl9jb250YWluZXIubUNTX25vX3Njcm9sbGJhcl95Lm1DU195X2hpZGRlbnsgbWFyZ2luLWxlZnQ6IDA7IH0gLyogUlRMIGRpcmVjdGlvbi9sZWZ0LXNpZGUgc2Nyb2xsYmFyICovXHJcblxyXG4gICAgLm1DU0Jfc2Nyb2xsVG9vbHN7IC8qIGNvbnRhaW5zIHNjcm9sbGJhciBtYXJrdXAgKGRyYWdnYWJsZSBlbGVtZW50LCBkcmFnZ2VyIHJhaWwsIGJ1dHRvbnMgZXRjLikgKi9cclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgd2lkdGg6IDhweDsvKmxhcmdldXIgZGUgbGEgZGl2IGR1IGN1cnNldXIqL1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLm1DU0Jfb3V0c2lkZSArIC5tQ1NCX3Njcm9sbFRvb2xzeyByaWdodDogLTI2cHg7IH0gLyogc2Nyb2xsYmFyIHBvc2l0aW9uOiBvdXRzaWRlICovXHJcbiAgICBcclxuICAgIC5tQ1MtZGlyLXJ0bCA+IC5tQ1NCX2luc2lkZSA+IC5tQ1NCX3Njcm9sbFRvb2xzLCBcclxuICAgIC5tQ1MtZGlyLXJ0bCA+IC5tQ1NCX291dHNpZGUgKyAubUNTQl9zY3JvbGxUb29sc3sgLyogUlRMIGRpcmVjdGlvbi9sZWZ0LXNpZGUgc2Nyb2xsYmFyICovXHJcbiAgICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgIH1cclxuXHJcbiAgICAubUNTLWRpci1ydGwgPiAubUNTQl9vdXRzaWRlICsgLm1DU0Jfc2Nyb2xsVG9vbHN7IGxlZnQ6IC0yNnB4OyB9IC8qIFJUTCBkaXJlY3Rpb24vbGVmdC1zaWRlIHNjcm9sbGJhciAoc2Nyb2xsYmFyIHBvc2l0aW9uOiBvdXRzaWRlKSAqL1xyXG5cclxuICAgIC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJDb250YWluZXJ7IC8qIGNvbnRhaW5zIHRoZSBkcmFnZ2FibGUgZWxlbWVudCBhbmQgZHJhZ2dlciByYWlsIG1hcmt1cCAqL1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7IFxyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAubUNTQl9zY3JvbGxUb29scyBhICsgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcnsgbWFyZ2luOiAyMHB4IDA7IH1cclxuXHJcbiAgICAubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtcclxuICAgICAgICB3aWR0aDogOHB4Oy8qbGFyZ2V1ciBkdSBjdXJzZXVyKi9cclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcnsgLyogdGhlIGRyYWdnYWJsZSBlbGVtZW50ICovXHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMzBweDsgLyogbWluaW11bSBkcmFnZ2VyIGhlaWdodCAqL1xyXG4gICAgICAgIHotaW5kZXg6IHZhcigtLXpJbmRleC0tY29udGVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhcnsgLyogdGhlIGRyYWdnZXIgZWxlbWVudCAqL1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB3aWR0aDogOHB4Oy8qIGxhcmdldXIgZHUgY3Vyc2V1ciovXHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlOy8qIGhhdXRldXIgZHUgY3Vyc2V1ciovXHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnX2V4cGFuZGVkIC5tQ1NCX2RyYWdnZXJfYmFyLCBcclxuICAgIC5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyQ29udGFpbmVyOmhvdmVyIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7IHdpZHRoOiAxMnB4OyB9XHJcbiAgICBcclxuICAgIC5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWdfZXhwYW5kZWQgKyAubUNTQl9kcmFnZ2VyUmFpbCwgXHJcbiAgICAubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyUmFpbHsgd2lkdGg6IDhweDsgfVxyXG5cclxuICAgIC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwLFxyXG4gICAgLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd257IGJvdHRvbTogMDsgfVxyXG4vKiBcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbjMuIFNDUk9MTEJBUiBDT0xPUlMsIE9QQUNJVFkgQU5EIEJBQ0tHUk9VTkRTICBcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiovXHJcbiAgICAvKiBkZWZhdWx0IHRoZW1lIChcImxpZ2h0XCIpICovXHJcblxyXG4gICAgLm1DU0Jfc2Nyb2xsVG9vbHN7IG9wYWNpdHk6IDAuNzU7IGZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTc1KVwiOyAtbXMtZmlsdGVyOiBcImFscGhhKG9wYWNpdHk9NzUpXCI7IH1cclxuXHJcbiAgICAubUNTLWF1dG9IaWRlID4gLm1DdXN0b21TY3JvbGxCb3ggPiAubUNTQl9zY3JvbGxUb29scyxcclxuICAgIC5tQ1MtYXV0b0hpZGUgPiAubUN1c3RvbVNjcm9sbEJveCB+IC5tQ1NCX3Njcm9sbFRvb2xzeyBvcGFjaXR5OiAwOyBmaWx0ZXI6IFwiYWxwaGEob3BhY2l0eT0wKVwiOyAtbXMtZmlsdGVyOiBcImFscGhhKG9wYWNpdHk9MClcIjsgfSAgICBcclxuXHJcbiAgICAubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtcclxuICAgICAgICBmaWx0ZXI6IFwiYWxwaGEob3BhY2l0eT00MClcIjsgLW1zLWZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTQwKVwiOyBcclxuICAgIH1cclxuXHJcbiAgICAubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFQ0NFNTE7LyogY291bGV1ciBqYXVuZSovXHJcbiAgICB9XHJcblxyXG4gICAgLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXIsXHJcbiAgICAubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXJ7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwLFxyXG4gICAgLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bixcclxuICAgIC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnQsXHJcbiAgICAubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwobUNTQl9idXR0b25zLnBuZyk7IC8qIGNzcyBzcHJpdGVzICovXHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBvcGFjaXR5OiAwLjQ7IGZpbHRlcjogXCJhbHBoYShvcGFjaXR5PTQwKVwiOyAtbXMtZmlsdGVyOiBcImFscGhhKG9wYWNpdHk9NDApXCI7IFxyXG4gICAgfVxyXG5cclxuICAgIC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwe1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcclxuICAgIH1cclxuXHJcbiAgICAubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25Eb3due1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTIwcHg7ICAgICBcclxuICAgIH1cclxuXHJcbiAgICAubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0e1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTQwcHg7XHJcbiAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNTZweDtcclxuICAgICAgIH1cclxuXHJcbi8qIE1lcyBjaGFuZ2VtZW50cyAqL1xyXG5cclxuICAgIC5tQ1NCX2RyYWdnZXJSYWlsOmhvdmVye1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTZweDsgLW1vei1ib3JkZXItcmFkaXVzOiAxNnB4OyBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5tQ1NCX2RyYWdnZXJDb250YWluZXJ7XHJcbiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTZweDsgLW1vei1ib3JkZXItcmFkaXVzOiAxNnB4OyBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6aG92ZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0VDQ0U1MTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICAgICNtQ1NCX2RyYWdnZXJ7XHJcbiAgICAgICAgaGVpZ2h0OiAxMjBweDtcclxuICAgIH1cclxuIiwicGljdHVyZXtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcblxyXG4gIC5jcC1zcGlubmVye1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xyXG4gICAgei1pbmRleDogdmFyKC0tekluZGV4LS1uZWdhdGl2ZSk7XHJcbiAgfVxyXG5cclxuICBpbWd7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB6LWluZGV4OiBjYWxjKHZhcigtLXpJbmRleC0tbmVnYXRpdmUpICsgMSk7XHJcbiAgfVxyXG5cclxuICAmLndpdGhCYWNrZ3JvdW5kQ29sb3J7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmV5UGVhcmxDb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG4uYmxvY2tOZXd7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgdG9wOiByZW0oNSk7XHJcbiAgbGVmdDogcmVtKDUpO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHotaW5kZXg6IHZhcigtLXpJbmRleC0tY29udGVudCk7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuICBmb250LXNpemU6IDA7XHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICB0b3A6IGluaXRpYWw7XHJcbiAgICBib3R0b206IDA7XHJcbiAgfVxyXG4gIC5ibG9ja05ld0l0ZW0ge1xyXG4gICAgbWFyZ2luOiAwIHJlbSg1KSByZW0oNSkgMDtcclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCl7XHJcbiAgICAgIHBhZGRpbmc6IHJlbSgxMCk7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTApO1xyXG4gICAgfVxyXG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgIHBhZGRpbmc6IHJlbSg1KTtcclxuICAgICAgZm9udC1zaXplOiByZW0oMTEpO1xyXG4gICAgICBsaW5lLWhlaWdodDogcmVtKDEwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5uZXd7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS15ZWxsb3cpO1xyXG4gICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICBwYWRkaW5nOiByZW0oOCkgcmVtKDE0KTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNpemVEZWZhdWx0KTtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgfVxyXG5cclxuICAuZnJlZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgY29sb3I6IHZhcigtLW1haW5CYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgcGFkZGluZzogcmVtKDgpIHJlbSgxNCk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTaXplRGVmYXVsdCk7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gIH1cclxuXHJcbiAgLmJhbm5lckxhYmVse1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG4gICAgY29sb3I6IHZhcigtLW1haW5CYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgcGFkZGluZzogcmVtKDgpIHJlbSgxNCk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnRTaXplRGVmYXVsdCk7XHJcbiAgfVxyXG59XHJcblxyXG4ubGVnZW5kTGFiZWx7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuICBwYWRkaW5nOiByZW0oNSk7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogMDtcclxuICBjb2xvcjogdmFyKC0tbWFpbkJhY2tncm91bmRDb2xvcik7XHJcbiAgZm9udC1zaXplOiByZW0oMTEpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcclxuICB6LWluZGV4OiB2YXIoLS16SW5kZXgtLWNvbnRlbnQpO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICBib3R0b206IHJlbSgzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4uSW1nbGluay0tZGlzcGxheXtcclxuICBkaXNwbGF5OiBibG9jaztcclxufSIsIi5mb3JtLVF1YW50aXR5Q29udGFpbmVye1xyXG4gIEBtZWRpYSgtLW1xLW1pblRhYmxldCl7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IHJlbSgxMCk7XHJcbiAgfVxyXG5cclxuICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIH1cclxuXHJcbiAgOjpzZWxlY3Rpb24ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG5cclxuICAuZm9ybS1RdWFudGl0eVNlbGVjdG9ye1xyXG4gICAgZm9udC1zaXplOjA7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tUXVhbnRpdHlMYWJlbCB7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cclxuICAgIHB7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICYuZm9ybS1RdWFudGl0eUZpcnN0TGFiZWx7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcblxyXG4gICAgICAgIEBtZWRpYSgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XHJcbiAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi5mb3JtLVF1YW50aXR5U2Vjb25kTGFiZWx7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTQpO1xyXG5cclxuICAgICAgICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgICAgY29sb3I6IHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZm9ybS1RdWFudGl0eVNlbGVjdG9ySXRlbXtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgbGluZS1oZWlnaHQ6cmVtKDMwKTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogcmVtKDIwKTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGhlaWdodDogcmVtKDM2KTtcclxuICAgIHdpZHRoOiByZW0oMzYpO1xyXG4gICAgYm9yZGVyLXJhZGl1czo1MCU7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgICAmLnUtZGlzYWJsZWR7XHJcbiAgICAgIG9wYWNpdHk6IDAuNTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVye1xyXG4gICAgICBjb2xvcjogdmFyKC0tZ3JlZW5MaWdodENvbG9yKTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmZvcm0tUXVhbnRpdHlBZGRlci1jb250YWluZXIge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB9XHJcblxyXG4gIC5mb3JtLVF1YW50aXR5UmVtb3ZlcntcclxuICAgIGZvbnQtc2l6ZTogcmVtKDMwKTtcclxuICAgIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBzYW5zLXNlcmlmO1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tUXVhbnRpdHlBZGRlcntcclxuICAgIGZvbnQtc2l6ZTogcmVtKDIwKTtcclxuICAgIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBzYW5zLXNlcmlmO1xyXG4gIH1cclxuXHJcbiAgLmZvcm0tUXVhbnRpdHlWYWx1ZXtcclxuICAgIGJvcmRlcjpub25lO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgICBoZWlnaHQ6IHJlbSg1Nik7XHJcblxyXG4gICAgQG1lZGlhKC0tbXEtbW9iaWxlKXtcclxuICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xyXG4gICAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG4gICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmZvcm0tUXVhbnRpdHktdG9vbHRpcCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgJkNvbnRlbnQge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogcmVtKDIwKTtcclxuICAgICAgbGVmdDogcmVtKC0yNSk7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ncmV5TW91c2VDb2xvcik7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSg2KTtcclxuICAgICAgcGFkZGluZzogcmVtKDEwKTtcclxuICAgICAgZm9udC1zaXplOiByZW0oMTEpO1xyXG4gICAgICBmb250LWZhbWlseTogdmFyKC0tc2Vjb25kYXJ5Rm9udCk7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gICAgICB3aWR0aDogcmVtKDE1MCk7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTIpO1xyXG4gICAgICB6LWluZGV4OiA5MDE7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuQGltcG9ydCBcIi4uLy4uL3V0aWxzL2Nzcy9pY29ucy9pY29ucy5jc3NcIjtcclxuXHJcbjpyb290IHtcclxuICAtLWRpc2FibGVkQ2VsbEJhY2tncm91bmRDb2xvcjogd2hpdGU7XHJcbiAgLS1kaXNhYmxlZENlbGxUZXh0Q29sb3I6IHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgLS1jZWxsQmFja2dyb3VuZENvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLyohXHJcbiAqIFBpa2FkYXlcclxuICogQ29weXJpZ2h0IMKpIDIwMTQgRGF2aWQgQnVzaGVsbCB8IEJTRCAmIE1JVCBsaWNlbnNlIHwgaHR0cDovL2RidXNoZWxsLmNvbS9cclxuICovXHJcblxyXG4ucGlrYXtcclxuICAmLXNpbmdsZSB7XHJcbiAgICB6LWluZGV4OiB2YXIoLS16SW5kZXgtLXNlYXJjaFBpa2EpO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuICAgIHBhZGRpbmc6cmVtKDIwKTtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgIG1pbi1oZWlnaHQ6MTAwJTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDUpO1xyXG4gICAgfVxyXG5cclxuICAgICYuaXMtaGlkZGVuIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAmLmlzLWJvdW5kIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3gtc2hhZG93OiAwIDVweCA3cHggLTVweCByZ2JhKDAsMCwwLC41KTtcclxuICAgICAgd2lkdGggOiAxMDAlO1xyXG5cclxuICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSkge1xyXG4gICAgICAgIHRvcDogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGxlZnQ6IDAhaW1wb3J0YW50O1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSgxMzgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUgKXtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcclxuICAgICAgICBoZWlnaHQ6IDE3MCU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICAgIGxlZnQ6IDUuNSUgIWltcG9ydGFudDtcclxuICAgICAgICByaWdodCA6IDUuNSUgIWltcG9ydGFudDtcclxuICAgICAgICB3aWR0aDogODklO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KSB7XHJcbiAgICAgICAgJjpiZWZvcmV7Lyp0cmFpdCBkZSBzw6lwYXJhdGlvbiBlbnRyZSBkZXV4IG1vaXMqL1xyXG4gICAgICAgICAgY29udGVudDpcIlwiO1xyXG4gICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XHJcbiAgICAgICAgICBsZWZ0OjQ5JTtcclxuICAgICAgICAgIHRvcDogcmVtKDExMCk7XHJcbiAgICAgICAgICBoZWlnaHQ6IHJlbSgyMjUpO1xyXG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCB2YXIoLS1ncmV5TW91c2VDb2xvcik7XHJcbiAgICAgICAgICB3aWR0aDowcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCkge1xyXG4gICAgICAgIC8qIGZvcmNpbmcgcG9zaXRpb24gYmVjYXVzZSBvZiBhIG1pc3BsYWNlIG9uIHRpbnkgZGVza3RvcCAqL1xyXG4gICAgICAgIG1heC13aWR0aDogcmVtKDc2MCk7XHJcbiAgICAgICAgbGVmdDogNTAlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwwKTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICAuY3BlLUljb24tLWNsb3NlIHtcclxuICAgICAgQG1lZGlhICgtLW1xLW1pblRhYmxldCkge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IHJlbSg1KTtcclxuICAgICAgICByaWdodDogcmVtKDgpO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmFycml2YWwge1xyXG4gICAgICAucGlrYS1oZWFkZXIgLnBpa2FIZWFkZXJUYWIge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG5cclxuICAgICAgICAmLnBpa2FBcnJpdmFsSGVhZGVyIHtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG5cclxuICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIiBcIjtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICAgIGxlZnQ6IDEwJTtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiA4MCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDUpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuZGVwYXJ0dXJlIHtcclxuICAgICAgLnBpa2EtaGVhZGVyIC5waWthSGVhZGVyVGFiIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuXHJcbiAgICAgICAgJi5waWthRGVwYXJ0dXJlSGVhZGVyIHtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG5cclxuICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIiBcIjtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICAgIGxlZnQ6IDEwJTtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiA4MCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDUpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi1iYWNrZ3JvdW5ke1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBvcGFjaXR5OiAwLjI7XHJcbiAgICB6LWluZGV4OiBjYWxjKHZhcigtLXpJbmRleC0tc2VhcmNoQ29udGVudCkgLSAxKTtcclxuICB9XHJcblxyXG4gICYtbGVuZGFyIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiAzOCU7XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZSkge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgbWFyZ2luOiAwIDIuNHZ3O1xyXG4gICAgICB3aWR0aDogMzd2dztcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XHJcbiAgICAgIG1hcmdpbjogMCA2JTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAmLWhlYWRlciB7XHJcbiAgICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgZGlzcGxheTpub25lO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbGVmdDogMDsgXHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBmb250LXNpemU6IDA7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleUxpZ2h0ZXJDb2xvcik7XHJcbiAgICAgIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1zZWFyY2hQaWthKSArIDEpO1xyXG5cclxuICAgICAgJkxpbmV7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi1jbG9zZS5jcGUtSWNvbiB7XHJcbiAgICAgICAgaGVpZ2h0IDogcmVtKDYwKTtcclxuICAgICAgICBjb2xvciA6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg2MCk7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZ3JleU1vdXNlQ29sb3IpO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcblxyXG4gICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XHJcbiAgICAgICAgICB0b3A6IHJlbSgyMik7XHJcbiAgICAgICAgICBsZWZ0OiA1JTtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYtcmVzZXR7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHdpZHRoIDogMTIlO1xyXG4gICAgICAgIGhlaWdodCA6IHJlbSg1NCk7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg1NCk7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgICAgICAgLmNwZS1JY29ue1xyXG4gICAgICAgICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICAgICAgICBmb250LXNpemU6IHJlbSgxMCk7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oLTYpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLnBpa2FIZWFkZXJUYWIge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDU0KTtcclxuICAgICAgICB3aWR0aDogMzglO1xyXG4gICAgICAgIGhlaWdodDogcmVtKDU0KTtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuXHJcbiAgICAgICAgJi5kaXNhYmxlZHtcclxuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmNwZS1JY29uLS1hcnJvdzJ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiA4JTtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgICAgICAgaGVpZ2h0OiByZW0oNTQpO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNTQpO1xyXG5cclxuICAgICAgICAmOmJlZm9yZXtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSg0KTtcclxuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgtMik7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG4gICAgICAgICAgQG1lZGlhKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLnBpa2FIZWFkZXJEYXlze1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgNSU7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzMik7XHJcbiAgICAgICAgaGVpZ2h0OiByZW0oMzIpO1xyXG5cclxuICAgICAgICBhYmJyW3RpdGxlXXtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgICAgICAgICBmb250LXNpemU6IHJlbSgxMCk7XHJcbiAgICAgICAgICB3aWR0aDogMTQuMSU7XHJcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi10aXRsZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nLXRvcDpyZW0oMTApO1xyXG4gICAgZm9udC1zaXplOiByZW0oMTYpO1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG5cclxuICAgIHNlbGVjdCB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgei1pbmRleDogY2FsYyh2YXIoLS16SW5kZXgtLXNlYXJjaFBpa2EpIC0gMSk7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgdG9wOiA1cHg7XHJcbiAgICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtbGFiZWwge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogdmFyKC0tekluZGV4LS1zZWFyY2hQaWthKTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiA1cHggM3B4O1xyXG4gICAgZm9udC1mYW1pbHk6dmFyKC0tbWFpbkZvbnQpO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgfVxyXG5cclxuICAmLXByZXYsICYtbmV4dCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgd2lkdGg6IDQwcHg7XHJcbiAgICBoZWlnaHQ6IDM0cHg7XHJcbiAgICB0ZXh0LWluZGVudDogNDBweDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogNzUlIDc1JTtcclxuICAgICpwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAqdG9wOiAwO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAmLmlzLWRpc2FibGVke1xyXG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgICAgIG9wYWNpdHk6IC4yO1xyXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtc2VsZWN0IHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICpkaXNwbGF5OiBpbmxpbmU7XHJcbiAgfVxyXG5cclxuICAmLXRhYmxlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTpyZW0oNDApO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoZWFkIHtcclxuICAgICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICAgIFxyXG4gICAgICB0aCB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxMCk7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEwKTtcclxuXHJcbiAgICAgICAgJltzY29wZT1cImNvbFwiXSBhYmJye1xyXG4gICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aCwgdGQge1xyXG4gICAgICB3aWR0aDogMTQuMjg1JTtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHRoIHtcclxuICAgICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgfVxyXG5cclxuICAgIHRkIHtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuXHJcbiAgICAgICY6bm90KC5pcy1lbXB0eSkge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OjYwMDtcclxuICAgICAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICB3aWR0aDogMTIuOXZ3O1xyXG4gICAgICAgIGhlaWdodDogMTIuOXZ3O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmlzLXRvZGF5IGJ1dHRvbntcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnBpa2EtZGF5OmhvdmVyOm5vdCgucGlrYS1zZWxlY3RlZFJhbmdlKXtcclxuICAgICAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czo1MCU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAucGlrYS1oaWdobGlnaHQ6bm90KC5waWthLXNlbGVjdGVkUmFuZ2Upe1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZWVuTGlnaHRlckNvbG9yKTtcclxuICAgICAgICBjb2xvciA6IHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5waWthLWJ1dHRvbi5waWthLXJhbmdlRW5kOm5vdCgucGlrYS1zZWxlY3RlZEVuZERheSwgLnBpa2Etc2VsZWN0ZWREYXkpe1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdyZWVuTGlnaHRDb2xvcikgO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5pcy1kaXNhYmxlZHtcclxuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcblxyXG4gICAgICAgIC5waWthLWJ1dHRvbjpub3QoLnBpa2Etc2VsZWN0ZWRFbmREYXksIC5waWthLXNlbGVjdGVkRGF5LCAucGlrYS1oaWdobGlnaHQsIC5waWthLXNlbGVjdGVkUmFuZ2UsIC5waWthLXJhbmdlRW5kKSB7XHJcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZ3JleU1lZGl1bSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bm90KC5pcy1kaXNhYmxlZCkgLnBpa2EtYnV0dG9uOmhvdmVyIHtcclxuICAgICAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XHJcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgIGJhY2tncm91bmQ6dmFyKC0tZ3JlZW5MaWdodENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYucGlrYS1zZWxlY3RlZERheUNvbnRhaW5lci5waWthLXNlbGVjdGVkUmFuZ2VDb250YWluZXJ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjNjVCMzJFIDUwLjElLCAjNjVCMzJFIDEwMCUpO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgIC1tb3otbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRkZGRkZGLCAjRkZGRkZGIDUwJSwgIzY1QjMyRSA1MC4xJSwgIzY1QjMyRSAxMDAlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgLW1zLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0ZGRkZGRiwgI0ZGRkZGRiA1MCUsICM2NUIzMkUgNTAuMSUsICM2NUIzMkUgMTAwJSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAtby1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjNjVCMzJFIDUwLjElLCAjNjVCMzJFIDEwMCUpO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRkZGRkZGLCAjRkZGRkZGIDUwJSwgIzY1QjMyRSA1MC4xJSwgIzY1QjMyRSAxMDAlKTtcclxuICAgICAgICBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNGRkZGRkYnLGVuZENvbG9yc3RyPScjNjVCMzJFJywgR3JhZGllbnRUeXBlPTApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnBpa2Etc2VsZWN0ZWRFbmREYXlDb250YWluZXJ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM2NUIzMkUsICM2NUIzMkUgNTAlLCAjRkZGRkZGIDUwLjElLCAjRkZGRkZGIDEwMCUpO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgIC1tb3otbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNjVCMzJFLCAjNjVCMzJFIDUwJSwgI0ZGRkZGRiA1MC4xJSwgI0ZGRkZGRiAxMDAlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgLW1zLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzY1QjMyRSwgIzY1QjMyRSA1MCUsICNGRkZGRkYgNTAuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAtby1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM2NUIzMkUsICM2NUIzMkUgNTAlLCAjRkZGRkZGIDUwLjElLCAjRkZGRkZGIDEwMCUpO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNjVCMzJFLCAjNjVCMzJFIDUwJSwgI0ZGRkZGRiA1MC4xJSwgI0ZGRkZGRiAxMDAlKTtcclxuICAgICAgICBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyM2NUIzMkUnLGVuZENvbG9yc3RyPScjRkZGRkZGJywgR3JhZGllbnRUeXBlPTApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnBpa2EtcmFuZ2VTdGFydENvbnRhaW5lci5waWthLWhpZ2hsaWdodHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0ZGRkZGRiwgI0ZGRkZGRiA1MCUsICNFMUVFRDcgNTAuMSUsICNFMUVFRDcgMTAwJSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgLW1vei1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjRTFFRUQ3IDUwLjElLCAjRTFFRUQ3IDEwMCUpO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAtbXMtbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRkZGRkZGLCAjRkZGRkZGIDUwJSwgI0UxRUVENyA1MC4xJSwgI0UxRUVENyAxMDAlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgIC1vLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0ZGRkZGRiwgI0ZGRkZGRiA1MCUsICNFMUVFRDcgNTAuMSUsICNFMUVFRDcgMTAwJSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjRTFFRUQ3IDUwLjElLCAjRTFFRUQ3IDEwMCUpO1xyXG4gICAgICAgIGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI0ZGRkZGRicsZW5kQ29sb3JzdHI9JyNFMUVFRDcnLCBHcmFkaWVudFR5cGU9MCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYucGlrYS1yYW5nZUVuZENvbnRhaW5lcjpub3QoLnBpa2Etc2VsZWN0ZWRFbmREYXlDb250YWluZXIpe1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRTFFRUQ3LCAjRTFFRUQ3IDUwJSwgI0ZGRkZGRiA1MC4xJSwgI0ZGRkZGRiAxMDAlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAtbW96LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0UxRUVENywgI0UxRUVENyA1MCUsICNGRkZGRkYgNTAuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgIC1tcy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNFMUVFRDcsICNFMUVFRDcgNTAlLCAjRkZGRkZGIDUwLjElLCAjRkZGRkZGIDEwMCUpO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgLW8tbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRTFFRUQ3LCAjRTFFRUQ3IDUwJSwgI0ZGRkZGRiA1MC4xJSwgI0ZGRkZGRiAxMDAlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0UxRUVENywgI0UxRUVENyA1MCUsICNGRkZGRkYgNTAuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjNjVCMzJFJyxlbmRDb2xvcnN0cj0nI0ZGRkZGRicsIEdyYWRpZW50VHlwZT0wKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnBpa2EtYnV0dG9uLnBpa2Etc2VsZWN0ZWREYXksIC5waWthLWJ1dHRvbi5waWthLXNlbGVjdGVkRW5kRGF5e1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdyZWVuKSA7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLWJ1dHRvbiB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAxMnB4IDExcHg7XHJcbiAgICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xyXG4gICAgICBoZWlnaHQgOiByZW0oNDApO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgICBoZWlnaHQ6IDV2dztcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKSB7XHJcbiAgICAgIHBhZGRpbmc6IDExcHg7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgd2lkdGg6IDEyLjl2dztcclxuICAgICAgaGVpZ2h0OiAxMi45dnc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLXdlZWsge1xyXG4gICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgY29sb3I6ICM5OTk7XHJcbiAgfVxyXG5cclxuICAvKioqIHNlbGVjdGlvbiBkZXNpZ24gKioqL1xyXG4gICYtc2VsZWN0ZWRSYW5nZXtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZWVuTGlnaHRDb2xvcik7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxuICAvKioqIEFCVEVTVF9EVVJBVElPTl9DQUxFTkRBUiBSRUxBVEVEICoqKi9cclxuICAmLWxvYWRlcntcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1zZWFyY2hQaWthKSArIDUpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjgpO1xyXG5cclxuICAgIC5jcC1zcGlubmVye1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogNTAlO1xyXG4gICAgICBsZWZ0OjUwJTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuICB9XHJcbiAgLyoqKiAvQUJURVNUX0RVUkFUSU9OX0NBTEVOREFSIFJFTEFURUQgKioqL1xyXG59XHJcblxyXG4ucGlrYS1wcmV2LFxyXG4uaXMtcnRsIC5waWthLW5leHQge1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG5cclxuICAmOmJlZm9yZSB7XHJcbiAgICBAZXh0ZW5kIC5jcGUtSWNvbi0tYXJyb3ctbGVmdDpiZWZvcmU7XHJcbiAgICBmb250LWZhbWlseTogXCJpY29uc1wiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgY29sb3IgOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgbGVmdDogLTMwcHg7XHJcbiAgICB0b3A6IHJlbSgxMSk7XHJcbiAgICBmb250LXNpemU6MTVweDtcclxuICB9XHJcbn1cclxuXHJcbi5waWthLW5leHQsXHJcbi5pcy1ydGwgLnBpa2EtcHJldiB7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIHJpZ2h0OiAwO1xyXG5cclxuICAmOmJlZm9yZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBAZXh0ZW5kIC5jcGUtSWNvbi0tYXJyb3ctcmlnaHQ6YmVmb3JlO1xyXG4gICAgY29sb3IgOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgZm9udC1mYW1pbHk6IFwiaWNvbnNcIjtcclxuICAgIHJpZ2h0OiA1cHg7XHJcbiAgICB0b3A6IHJlbSgxMSk7XHJcbiAgICBmb250LXNpemU6MTVweDtcclxuICB9XHJcblxyXG4gIEBtZWRpYSAoLS1tcS1tb2JpbGUpIHtcclxuICAgIHJpZ2h0OiA1cHg7XHJcbiAgfVxyXG59XHJcblxyXG4vKioqIHNwZWNpZmljYXRpb24gZm9yIGRlcGFydHVyZSBjYWxlbmRhciAqKiovXHJcbi5kZXBhcnR1cmV7XHJcblxyXG4gIC5waWthLXRhYmxle1xyXG4gICAgbWFyZ2luLWJvdHRvbSA6IDA7XHJcblxyXG4gICAgdGQucGlrYS10Rm9vdGVyTGVmdCwgdGQucGlrYS10Rm9vdGVyUmlnaHR7XHJcbiAgICAgIHRleHQtYWxpZ246bGVmdDtcclxuICAgICAgZm9udC1zaXplOiB2YXIoLS1tYWluRm9udFNpemUpO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHdpZHRoIDogMzAlO1xyXG4gICAgICBib3R0b20gOiByZW0oNDUpO1xyXG5cclxuICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgd2lkdGg6IDgwJTtcclxuICAgICAgICBwb3NpdGlvbjpzdGF0aWM7XHJcbiAgICAgICAgcGFkZGluZy10b3A6cmVtKDIwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbi5waWthLXJlc2V0e1xyXG4gIHBvc2l0aW9uOmFic29sdXRlO1xyXG4gIHJpZ2h0IDogcmVtKDEwKTtcclxuICB0b3AgOiAwO1xyXG5cclxuICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgIHJpZ2h0OiByZW0oMik7XHJcbiAgfVxyXG5cclxuICAuY3BlLUljb257XHJcbiAgICBmb250LXNpemU6IHJlbSgxMyk7XHJcbiAgfVxyXG59XHJcblxyXG4ucGlrYS10b29sdGlwe1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgcGFkZGluZzogMCByZW0oMTApO1xyXG4gIGJvcmRlci1yYWRpdXM6IHJlbSgxMyk7XHJcbiAgbGluZS1oZWlnaHQ6IHJlbSgyNik7XHJcbiAgaGVpZ2h0OiByZW0oMjYpO1xyXG4gIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1zZWFyY2hQaWthKSArIDEwKTtcclxuICBmb250LXNpemU6IHJlbSgxNCk7XHJcbn0iLCJcclxuLyogRnVuY3Rpb25hbCBzdHlsaW5nO1xyXG4gKiBUaGVzZSBzdHlsZXMgYXJlIHJlcXVpcmVkIGZvciBub1VpU2xpZGVyIHRvIGZ1bmN0aW9uLlxyXG4gKiBZb3UgZG9uJ3QgbmVlZCB0byBjaGFuZ2UgdGhlc2UgcnVsZXMgdG8gYXBwbHkgeW91ciBkZXNpZ24uXHJcbiAqL1xyXG4ubm9VaS10YXJnZXQsXHJcbi5ub1VpLXRhcmdldCAqIHtcclxuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4td2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4tbXMtdG91Y2gtYWN0aW9uOiBub25lO1xyXG5cdHRvdWNoLWFjdGlvbjogbm9uZTtcclxuLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4tbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG5cdHVzZXItc2VsZWN0OiBub25lO1xyXG4tbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG4ubm9VaS10YXJnZXQge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRkaXJlY3Rpb246IGx0cjtcclxufVxyXG4ubm9VaS1iYXNlIHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdHotaW5kZXg6IDE7IC8qIEZpeCA0MDEgKi9cclxufVxyXG4ubm9VaS1vcmlnaW4ge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRyaWdodDogMDtcclxuXHR0b3A6IDA7XHJcblx0bGVmdDogMDtcclxuXHRib3R0b206IDA7XHJcbn1cclxuLm5vVWktaGFuZGxlIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0ei1pbmRleDogMTtcclxufVxyXG4ubm9VaS1zdGFja2luZyAubm9VaS1oYW5kbGUge1xyXG4vKiBUaGlzIGNsYXNzIGlzIGFwcGxpZWQgdG8gdGhlIGxvd2VyIG9yaWdpbiB3aGVuXHJcbiAgIGl0cyB2YWx1ZXMgaXMgPiA1MCUuICovXHJcblx0ei1pbmRleDogMTA7XHJcbn1cclxuLm5vVWktc3RhdGUtdGFwIC5ub1VpLW9yaWdpbiB7XHJcbi13ZWJraXQtdHJhbnNpdGlvbjogbGVmdCAwLjNzLCB0b3AgMC4zcztcclxuXHR0cmFuc2l0aW9uOiBsZWZ0IDAuM3MsIHRvcCAwLjNzO1xyXG59XHJcbi5ub1VpLXN0YXRlLWRyYWcgKiB7XHJcblx0Y3Vyc29yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8qIFBhaW50aW5nIGFuZCBwZXJmb3JtYW5jZTtcclxuICogQnJvd3NlcnMgY2FuIHBhaW50IGhhbmRsZXMgaW4gdGhlaXIgb3duIGxheWVyLlxyXG4gKi9cclxuLm5vVWktYmFzZSxcclxuLm5vVWktaGFuZGxlIHtcclxuXHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xyXG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xyXG59XHJcblxyXG4vKiBTbGlkZXIgc2l6ZSBhbmQgaGFuZGxlIHBsYWNlbWVudDtcclxuICovXHJcbi5ub1VpLWhvcml6b250YWwge1xyXG5cdGhlaWdodDogMThweDtcclxufVxyXG4ubm9VaS1ob3Jpem9udGFsIC5ub1VpLWhhbmRsZSB7XHJcblx0d2lkdGg6IDM0cHg7XHJcblx0aGVpZ2h0OiAyOHB4O1xyXG5cdGxlZnQ6IC0xN3B4O1xyXG5cdHRvcDogLTZweDtcclxufVxyXG4ubm9VaS12ZXJ0aWNhbCB7XHJcblx0d2lkdGg6IDE4cHg7XHJcbn1cclxuLm5vVWktdmVydGljYWwgLm5vVWktaGFuZGxlIHtcclxuXHR3aWR0aDogMjhweDtcclxuXHRoZWlnaHQ6IDM0cHg7XHJcblx0bGVmdDogLTZweDtcclxuXHR0b3A6IC0xN3B4O1xyXG59XHJcblxyXG4vKiBTdHlsaW5nO1xyXG4gKi9cclxuLm5vVWktYmFja2dyb3VuZCB7XHJcblx0YmFja2dyb3VuZDogI0ZBRkFGQTtcclxuXHRib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggI2YwZjBmMDtcclxufVxyXG4ubm9VaS1jb25uZWN0IHtcclxuXHRiYWNrZ3JvdW5kOiAjM0ZCOEFGO1xyXG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMCAzcHggcmdiYSg1MSw1MSw1MSwwLjQ1KTtcclxuLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDQ1MG1zO1xyXG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQgNDUwbXM7XHJcbn1cclxuLm5vVWktb3JpZ2luIHtcclxuXHRib3JkZXItcmFkaXVzOiAycHg7XHJcbn1cclxuLm5vVWktdGFyZ2V0IHtcclxuXHRib3JkZXItcmFkaXVzOiA0cHg7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgI0QzRDNEMztcclxuXHRib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggI0YwRjBGMCwgMCAzcHggNnB4IC01cHggI0JCQjtcclxufVxyXG4ubm9VaS10YXJnZXQubm9VaS1jb25uZWN0IHtcclxuXHRib3gtc2hhZG93OiBpbnNldCAwIDAgM3B4IHJnYmEoNTEsNTEsNTEsMC40NSksIDAgM3B4IDZweCAtNXB4ICNCQkI7XHJcbn1cclxuXHJcbi8qIEhhbmRsZXMgYW5kIGN1cnNvcnM7XHJcbiAqL1xyXG4ubm9VaS1kcmFnZ2FibGUge1xyXG5cdGN1cnNvcjogdy1yZXNpemU7XHJcbn1cclxuLm5vVWktdmVydGljYWwgLm5vVWktZHJhZ2dhYmxlIHtcclxuXHRjdXJzb3I6IG4tcmVzaXplO1xyXG59XHJcbi5ub1VpLWhhbmRsZSB7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgI0Q5RDlEOTtcclxuXHRib3JkZXItcmFkaXVzOiAzcHg7XHJcblx0YmFja2dyb3VuZDogI0ZGRjtcclxuXHRjdXJzb3I6IGRlZmF1bHQ7XHJcblx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDFweCAjRkZGLFxyXG5cdFx0XHRcdGluc2V0IDAgMXB4IDdweCAjRUJFQkVCLFxyXG5cdFx0XHRcdDAgM3B4IDZweCAtM3B4ICNCQkI7XHJcbn1cclxuLm5vVWktYWN0aXZlIHtcclxuXHRib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4ICNGRkYsXHJcblx0XHRcdFx0aW5zZXQgMCAxcHggN3B4ICNEREQsXHJcblx0XHRcdFx0MCAzcHggNnB4IC0zcHggI0JCQjtcclxufVxyXG5cclxuLyogSGFuZGxlIHN0cmlwZXM7XHJcbiAqL1xyXG4ubm9VaS1oYW5kbGU6YmVmb3JlLFxyXG4ubm9VaS1oYW5kbGU6YWZ0ZXIge1xyXG5cdGNvbnRlbnQ6IFwiXCI7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGhlaWdodDogMTRweDtcclxuXHR3aWR0aDogMXB4O1xyXG5cdGJhY2tncm91bmQ6ICNFOEU3RTY7XHJcblx0bGVmdDogMTRweDtcclxuXHR0b3A6IDZweDtcclxufVxyXG4ubm9VaS1oYW5kbGU6YWZ0ZXIge1xyXG5cdGxlZnQ6IDE3cHg7XHJcbn1cclxuLm5vVWktdmVydGljYWwgLm5vVWktaGFuZGxlOmJlZm9yZSxcclxuLm5vVWktdmVydGljYWwgLm5vVWktaGFuZGxlOmFmdGVyIHtcclxuXHR3aWR0aDogMTRweDtcclxuXHRoZWlnaHQ6IDFweDtcclxuXHRsZWZ0OiA2cHg7XHJcblx0dG9wOiAxNHB4O1xyXG59XHJcbi5ub1VpLXZlcnRpY2FsIC5ub1VpLWhhbmRsZTphZnRlciB7XHJcblx0dG9wOiAxN3B4O1xyXG59XHJcblxyXG4vKiBEaXNhYmxlZCBzdGF0ZTtcclxuICovXHJcbltkaXNhYmxlZF0ubm9VaS1jb25uZWN0LFxyXG5bZGlzYWJsZWRdIC5ub1VpLWNvbm5lY3Qge1xyXG5cdGJhY2tncm91bmQ6ICNCOEI4Qjg7XHJcbn1cclxuW2Rpc2FibGVkXS5ub1VpLW9yaWdpbixcclxuW2Rpc2FibGVkXSAubm9VaS1oYW5kbGUge1xyXG5cdGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbn1cclxuIiwiQGltcG9ydCBcIi4uLy4uL2NvbXBvbmVudHMvZm9ybS9xdWFudGl0eVNlbGVjdG9yL19pbmRleC5jc3NcIjtcclxuQGltcG9ydCBcIi4uLy4uL2NvbXBvbmVudHMvZm9ybS9kYXRlcGlja2VyL19pbmRleC5jc3NcIjtcclxuQGltcG9ydCBcIm5vdWlzbGlkZXIvc3JjL25vdWlzbGlkZXIuY3NzXCI7XHJcblxyXG4vKioqIEdlc3Rpb24gdGV4dGZpZWxkIGJhc2lxdWVzICoqKi9cclxuLmlucHV0Q29udGFpbmVye2JvcmRlcjoxcHggc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTtib3JkZXItcmFkaXVzOjVweDtwYWRkaW5nOjExcHggMjBweDtsaW5lLWhlaWdodDoxNnB4O21hcmdpbi10b3A6MTVweDtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlO31cclxuLmlucHV0LWRpc2NyZXR7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci13aWR0aDowO31cclxuOjotbW96LXBsYWNlaG9sZGVye3RyYW5zaXRpb246IGFsbCAxczt9XHJcbi5pbnB1dDpmb2N1czo6LW1vei1wbGFjZWhvbGRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjBweDtjb2xvcjpyZWQ7b3BhY2l0eToxO3BhZGRpbmctbGVmdDoyMHB4O31cclxuXHJcbi8qIHN1cmNoYXJnZSBtZGwgKi9cclxuLmlucHV0Q29udGFpbmVyIC5tZGwtdGV4dGZpZWxke1xyXG4gIGZvbnQtZmFtaWx5OiAnQmVudG9uU2FucycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MTZweDtcclxuICB3aWR0aDphdXRvO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgdmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG59XHJcbi5pbnB1dENvbnRhaW5lciAubWRsLXRleHRmaWVsZF9faW5wdXR7XHJcbiAgYm9yZGVyLXN0eWxlOm5vbmU7XHJcbiAgcGFkZGluZzowO1xyXG4gIGZvbnQtZmFtaWx5OiAnQmVudG9uU2FucycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MTZweDtcclxuICBjb2xvcjp2YXIoLS1ncmV5U3RvbmUpO1xyXG4gIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4uaW5wdXRDb250YWluZXIgLm1kbC10ZXh0ZmllbGRfX2xhYmVse1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIGNvbG9yOnJnYmEoNjEsIDY2LCA3MCwgMC41KTtcclxuICBmb250LWZhbWlseTogJ0JlbnRvblNhbnMnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjE2cHg7XHJcbiAgaGVpZ2h0OjE2cHg7XHJcbn1cclxuXHJcbi5pbnB1dENvbnRhaW5lciAubWRsLXRleHRmaWVsZF9fbGFiZWw6OmFmdGVye1xyXG4gIGJhY2tncm91bmQ6bm9uZTtcclxufVxyXG5cclxuLmlucHV0Q29udGFpbmVyIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5pcy1mb2N1c2VkIC5tZGwtdGV4dGZpZWxkX19sYWJlbCwgLmlucHV0Q29udGFpbmVyIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5pcy1kaXJ0eSAubWRsLXRleHRmaWVsZF9fbGFiZWwsXHJcbi5pbnB1dENvbnRhaW5lciAubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwuaGFzLXBsYWNlaG9sZGVyIC5tZGwtdGV4dGZpZWxkX19sYWJlbHtcclxuICB0b3A6LTM1cHg7XHJcbiAgbGVmdDotMjBweDtcclxuICBjb2xvciA6IHJnYmEoNjEsIDY2LCA3MCwgMSk7XHJcbn1cclxuXHJcbi5pbnB1dENvbnRhaW5lciAubWRsLXRleHRmaWVsZC5pbnB1dENvbnRhaW5lci0td2l0aFZhbGlkYXRpb24uaXMtZGlydHl7XHJcbiAgd2lkdGg6MTAwJTtcclxufVxyXG5cclxuLmlucHV0Q29udGFpbmVyIC5tZGwtdGV4dGZpZWxkLmlucHV0Q29udGFpbmVyLS13aXRoVmFsaWRhdGlvbi5pcy1kaXJ0eSAubWRsLXRleHRmaWVsZF9faW5wdXR7XHJcbiAgd2lkdGg6NjAlO1xyXG4gIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4uaW5wdXRDb250YWluZXIgLm1kbC10ZXh0ZmllbGQuaXMtaW52YWxpZCAubWRsLXRleHRmaWVsZF9faW5wdXQsIC5pbnB1dENvbnRhaW5lciAubWRsLXRleHRmaWVsZC5pcy1pbnZhbGlkIC5tZGwtdGV4dGZpZWxkX19sYWJlbDo6YWZ0ZXJ7XHJcbiAgYmFja2dyb3VuZDpub25lO1xyXG59XHJcblxyXG4uaW5wdXRDb250YWluZXIgLm1kbC10ZXh0ZmllbGQuaXMtaW52YWxpZC5pcy1kaXJ0eSAubWRsLXRleHRmaWVsZF9fZXJyb3J7XHJcbiAgICB3aWR0aDozOCU7XHJcbiAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcclxuICAgIHRleHQtYWxpZ246cmlnaHQ7XHJcbiAgICBtYXJnaW4tdG9wOi03cHg7XHJcbiAgICBjb2xvcjojRjQ5ODUzO1xyXG4gICAgZm9udC1zaXplOnJlbSgxMyk7XHJcbn1cclxuXHJcbi5pbnB1dENvbnRhaW5lciAubWRsLXRleHRmaWVsZCAubWRsLXRleHRmaWVsZF9fdmFsaWQsXHJcbi5pbnB1dENvbnRhaW5lciAubWRsLXRleHRmaWVsZC5pbnB1dENvbnRhaW5lci0td2l0aFZhbGlkYXRpb24uaXMtZGlydHkuaXMtaW52YWxpZCAubWRsLXRleHRmaWVsZF9fdmFsaWQsXHJcbi5pbnB1dENvbnRhaW5lciAubWRsLXRleHRmaWVsZC5pcy1kaXJ0eSAubWRsLXRleHRmaWVsZF9fZXJyb3J7XHJcbiAgZGlzcGxheTpub25lO1xyXG59XHJcblxyXG4uaW5wdXRDb250YWluZXIgLm1kbC10ZXh0ZmllbGQuaW5wdXRDb250YWluZXItLXdpdGhWYWxpZGF0aW9uLmlzLWRpcnR5IC5tZGwtdGV4dGZpZWxkX192YWxpZHtcclxuICB3aWR0aDozOCU7XHJcbiAgZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcbiAgdGV4dC1hbGlnbjpyaWdodDtcclxuICBtYXJnaW4tdG9wOi03cHg7XHJcbiAgY29sb3I6IzY1QjMyRTtcclxuICBwb3NpdGlvbjphYnNvbHV0ZTtcclxuICBmb250LXNpemU6cmVtKDEzKTtcclxufVxyXG5cclxuLyogZG91YmxlIHRleHRmaWVsZCAqL1xyXG4uZG91YmxlVGV4dEZpZWxkLmdyaWRDb250YWluZXJ7d2lkdGg6MTAwJTt9XHJcblxyXG4uZG91YmxlVGV4dEZpZWxkLWZpZWxkXzJ7XHJcbiAgZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcbiAgaGVpZ2h0OjE2cHg7XHJcbn1cclxuLmlucHV0Q29udGFpbmVyLmRvdWJsZVRleHRGaWVsZCAubWRsLXRleHRmaWVsZHtcclxuICB3aWR0aDo1MCU7XHJcbiAgcG9zaXRpb246cmVsYXRpdmU7XHJcbiAgfVxyXG5cclxuLmlucHV0Q29udGFpbmVyLmRvdWJsZVRleHRGaWVsZCAubWRsLXRleHRmaWVsZF9fbGFiZWx7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcclxuICB6LWluZGV4OiBjYWxjKHZhcigtLXpJbmRleC0tY29udGVudCkgKyAyKTtcclxuICB3aWR0aDoyMDAlO1xyXG59XHJcblxyXG4uaW5wdXRDb250YWluZXIuZG91YmxlVGV4dEZpZWxkIC5tZGwtdGV4dGZpZWxkX19pbnB1dHtcclxuICBwb3NpdGlvbjpyZWxhdGl2ZTtcclxuICB6LWluZGV4OiBjYWxjKHZhcigtLXpJbmRleC0tY29udGVudCkgKyAxKTtcclxufVxyXG5cclxuLm1kbC10ZXh0ZmllbGRfX3BzZXVkb1BsYWNlaG9sZGVye1xyXG4gIHBvc2l0aW9uOmFic29sdXRlO1xyXG4gIHotaW5kZXg6IHZhcigtLXpJbmRleC0tY29udGVudCk7XHJcbiAgdG9wOjA7XHJcbiAgbGVmdDowO1xyXG59XHJcblxyXG4uaW5wdXRDb250YWluZXIuZG91YmxlVGV4dEZpZWxkIC5pcy1kaXJ0eSwgLmlucHV0Q29udGFpbmVyLmRvdWJsZVRleHRGaWVsZCAuaXMtZGlydHkgLmRvdWJsZVRleHRGaWVsZF9faW5wdXRfMXtcclxuICBkaXNwbGF5OmlubGluZTtcclxuICB3aWR0aDphdXRvO1xyXG59XHJcblxyXG4uaW5wdXRDb250YWluZXIuZG91YmxlVGV4dEZpZWxkIC5pcy1kaXJ0eSAubWRsLXRleHRmaWVsZF9fcHNldWRvUGxhY2Vob2xkZXIsIC5pbnB1dENvbnRhaW5lci5kb3VibGVUZXh0RmllbGQgLmlzLWRpcnR5LmlzLWZvY3VzZWQgLnRleHRmaWVsZF9fcHNldWRvUGxhY2Vob2xkZXJ7ZGlzcGxheTpub25lO31cclxuXHJcbi5pbnB1dENvbnRhaW5lci5kb3VibGVUZXh0RmllbGQgLmlzLWRpcnR5LmlzLWZvY3VzZWQsIC5pbnB1dENvbnRhaW5lci5kb3VibGVUZXh0RmllbGQgLmlzLWRpcnR5LmlzLWZvY3VzZWQgLmRvdWJsZVRleHRGaWVsZF9faW5wdXRfMXtcclxuICBkaXNwbGF5OmlubGluZS1ibG9jaztcclxuICB3aWR0aDo1MCU7XHJcbn1cclxuXHJcbi5kb3VibGVUZXh0RmllbGRfX2lucHV0XzJ7XHJcbiAgQG1lZGlhICgtLW1xLWRlc2t0b3ApIHtcclxuICAgIG1hcmdpbi1sZWZ0Oi0xMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLyoqKiAvR2VzdGlvbiB0ZXh0ZmllbGQgYmFzaXF1ZXMgKioqL1xyXG4vKioqIEdlc3Rpb24gc2VsZWN0ICoqKi9cclxuLmZvcm0tc2VsZWN0SXRlbXtcclxuICBwYWRkaW5nOjExcHggNDBweCAxMXB4IDIwcHg7XHJcbiAgbGluZS1oZWlnaHQ6MTZweDtcclxuICB3aWR0aDoxMDAlO1xyXG59XHJcblxyXG4uZm9ybS1sYWJlbHtcclxuICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG4gIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udFNpemVEZWZhdWx0KTtcclxufVxyXG5cclxuLmZvcm0tbGFiZWw6aG92ZXJ7XHJcbiAgQG1lZGlhICgtLW1xLWRlc2t0b3ApIHtcclxuICAgIGNvbG9yOiB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuLmZvcm0tbGFiZWw6YWN0aXZle1xyXG4gIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCkge1xyXG4gICAgY29sb3I6IHZhcigtLWdyZWVuTGlnaHRDb2xvcik7XHJcbiAgfVxyXG59XHJcblxyXG4vKioqIC9HZXN0aW9uIHNlbGVjdCAqKiovXHJcbi8qKiogcmFkaW8gQnV0dG9uICYgY2hlY2tib3ggKioqL1xyXG4uZm9ybS1yYWRpb0NvbnRhaW5lciwgLmZvcm0tY2hlY2tib3hDb250YWluZXJ7XHJcbiAgcG9zaXRpb246cmVsYXRpdmU7XHJcbiAgbGluZS1oZWlnaHQ6cmVtKDMwKTtcclxuICBtYXJnaW46MnB4IDA7XHJcbn1cclxuLmZvcm0tcmFkaW9CdXR0b24sIC5mb3JtLWNoZWNrYm94e1xyXG4gIHBvc2l0aW9uOmFic29sdXRlO1xyXG4gIHRvcDowO1xyXG4gIGxlZnQ6MDtcclxuICBvcGFjaXR5OjA7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG59XHJcbi5zZWFyY2hGb3JtLWNvdW50cnlTZWxlY3RvciAuZm9ybS1jaGVja2JveENvbnRhaW5lciAuZm9ybS1jaGVja2JveExhYmVse1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZSkge1xyXG4gICAgZm9udC1zaXplOiByZW0oMTUpO1xyXG4gIH1cclxufVxyXG4uZm9ybS1yYWRpb0xhYmVsLCAuZm9ybS1jaGVja2JveExhYmVse1xyXG4gIHBhZGRpbmctbGVmdDpyZW0oMzApO1xyXG4gIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG4gIGN1cnNvcjpwb2ludGVyO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBsaW5lLWhlaWdodDogcmVtKDIwKTtcclxufVxyXG4uZm9ybS1yYWRpb0xhYmVsOmJlZm9yZXtcclxuICBjb250ZW50OlwiXCI7XHJcbiAgcG9zaXRpb246YWJzb2x1dGU7XHJcbiAgdG9wOiA3cHg7XHJcbiAgbGVmdDowO1xyXG4gIHdpZHRoOiAyMHB4O1xyXG4gIGhlaWdodDogMjBweDtcclxuICBib3JkZXI6MnB4IHNvbGlkIHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgYm9yZGVyLXJhZGl1czo1MCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWFpbkJhY2tncm91bmRDb2xvcik7XHJcbn1cclxuLmZvcm0tcmFkaW9CdXR0b246Y2hlY2tlZCArIC5mb3JtLXJhZGlvTGFiZWw6YWZ0ZXJ7XHJcbiAgY29udGVudDpcIlwiO1xyXG4gIHBvc2l0aW9uOmFic29sdXRlO1xyXG4gIHRvcDogMTFweDtcclxuICBsZWZ0OjRweDtcclxuICB3aWR0aDogMTJweDtcclxuICBoZWlnaHQ6IDEycHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JlZW4pO1xyXG4gIGJvcmRlci1yYWRpdXM6NTAlO1xyXG59XHJcblxyXG4uZm9ybS1jaGVja2JveExhYmVsOmJlZm9yZXtcclxuICBjb250ZW50OlwiXCI7XHJcbiAgcG9zaXRpb246YWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbWFyZ2luLXRvcDogcmVtKC0xMSk7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMjJweDtcclxuICBoZWlnaHQ6IDIycHg7XHJcbiAgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gIGJvcmRlci1yYWRpdXM6NXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gIGN1cnNvcjpwb2ludGVyO1xyXG59XHJcblxyXG4uZm9ybS1jaGVja2JveExhYmVsOmhvdmVyOmJlZm9yZXtcclxuICBAbWVkaWEgKC0tbXEtZGVza3RvcCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuLmZvcm0tY2hlY2tib3hMYWJlbDphY3RpdmU6YmVmb3Jle1xyXG4gIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuLmZvcm0tY2hlY2tib3g6Y2hlY2tlZCArIC5mb3JtLWNoZWNrYm94TGFiZWw6YmVmb3Jle1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZWVuKTtcclxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZWVuKTtcclxufVxyXG5cclxuLnNlYXJjaEZvcm0tY29udGFpbmVyIC5zZWFyY2hGb3JtLXJlZ2lvbiB7XHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZSkge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi5zZWFyY2hGb3JtLWNvbnRhaW5lciAub3BlbmVkIC5zZWFyY2hGb3JtLXJlZ2lvbiB7XHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZSkge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LXNpemU6IHJlbSgxMik7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZGVmYXVsdEZvbnQpO1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIGxpbmUtaGVpZ2h0OiByZW0oMTIuOCk7XHJcbiAgICBjb2xvcjogdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuICB9XHJcbn1cclxuXHJcbi51LWRpc2FibGVkIC5mb3JtLWNoZWNrYm94OmNoZWNrZWQgKyAuZm9ybS1jaGVja2JveExhYmVsOmJlZm9yZXtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxufVxyXG5cclxuLmZvcm0tY2hlY2tib3g6Y2hlY2tlZCArIC5mb3JtLWNoZWNrYm94TGFiZWw6YWZ0ZXJ7XHJcbiAgQGV4dGVuZCAuY3BlLUljb24tLWNoZWNrOmJlZm9yZTtcclxuICBmb250LWZhbWlseTogJ2ljb25zJztcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZm9udC1zaXplOiByZW0oMTMpO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDU1JTtcclxuICBsZWZ0OiByZW0oMik7XHJcbiAgbWFyZ2luLXRvcDogcmVtKC0xMSk7XHJcbn1cclxuLyoqKiAvcmFkaW8gQnV0dG9uICoqKi9cclxuXHJcbi8qKiogcmFuZ2UgKioqL1xyXG5cclxuLmZvcm0tcmFuZ2Uge1xyXG5cclxuICAmQ29udGFpbmVye1xyXG4gICAgcGFkZGluZy10b3A6IHJlbSg2MCk7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgIHdpZHRoOiA3OHZ3O1xyXG4gICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmVGl0bGV7XHJcbiAgICBmb250LXNpemU6IHJlbSgxNCk7XHJcbiAgfVxyXG5cclxuICAmTGVnZW5ke1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luLXRvcDogcmVtKC04KTtcclxuICAgIGhlaWdodDogcmVtKDMwKTtcclxuXHJcbiAgICAjZm9ybS1yYW5nZU1heHtcclxuICAgICAgcmlnaHQ6IHJlbSgtMTgpO1xyXG4gICAgfVxyXG5cclxuICAgICNmb3JtLXJhbmdlTWlue1xyXG4gICAgICBsZWZ0OiByZW0oMik7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIGxlZnQ6IHJlbSg0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICB3aWR0aDogNzh2dztcclxuICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJkxhbmRtYXJre1xyXG4gICAgZm9udC1zaXplOiByZW0oMTUpO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcGFkZGluZy10b3A6IHJlbSgxNyk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB0b3A6IDA7XHJcblxyXG4gICAgJjpiZWZvcmV7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIGhlaWdodDogcmVtKDE3KTtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgtMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLm5vVWkte1xyXG5cclxuICAgICZjb25uZWN0IHtcclxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCA0NWRlZyB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpLCB2YXIoLS1ncmVlbikpO1xyXG4gICAgfVxyXG5cclxuICAgICZ0YXJnZXQge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIGhlaWdodDogcmVtKDEwKTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSg0KTtcclxuICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIGhlaWdodDogcmVtKDE0KTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oNyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmYmFja2dyb3VuZHtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4pIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubm9VaS17XHJcblxyXG4gICAgJm9yaWdpbntcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdiYjQ5ODtcclxuICAgIH1cclxuXHJcbiAgICAmaGFuZGxle1xyXG4gICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgIGhlaWdodDogcmVtKDI2KTtcclxuICAgICAgd2lkdGg6IHJlbSgyNik7XHJcbiAgICAgIHRvcDogcmVtKC05KTtcclxuICAgICAgY3Vyc29yOiBncmFiO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgdG9wOiByZW0oLTUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgY3Vyc29yOiBncmFiYmluZztcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgY29udGVudDogXCJ8fFwiO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIG1hcmdpbjogcmVtKC0xKSAwIDAgcmVtKC0xKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjphZnRlcntcclxuICAgICAgICBjb250ZW50OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJnRvb2x0aXB7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDIyKTtcclxuICAgICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiByZW0oLTMwKTtcclxuICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgtMjIpO1xyXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cclxuICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oLTUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmTGFiZWwge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKioqIC9yYW5nZSAqKiovXHJcbiIsIi8qLnNlbGVjdDItd3JhcHBlciB7XHJcbiAgQG1lZGlhKC0tbXEtbW9iaWxlVG9UYWJsZXQpIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXFxFQTBDXCI7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1ncmV5TW91c2VDb2xvcik7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOnJlbSg4KTtcclxuICAgICAgcmlnaHQ6IHJlbSg1KTtcclxuICAgICAgZm9udC1mYW1pbHk6ICdpY29ucyc7XHJcbiAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgICAgZm9udC1zaXplOiByZW0oMjgpO1xyXG4gICAgfSAgICBcclxuICB9XHJcbn0qL1xyXG5cclxuLnNlbGVjdDItY29udGFpbmVyIHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBtYXJnaW46IDA7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IFxyXG59XHJcbiAgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGhlaWdodDogNDBweDtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgfVxyXG4gICAgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMjApO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oNDApO1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgXHJcbiAgICAgIGNvbG9yOiB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gICAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG4gICAgfVxyXG4gICAgLmtpZHNBZ2VzQ29udGFpbmVyIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTQpO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMzApOyB9XHJcblxyXG4gIC5zZWxlY3QyLWNvbnRhaW5lcltkaXI9XCJydGxcIl0gLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XHJcbiAgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWluLWhlaWdodDogMzJweDtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgfVxyXG4gICAgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxyXG4gIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWFyY2gtLWlubGluZSB7XHJcbiAgICBmbG9hdDogbGVmdDsgfVxyXG4gICAgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLXNlYXJjaC0taW5saW5lIC5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTAwJTtcclxuICAgICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgICBwYWRkaW5nOiAwOyB9XHJcbiAgICAgIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWFyY2gtLWlubGluZSAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIHtcclxuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cclxuXHJcbi5zZWxlY3QyLWRyb3Bkb3duIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAtMTAwMDAwcHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgei1pbmRleDogY2FsYyh2YXIoLS16SW5kZXgtLWNvbnRlbnQpICsgMSk7XHJcbn1cclxuXHJcbi5zZWxlY3QyLXJlc3VsdHMge1xyXG4gIGRpc3BsYXk6IGJsb2NrOyB9XHJcblxyXG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25zIHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwOyB9XHJcblxyXG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24ge1xyXG4gIHBhZGRpbmc6IHJlbSg2KSByZW0oMjApO1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ncmV5TW91c2VDb2xvcik7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyB9XHJcbiAgXHJcblxyXG5cclxuICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25bYXJpYS1zZWxlY3RlZF0ge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XHJcblxyXG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb246bGFzdC1jaGlsZHtcclxuICBib3JkZXItYm90dG9tOjBweCBub25lIHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItZHJvcGRvd24ge1xyXG4gIGxlZnQ6IDA7IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiAuc2VsZWN0Mi1kcm9wZG93bi0tYWJvdmUge1xyXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcclxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsgfVxyXG5cclxuLmtpZHNBZ2VzQ29udGFpbmVyIC5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiAuc2VsZWN0Mi1kcm9wZG93bi0tYWJvdmUge1xyXG4gIHdpZHRoOiByZW0oNzApICFpbXBvcnRhbnQ7XHJcbiAgaGVpZ2h0OiByZW0oMTc1KTtcclxuICBtYXJnaW4tbGVmdDogMDtcclxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMDBweCkgYW5kIChtYXgtd2lkdGg6IHZhcigtLW1vYmlsZS1tYXhXaWR0aCkpe1xyXG4gICAgd2lkdGg6IHJlbSg2NSkgIWltcG9ydGFudDt9IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiAuc2VsZWN0Mi1kcm9wZG93bi0tYmVsb3cge1xyXG4gIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsgfVxyXG5cclxuLnNlbGVjdDItc2VhcmNoLS1kcm9wZG93biB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcGFkZGluZzogcmVtKDQpOyB9XHJcblxyXG4uc2VsZWN0Mi1zZWFyY2gtLWRyb3Bkb3duIC5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xyXG4gIHBhZGRpbmc6IDRweDtcclxuICB3aWR0aDogMTAwJTtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcbi5zZWxlY3QyLXNlYXJjaC0tZHJvcGRvd24gLnNlbGVjdDItc2VhcmNoX19maWVsZDo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XHJcbi5zZWxlY3QyLXNlYXJjaC0tZHJvcGRvd24uc2VsZWN0Mi1zZWFyY2gtLWhpZGUge1xyXG4gIGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi5zZWxlY3QyLWNsb3NlLW1hc2sge1xyXG4gIGJvcmRlcjogMDtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgbWluLWhlaWdodDogMTAwJTtcclxuICBtaW4td2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgei1pbmRleDogdmFyKC0tekluZGV4LS1jb250ZW50KTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTsgfVxyXG5cclxuLnNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUge1xyXG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xyXG4gIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDtcclxuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbjogLTFweCAhaW1wb3J0YW50O1xyXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XHJcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50OyB9XHJcblxyXG4ua2lkc0FnZXNDb250YWluZXIgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3Rpb257XHJcbiAgIG91dGxpbmU6IG5vbmU7IH1cclxuXHJcbiAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuICBib3JkZXItcmFkaXVzOiByZW0oNCk7IH1cclxuXHJcbi5raWRzQWdlc0NvbnRhaW5lciAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xyXG4gIHdpZHRoOiByZW0oNzApO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzAwcHgpIGFuZCAobWF4LXdpZHRoOiB2YXIoLS1tb2JpbGUtbWF4V2lkdGgpKXtcclxuICAgIHdpZHRoOiByZW0oNjUpO1xyXG4gIH0gfVxyXG5cclxuLmtpZHNBZ2VzQ29udGFpbmVyIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCB7XHJcbiAgbWFyZ2luLXJpZ2h0OiByZW0oMTApO1xyXG4gIG1hcmdpbi1ib3R0b206IHJlbSgxMCk7IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcclxuICBmb250LXNpemU6IHZhcigtLWZvbnRTaXplRGVmYXVsdCk7XHJcbiAgY29sb3I6IHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgbGluZS1oZWlnaHQ6IHJlbSg0MCk7IH1cclxuXHJcbi5raWRzQWdlc0NvbnRhaW5lciAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XHJcbiAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgJjpmb2N1c3tvdXRsaW5lOiBub25lO30gXHJcbn1cclxuICAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxyXG4gIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyIHtcclxuICAgIGNvbG9yOiAjOTk5OyB9XHJcbiAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xyXG4gICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB3aWR0aDogNDBweDsgfVxyXG4gICAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cgYntcclxuICAgICAgcG9zaXRpb246YWJzb2x1dGU7XHJcbiAgICAgIHRvcDpyZW0oOCk7XHJcbiAgICAgIGxlZnQ6NDAlO1xyXG4gICAgICB3aWR0aDoxNnB4O1xyXG4gICAgICBoZWlnaHQ6MTZweDtcclxuICAgIH1cclxuICAgIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IGI6YmVmb3JlIHtcclxuICAgICAgZm9udC1mYW1pbHk6IFwiaWNvbnNcIjtcclxuICAgICAgQGV4dGVuZCAuY3BlLUljb24tLWFycm93OmJlZm9yZTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6MDtcclxuICAgICAgbGVmdDowO1xyXG4gICAgICBmb250LXNpemU6IHJlbSg4KTtcclxuICAgIH1cclxuICAgIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdC5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IGI6YmVmb3Jle1xyXG4gICAgICBAZXh0ZW5kIC5jcGUtSWNvbi0tYXJyb3ctdG9wOmJlZm9yZTtcclxuICAgIH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdFtkaXI9XCJydGxcIl0gLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciB7XHJcbiAgZmxvYXQ6IGxlZnQ7IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdFtkaXI9XCJydGxcIl0gLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XHJcbiAgbGVmdDogMXB4O1xyXG4gIHJpZ2h0OiBhdXRvOyB9XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQuc2VsZWN0Mi1jb250YWluZXItLWRpc2FibGVkIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xyXG4gIGN1cnNvcjogZGVmYXVsdDsgfVxyXG4gIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdC5zZWxlY3QyLWNvbnRhaW5lci0tZGlzYWJsZWQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciB7XHJcbiAgICBkaXNwbGF5OiBub25lOyB9XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQuc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyBie1xyXG4gIHRvcDoyNCU7XHJcbn1cclxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0LnNlbGVjdDItY29udGFpbmVyLS1vcGVuIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cgYjpiZWZvcmUge1xyXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tZ3JleVN0b25lKSB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0LnNlbGVjdDItY29udGFpbmVyLS1vcGVuIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cgYjphZnRlciB7XHJcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50O1xyXG4gIHRvcDoycHg7XHJcbn1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAgdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgY3Vyc29yOiB0ZXh0OyB9XHJcbiAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDAgNXB4O1xyXG4gICAgd2lkdGg6IDEwMCU7IH1cclxuICAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyIHtcclxuICAgIGNvbG9yOiAjOTk5O1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgZmxvYXQ6IGxlZnQ7IH1cclxuICAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2NsZWFyIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XHJcbiAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUgLnNlbGVjdDItc2VsZWN0aW9uX19jaG9pY2Uge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgIHBhZGRpbmc6IDAgNXB4OyB9XHJcbiAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUgLnNlbGVjdDItc2VsZWN0aW9uX19jaG9pY2VfX3JlbW92ZSB7XHJcbiAgICBjb2xvcjogIzk5OTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAycHg7IH1cclxuICAgIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2hvaWNlX19yZW1vdmU6aG92ZXIge1xyXG4gICAgICBjb2xvcjogIzMzMzsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0W2Rpcj1cInJ0bFwiXSAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2hvaWNlLCAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHRbZGlyPVwicnRsXCJdIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUgLnNlbGVjdDItc2VsZWN0aW9uX19wbGFjZWhvbGRlciwgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0W2Rpcj1cInJ0bFwiXSAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIC5zZWxlY3QyLXNlYXJjaC0taW5saW5lIHtcclxuICBmbG9hdDogcmlnaHQ7IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdFtkaXI9XCJydGxcIl0gLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZSB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdFtkaXI9XCJydGxcIl0gLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZV9fcmVtb3ZlIHtcclxuICBtYXJnaW4tbGVmdDogMnB4O1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0LnNlbGVjdDItY29udGFpbmVyLS1mb2N1cyAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICBib3JkZXI6IHNvbGlkIGJsYWNrIDFweDtcclxuICBvdXRsaW5lOiAwOyB9XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQuc2VsZWN0Mi1jb250YWluZXItLWRpc2FibGVkIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XHJcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQuc2VsZWN0Mi1jb250YWluZXItLWRpc2FibGVkIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2hvaWNlX19yZW1vdmUge1xyXG4gIGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdC5zZWxlY3QyLWNvbnRhaW5lci0tb3Blbi5zZWxlY3QyLWNvbnRhaW5lci0tYWJvdmUgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdC5zZWxlY3QyLWNvbnRhaW5lci0tb3Blbi5zZWxlY3QyLWNvbnRhaW5lci0tYWJvdmUgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0LnNlbGVjdDItY29udGFpbmVyLS1vcGVuLnNlbGVjdDItY29udGFpbmVyLS1iZWxvdyAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSwgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0LnNlbGVjdDItY29udGFpbmVyLS1vcGVuLnNlbGVjdDItY29udGFpbmVyLS1iZWxvdyAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOyB9XHJcblxyXG4ua2lkc0FnZXNDb250YWluZXIgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0LnNlbGVjdDItY29udGFpbmVyLS1vcGVuLnNlbGVjdDItY29udGFpbmVyLS1iZWxvdyAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSwgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0LnNlbGVjdDItY29udGFpbmVyLS1vcGVuLnNlbGVjdDItY29udGFpbmVyLS1iZWxvdyAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiByZW0oNCk7IFxyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiByZW0oNCk7IH1cclxuICAgIFxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlYXJjaC0tZHJvcGRvd24gLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTsgfVxyXG5cclxuXHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VhcmNoLS1pbmxpbmUgLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIG91dGxpbmU6IDA7XHJcbiAgYm94LXNoYWRvdzogbm9uZTsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbltyb2xlPWdyb3VwXSB7XHJcbiAgcGFkZGluZzogMDsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvblthcmlhLWRpc2FibGVkPXRydWVdIHtcclxuICBjb2xvcjogIzk5OTsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvblthcmlhLXNlbGVjdGVkPXRydWVdIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyB9XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgcGFkZGluZy1sZWZ0OiAxZW07IH1cclxuICAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiAuc2VsZWN0Mi1yZXN1bHRzX19ncm91cCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cclxuICAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDJlbTsgfVxyXG4gICAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24gLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMmVtO1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDNlbTsgfVxyXG4gICAgICAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24gLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zZW07XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0ZW07IH1cclxuICAgICAgICAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24gLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24ge1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IC00ZW07XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVlbTsgfVxyXG4gICAgICAgICAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24gLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24gLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNWVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDZlbTsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0taGlnaGxpZ2h0ZWRbYXJpYS1zZWxlY3RlZF0ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZWVuKTtcclxuICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG4gIGNvbG9yOiB3aGl0ZTsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXJlc3VsdHNfX2dyb3VwIHtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcGFkZGluZzogNnB4OyB9XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgb3V0bGluZTogMDtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHdoaXRlIDUwJSwgI2VlZWVlZSAxMDAlKTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCB3aGl0ZSA1MCUsICNlZWVlZWUgMTAwJSk7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgd2hpdGUgNTAlLCAjZWVlZWVlIDEwMCUpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcclxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjRkZGRkZGRkYnLCBlbmRDb2xvcnN0cj0nI0ZGRUVFRUVFJywgR3JhZGllbnRUeXBlPTApOyB9XHJcbiAgLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlOmZvY3VzIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM1ODk3ZmI7IH1cclxuICAuc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XHJcbiAgICBjb2xvcjogIzQ0NDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyOHB4OyB9XHJcbiAgLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2xlYXIge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cclxuICAuc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19wbGFjZWhvbGRlciB7XHJcbiAgICBjb2xvcjogIzk5OTsgfVxyXG4gIC5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xyXG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcclxuICAgIGhlaWdodDogMjZweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMXB4O1xyXG4gICAgcmlnaHQ6IDFweDtcclxuICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZWVlZWVlIDUwJSwgI2NjY2NjYyAxMDAlKTtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNlZWVlZWUgNTAlLCAjY2NjY2NjIDEwMCUpO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2VlZWVlZSA1MCUsICNjY2NjY2MgMTAwJSk7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjRkZFRUVFRUUnLCBlbmRDb2xvcnN0cj0nI0ZGQ0NDQ0NDJywgR3JhZGllbnRUeXBlPTApOyB9XHJcbiAgICAuc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyBiIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAjODg4IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDVweCA0cHggMCA0cHg7XHJcbiAgICAgIGhlaWdodDogMDtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICBtYXJnaW4tbGVmdDogLTRweDtcclxuICAgICAgbWFyZ2luLXRvcDogLTJweDtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgd2lkdGg6IDA7IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpY1tkaXI9XCJydGxcIl0gLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19jbGVhciB7XHJcbiAgZmxvYXQ6IGxlZnQ7IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpY1tkaXI9XCJydGxcIl0gLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgYm9yZGVyLXJhZGl1czogMDtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xyXG4gIGxlZnQ6IDFweDtcclxuICByaWdodDogYXV0bzsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjNTg5N2ZiOyB9XHJcbiAgLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXI6IG5vbmU7IH1cclxuICAgIC5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYy5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IGIge1xyXG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM4ODggdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlci13aWR0aDogMCA0cHggNXB4IDRweDsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljLnNlbGVjdDItY29udGFpbmVyLS1vcGVuLnNlbGVjdDItY29udGFpbmVyLS1hYm92ZSAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSB7XHJcbiAgYm9yZGVyLXRvcDogbm9uZTtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgd2hpdGUgMCUsICNlZWVlZWUgNTAlKTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCB3aGl0ZSAwJSwgI2VlZWVlZSA1MCUpO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHdoaXRlIDAlLCAjZWVlZWVlIDUwJSk7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xyXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNGRkZGRkZGRicsIGVuZENvbG9yc3RyPScjRkZFRUVFRUUnLCBHcmFkaWVudFR5cGU9MCk7IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYy5zZWxlY3QyLWNvbnRhaW5lci0tb3Blbi5zZWxlY3QyLWNvbnRhaW5lci0tYmVsb3cgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xyXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcclxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNlZWVlZWUgNTAlLCB3aGl0ZSAxMDAlKTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjZWVlZWVlIDUwJSwgd2hpdGUgMTAwJSk7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2VlZWVlZSA1MCUsIHdoaXRlIDEwMCUpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcclxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjRkZFRUVFRUUnLCBlbmRDb2xvcnN0cj0nI0ZGRkZGRkZGJywgR3JhZGllbnRUeXBlPTApOyB9XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgY3Vyc29yOiB0ZXh0O1xyXG4gIG91dGxpbmU6IDA7IH1cclxuICAuc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZTpmb2N1cyB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNTg5N2ZiOyB9XHJcbiAgLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMCA1cHg7IH1cclxuICAuc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2NsZWFyIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7IH1cclxuICAuc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgICBwYWRkaW5nOiAwIDVweDsgfVxyXG4gIC5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2hvaWNlX19yZW1vdmUge1xyXG4gICAgY29sb3I6ICM4ODg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIG1hcmdpbi1yaWdodDogMnB4OyB9XHJcbiAgICAuc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZV9fcmVtb3ZlOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICM1NTU7IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpY1tkaXI9XCJydGxcIl0gLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZSB7XHJcbiAgZmxvYXQ6IHJpZ2h0OyB9XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWNbZGlyPVwicnRsXCJdIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUgLnNlbGVjdDItc2VsZWN0aW9uX19jaG9pY2Uge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWNbZGlyPVwicnRsXCJdIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUgLnNlbGVjdDItc2VsZWN0aW9uX19jaG9pY2VfX3JlbW92ZSB7XHJcbiAgbWFyZ2luLWxlZnQ6IDJweDtcclxuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYy5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjNTg5N2ZiOyB9XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMuc2VsZWN0Mi1jb250YWluZXItLW9wZW4uc2VsZWN0Mi1jb250YWluZXItLWFib3ZlIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xyXG4gIGJvcmRlci10b3A6IG5vbmU7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljLnNlbGVjdDItY29udGFpbmVyLS1vcGVuLnNlbGVjdDItY29udGFpbmVyLS1iZWxvdyAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcclxuICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XHJcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWFyY2gtLWRyb3Bkb3duIC5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgb3V0bGluZTogMDsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlYXJjaC0taW5saW5lIC5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xyXG4gIG91dGxpbmU6IDA7XHJcbiAgYm94LXNoYWRvdzogbm9uZTsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLWRyb3Bkb3duIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLWRyb3Bkb3duLS1hYm92ZSB7XHJcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLWRyb3Bkb3duLS1iZWxvdyB7XHJcbiAgYm9yZGVyLXRvcDogbm9uZTsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXJlc3VsdHMgPiAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25zIHtcclxuICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICBvdmVyZmxvdy15OiBhdXRvOyB9XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uW3JvbGU9Z3JvdXBdIHtcclxuICBwYWRkaW5nOiAwOyB9XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0ge1xyXG4gIGNvbG9yOiBncmV5OyB9XHJcblxyXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1oaWdobGlnaHRlZFthcmlhLXNlbGVjdGVkXSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ncmVlbik7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuICBjb2xvcjogd2hpdGU7IH1cclxuXHJcbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1yZXN1bHRzX19ncm91cCB7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBhZGRpbmc6IDZweDsgfVxyXG5cclxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIC5zZWxlY3QyLWRyb3Bkb3duIHtcclxuICBib3JkZXItY29sb3I6ICM1ODk3ZmI7IH1cclxuXHJcbi5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbnM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuICB3aWR0aDogcmVtKDYpO1xyXG59XHJcbiAgXHJcbi5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbnM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcclxuICB3aWR0aDogcmVtKDYpO1xyXG4gIGJvcmRlci1yYWRpdXM6IHJlbSg0KTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5TW91c2VDb2xvcik7XHJcbn1cclxuICBcclxuLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xyXG4gIHdpZHRoOiByZW0oNik7XHJcbiAgYm9yZGVyLXJhZGl1czogcmVtKDQpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXlNZWRpdW0pO1xyXG59IiwiQGltcG9ydCBcIi4uLy4uL3V0aWxzL2Nzcy9pY29ucy9pY29ucy5jc3NcIjtcblxuLmhlYWRlcntcblxuICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcbiAgICBwYWRkaW5nIDogMCAzLjc1JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICY6bm90KC5pc1ZuKSB7XG4gICAgICBwYWRkaW5nOiAwIDQuNjg3NXZ3O1xuICAgICAgYm94LXNoYWRvdzogcmVtKDIpIDAgcmVtKDkpIDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICB9XG4gIH1cbiAgJi1jb250ZW50e1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIGhlaWdodDpyZW0oOTYpO1xuXG4gICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xuICAgICAgei1pbmRleDogY2FsYyh2YXIoLS16SW5kZXgtLW5hdmlnYXRpb24pICsgMik7XG4gICAgfVxuXG4gICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIGhlaWdodDogcmVtKDY1KTtcbiAgICAgIC5oZWFkZXI6bm90KC5pc1ZuKSAmIHtcbiAgICAgICAgaGVpZ2h0OiByZW0oNTYpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtbG9nb0NvbnRhaW5lcntcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgfVxuXG4gICYtbG9nb3tcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICBsZWZ0IDogNTAlO1xuICAgIHdpZHRoIDogcmVtKDcwKTtcblxuICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcbiAgICAgIHdpZHRoOiByZW0oODIpO1xuICAgICAgbGVmdDogMDtcbiAgICAgIG1hcmdpbi10b3A6IHJlbSg0OCk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICAgIEBtZWRpYSgtLW1xLW1vYmlsZVRvVGFibGV0KXtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgfVxuICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xuICAgICB3aWR0aCA6IHJlbSgxMDApO1xuICAgIH1cbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKSB7XG4gICAgICAuaGVhZGVyOm5vdCguaXNWbikgJiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgbGVmdDogY2FsYyg0LjY4NzV2dyAqIDIgKyByZW0oMzApKTtcbiAgICAgICAgd2lkdGg6IHJlbSg1MSk7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIGhlaWdodDogcmVtKDQwKTtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IHJlbSgxKSBzb2xpZCB2YXIoLS1ncmV5TWVkaXVtKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNC42ODc1dncsIC01MCUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuaGVhZGVyLmlzU2NrOm5vdCguaXNWbikgJiB7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi1uYXZpZ2F0aW9ue1xuXG4gICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xuICAgICAgcGFkZGluZzogMCByZW0oMTMwKSAwIHJlbSgxMzApO1xuICAgIH1cblxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCl7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIGxpc3Qtc3R5bGU6bm9uZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6MDtcbiAgICAgIHJpZ2h0OjA7XG4gICAgICBib3R0b206MDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDAlKTtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246MHM7XG4gICAgICBwYWRkaW5nLXRvcDogcmVtKDY1KTtcbiAgICAgIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1uYXZpZ2F0aW9uKSArIDUpO1xuICAgICAgLmhlYWRlci1uYXZJdGVtOm5vdCg6bGFzdC1jaGlsZCl7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZSkge1xuICAgICAgLmhlYWRlcjpub3QoLmlzVm4pICYge1xuICAgICAgICB0b3A6IHJlbSg1Nik7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtLWNvbnRhaW5lciB7XG4gICAgbGlzdC1zdHlsZTpub25lO1xuICB9XG5cbiAgJi1uYXZJdGVte1xuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCl7XG4gICAgICBwYWRkaW5nIDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogcmVtKDE2KTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ncmV5TWVkaXVtXzIpO1xuXG4gICAgICBhe1xuICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICBwYWRkaW5nIDogcmVtKDIxKSByZW0oMjApO1xuICAgICAgICBmb250LXNpemUgOiByZW0oMjApO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLmNwZS1JY29ue1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICByaWdodDogNyU7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00NiUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmV7XG4gICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuKTtcbiAgICAgICAgICAgY29sb3I6dmFyKC0tbWFpbkJhY2tncm91bmRDb2xvcik7XG5cbiAgICAgICAgICAuY3BlLUljb24tLW1lbnVfcGx1c3tcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjphZnRlcntcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgtNCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5oZWFkZXItYXJyb3ctLWRpc3BsYXk6YWZ0ZXJ7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmhlYWRlci1uYXZJdGVtLS1vdGhlcntcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBhOmFmdGVyIHtcbiAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpIHtcbiAgICAgIC5oZWFkZXI6bm90KC5pc1ZuKSAmIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xuICAgICAgYXtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oNDgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgICAgYXtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oNDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgLnUtSGlkZGVuLWRlc2t0b3AuY3BlLUljb257XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICYuaGVhZGVyLW5hdkl0ZW0tLW90aGVyIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgICY6YWZ0ZXJ7XG4gICAgICAgIGNvbnRlbnQ6IFwi4oCiXCI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6IHZhcigtLWdyZXlNb3VzZUNvbG9yKTtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkOmFmdGVyLCAmOm50aC1sYXN0LWNoaWxkKDIpOmFmdGVye1xuICAgICAgICBjb250ZW50Om5vbmU7XG4gICAgICB9XG5cbiAgICAgIGF7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMCByZW0oOSk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIgLmhlYWRlci1zdWJOYXZ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlOWU5ZTk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogcmVtKDk2KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oMzM2KTtcbiAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgfVxuXG4gICAgICAmLmhlYWRlci1uYXZJdGVtLS1vZmZlcnM6aG92ZXIgLmhlYWRlci1zdWJOYXYsICYuaGVhZGVyLW5hdkl0ZW0tLWRpc2NvdmVyOmhvdmVyIC5oZWFkZXItc3ViTmF2e1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmYmZiO1xuICAgICAgfVxuXG4gICAgICBhLmhlYWRlci1hcnJvdy0tZGlzcGxheSBzcGFuOmhvdmVye1xuICAgICAgICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcbiAgICAgIH1cblxuICAgICAgJi0tY2xvc2VOYXYudS1IaWRkZW4tYWxsRGVza3RvcCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICYuaGVhZGVyLW5hdkl0ZW0tLXN0ZXAxe1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDk2KTtcbiAgICAgICAgaGVpZ2h0OiByZW0oOTYpO1xuXG4gICAgICAgICY6aG92ZXIgYS5oZWFkZXItbWFpbkxpbmt7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkIHZhcigtLWdyZWVuKTtcbiAgICAgICAgICBoZWlnaHQ6IHJlbSg5Nik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICAgIEBtZWRpYSgtLW1xLWRlc2t0b3Ape1xuICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYgPiBhe1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBhe1xuICAgICAgY29sb3I6IHZhcigtLWdyZWVuKTtcbiAgICAgIEBtZWRpYSgtLW1xLW1vYmlsZVRvVGFibGV0KSB7Zm9udC13ZWlnaHQ6IDUwMDt9XG4gICAgfVxuXG4gICAgJi0tc3RlcDEgYXtcbiAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xuICAgIH1cblxuICAgICYtLWxhc3RtaW51dGV7XG4gICAgICAmLmhlYWRlci1uYXZJdGVtLS1zdGVwMS5oZWFkZXItbmF2SXRlbSBhe1xuXG4gICAgICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcbiAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkIHZhcigtLXJlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5oZWFkZXItbWFpbkxpbmt7XG4gICAgICAgICAgY29sb3I6IHZhcigtLXJlZCk7XG5cbiAgICAgICAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg5Nik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNwZS1JY29uLS1sYXN0X21pbnV0ZXtcbiAgICAgICAgICBtYXJnaW46IDAgcmVtKDMpO1xuXG4gICAgICAgICAgQG1lZGlhKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTMlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGVhZGVyLWxpbmtzTGV2ZWwzIHtcbiAgICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcbiAgICAgICAgJi0tbm9Cb3JkZXJCb3R0b217XG4gICAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4wNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjI1cmVtIHNvbGlkIHZhcigtLWdyZXlNZWRpdW1fMik7XG4gICAgICAgICAgICBtYXJnaW46IDAuMzc1cmVtIGF1dG8gMC44MTI1cmVtO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsbHtcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tb3RoZXJ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIFxuICAgICAgQG1lZGlhKC0tbXEtZGVza3RvcCl7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oOTYpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xuICAgICAgICByaWdodDogLTEwMCU7XG4gICAgICAgIHRvcDpyZW0oMzYpO1xuICAgICAgICAmLmhlYWRlci1uYXZJdGVte2JvcmRlcjowO31cbiAgICAgIH1cblxuICAgICAgQG1lZGlhKC0tbXEtbW9iaWxlKXtcbiAgICAgICAgdG9wOnJlbSg4KTtcbiAgICAgICAgJi5oZWFkZXItbmF2SXRlbSB7XG4gICAgICAgICAgLmhlYWRlcjpub3QoLmlzVm4pICYge1xuICAgICAgICAgICAgYm9keTpub3QoLm5hdkRpc3BsYXllZCkgJiB7XG4gICAgICAgICAgICAgIHRvcDogcmVtKC01Nik7XG4gICAgICAgICAgICAgIGhlaWdodDogcmVtKDU2KTtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmhlYWRlci1uYXZCbG9ja3tcblxuICAgICAgICAmSW5mb3tcblxuICAgICAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCl7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmSXRlbXtcbiAgICAgICAgICAgIGNvbG9yOnZhcigtLWdyZXlTdG9uZSk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMyk7XG4gICAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xuXG4gICAgICAgICAgICAmLS1mYXEsXG4gICAgICAgICAgICAmLS1iZXNvaW5fZF9haWRlIHtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6NjAwO1xuICAgICAgICAgICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZVRvVGFibGV0KXtcbiAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tdGVse1xuXG4gICAgICAgICAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCl7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oNSkgcmVtKDE0KSByZW0oNSkgcmVtKDQ0KTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSg0NCk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCB2YXIoLS1ibHVlKSBzb2xpZDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMjcpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjApO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAuY3BlLUljb257XG4gICAgICAgICAgICAgICAgICBjb2xvcjp2YXIoLS1ibHVlKTtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDI2KTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgIGxlZnQ6IHJlbSgxMCk7XG4gICAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgICAgICAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6dmFyKC0tYmx1ZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3BhbntcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE2KTtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ibHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSkge1xuICAgICAgICAgICAgICAgIGJvZHk6bm90KC5uYXZEaXNwbGF5ZWQpIC5oZWFkZXI6bm90KC5pc1ZuKSAmIHtcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBAbWVkaWEoLS1tcS1tb2JpbGVUb1RhYmxldCl7XG4gICAgICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLS10ZWx7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYtLXByaWNle1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZPdGhlcntcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDEyKTtcblxuICAgICAgICAgIGk6YmVmb3Jle1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWdyZWVuKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAbWVkaWEoLS1tcS1kZXNrdG9wKXtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgICAgICAuYnV0dG9uLS13aGl0ZUdyZWVue1xuICAgICAgICAgICAgICB3aWR0aDogcmVtKDQ4KTtcbiAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oNDgpO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMjQpO1xuICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNDgpO1xuXG4gICAgICAgICAgICAgIGl7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDpyZW0oLTMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5idXR0b25Db250YWluZXJ7XG4gICAgICAgICAgICAgIG1hcmdpbjogMCByZW0oMikgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAbWVkaWEoLS1tcS1tb2JpbGVUb1RhYmxldCl7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgyMCk7XG5cbiAgICAgICAgICAgIC5idXR0b24tLXdoaXRlR3JlZW57XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgd2lkdGg6IHJlbSgyNCk7XG4gICAgICAgICAgICAgIGhlaWdodDogcmVtKDI0KTtcbiAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJ1dHRvbkNvbnRhaW5lcntcbiAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDUpO1xuICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgzNCk7XG4gICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSg1MCk7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAuY3BlLUljb257XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLW9mZmVyc0xpbmstLWNvbG9ye1xuICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCl7XG4gICAgICBjb2xvcjogdmFyKC0tZ3JlZW4pO1xuICAgICAgJjphZnRlcntcbiAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLXN1Yk5hdntcblxuICAgIGltZ3tcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgd2lkdGg6IHJlbSg5NjIpO1xuICAgIH1cbiAgICBAbWVkaWEoLS1tcS1tb2JpbGVUb1RhYmxldCl7XG4gICAgICAuaGVhZGVyLXNlY3Rpb257XG4gICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5TGlnaHRlckNvbG9yKTtcblxuICAgICAgICAmLnVpLXRhYnMtYWN0aXZlIGEuaGVhZGVyLWxpbmtzTGV2ZWwye1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5oZWFkZXItbGlua3NMZXZlbDJ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDUwKTtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xuXG4gICAgICAgIC5jcGUtSWNvbntcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQ2JSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnRvZ2dsZS1hY3RpdmV7XG4gICAgICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZ3JlZW4pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xuICAgICAgLmhlYWRlci1zZWN0aW9ue1xuICAgICAgICAmLnVpLXRhYnMtYWN0aXZlIGEuaGVhZGVyLWxpbmtzTGV2ZWwye1xuICAgICAgICAgIHBhZGRpbmc6IHJlbSgyMCkgcmVtKDE1KSByZW0oNCkgcmVtKDMwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmhlYWRlci1saW5rc0xldmVsMntcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMzApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZOYXYtdG9nZ2xle1xuICAgICYuY3BlLUljb24ge1xuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZVRvVGFibGV0KXtcbiAgICAgICY6YmVmb3Jle1xuICAgICAgICBmb250LXNpemU6IHJlbSgzMCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbik7XG5cbiAgICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XG4gICAgICAgICAgZm9udC1zaXplOiByZW0oMjUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuY3BlLUljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQ2JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xuICAgICAgJi5jcGUtSWNvbi0tbWVudWJ1cmdlcntcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZSkge1xuICAgICAgLmhlYWRlcjpub3QoLmlzVm4pICYge1xuICAgICAgICAmLmNwZS1JY29uIHtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHdpZHRoOiByZW0oMzApO1xuICAgICAgICAgIGhlaWdodDogcmVtKDI0KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgdG9wOiByZW0oMjgpO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMik7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSg0LjUpO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IC4yNXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpLFxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgICB0b3A6IHJlbSgxMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZCg0KSB7XG4gICAgICAgICAgICAgIHRvcDogcmVtKDIyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLnRvZ2dsZS1hY3RpdmUge1xuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgICAgICB0b3A6IHJlbSgxMSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgICAgICAgICAgIHRvcDogcmVtKDExKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLWxpbmtCb3JkZXJ7XG5cbiAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oNSk7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQ6YmVmb3Jle1xuICAgICAgICBib3JkZXItd2lkdGg6MDtcbiAgICAgIH1cblxuICAgICAgYXtcbiAgICAgICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XG4gICAgICB9XG5cbiAgICAgIGE6aG92ZXJ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCl7XG4gICAgICAuaGVhZGVyLWxpbmtzTGV2ZWwze1xuICAgICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgICAgICBjb2xvcjp2YXIoLS1ncmV5U3RvbmUpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSg5MCk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcbiAgICAgIC5oZWFkZXItbGlua3NMZXZlbDN7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgcGFkZGluZzogcmVtKDE1KSByZW0oMTgpIHJlbSgxNCkgcmVtKDQ1KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtc2VjdGlvbntcblxuICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcblxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcGFkZGluZzogcmVtKDkwKSAwIHJlbSg1MCkgMDtcblxuICAgICAgbGkgYXtcbiAgICAgICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWdyZWVuKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhIC5oZWFkZXItbGlua3NsZXZlbDJEaXNjb3ZlcntcbiAgICAgICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XG4gICAgICB9XG5cbiAgICAgIGE6aG92ZXIgLmhlYWRlci1saW5rc2xldmVsMkRpc2NvdmVye1xuICAgICAgICBjb2xvciA6IHZhcigtLWdyZWVuKTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCl7XG4gICAgICAmOmZpcnN0LWNoaWxke1xuICAgICAgICBib3JkZXItdG9wOiByZW0oMSkgc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTtcbiAgICAgICAgYXtcbiAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNwZS1JY29uLS1hcnJvd19jdGF7XG5cbiAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBmb250LXNpemU6IGluaXRpYWw7XG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtIHJlbSg4KSk7XG4gICAgICBib3R0b206IHJlbSgyMCk7XG4gICAgfVxuICB9XG5cbiAgJi1saW5re1xuXG4gICAgJi0tYm9yZGVyQm90dG9te1xuXG4gICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xuICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmbGV2ZWwye1xuXG4gICAgICAmLS1ib3JkZXJUb3B7XG5cbiAgICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZVRvVGFibGV0KXtcbiAgICAgICAgICBib3JkZXItdG9wOiByZW0oMSkgc29saWQgdmFyKC0tbWFpbkJhY2tncm91bmRDb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuXG4gICAgfVxuXG4gICAgJlNlY3Rpb257XG4gICAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgxNik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjFMaW5lLS1wYWRkaW5nQm90dG9te1xuICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg5MCk7XG5cbiAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCl7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi1saW5rc0xldmVsMntcbiAgICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xuICAgICAgLmhlYWRlci1saW5rc2xldmVsMkRpc2NvdmVye1xuICAgICAgICBmb250LXNpemU6IHJlbSgxOSk7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgxNSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNSk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYtb2ZmZXJze1xuXG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZVRvVGFibGV0KXtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAuaGVhZGVyLXN1Yk5hdntcbiAgICAgICAgYXtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tbWFpbkJhY2tncm91bmRDb2xvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgLmhlYWRlci1saW5rc0xldmVsMntcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleUxpZ2h0ZXJDb2xvcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgICZCYWNrZ3JvdW5kLS1wYWRkaW5ne1xuICAgICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xuICAgICAgICBwYWRkaW5nOnJlbSg2MCkgMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmTGlua3tcblxuICAgICAgJkxpbmV7XG4gICAgICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYtLWNlbnRlcntcbiAgICAgICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgJi1pY29uVGV4dC0tY2VudGVye1xuICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAmLW5hdlRvb2x0aXB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXlMaWdodGVyQ29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdyZXlNb3VzZUNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiByZW0oNik7XG4gICAgcGFkZGluZzogcmVtKDEwKTtcbiAgICBmb250LXNpemU6IHJlbSgxMCk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXNlY29uZGFyeUZvbnQpO1xuICAgIGNvbG9yOiB2YXIoLS1ncmV5TWVkaXVtXzIpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oMTIpO1xuICAgIHotaW5kZXg6IHZhcigtLXpJbmRleC0tcG9waW4pO1xuICB9XG4gICZOYXYtbW9iaWxlLXJpZ2h0LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG5cbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKSB7XG4gICAgICBib2R5Lm5hdkRpc3BsYXllZCAuaGVhZGVyOm5vdCguaXNWbikgJiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhlYWRlci1uYXZCbG9ja090aGVyTW9iaWxlIHtcbiAgICAgICYgPiBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDYuMjV2dztcbiAgICAgIH1cbiAgICAgIC5jcGUtSWNvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbik7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIyKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5oZWFkZXItbmF2QmxvY2tPdGhlck1vYmlsZS0tbXlDUCB7XG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5oZWFkZXJOYXYtY29udGFpbmVyLm9wZW5lZCAuaGVhZGVyLW5hdmlnYXRpb257XG4gIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCl7XG4gICAgZGlzcGxheTpibG9jaztcbiAgfVxufVxuXG4uaGVhZGVyLW5hdmlnYXRpb257XG4gIC5oZWFkZXItbmF2SXRlbS0tb2ZmZXJze1xuICAgIC5oZWFkZXItc3ViTmF2e1xuICAgICAgLmhlYWRlci1vZmZlcnNMaW5rLS1jb2xvcntcbiAgICAgICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xuXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tZ3JlZW4pO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2Y0ZjVmNTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuICAuaGVhZGVyLW5hdkl0ZW0tLW9mZmVycyB1bCBsaSB1bCBsaS5yLUdyaWQtY2VsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLmhlYWRlci1uYXZJdGVtLS1vZmZlcnMgdWwgbGkgdWwgbGkuci1HcmlkLWNlbGw6YWZ0ZXJ7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICByaWdodDowO1xuICAgIHRvcDo0MnB4O1xuICAgIHdpZHRoOiByZW0oMSk7XG4gICAgaGVpZ2h0OiByZW0oODUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkMmQzZDM7XG4gIH1cblxuICAuaGVhZGVyLW5hdkl0ZW0tLW9mZmVycyB1bCBsaSB1bCBsaS5yLUdyaWQtY2VsbDpudGgtY2hpbGQoNCl7XG4gICAgJjphZnRlcntcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGJvcmRlci1jb2xvcjogcmVkO1xuICAgIH1cbiAgfVxuICBcbiAgLmhlYWRlci1uYXZJdGVtLS1vZmZlcnMgdWwgbGkgdWwgLmhlYWRlci1saW5rbGV2ZWwyLS1ib3JkZXJUb3AgLmhlYWRlci1saW5rc0xldmVsMntcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIFxuICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcbiAgICAgIGhlaWdodDogcmVtKDE2Nyk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IHJlbSgzMCkgMCByZW0oMTApIDA7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci1uYXZJdGVtLS1kaXNjb3ZlciB1bC51aS10YWJzLW5hdntcbiAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XG4gICAgICBwYWRkaW5nOiByZW0oNDApIDA7XG4gICAgICBoZWlnaHQ6IHJlbSgzMzYpO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItbmF2SXRlbS0tZGlzY292ZXIgdWwudWktdGFicy1uYXYgbGkuaGVhZGVyLXNlY3Rpb257XG4gICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xuICAgICAgaGVpZ2h0OiByZW0oMjU2KTtcbiAgICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICNkMmQzZDM7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItbmF2SXRlbS0tZGlzY292ZXIgdWwudWktdGFicy1uYXYgbGkuaGVhZGVyLXNlY3Rpb24gYS5oZWFkZXItbGlua3NMZXZlbDJ7XG4gICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xuICAgICAgbWFyZ2luLXRvcCA6IHJlbSgtMTApO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItbmF2SXRlbS0tZGlzY292ZXIgdWwudWktdGFicy1uYXYgbGkuaGVhZGVyLXNlY3Rpb24gYS5oZWFkZXItbGlua3NMZXZlbDN7XG4gICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xuICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOCk7XG4gICAgfVxuICB9XG5cblxuLyoqIEhlYWRlciBuYXYgRE9NQUlOICoqL1xuLmhlYWRlckRvbWFpbnMtVGFicy5kb3R0ZWRCYWNrZ3JvdW5ke1xuICBAbWVkaWEgKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xuICAgIGJhY2tncm91bmQ6d2hpdGU7XG4gIH1cbn1cblxuQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xuXG4gIC5oZWFkZXJEb21haW5zLVRhYnN7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSg1MCk7XG4gICAgd2lkdGg6IHJlbSgyODUpO1xuICAgIG1hcmdpbi10b3A6cmVtKDI0KTtcbiAgfVxuXG4gIC51aS1zdGF0ZS1hY3RpdmUgYS5oZWFkZXJEb21haW4tQ291bnRyeU5hbWV7XG4gICAgY29sb3I6dmFyKC0tZ3JlZW4pO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1haW5CYWNrZ3JvdW5kQ29sb3IpO1xuICB9XG5cbiAgbGkuaGVhZGVyRG9tYWluLUNvdW50cnl7XG4gICAgZGlzcGxheTpibG9jaztcbiAgICBmb250LXNpemU6IHZhcigtLW1haW5Gb250U2l6ZSk7XG5cbiAgICBhe1xuICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwIDAgMCByZW0oMjQpO1xuICAgICAgY29sb3I6dmFyKC0tZ3JleVN0b25lKTtcbiAgICAgIGhlaWdodDpyZW0oNDQpO1xuICAgICAgbGluZS1oZWlnaHQ6IHJlbSg0NCk7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgbWFyZ2luOiAwIDAgMCByZW0oMjgpO1xuICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDQ0KSAwIDAgcmVtKDQ0KTtcbiAgICAgIHotaW5kZXg6IHZhcigtLXpJbmRleC0tbmF2aWdhdGlvbik7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgIC51aS10YWJzLWFjdGl2ZXtcbiAgICAgICAgY29sb3I6dmFyKC0tZ3JlZW4pO1xuICAgICAgfVxuXG4gICAgICAuY3BlLUljb257XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6cmVtKDIwKTtcbiAgICAgICAgdG9wOnJlbSgyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWd7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogcmVtKDMzNik7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLmhlYWRlci1zZWN0aW9ue1xuICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHJlbSgxKSBzb2xpZCB2YXIoLS1ncmV5TW91c2VDb2xvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhlYWRlckRvbWFpbntcblxuICAgICAgJi1jb250ZW50e1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgbGVmdDpyZW0oMjg1KTtcbiAgICAgICAgdG9wOjA7XG4gICAgICAgIHdpZHRoOnJlbSg2NzcpO1xuICAgICAgICBoZWlnaHQ6IHJlbSgzMzYpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmYmZiO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAmLW1hcHtcbiAgICAgICAgd2lkdGg6MTAwJTtcblxuICAgICAgICBwaWN0dXJle1xuICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi1saXN0Q29udGFpbmVye1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsZWZ0OiAwJTtcbiAgICAgICAgdG9wOjA7XG4gICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICBwYWRkaW5nOjIlIDAgMCA3JTtcblxuICAgICAgICAuaGVhZGVyRG9tYWluLWNhcGl0YWxJbmZvXG4gICAgICAgIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG5cbiAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgIGNvbnRlbnQ6XCLigKJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuY291bnRyeS1GUiAuaGVhZGVyRG9tYWluLWNhcGl0YWxJbmZve1xuICAgICAgICAgIGxlZnQ6IDcwJTtcbiAgICAgICAgICB0b3A6IDM4JTtcblxuICAgICAgICAgICY6YmVmb3Jle1xuICAgICAgICAgICAgd2lkdGg6cmVtKDM0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5jb3VudHJ5LUJFIC5oZWFkZXJEb21haW4tY2FwaXRhbEluZm97XG4gICAgICAgICAgbGVmdDogNjMlO1xuICAgICAgICAgIHRvcDogMzYlO1xuXG4gICAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgICB3aWR0aDpyZW0oNjIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmNvdW50cnktTkwgLmhlYWRlckRvbWFpbi1jYXBpdGFsSW5mb3tcbiAgICAgICAgICBsZWZ0OiA1NyU7XG4gICAgICAgICAgdG9wOiA0NCU7XG5cbiAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgIHdpZHRoOnJlbSg3Nyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuY291bnRyeS1ERSAuaGVhZGVyRG9tYWluLWNhcGl0YWxJbmZve1xuICAgICAgICAgIGxlZnQ6IDgwJTtcbiAgICAgICAgICB0b3A6IDMxJTtcblxuICAgICAgICAgICY6YmVmb3Jle1xuICAgICAgICAgICAgd2lkdGg6cmVtKDM5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi1saXN0e1xuICAgICAgICBkaXNwbGF5OnRhYmxlLWNlbGw7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG5cbiAgICAgICYtcGlue1xuICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IHJlbSgyNCk7XG4gICAgICAgIGhlaWdodDogcmVtKDMwKTtcbiAgICAgICAgYmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvY29tbW9uX2ljb3MucG5nKSByZW0oLTYyKSByZW0oLTQwKSBuby1yZXBlYXQ7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oLTQzKTtcbiAgICAgIH1cblxuICAgICAgJi1wcm94aW1pdGllc3tcbiAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6cmVtKDE1KTtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWl0YWxpY0ZvbnQpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLW1haW5Gb250U2l6ZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbik7XG5cbiAgICAgICAgJiAuaGVhZGVyRG9tYWluLVByb3hpbWl0eURpc3RhbmNle1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiBjYWxjKHZhcigtLXpJbmRleC0tbmF2aWdhdGlvbikgKyAxKTtcbiAgICAgICAgICBtaW4td2lkdGg6IHJlbSgyMDApO1xuXG4gICAgICAgICAgJi5oZWFkZXJEb21haW4tUHJveGltaXRpZXMtLXVwcGVye1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYm90dG9tIDogcmVtKDYpO1xuICAgICAgICAgICAgbGVmdCA6IHJlbSgtMTAzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLmhlYWRlckRvbWFpbi1Qcm94aW1pdGllcy0tbG93ZXJ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB0b3AgOiByZW0oNik7XG4gICAgICAgICAgICBsZWZ0IDogcmVtKC0xMDMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuaGVhZGVyRG9tYWluLVByb3hpbWl0aWVzLS1taWRkbGV7XG4gICAgICAgICAgICBtYXJnaW4tdG9wIDogLTFlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodCA6IDA7XG5cbiAgICAgICAgICAgICYuaGVhZGVyRG9tYWluLVByb3hpbWl0aWVzLS1yaWdodHtcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjpsZWZ0O1xuICAgICAgICAgICAgICBsZWZ0IDogcmVtKDEyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5oZWFkZXJEb21haW4tUHJveGltaXRpZXMtLWxlZnR7XG4gICAgICAgICAgICAgIHRleHQtYWxpZ246cmlnaHQ7XG4gICAgICAgICAgICAgIHJpZ2h0IDogcmVtKDEyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVye1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgICAgd2lkdGg6IHJlbSg2KTtcbiAgICAgICAgICBoZWlnaHQ6IHJlbSg2KTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvY29tbW9uX2ljb3MucG5nKSByZW0oLTExKSByZW0oLTg5KSBuby1yZXBlYXQ7XG4gICAgICAgICAgbGVmdDowJTtcbiAgICAgICAgICB0b3AgOiAwO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oMyk7XG4gICAgICAgICAgbWFyZ2luLXRvcDogcmVtKC0zKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLWl0ZW17XG4gICAgICAgIGxpbmUtaGVpZ2h0OnJlbSgyNik7XG4gICAgICAgIG1hcmdpbjowO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBcbiAgICAgICAgJi5oZWFkZXItbGlua0JvcmRlcntcbiAgICAgICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHJlbSgxKSBzb2xpZCB2YXIoLS1ncmV5TW91c2VDb2xvcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XG4gICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5oZWFkZXItbGlua0JvcmRlcjpiZWZvcmV7XG4gICAgICAgICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xuICAgICAgICAgICAgZm9udC1zaXplOjA7XG4gICAgICAgICAgICBtYXJnaW46IHJlbSg2KSBhdXRvO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGF7XG4gICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICBwb3NpdGlvbjpzdGF0aWM7XG4gICAgICAgICAgaGVpZ2h0OiByZW0oMzIpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMzIpO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQgYXtmb250LXdlaWdodDogYm9sZDt9XG5cbiAgICAgICAgJjpob3ZlciAuaGVhZGVyRG9tYWluLXBpbntcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByZW0oLTg4KSByZW0oLTQwKTtcbiAgICAgICAgICB6LWluZGV4OiBjYWxjKHZhcigtLXpJbmRleC0tbmF2aWdhdGlvbikgKyAzKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLXJlZ2lvbiB7XG4gICAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZGVmYXVsdEZvbnQpO1xuICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oOCk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWdyZXlNZWRpdW1fMik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmhlYWRlci1zZWN0aW9ue1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cblxuLmhlYWRlci1saW5rU2VjdGlvbntcbiAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgICB3aWR0aDogaW5oZXJpdDtcbiAgfVxufVxuLyoqKiBOQVYgKioqL1xuXG4uaGVhZGVyRG9tYWlue1xuICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xuICAgIC5oZWFkZXItc3ViTmF2e1xuICAgICAgLmhlYWRlckRvbWFpbnMtVGFicyBsaTpsYXN0LWNoaWxkIGF7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuO1xuICAgICAgICBjb2xvcjp2YXIoLS1tYWluQmFja2dyb3VuZENvbG9yKTtcbiAgICAgICAgJjphZnRlcntcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5oZWFkZXItc2VjdGlvbntcbiAgQG1lZGlhICgtLW1xLW1vYmlsZVRvVGFibGV0KXtcbiAgICAuaGVhZGVyLWxpbmtTZWN0aW9ue1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLnN1Ym5hdi0tZGlzcGxheXtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xuICAudWktc3RhdGUtYWN0aXZlIHtcbiAgICAuY3BlLUljb24tLW1lbnVfcGx1cyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICAudWktc3RhdGUtYWN0aXZlIC5oZWFkZXItbGlua1NlY3Rpb257XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIC5oZWFkZXItbmF2SXRlbXtcbiAgICB1bHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5oZWFkZXItc3ViTmF2LmFjdGl2ZSwgLmhlYWRlci1zdWJOYXYuYWN0aXZlIHVsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5kaXNjb3Zlci0tZGlzcGxheXtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgLmhlYWRlckRvbWFpbnMtVGFicyxcbiAgICAgIC5oZWFkZXItbGluazFMaW5lLS1wYWRkaW5nQm90dG9tIHVsXG4gICAgICB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItbmF2SXRlbS0tc2Vjb25kYXJ5TmF2e1xuICAgIGF7XG4gICAgICBjb2xvcjp2YXIoLS1ncmV5U3RvbmUpO1xuICAgIH1cbiAgfVxuXG4gIGJvZHk6bm90KC5uYXZEaXNwbGF5ZWQpe1xuXG4gICAgLmhlYWRlci1uYXZJdGVtLS1vdGhlcntcblxuICAgICAgLmhlYWRlci1uYXZCbG9ja090aGVye1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAgICAgJi0tbXlDUHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICBhLmJ1dHRvbkNvbnRhaW5lcntcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg0NCk7XG5cbiAgICAgICAgICAgIC5idXR0b257XG4gICAgICAgICAgICAgIHdpZHRoOiByZW0oNDQpO1xuICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSg0NCk7XG4gICAgICAgICAgICAgIGJvcmRlcjpub25lO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDQ0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNwZS1JY29ue1xuICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgzMik7XG4gICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4udS1IaWRkZW4tZGVza3RvcHtcbiAgICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXItbmF2QmxvY2tJbmZvSXRlbS0tdGVse1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgaGVpZ2h0OiByZW0oNDQpO1xuICAgICAgICAgIHdpZHRoOiByZW0oNDQpO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgIHNwYW57XG4gICAgICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmNwZS1JY29ue1xuICAgICAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjgpO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgICAgIGNvbG9yOnZhcigtLWdyZWVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1GQVF7XG4gICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpIHtcbiAgICAgIC5oZWFkZXI6bm90KC5pc1ZuKSB7XG4gICAgICAgIC5oZWFkZXItbmF2SXRlbS0tb3RoZXJ7XG4gICAgICAgICAgLmhlYWRlci1uYXZCbG9ja090aGVye1xuXG4gICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDYuMjV2dztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmhlYWRlci1uYXZCbG9ja0luZm9JdGVtLS10ZWx7XG4gICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgIC5jcGUtSWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgQGV4dGVuZCAuY3BlLUljb24tLXBob25lOmJlZm9yZTtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDIyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYtLW15Q1Age1xuICAgICAgICAgICAgICBhLmJ1dHRvbkNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jcGUtSWNvbiB7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBleHRlbmQgLmNwZS1JY29uLS1wZW9wbGU6YmVmb3JlO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgyMik7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYm9keSB7XG4gICAgJjpub3QoLmlzVm4pIHtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSkge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgdG9wOiByZW0oNTYpO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmV5RGFya1JvbGxPdmVyKTtcbiAgICAgICAgICB6LWluZGV4OiBjYWxjKHZhcigtLXpJbmRleC0tbmF2aWdhdGlvbikgKyAyKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGJvZHkubmF2RGlzcGxheWVke1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmOmJlZm9yZXtcbiAgICAgIGNvbnRlbnQ6XCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6MTAwJTtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIGxlZnQ6MDtcbiAgICAgIHJpZ2h0OjA7XG4gICAgICB0b3A6MDtcbiAgICAgIGJvdHRvbTowO1xuICAgICAgYmFja2dyb3VuZDp2YXIoLS1ncmV5RGFya1JvbGxPdmVyKTtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1uYXZpZ2F0aW9uKSArIDIpO1xuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgfVxuXG4gICAgJjpub3QoLmlzVm4pIHtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSkge1xuICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5oZWFkZXItbmF2aWdhdGlvbntcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgLyogdmlzaWJpbGl0eTogdmlzaWJsZTsqL1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUlKTtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgaGVpZ2h0OiAxMDB2aDtcblxuICAgICAgLmhlYWRlci1uYXZJdGVtOm5vdCg6bGFzdC1jaGlsZCl7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICB9XG4gICAgICAubUNTQl9jb250YWluZXJ7XG4gICAgICAgIG1hcmdpbi1yaWdodDpyZW0oOCkhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhcntcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ncmV5TWVkaXVtXzIpO1xuICAgICAgfVxuICAgICAgJi0tY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDpyZW0oMSkgc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKSB7XG4gICAgICAuaGVhZGVyOm5vdCguaXNWbikge1xuICAgICAgICAuaGVhZGVyLW5hdmlnYXRpb257XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gcmVtKDU2KSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgIG1heC13aWR0aDogOTUlO1xuICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICAgICYtLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuaGVhZGVyTmF2LWNvbnRhaW5lcntcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLW1haW5CYWNrZ3JvdW5kQ29sb3IpO1xuICAgIH1cbiAgICAuaGVhZGVyTmF2LXRvZ2dsZS50b2dnbGUtYWN0aXZle1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOnJlbSgxOCk7XG4gICAgICBsZWZ0OnJlbSgxNik7XG4gICAgICB6LWluZGV4OiBjYWxjKHZhcigtLXpJbmRleC0tbmF2aWdhdGlvbikgKyA5OSk7XG4gICAgICBtYXJnaW46IHJlbSg4KTtcbiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDBzO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuXG4gICAgICAmOmJlZm9yZXtcbiAgICAgICAgQGV4dGVuZCAuY3BlLUljb24tLWNsb3NlOmJlZm9yZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMzIpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xuICAgICAgICB0b3A6IHJlbSgxNik7XG4gICAgICAgIG1hcmdpbjogMCByZW0oOCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhlYWRlci1uYXZCbG9ja090aGVye1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICYtLW15Q1B7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhlYWRlci1uYXZJdGVtLS1vdGhlcntcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICByaWdodDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogcmVtKDMyKTtcblxuICAgICAgLmhlYWRlci1uYXZCbG9ja3tcblxuICAgICAgICAmSW5mb3tcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgICAgIC5oZWFkZXItbmF2QmxvY2tJbmZvSXRlbXtcblxuICAgICAgICAgICAgJi0tdGVse1xuICAgICAgICAgICAgICB3aWR0aDogcmVtKDE5Mik7XG4gICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgIG1hcmdpbjogcmVtKDMyKSBhdXRvO1xuICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ibHVlKTtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDQ4KTtcbiAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgY29sb3I6dmFyKC0tYmx1ZSk7XG5cbiAgICAgICAgICAgICAgc3BhbntcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDQ4KTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC5jcGUtSWNvbntcbiAgICAgICAgICAgICAgICBsZWZ0OiByZW0oMTIpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDMyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1mYXF7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICBwYWRkaW5nOjA7XG4gICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbik7XG5cbiAgICAgICAgICAgICAgLmNwZS1JY29ue1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDM2KTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgICAgIHdpZHRoOnJlbSgzNik7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMzYpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgxMCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc3BhbntcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuQG1lZGlhKC0tbXEtdGFibGV0KXtcbiAgYm9keS5uYXZEaXNwbGF5ZWR7XG4gICAgLmhlYWRlci1uYXZJdGVtIHtcbiAgICAgICYtLW90aGVyIC5oZWFkZXItbmF2QmxvY2tJbmZve1xuICAgICAgICAuaGVhZGVyLW5hdkJsb2NrSW5mb0l0ZW0tLWZhcXtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgyMCk7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgxMCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5oZWFkZXItc3ViTmF2e1xuICAgICAgICAuaGVhZGVyLWxpbmtzTGV2ZWwye1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDYwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuQG1lZGlhKC0tbXEtbW9iaWxlKXtcbiAgYm9keS5uYXZEaXNwbGF5ZWR7XG4gICAgIC5oZWFkZXJOYXYtdG9nZ2xlLnRvZ2dsZS1hY3RpdmV7XG4gICAgICB0b3A6Mi41JTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMi41JSk7XG4gICAgIH1cbiAgfVxufVxuQG1lZGlhKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xuICBib2R5Lm5hdkRpc3BsYXllZHtcbiAgICAuaGVhZGVyLWxpbmtzTGV2ZWwyIHNwYW57XG4gICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSgtLW1xLWRlc2t0b3Ape1xuICAuY3AtT3ZlcmxheXtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiByZW0oOTYpO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsMzQsMzQsLjY1KTtcbiAgICB6LWluZGV4OiA5MDA7XG4gIH1cbn0iLCIvKlxuSWNvbiBjbGFzc2VzIGNhbiBiZSB1c2VkIGVudGlyZWx5IHN0YW5kYWxvbmUuIFRoZXkgYXJlIG5hbWVkIGFmdGVyIHRoZWlyIG9yaWdpbmFsIGZpbGUgbmFtZXMuXG5cbkV4YW1wbGUgdXNhZ2UgaW4gSFRNTDpcblxuYGRpc3BsYXk6IGJsb2NrYCBzcHJpdGU6XG48ZGl2IGNsYXNzPVwiaWNvbi1ob21lXCI+PC9kaXY+XG5cblRvIGNoYW5nZSBgZGlzcGxheWAgKGUuZy4gYGRpc3BsYXk6IGlubGluZS1ibG9jaztgKSwgd2Ugc3VnZ2VzdCB1c2luZyBhIGNvbW1vbiBDU1MgY2xhc3M6XG5cbi8vIENTU1xuLmljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8vIEhUTUxcbjxpIGNsYXNzPVwiaWNvbiBpY29uLWhvbWVcIj48L2k+XG4qL1xuLmljb24tYWNjb21vZGF0aW9ucyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3ByaXRlcy9zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IDBweDtcbiAgd2lkdGg6IDEyM3B4O1xuICBoZWlnaHQ6IDEyM3B4O1xufVxuLmljb24tYWN0aXZpdGllcy1naWZ0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDEwcHggLTg1cHg7XG4gIHdpZHRoOiA5NHB4O1xuICBoZWlnaHQ6IDc1cHg7XG59XG4uaWNvbi1hY3Rpdml0aWVzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTMzcHggLTE0NXB4O1xuICB3aWR0aDogMTIzcHg7XG4gIGhlaWdodDogMTIzcHg7XG59XG4uaWNvbi1hcnJvdy1kb3duIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDgwcHggLTM2M3B4O1xuICB3aWR0aDogMTFweDtcbiAgaGVpZ2h0OiA0NXB4O1xufVxuLmljb24tYmxvZy1oZWFydC1mdWxsIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTE0cHggLTIyMXB4O1xuICB3aWR0aDogMzhweDtcbiAgaGVpZ2h0OiAzNHB4O1xufVxuLmljb24tYmxvZy1oZWFydCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3ByaXRlcy9zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUxNHB4IC0xNzZweDtcbiAgd2lkdGg6IDM3cHg7XG4gIGhlaWdodDogMzVweDtcbn1cbi5pY29uLWRvbWVzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE0NXB4O1xuICB3aWR0aDogMTIzcHg7XG4gIGhlaWdodDogMTIzcHg7XG59XG4uaWNvbi1lYXJseS1ib29raW5nLWRpc2NvdW50IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTI3OHB4O1xuICB3aWR0aDogOTRweDtcbiAgaGVpZ2h0OiA3NXB4O1xufVxuLmljb24tZmFjZWJvb2tCbGFjayB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3ByaXRlcy9zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQzcHggLTQ3NXB4O1xuICB3aWR0aDogMzNweDtcbiAgaGVpZ2h0OiAzM3B4O1xufVxuLmljb24tZmFtaWx5IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA0cHggLTI3OHB4O1xuICB3aWR0aDogOTRweDtcbiAgaGVpZ2h0OiA3NXB4O1xufVxuLmljb24tZmFxLWJvb2tpbmcge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMzYzcHg7XG4gIHdpZHRoOiA3MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG59XG4uaWNvbi1mYXEtaW5mbyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3ByaXRlcy9zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQwMHB4IC0zNjNweDtcbiAgd2lkdGg6IDcwcHg7XG4gIGhlaWdodDogNTBweDtcbn1cbi5pY29uLWZhcS1pbnN1cmFuY2VzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzIwcHggLTM2M3B4O1xuICB3aWR0aDogNzBweDtcbiAgaGVpZ2h0OiA1MHB4O1xufVxuLmljb24tZmFxLW1hbmFnaW5nIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMzYzcHg7XG4gIHdpZHRoOiA3MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG59XG4uaWNvbi1mYXEtbXlzdGF5IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTM2M3B4O1xuICB3aWR0aDogNzBweDtcbiAgaGVpZ2h0OiA1MHB4O1xufVxuLmljb24tZmFxLXBob25lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzEycHggLTI3OHB4O1xuICB3aWR0aDogNzBweDtcbiAgaGVpZ2h0OiA1MHB4O1xufVxuLmljb24tZmFxLXByZXBhcmluZyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3ByaXRlcy9zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC0zNjNweDtcbiAgd2lkdGg6IDcwcHg7XG4gIGhlaWdodDogNTBweDtcbn1cbi5pY29uLWZsYWctYmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00MzJweCAtMzQwcHg7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG59XG4uaWNvbi1mbGFnLWNoIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDEwcHggLTM0MHB4O1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xufVxuLmljb24tZmxhZy1kZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3ByaXRlcy9zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTU1N3B4IC0zNTRweDtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbn1cbi5pY29uLWZsYWctZnIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00NTRweCAtMzQwcHg7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG59XG4uaWNvbi1mbGFnLWdiIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTU3cHggLTM5N3B4O1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xufVxuLmljb24tZmxhZy1ubCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3ByaXRlcy9zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ3NnB4IC0zNDBweDtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbn1cbi5pY29uLWZsYWctcGwge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMTJweCAtMzM4cHg7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG59XG4uaWNvbi1mcmllbmQtYmVuZWZpdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3ByaXRlcy9zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQxMHB4IDBweDtcbiAgd2lkdGg6IDk0cHg7XG4gIGhlaWdodDogNzVweDtcbn1cbi5pY29uLWhlYXJ0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTE0cHggLTYzcHg7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDQ3cHg7XG59XG4uaWNvbi1pbnN0YWdyYW1CbGFjayB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3ByaXRlcy9zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUxNHB4IC0zOTdweDtcbiAgd2lkdGg6IDMzcHg7XG4gIGhlaWdodDogMzNweDtcbn1cbi5pY29uLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTE0cHggMHB4O1xuICB3aWR0aDogNTVweDtcbiAgaGVpZ2h0OiA1M3B4O1xufVxuLmljb24tbGFzdC1taW51dGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMjc4cHg7XG4gIHdpZHRoOiA5NHB4O1xuICBoZWlnaHQ6IDc1cHg7XG59XG4uaWNvbi1sb2dvSW5zdGFncmFtIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODJweCAtNDIzcHg7XG4gIHdpZHRoOiA2M3B4O1xuICBoZWlnaHQ6IDE4cHg7XG59XG4uaWNvbi1sb2dvSW5zdGFncmFtQmxhY2sge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNTVweCAtNDIzcHg7XG4gIHdpZHRoOiA2M3B4O1xuICBoZWlnaHQ6IDE4cHg7XG59XG4uaWNvbi1uYXR1cmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAwcHg7XG4gIHdpZHRoOiAxMzRweDtcbiAgaGVpZ2h0OiAxMzVweDtcbn1cbi5pY29uLW5vdGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yNjZweCAtMTQ1cHg7XG4gIHdpZHRoOiAxMjZweDtcbiAgaGVpZ2h0OiAxMDhweDtcbn1cbi5pY29uLW51bWJlci1wZW9wbGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC01MTRweCAtMTIwcHg7XG4gIHdpZHRoOiA0NnB4O1xuICBoZWlnaHQ6IDQ2cHg7XG59XG4uaWNvbi1wZW4ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNDIzcHg7XG4gIHdpZHRoOiA3MnB4O1xuICBoZWlnaHQ6IDQycHg7XG59XG4uaWNvbi1wZW9wbGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC01MTRweCAtMjY1cHg7XG4gIHdpZHRoOiAzNHB4O1xuICBoZWlnaHQ6IDM1cHg7XG59XG4uaWNvbi1waG9uZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3ByaXRlcy9zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUxNHB4IC0zMTBweDtcbiAgd2lkdGg6IDM0cHg7XG4gIGhlaWdodDogMzRweDtcbn1cbi5pY29uLXBpbnRlcmVzdEJsYWNrIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODZweCAtNDc1cHg7XG4gIHdpZHRoOiAzM3B4O1xuICBoZWlnaHQ6IDMzcHg7XG59XG4uaWNvbi1wbGF5IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zcHJpdGVzL3Nwcml0ZS5wbmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI5cHggLTQ3NXB4O1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xufVxuLmljb24tcG9ueSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc3ByaXRlcy9zcHJpdGUucG5nKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQxMHB4IC0xNzBweDtcbiAgd2lkdGg6IDk0cHg7XG4gIGhlaWdodDogNzVweDtcbn1cbi5pY29uLXBvc19pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC01MTRweCAtNDQwcHg7XG4gIHdpZHRoOiA0MnB4O1xuICBoZWlnaHQ6IDE0cHg7XG59XG4uaWNvbi1zY2hvb2wtaG9saWRheXMge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00MTBweCAtMjU1cHg7XG4gIHdpZHRoOiA5NHB4O1xuICBoZWlnaHQ6IDc1cHg7XG59XG4uaWNvbi10d2l0dGVyQmxhY2sge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC01MTRweCAtMzU0cHg7XG4gIHdpZHRoOiAzM3B4O1xuICBoZWlnaHQ6IDMzcHg7XG59XG4uaWNvbi12YWx1ZXMge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yNzdweCAwcHg7XG4gIHdpZHRoOiAxMjNweDtcbiAgaGVpZ2h0OiAxMjNweDtcbn1cbi5pY29uLXdoaXRlcGhvbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNzFweCAtNDc1cHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG4uaWNvbi15b3V0dWJlQmxhY2sge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3Nwcml0ZXMvc3ByaXRlLnBuZyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNDc1cHg7XG4gIHdpZHRoOiAzM3B4O1xuICBoZWlnaHQ6IDMzcHg7XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vdXRpbHMvY3NzL2ljb25zL2ljb25zLmNzc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vYXNzZXRzL3N0eWxlc2hlZXRzL3Nwcml0ZS5jc3NcIjtcclxuXHJcbi8qIEdSRUVOIFBBUlQgKi9cclxuXHJcbi5mb290ZXItYmFja2dyb3VuZHtcclxuICBoZWlnaHQ6IHJlbSgyNjApO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLyogVVNQUyBibG9jIGNvbmRpdGlvbnMgKi9cclxuXHJcbi5mb290ZXItZ3JleUNvbG9ye1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgcGFkZGluZy1ib3R0b206IHJlbSg0NCk7XHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZVRvVGFibGV0KXtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLmZvb3Rlci1ncmVlbkNvbG9ye1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZWVuKTtcclxuICBwYWRkaW5nLWJvdHRvbTogcmVtKDc1KTtcclxuICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgIHBhZGRpbmctYm90dG9tOiByZW0oMCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICB9XHJcbiAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDQwKTtcclxuICB9XHJcbn1cclxuXHJcbi5jcEJyb2NodXJlTm9EaXNwbGF5e1xyXG4gICYtcGFkZGluZ3tcclxuICAgIHBhZGRpbmctdG9wOiByZW0oMSk7XHJcbiAgfVxyXG5cclxuICAmLW1hcmdpbntcclxuICAgIG1hcmdpbi10b3A6IHJlbSgxODUpO1xyXG4gIH1cclxufVxyXG5cclxuLmNwQnJvY2h1cmVBbmRVc3BzTm9EaXNwbGF5LXBhZGRpbmd7XHJcbiAgcGFkZGluZy1ib3R0b206IHJlbSgxMzApO1xyXG59XHJcblxyXG4vKiBFbmQgVVNQUyBibG9jIGNvbmRpdGlvbnMgKi9cclxuXHJcbi5mb290ZXItZ3JlZW57XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuXHJcbiAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICBtYXJnaW4tdG9wOiByZW0oMjApO1xyXG4gIH1cclxuXHJcbiAgaW1ne1xyXG4gICAgICB3aWR0aDogaW5pdGlhbDtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIG1hcmdpbi10b3A6IHJlbSgyMCk7XHJcbiAgICAgIHdpZHRoOiByZW0oNTYpO1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgJjpmaXJzdC1jaGlsZHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDMwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmZvb3Rlci1uZXdze1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbWFyZ2luLXRvcDogcmVtKC0xMzcpO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICBwb3NpdGlvbjogaW5pdGlhbDtcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgcGFkZGluZzogMCAzJTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9vdGVyLW5ld3NXcmFwcGVye1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuICAgICAgcGFkZGluZzogcmVtKDYwKSByZW0oMTAwKTtcclxuICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDIwKTtcclxuICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiByZW0oMjApO1xyXG4gICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IHJlbSgyMCk7XHJcbiAgICAgIGJvcmRlcjogMCBzb2xpZCAjMDAwMDAwO1xyXG4gICAgICBtYXJnaW46cmVtKDIwKSBhdXRvO1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICAgICAgcC5mb290ZXItbmV3c1RleHR7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAgICAgc3Ryb25ne1xyXG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgd2lkdGg6IDM1JTtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDEwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgd2lkdGg6IDYyLjUlO1xyXG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEwKTtcclxuXHJcbiAgICAgICAgICBzdHJvbmd7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDI2KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5mb290ZXItbmV3c2xldHRlckZvcm17XHJcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDMwKTtcclxuXHJcbiAgICAgICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAucm93e1xyXG4gICAgICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICB3aWR0aDogNTglO1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgzMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgICBwYWRkaW5nOiByZW0oMzYpIHJlbSgzMCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIHBhZGRpbmc6IHJlbSgyNCkgMCByZW0oMzApO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgcHtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICAgICBzcGFue1xyXG4gICAgICAgICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi8uLi9hc3NldHMvaW1hZ2VzL2JhY2tncm91bmRzL2JhY2tncm91bmQtcG9pbnRzLnBuZyk7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBib3JkZXItYm90dG9tOiByZW0oNDApIHNvbGlkICNmZmY7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC5tZGwtdGV4dGZpZWxkX19sYWJlbHtcclxuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgfVxyXG5cclxuICAgIC5pbnB1dENvbnRhaW5lciAubWRsLXRleHRmaWVsZC5pcy1pbnZhbGlkLmlzLWRpcnR5IC5tZGwtdGV4dGZpZWxkX19lcnJvciB7XHJcbiAgICAgIHdpZHRoOiA0MCU7XHJcbiAgICAgIG1hcmdpbi10b3A6IHJlbSgtMzUpO1xyXG5cclxuICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgd2lkdGg6IHJlbSg3Nik7XHJcbiAgICAgICAgcmlnaHQ6IHJlbSgtMTApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWRpcnR5IC5tZGwtdGV4dGZpZWxkX19sYWJlbHtcclxuICAgICAgQG1lZGlhKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0Q29udGFpbmVyIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5pcy1mb2N1c2VkIC5tZGwtdGV4dGZpZWxkX19sYWJlbHtcclxuICAgICAgQG1lZGlhKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmlucHV0Q29udGFpbmVyIC5tZGwtdGV4dGZpZWxkLmlucHV0Q29udGFpbmVyLS13aXRoVmFsaWRhdGlvbi5pcy1kaXJ0eSAubWRsLXRleHRmaWVsZF9fdmFsaWQge1xyXG4gICAgICB3aWR0aDogcmVtKDg0KTtcclxuICAgICAgbWFyZ2luLXRvcDogcmVtKC0zNSk7XHJcbiAgICAgIHJpZ2h0OiByZW0oMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLmdyaWRDb250YWluZXJ7XHJcbiAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgyMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mb290ZXItYnJvY2h1cmV7XHJcbiAgICBtYXJnaW4tdG9wOiByZW0oLTUwKTtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGF7XHJcbiAgICAgIHBpY3R1cmV7XHJcbiAgICAgICAgaW1ne1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDEyKTtcclxuXHJcbiAgICAgICAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgzMCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgd2lkdGg6IHJlbSg3MCk7XHJcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDcwKTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwe1xyXG4gICAgICBwYWRkaW5nOiAwIHJlbSgzMCk7XHJcbiAgICAgIG1hcmdpbi10b3A6IHJlbSgyMCk7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTE2KTtcclxuICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDE4KTtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mb290ZXItYXBwe1xyXG4gICAgbWFyZ2luLXRvcDogcmVtKC01MCk7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMDtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGF7XHJcbiAgICAgIHBpY3R1cmV7XHJcbiAgICAgICAgaW1ne1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMTIpO1xyXG4gICAgICAgICAgICBib3JkZXI6IHJlbSgyKSBzb2xpZCB3aGl0ZTtcclxuXHJcbiAgICAgICAgICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0oMzApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IHJlbSg3MCk7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oNzApO1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB7XHJcbiAgICAgIHBhZGRpbmc6IDAgcmVtKDEwKTtcclxuICAgICAgbWFyZ2luLXRvcDogcmVtKDIwKTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xyXG5cclxuICAgICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxMTYpO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiByZW0oMTgpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDEwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmlucHV0Q29udGFpbmVye1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIHBhZGRpbmctbGVmdDogcmVtKDIwKTtcclxuICAgIHdpZHRoOiA4OCU7XHJcblxyXG4gICAgLm1kbC10ZXh0ZmllbGR7XHJcbiAgICAgIHotaW5kZXg6IHZhcigtLXpJbmRleC0tY29udGVudCk7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgd2lkdGg6IDc1JTtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgtMTIpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAjbmV3c2xldHRlckZvcm17XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgLmJ1dHRvbntcclxuICAgICAgcGFkZGluZy10b3A6IHJlbSgxMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLmJ1dHRvbkNvbnRhaW5lcntcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICByaWdodDogOCU7XHJcbiAgICAgIHRvcDowO1xyXG5cclxuICAgICAgLmJ1dHRvbntcclxuICAgICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSg1MCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZm9vdGVyLWNwQnJvY2h1cmV7XHJcbiAgICBmb250LXNpemU6IHJlbSgxMyk7XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IHJlbSgxKSBzb2xpZCAjZmZmO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDIwKTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4pO1xyXG4gICAgICBwYWRkaW5nOiByZW0oMjUpIDAgcmVtKDEwKSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmZvb3Rlci11c3Bze1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JlZW4pO1xyXG5cclxuICAgICYtbWFyZ2lue1xyXG4gICAgICBtYXJnaW4tdG9wOiByZW0oNjApO1xyXG5cclxuICAgICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDQwKTtcclxuICAgICAgICBwYWRkaW5nOiAwIHJlbSgyMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwe1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg2MCk7XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMCk7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvb3Rlci11c3BzV3JhcHBlcntcclxuICAgICAgLnItbWluTC0tMW9mNntcclxuICAgICAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XHJcbiAgICAgICAgICB3aWR0aDogMTYuNjYlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaW1ne1xyXG4gICAgICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICAgICAgd2lkdGg6IDg1JTtcclxuICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcclxuICAgICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmZvb3RlckFsd2F5c3tcclxuICAgICAgICB3aWR0aDogcmVtKDEyMCk7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuXHJcbiAgICAgICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICBmb250LXNpemU6IHJlbSgxMSk7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwIHJlbSg1KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qIERBUksgR1JFRU4gUEFSVCAqL1xyXG4uZm9vdGVyLWRhcmtHcmVlbiB7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW5EYXJrKTtcclxuICBwYWRkaW5nLXRvcDogcmVtKDQwKTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgcGFkZGluZzogMCA0JTtcclxuXHJcbiAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICBwYWRkaW5nOiAwIDMlO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICBwYWRkaW5nOiAwIDQlO1xyXG4gIH1cclxuXHJcbiAgLmZvb3Rlci10aXRsZSB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG4gICAgZm9udC1zaXplOiByZW0oMTUpO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICBmb250LXNpemU6IHJlbSgxNik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZm9vdGVyLWNvbmRpdGlvbnMge1xyXG4gICAgcGFkZGluZzogcmVtKDQwKSAwO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbik7XHJcbiAgICAgIHBhZGRpbmc6IDAgNCU7XHJcbiAgICAgIG1hcmdpbjogMCAtNCU7XHJcbiAgICB9XHJcblxyXG4gICAgcHtcclxuICAgICAgQG1lZGlhICgtLW1xLW1pblRhYmxldCl7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxpe1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgfVxyXG5cclxuICAgIGxpIGF7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcclxuICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcGFkZGluZy1yaWdodDogMSU7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvb3Rlci1sYW5ndWFnZSB7XHJcbiAgICAgICZTZWxlY3Qge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgICBtYXJnaW46IHJlbSgxMCkgMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJlNlbGVjdGlvbiB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHdpZHRoOiByZW0oMTg2KTtcclxuICAgICAgICBib3JkZXI6IHJlbSgxKSBzb2xpZCB3aGl0ZTtcclxuICAgICAgICBwYWRkaW5nOiByZW0oMTApIHJlbSgxNCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDQpO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICBmb250LWZhbWlseTogJ2ljb25zJztcclxuICAgICAgICAgIEBleHRlbmQgLmNwZS1JY29uLS1hcnJvdzpiZWZvcmU7XHJcbiAgICAgICAgICBmb250LXNpemU6IHJlbSg4KTtcclxuICAgICAgICAgIHRvcDogcmVtKDE1KTtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgtNSk7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICByaWdodDogcmVtKDEyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYudG9nZ2xlLWFjdGl2ZSB7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oNCkgcmVtKDQpIDAgMDtcclxuXHJcbiAgICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgICBAZXh0ZW5kIC5jcGUtSWNvbi0tYXJyb3ctdG9wOmJlZm9yZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICZDaG9pY2Uge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IHJlbSg0NSk7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB6LWluZGV4OiAxMDtcclxuICAgICAgICB3aWR0aDogcmVtKDE4Nik7XHJcbiAgICAgICAgYm9yZGVyOiByZW0oMSkgc29saWQgd2hpdGU7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIHJlbSg0KSByZW0oNCk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW5EYXJrKTtcclxuICAgICAgICBoZWlnaHQ6IHJlbSgxNTApO1xyXG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuXHJcbiAgICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCl7XHJcbiAgICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgICAgICAgICBoZWlnaHQ6IHJlbSgyMDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICBwYWRkaW5nOiByZW0oMTApIHJlbSgxNCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgc29saWQgIzMzOGQ2MDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5tQ1NCIHtcclxuICAgICAgICAgICZfc2Nyb2xsVG9vbHMge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDk3JTtcclxuICAgICAgICAgICAgcmlnaHQ6IHJlbSg0KTtcclxuICAgICAgICAgICAgdG9wOiByZW0oMik7XHJcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTApO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICZfZHJhZ2dlckNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU5MmQ7XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU5MmQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmX2RyYWdnZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzZDFmO1xyXG5cclxuICAgICAgICAgICAgJl9iYXIge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDNkMWY7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgIC5tQ1NCX2RyYWdnZXJfYmFyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDNkMWY7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmUmFpbDpob3ZlciB7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTkyZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICZfaW5zaWRlID4gLm1DU0JfY29udGFpbmVyIHtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb290ZXItbGlzdEJsb2Mge1xyXG4gICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICBwYWRkaW5nOiByZW0oMTUpIHJlbSgxMCk7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIHNvbGlkIHdoaXRlO1xyXG5cclxuICAgICAgICAuZm9vdGVyLXRpdGxlLmFwaV90b2dnbGUge1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnaWNvbnMnO1xyXG4gICAgICAgICAgICBAZXh0ZW5kIC5jcGUtSWNvbi0tYXJyb3c6YmVmb3JlO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSg4KTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKC00KTtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgdG9wOiByZW0oNSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJi50b2dnbGUtYWN0aXZlOmFmdGVye1xyXG4gICAgICAgICAgICBAZXh0ZW5kIC5jcGUtSWNvbi0tYXJyb3ctdG9wOmJlZm9yZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHVsLmFwaV90b2dnbGVfY29udGVudCB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTUpO1xyXG5cclxuICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgbWFyZ2luOiByZW0oNSkgcmVtKDEwKSByZW0oNSkgMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYtLWxhc3Qge1xyXG4gICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZMaXN0IHtcclxuICAgICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDE1KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmZvb3Rlci1wYXltZW50Q2VydGlmIHtcclxuICAgIHBhZGRpbmc6IHJlbSgyMCkgMDtcclxuICAgIGJvcmRlci10b3A6IHJlbSgxKSBzb2xpZCAjMzM4ZDYwO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICBib3JkZXI6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvb3Rlci1jZXJ0aWZpY2F0aW9uc3tcclxuICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgIGZvbnQtc2l6ZTogMDtcclxuICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpbWcge1xyXG4gICAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgICAgaGVpZ2h0OiByZW0oMzUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb290ZXJUYWJsZS1saXN0RW5kIHtcclxuICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jZXJ0aWZpY2F0aW9ucy1saXN0IHtcclxuICAgIGEge1xyXG4gICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmUGljdHVyZSB7XHJcbiAgICAgIGltZyB7XHJcbiAgICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgICAgIGhlaWdodDogcmVtKDM1KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qIEdSRVkgUEFSVCAqL1xyXG5cclxuLmZvb3Rlci1ncmV5e1xyXG4gIHBhZGRpbmc6IHJlbSgxNSkgNCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCl7XHJcbiAgICBwYWRkaW5nOiAxJSAyJTtcclxuICB9XHJcblxyXG4gIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgcGFkZGluZzogcmVtKDE4KSAyJTtcclxuICB9XHJcblxyXG4gIC5jZXJ0aWZpY2F0aW9ucy1saXN0IHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgcGFkZGluZy1yaWdodDogNiU7XHJcbiAgfVxyXG5cclxuICAuY2VydGlmaWNhdGlvbnMtbGlzdFRleHQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiByZW0oMjApO1xyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAjNjQ2ODZiO1xyXG4gICAgICBsZWZ0OiByZW0oMTApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNlcnRpZmljYXRpb25zLWxpc3RQaWN0dXJlIHtcclxuICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgfVxyXG4gICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICB3aWR0aDogcmVtKDkwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLypDZXJ0aWZpY2F0aW9ucyovXHJcblxyXG4uY2VydGlmaWNhdGlvbnMtbGlzdHtcclxuICBmb250LXNpemU6IDA7XHJcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cclxuICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjMzJTtcclxuICB9XHJcblxyXG4gIEBtZWRpYSAoLS1tcS1zbWFsbERlc2t0b3Ape1xyXG4gICAgcGFkZGluZy1ib3R0b206IDElO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICBhe1xyXG4gICAgZm9udC1zaXplOiAwO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNlcnRpZmljYXRpb25zLWxpc3RUZXh0e1xyXG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZm9udC1zaXplOiByZW0oMTEpO1xyXG4gIG9wYWNpdHk6IDAuNTtcclxuICBsaW5lLWhlaWdodDogcmVtKDE2KTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIEBtZWRpYSAoLS1tcS1zbWFsbERlc2t0b3Ape1xyXG4gICAgbGluZS1oZWlnaHQ6IHJlbSgyMCk7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDE1JTtcclxuICB9XHJcblxyXG4gIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgZm9udC1zaXplOiByZW0oMTEpO1xyXG4gICAgcGFkZGluZy10b3A6IHJlbSg4KTtcclxuICAgIGxpbmUtaGVpZ2h0OiByZW0oMTcpO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICAmOmJlZm9yZXtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICB3aWR0aDogcmVtKDEpO1xyXG4gICAgYm9yZGVyLWxlZnQ6IHJlbSgxKSBzb2xpZCAjMzM4ZDYwO1xyXG4gICAgcGFkZGluZzogcmVtKDExKSByZW0oMykgcmVtKDExKSAwO1xyXG4gICAgbWFyZ2luLXRvcDogcmVtKC0xMSk7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogMTIlO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICBjb250ZW50OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbi5jZXJ0aWZpY2F0aW9ucy1saXN0UGljdHVyZXtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cclxuICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgaW1ne1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICBoZWlnaHQ6IHJlbSgzMCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi8qTGFuZ3VhZ2VzKi9cclxuXHJcbi5mb290ZXItZ3JleUxhbmd1YWdlc3tcclxuICBib3JkZXItYm90dG9tOiByZW0oMSkgc29saWQgdmFyKC0tZ3JleVN0b25lKTtcclxuICBwYWRkaW5nOiByZW0oNDApIDA7XHJcbiAgY29sb3I6IHZhcigtLWdyZXlNZWRpdW1fMik7XHJcblxyXG4gIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgcGFkZGluZzogMyUgMiU7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgIHBhZGRpbmc6IDQlIDIlO1xyXG4gIH1cclxuXHJcbiAgcHtcclxuICAgIG1hcmdpbi1ib3R0b206MiU7XHJcbiAgICBmb250LXNpemU6IHJlbSgxNCk7XHJcbiAgfVxyXG5cclxuICBsaXtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgfVxyXG5cclxuICBsaSBhe1xyXG4gICAgZm9udC1zaXplOiByZW0oMTMpO1xyXG4gICAgY29sb3I6IHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmctcmlnaHQ6IDElO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICBmb250LXNpemU6IHJlbSgxOCk7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNTApO1xyXG4gICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZm9vdGVyVGFibGUtbGlzdExhbmd1YWdlc3tcclxuICBmb250LXNpemU6IDA7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuXHJcbiAgbGl7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG5cclxuICBzcGFue1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiByZW0oOCk7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogcmVtKC0xKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4ubGFuZ3VhZ2VzRm9ybXtcclxuICBkaXNwbGF5OmJsb2NrO1xyXG4gIHdpZHRoOjEwMCU7XHJcbiAgbGluZS1oZWlnaHQ6IHJlbSg2MCk7XHJcbiAgZm9udC1zaXplOiAwO1xyXG5cclxuICAmLm9wZW57XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4vKiogQnJhbmRzICoqL1xyXG5cclxuLmZvb3Rlci1icmFuZHMge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZVRvVGFibGV0KXtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4vKiogR2VzdGlvbiBkdSB0b2dnbGVyICoqL1xyXG4ubGFuZ3VhZ2VzRm9ybSAubGFuZ3VhZ2VzRm9ybS10b2dnbGVye1xyXG4gIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgZGlzcGxheTpibG9jaztcclxuICAgIGZvbnQtc2l6ZTpyZW0oMTgpO1xyXG4gICAgYm90dG9tOjA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmctdG9wOiAzJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG5cclxuICAgICY6YWZ0ZXJ7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiAnaWNvbnMnO1xyXG4gICAgICBAZXh0ZW5kIC5jcGUtSWNvbi0tYXJyb3c6YmVmb3JlO1xyXG4gICAgICBwYWRkaW5nOiAwIDUlIDAgNSU7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDIwKTtcclxuICAgICAgdmVydGljYWwtYWxpZ246Ym90dG9tO1xyXG4gICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcclxuICAgICAgZmxvYXQ6cmlnaHQ7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjU7XHJcbiAgICB9XHJcblxyXG4gICAgJi50b2dnbGUtYWN0aXZlOmFmdGVye1xyXG4gICAgICBAZXh0ZW5kIC5jcGUtSWNvbi0tYXJyb3ctdG9wOmJlZm9yZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5sYW5ndWFnZXNGb3JtLm9wZW57XHJcbiAgYS5sYW5ndWFnZXNGb3JtLWRhdGFPcGVuZXI6YWZ0ZXJ7XHJcbiAgICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgbWFyZ2luLXRvcDogcmVtKC0xMik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLmxhbmd1YWdlc0Zvcm0tZ2xvYmFsSW5wdXRDb250YWluZXJ7XHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgaGVpZ2h0OiA5MCU7XHJcbiAgICAgIHdpZHRoIDogMTAwJTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBhZGRpbmctdG9wOiA1JTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qIFNvY2lhbCAqL1xyXG5cclxuLmZvb3Rlci1zb2NpYWx7XHJcbiAgbWFyZ2luLXRvcDogcmVtKDE1KTtcclxuXHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG5cclxuICAgIC5mb290ZXItdGl0bGUge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZm9vdGVyVGFibGUtbGlzdEVuZHtcclxuICBmb250LXNpemU6IDA7XHJcblxyXG4gIHAge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDE1KTtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxpe1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiByZW0oNSk7XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgIG1hcmdpbjogMCUgMiU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbWd7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIHBhZGRpbmc6IDAgcmVtKDUpIDAgMDtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jcGUtSWNvbntcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGZvbnQtc2l6ZTogcmVtKDI1KTtcclxuICAgIG1hcmdpbi10b3A6IHJlbSgtMTApO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICBmb250LXNpemU6IHJlbSgyMik7XHJcbiAgICAgIG1hcmdpbi10b3A6IHJlbSgtMTIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICBmb250LXNpemU6IHJlbSgzMik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmZvb3Rlci1zb2NpYWwge1xyXG4gICAgbGkge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6ICByZW0oMTApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuI3RyaXBBZHZpc29yLWltYWdle1xyXG4gIG1hcmdpbjogMDtcclxuXHJcbiAgaW1ne1xyXG4gICAgd2lkdGg6IHJlbSgxNDApO1xyXG4gICAgbWFyZ2luLXRvcDogcmVtKC04KTtcclxuICB9XHJcbn1cclxuXHJcbi5vdGhlcldlYnNpdGVze1xyXG4gIHB7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG4gIH1cclxufVxyXG4uZm9vdGVyLW15Q1B7XHJcbiAgQG1lZGlhKC0tbXEtZGVza3RvcCl7XHJcbiAgICBwYWRkaW5nLXRvcDogcmVtKDMwKTtcclxuICB9XHJcbiAgQG1lZGlhKC0tbXEtdGFibGV0KXtcclxuICAgIG1hcmdpbi10b3A6IHJlbSgxMTMpO1xyXG4gIH1cclxuICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICBtYXJnaW46IHJlbSgyMCkgcmVtKC0xMCkgMCByZW0oLTEwKTtcclxuICAgcGFkZGluZzogcmVtKDE1KSByZW0oMTApIDAgcmVtKDEwKTtcclxuICAgYm9yZGVyLXRvcDpyZW0oMSkgc29saWQgdmFyKC0tbWFpbkJhY2tncm91bmRDb2xvcik7XHJcbiAgfVxyXG4gICYtTGlua3tcclxuICAgIEBtZWRpYSgtLW1xLW1vYmlsZSl7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIH1cclxuICB9XHJcbiAgJi1MaW5rLFxyXG4gICYtTGluay10aXRsZXtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgY29sb3I6IHZhcigtLW1haW5CYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgQG1lZGlhKC0tbXEtbW9iaWxlKXtmb250LXNpemU6IHJlbSgxNik7fVxyXG4gIH1cclxuICAmLUxpbmstbGFiZWx7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmctbGVmdDogcmVtKDI1KTtcclxuICAgIG1hcmdpbi10b3A6IHJlbSgxMCk7XHJcbiAgfVxyXG4gIC5jcGUtSWNvbntcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgJi0tdXNlcntcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgdG9wOiByZW0oLTUpO1xyXG4gICAgICBmb250LXNpemU6IHJlbSgxOCk7XHJcbiAgICB9XHJcbiAgJi0tYXJyb3d7XHJcbiAgICB0b3A6MDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgZm9udC1zaXplOiByZW0oOCk7XHJcbiAgfVxyXG4gIH1cclxufVxyXG4uZm9vdGVyVGFibGUtbGlzdExhbmd1YWdlcyB7XHJcbiAgLmZvb3Rlci1teUNQLUxpbmstdGl0bGV7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbn1cclxuXHJcbi5mb290ZXJTZW8ge1xyXG4gIHBhZGRpbmc6IHJlbSgzMCkgMDtcclxuICBsaSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgYSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcclxuICAgICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEoLS1tcS1tb2JpbGVUb1RhYmxldCl7XHJcbiAgICBwYWRkaW5nOiByZW0oMjApIDA7XHJcbiAgICB1bCB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgbGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDEwKTtcclxuICAgICAgICAgIGJvcmRlci1yaWdodDogcmVtKDEpIHNvbGlkIHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaWNvbi1mbGFnLWluIHtcclxuICBAZXh0ZW5kIC5pY29uLWZsYWctZ2I7XHJcbn0iLCJAaW1wb3J0IFwiLi4vLi4vdXRpbHMvY3NzL2ljb25zL2ljb25zLmNzc1wiO1xyXG4vKiBCdXR0b24gKi9cclxuXHJcbi5idXR0b25Db250YWluZXJ7XHJcbiAgICBjdXJzb3I6cG9pbnRlcjtcclxuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgei1pbmRleDogMTtcclxuXHJcbiAgICAuYW5pbWF0ZWRJY29uQ29udGFpbmVyIC5jcGUtSWNvbi0tYXJyb3dfY3Rhe1xyXG4gICAgICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgtMTApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLmJ1dHRvbiB7XHJcbiAgcGFkZGluZzogcmVtKDEyKSByZW0oMjApO1xyXG4gIGxpbmUtaGVpZ2h0OnJlbSgxNik7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuICBmb250LXNpemU6cmVtKDE0KTtcclxuICBib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci1yYWRpdXM6IHJlbSgyMCk7XHJcbiAgY3Vyc29yOnBvaW50ZXI7XHJcbiAgZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcbiAgdGV4dC1hbGlnbjpjZW50ZXI7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuXHJcbiAgJi0tZGlzYWJsZWQge1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxufVxyXG5cclxuLmJ1dHRvbi0td2l0aEljb257XHJcbiAgbWFyZ2luLWxlZnQ6IHJlbSgzMCk7XHJcbn1cclxuXHJcbi5idXR0b24tLXdpdGhDbG9zZXtcclxuICAuY3BlLUljb24tLWNsb3Nle1xyXG4gICAgbWFyZ2luLWxlZnQ6IHJlbSgxNSk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgfVxyXG59XHJcblxyXG4uYnV0dG9uLS1wcmltYXJ5e1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1pdGFsaWNGb250KTtcclxuICBmb250LXNpemU6IHJlbSgxNSk7XHJcbn1cclxuXHJcbi5idXR0b24tLWJsYWNrV2hpdGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ3JleVN0b25lKTtcclxuICBjb2xvcjojZmZmO1xyXG59XHJcblxyXG4uYnV0dG9uLS1ibGFja1doaXRlOmhvdmVye1xyXG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ3JleURhcmtSb2xsT3Zlcik7XHJcbn1cclxuXHJcbi5idXR0b24tLXdoaXRlQmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjojZmZmO1xyXG4gIGNvbG9yOnZhcigtLWJsdWUpO1xyXG4gIGJvcmRlci1jb2xvcjp2YXIoLS1ibHVlKTtcclxufVxyXG5cclxuLmJ1dHRvbi0td2hpdGVCbHVlOmhvdmVye1xyXG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ3JleU1vdXNlQ29sb3IpO1xyXG59XHJcblxyXG4uYnV0dG9uLS13aGl0ZUdyZWVuIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7XHJcbiAgY29sb3I6dmFyKC0tZ3JleVN0b25lKTtcclxuICBib3JkZXItY29sb3I6dmFyKC0tZ3JlZW4pO1xyXG59XHJcblxyXG4uYnV0dG9uLS13aGl0ZUdyZWVuOmhvdmVye1xyXG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ3JleU1vdXNlQ29sb3IpO1xyXG59XHJcblxyXG4uYnV0dG9uLS13aGl0ZUJsYWNrIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7XHJcbiAgY29sb3I6dmFyKC0tZ3JleVN0b25lKTtcclxuICBib3JkZXItY29sb3I6dmFyKC0tZ3JleVN0b25lKTtcclxufVxyXG4uYnV0dG9uLS13aGl0ZUJsYWNrOmhvdmVye1xyXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JlZW5MaWdodENvbG9yKTtcclxuICBjb2xvcjogdmFyKC0tZ3JlZW5MaWdodENvbG9yKTtcclxufVxyXG5cclxuLmJ1dHRvbi0tcmVkV2hpdGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0tcmVkKTtcclxuICBjb2xvcjp3aGl0ZTtcclxufVxyXG5cclxuLmJ1dHRvbi0tcmVkV2hpdGU6aG92ZXJ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmVkUm9sbE92ZXIpO1xyXG59XHJcblxyXG4uYnV0dG9uLS10cmFuc3BhcmVudFdoaXRlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xyXG4gIGNvbG9yOiNmZmY7XHJcbiAgYm9yZGVyLWNvbG9yOiNmZmY7XHJcbn1cclxuXHJcbi5idXR0b24tLXRyYW5zcGFyZW50V2hpdGU6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6d2hpdGU7XHJcbiAgY29sb3I6IHZhcigtLWdyZWVuTGlnaHRDb2xvcik7XHJcbn1cclxuXHJcbi5idXR0b24tLXRyYW5zcGFyZW50QmxhY2sge1xyXG4gIGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XHJcbiAgY29sb3I6dmFyKC0tZ3JleVN0b25lKTtcclxuICBib3JkZXItY29sb3I6dmFyKC0tZ3JleVN0b25lKTtcclxufVxyXG5cclxuLmJ1dHRvbi0tdHJhbnNwYXJlbnRCbGFjazpob3ZlciB7XHJcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG4gIGNvbG9yOiB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG59XHJcblxyXG4uYnV0dG9uLS1ncmVlbldoaXRlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEyMiwgNjIsIDAuNyk7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblxyXG4gICY6aG92ZXJ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gIH1cclxufVxyXG5cclxuLmFuaW1hdGVkSWNvbkNvbnRhaW5lcntcclxuICAuY3BlLUljb257XHJcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcclxuICAgIHRvcDo1MCU7XHJcbiAgICBsZWZ0OjA7XHJcbiAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOnJlbSgyMCk7XHJcbiAgICBoZWlnaHQ6cmVtKDEwKTtcclxuICAgIGZvbnQtc2l6ZTogcmVtKDEwKTtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xyXG4gICAgICB0b3A6IHJlbSgyNCk7XHJcbiAgICB9XHJcblxyXG4gICAgJjpiZWZvcmV7XHJcbiAgICAgIEBtZWRpYSAoLS1tcS1taW5UYWJsZXQpe1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OjA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5jcGUtSWNvbi0tYXJyb3dfY3Rhe1xyXG4gIGZvbnQtc2l6ZTogcmVtKDEyKTtcclxufVxyXG5cclxuLmljb24tYXJyb3ctLWJsYWNre1xyXG4gIGNvbG9yIDogdmFyKC0tZ3JleVN0b25lKTtcclxufVxyXG5cclxuLmljb24tYXJyb3ctLXdoaXRle1xyXG4gIGNvbG9yIDogI2ZmZmZmZjtcclxufVxyXG5cclxuLmJ1dHRvbkNvbnRhaW5lcjpob3ZlciAuY3BlLUljb24tLWFycm93X2N0YSB7XHJcbiAgYW5pbWF0aW9uLW5hbWU6IGFycm93UmlnaHRUb0xlZnQ7XHJcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcclxufVxyXG5cclxuLmJ1dHRvbi0td2l0aENsb3NlIC5pY29uLWNsb3Nle1xyXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xyXG5cclxuICAmOmJlZm9yZXtcclxuICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogcmVtKDE1KTtcclxuICAgIHJpZ2h0OiByZW0oMjApO1xyXG4gIH1cclxufVxyXG5cclxuLmJ1dHRvbi0td2l0aERpYWdvbmFsQXJyb3d7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmctbGVmdDogcmVtKDQwKTtcclxuXHJcbiAgJjpiZWZvcmV7XHJcbiAgICBAZXh0ZW5kIC5jcGUtSWNvbi0tYXJyb3ctZGlhZ29uYWw6YmVmb3JlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgZm9udC1mYW1pbHk6IFwiaWNvbnNcIjtcclxuICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogcmVtKDEyKTtcclxuICAgIGxlZnQ6IHJlbSgxNCk7XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgIG1hcmdpbi10b3A6IHJlbSgxKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5idXR0b24tLXdpdGhUb2dnbGVBcnJvd3tcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZy1sZWZ0OiByZW0oNDApO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1pdGFsaWNGb250KTtcclxuXHJcbiAgJjpiZWZvcmV7XHJcbiAgICBAZXh0ZW5kIC5jcGUtSWNvbi0tYXJyb3c6YmVmb3JlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgZm9udC1mYW1pbHk6IFwiaWNvbnNcIjtcclxuICAgIGZvbnQtc2l6ZTogcmVtKDgpO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiByZW0oMTIpO1xyXG4gICAgbGVmdDogcmVtKDE0KTtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xyXG4gICAgICB0b3A6IHJlbSgxMSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ub3BlbmVkIC5idXR0b24tLXdpdGhUb2dnbGVBcnJvdzpiZWZvcmV7XHJcbiAgQGV4dGVuZCAuY3BlLUljb24tLWFycm93LXRvcDpiZWZvcmU7XHJcbn1cclxuXHJcblxyXG4uYnV0dG9uQ29udGFpbmVyLnUtZGlzYWJsZWQge1xyXG4gIG9wYWNpdHk6IDE7XHJcblxyXG4gIC5idXR0b24tLXJlZFdoaXRle1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleU1vdXNlQ29sb3IpO1xyXG4gICAgY29sb3I6IHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgfVxyXG59IiwiLmFidGVzdF9kdXJhdGlvbkNhbGVuZGFye1xyXG4gIC8qKiogaW5zdHJ1Y3Rpb24gY3NzIMOgIHLDqS1pbnRyb2R1aXJlIHByb3ByZW1lbnQgZGFucyBsYSBjc3MgZm9ybS9kYXRlcGlja2VyL19pbmRleC5jc3MsIHNpIGwnQUJURVNUIGVzdCB2YWxpZMOpICoqKi9cclxuICAucGlrYXtcclxuXHJcbiAgICAmLXNpbmdsZS5pcy1ib3VuZCB7XHJcbiAgICAgIEBtZWRpYSgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSgyNDApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi1iYWNrZ3JvdW5kTG9hZGVye1xyXG4gICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcclxuICAgICAgei1pbmRleDogY2FsYyh2YXIoLS16SW5kZXgtLXNlYXJjaFBpa2EpICsgMSk7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSg1KTtcclxuICAgICAgYm94LXNoYWRvdzogMCA1cHggN3B4IC01cHggcmdiYSgwLDAsMCwuNSk7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1LCAwLjUpO1xyXG4gICAgfVxyXG5cclxuICAgICYtaGVhZGVye1xyXG4gICAgICBkaXNwbGF5OmJsb2NrO1xyXG5cclxuICAgICAgQG1lZGlhKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgICAmTGluZXtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi10YWJsZXtcclxuXHJcbiAgICAgIHRke1xyXG5cclxuICAgICAgICAucGlrYS1oaWdobGlnaHQ6bm90KC5waWthLXJhbmdlRW5kLCAucGlrYS1zZWxlY3RlZERheSl7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTBjODc4O1xyXG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnBpa2Etc2VsZWN0ZWRSYW5nZTpub3QoLnBpa2Etc2VsZWN0ZWREYXkpOm5vdCgucGlrYS1zZWxlY3RlZEVuZERheSl7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7XHJcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICBvcGFjaXR5OiAxO1xyXG5cclxuICAgICAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYucGlrYS1zZWxlY3RlZFJhbmdlQ29udGFpbmVyOm5vdCgucGlrYS1zZWxlY3RlZERheUNvbnRhaW5lcik6bm90KC5waWthLXNlbGVjdGVkRW5kRGF5Q29udGFpbmVyKXtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMzhmNjE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmlzLWRpc2FibGVkIC5waWthLWJ1dHRvbjpub3QoLnBpa2EtZHVyYXRpb25FbmREYXkpOm5vdCgucGlrYS1zZWxlY3RlZERheSk6bm90KC5waWthLXNlbGVjdGVkRW5kRGF5KXtcclxuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5TWVkaXVtKSAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5waWthLXNlbGVjdGVkUmFuZ2VDb250YWluZXIucGlrYS1zZWxlY3RlZERheUNvbnRhaW5lcntcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjMzM4ZjYxIDUwLjElLCAjMzM4ZjYxIDEwMCUpO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgLW1vei1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjMzM4ZjYxIDUwLjElLCAjMzM4ZjYxIDEwMCUpO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgIC1tcy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjMzM4ZjYxIDUwLjElLCAjMzM4ZjYxIDEwMCUpO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAtby1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjMzM4ZjYxIDUwLjElLCAjMzM4ZjYxIDEwMCUpO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjMzM4ZjYxIDUwLjElLCAjMzM4ZjYxIDEwMCUpO1xyXG4gICAgICAgICAgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjRkZGRkZGJyxlbmRDb2xvcnN0cj0nIzMzOGY2MTMzOGY2MScsIEdyYWRpZW50VHlwZT0wKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYucGlrYS1yYW5nZVN0YXJ0Q29udGFpbmVye1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0ZGRkZGRiwgI0ZGRkZGRiA1MCUsICMzMzhmNjEgNTAuMSUsICMzMzhmNjEgMTAwJSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAtbW96LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0ZGRkZGRiwgI0ZGRkZGRiA1MCUsICMzMzhmNjEgNTAuMSUsICMzMzhmNjEgMTAwJSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgLW1zLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0ZGRkZGRiwgI0ZGRkZGRiA1MCUsICMzMzhmNjEgNTAuMSUsICMzMzhmNjEgMTAwJSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgIC1vLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0ZGRkZGRiwgI0ZGRkZGRiA1MCUsICMzMzhmNjEgNTAuMSUsICMzMzhmNjEgMTAwJSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0ZGRkZGRiwgI0ZGRkZGRiA1MCUsICMzMzhmNjEgNTAuMSUsICMzMzhmNjEgMTAwJSk7XHJcbiAgICAgICAgICBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNGRkZGRkYnLGVuZENvbG9yc3RyPScjMzM4ZjYxMzM4ZjYxJywgR3JhZGllbnRUeXBlPTApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5waWthLXNlbGVjdGVkRW5kRGF5Q29udGFpbmVye1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMzOGY2MSwgIzMzOGY2MSA1MCUsICNGRkZGRkYgNTAuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAtbW96LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMzOGY2MSwgIzMzOGY2MSA1MCUsICNGRkZGRkYgNTAuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgLW1zLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMzOGY2MSwgIzMzOGY2MSA1MCUsICNGRkZGRkYgNTAuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgIC1vLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMzOGY2MSwgIzMzOGY2MSA1MCUsICNGRkZGRkYgNTAuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMzOGY2MSwgIzMzOGY2MSA1MCUsICNGRkZGRkYgNTAuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgICBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyMzMzhmNjEnLGVuZENvbG9yc3RyPScjRkZGRkZGJywgR3JhZGllbnRUeXBlPTApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5waWthLXJhbmdlU3RhcnRDb250YWluZXIucGlrYS1zZWxlY3RlZERheUNvbnRhaW5lcntcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjYTBjODc4IDUwLjElLCAjYTBjODc4IDEwMCUpO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgLW1vei1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjYTBjODc4IDUwLjElLCAjYTBjODc4IDEwMCUpO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgIC1tcy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjYTBjODc4IDUwLjElLCAjYTBjODc4IDEwMCUpO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAtby1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjYTBjODc4IDUwLjElLCAjYTBjODc4IDEwMCUpO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGRkZGRkYsICNGRkZGRkYgNTAlLCAjYTBjODc4IDUwLjElLCAjYTBjODc4IDEwMCUpO1xyXG4gICAgICAgICAgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjRkZGRkZGJyxlbmRDb2xvcnN0cj0nI2EwYzg3OCcsIEdyYWRpZW50VHlwZT0wKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYucGlrYS1yYW5nZUVuZENvbnRhaW5lcjpub3QoLnBpa2Etc2VsZWN0ZWREYXlDb250YWluZXIpe1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2EwYzg3OCwgI2EwYzg3OCA1MCUsICNGRkZGRkYgNTAuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAtbW96LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2EwYzg3OCwgI2EwYzg3OCA1MCUsICNGRkZGRkYgNTAuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgLW1zLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2EwYzg3OCwgI2EwYzg3OCA1MCUsICNGRkZGRkYgNTAuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgIC1vLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2EwYzg3OCwgI2EwYzg3OCA1MCUsICNGRkZGRkYgNTAuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2EwYzg3OCwgI2EwYzg3OCA1MCUsICNGRkZGRkYgNTAuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgICBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyM2NUIzMkUnLGVuZENvbG9yc3RyPScjRkZGRkZGJywgR3JhZGllbnRUeXBlPTApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnBpa2EtZHVyYXRpb257XHJcblxyXG4gICAgICAgICAgJkVuZERheXtcclxuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmU2VsZWN0ZWREYXl7XHJcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ3JlZW5MaWdodENvbG9yKSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnBpa2EtZHVyYXRpb257XHJcbiAgICAgICAgICAmSGlnaGxpZ2h0e1xyXG4gICAgICAgICAgICAmOm5vdCgucGlrYS1kdXJhdGlvblNlbGVjdGVkRGF5Q29udGFpbmVyKTpub3QoLnBpa2EtZHVyYXRpb25FbmREYXlDb250YWluZXIpe1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNhMGM4NzggIWltcG9ydGFudDsvKmxlcyB0ZCBlbiBoaWdodGxpZ2h0IHNvbnQgc3VyIGZvbmQgdmVydCBjbGFpciovXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5waWthLWJ1dHRvbjpub3QoLnBpa2Etc2VsZWN0ZWREYXkpOm5vdCgucGlrYS1kdXJhdGlvbkVuZERheSl7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDpub25lO1xyXG4gICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5pcy1kaXNhYmxlZCAucGlrYS1idXR0b24ucGlrYS1kYXk6bm90KC5waWthLXNlbGVjdGVkRW5kRGF5KTpub3QoLnBpa2Etc2VsZWN0ZWREYXkpOm5vdCgucGlrYS1oaWdobGlnaHQpOm5vdCgucGlrYS1zZWxlY3RlZFJhbmdlKTpub3QoLnBpa2EtcmFuZ2VFbmQpe1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6bm9uZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5waWthLWR1cmF0aW9uU2VsZWN0ZWREYXlDb250YWluZXJ7XHJcblxyXG4gICAgICAgICAgICAgICY6bm90KC5waWthLXNlbGVjdGVkUmFuZ2VDb250YWluZXIpe1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlIDAgMCA1MCU7Lyogc2V1bGUgbGEgcGFydGllIGRyb2l0ZSBlc3QgZW4gZm9uZCB2ZXJ0IGNsYWlyKi9cclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNhMGM4NzggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICYucGlrYS1zZWxlY3RlZERheUNvbnRhaW5lcntcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAwIDAgNTAlOy8qIHNldWxlIGxhIHBhcnRpZSBkcm9pdGUgZXN0IGVuIGZvbmQgdmVydCBjbGFpciovXHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjYTBjODc4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAmLnBpa2Etc2VsZWN0ZWRSYW5nZUNvbnRhaW5lcjpub3QoLnBpa2Etc2VsZWN0ZWREYXlDb250YWluZXIpe1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMzOGY2MSwgIzMzOGY2MSA1MCUsICNhMGM4NzggNTAuMSUsICNhMGM4NzggMTAwJSk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAtbW96LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMzOGY2MSwgIzMzOGY2MSA1MCUsICNhMGM4NzggNTAuMSUsICNhMGM4NzggMTAwJSk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgLW1zLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMzOGY2MSwgIzMzOGY2MSA1MCUsICNhMGM4NzggNTAuMSUsICNhMGM4NzggMTAwJSk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgIC1vLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMzOGY2MSwgIzMzOGY2MSA1MCUsICNhMGM4NzggNTAuMSUsICNhMGM4NzggMTAwJSk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMzOGY2MSwgIzMzOGY2MSA1MCUsICNhMGM4NzggNTAuMSUsICNhMGM4NzggMTAwJSk7XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyMzMzhmNjEnLGVuZENvbG9yc3RyPScjYTBjODc4JywgR3JhZGllbnRUeXBlPTApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpub3QoLnBpa2EtZHVyYXRpb25TZWxlY3RlZERheUNvbnRhaW5lcikgLnBpa2EtYnV0dG9uLnBpa2Etc2VsZWN0ZWREYXl7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2EwYzg3ODtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5waWthLXNlbGVjdGVkRGF5Q29udGFpbmVyLnBpa2EtcmFuZ2VTdGFydENvbnRhaW5lciAucGlrYS1idXR0b24ucGlrYS1zZWxlY3RlZERheSwgJi5waWthLXNlbGVjdGVkRGF5Q29udGFpbmVyLnBpa2EtZHVyYXRpb25TZWxlY3RlZERheUNvbnRhaW5lciAucGlrYS1idXR0b24ucGlrYS1zZWxlY3RlZERheXtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhCMTNFOy8qIGJvdXRvbiBzdXIgZm9uZCB2ZXJ0IG3DqWRpYW4gKi9cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5waWthLXNlbGVjdGVkRGF5Q29udGFpbmVyLnBpa2EtcmFuZ2VTdGFydENvbnRhaW5lciAucGlrYS1idXR0b24ucGlrYS1zZWxlY3RlZERheXtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmVlbik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgJi5waWthLWR1cmF0aW9uRW5kRGF5Q29udGFpbmVye1xyXG4gICAgICAgICAgICAgICY6bm90KC5waWthLXNlbGVjdGVkUmFuZ2VDb250YWluZXIpe1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCA1MCUgNTAlIDA7Lyogc2V1bGUgbGEgcGFydGllIGdhdWNoZSBlc3QgZW4gZm9uZCB2ZXJ0IGNsYWlyKi9cclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMGM4Nzg7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAmLnBpa2Etc2VsZWN0ZWRSYW5nZUNvbnRhaW5lcjpub3QoLnBpa2Etc2VsZWN0ZWRFbmREYXlDb250YWluZXIpe1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EwYzg3ODtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjYTBjODc4LCAjYTBjODc4IDUwJSwgIzMzOGY2MSA1MC4xJSwgIzMzOGY2MSAxMDAlKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgIC1tb3otbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjYTBjODc4LCAjYTBjODc4IDUwJSwgIzMzOGY2MSA1MC4xJSwgIzMzOGY2MSAxMDAlKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAtbXMtbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjYTBjODc4LCAjYTBjODc4IDUwJSwgIzMzOGY2MSA1MC4xJSwgIzMzOGY2MSAxMDAlKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgLW8tbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjYTBjODc4LCAjYTBjODc4IDUwJSwgIzMzOGY2MSA1MC4xJSwgIzMzOGY2MSAxMDAlKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjYTBjODc4LCAjYTBjODc4IDUwJSwgIzMzOGY2MSA1MC4xJSwgIzMzOGY2MSAxMDAlKTtcclxuICAgICAgICAgICAgICAgIGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzY1QjMyRScsZW5kQ29sb3JzdHI9JyMzMzhmNjEnLCBHcmFkaWVudFR5cGU9MCk7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAmLnBpa2Etc2VsZWN0ZWRFbmREYXlDb250YWluZXJ7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTBjODc4O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNhMGM4NzgsICNhMGM4NzggNTAlLCAjZmZmZmZmIDUwLjElLCAjZmZmZmZmIDEwMCUpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgLW1vei1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNhMGM4NzgsICNhMGM4NzggNTAlLCAjZmZmZmZmIDUwLjElLCAjZmZmZmZmIDEwMCUpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgIC1tcy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNhMGM4NzgsICNhMGM4NzggNTAlLCAjZmZmZmZmIDUwLjElLCAjZmZmZmZmIDEwMCUpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAtby1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNhMGM4NzgsICNhMGM4NzggNTAlLCAjZmZmZmZmIDUwLjElLCAjZmZmZmZmIDEwMCUpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNhMGM4NzgsICNhMGM4NzggNTAlLCAjZmZmZmZmIDUwLjElLCAjZmZmZmZmIDEwMCUpO1xyXG4gICAgICAgICAgICAgICAgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjNjVCMzJFJyxlbmRDb2xvcnN0cj0nI2ZmZmZmZicsIEdyYWRpZW50VHlwZT0wKTtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIC5waWthLWJ1dHRvbi5waWthLWR1cmF0aW9uRW5kRGF5e1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JlZW5MaWdodENvbG9yKTsvKiBib3V0b24gc3VyIGZvbmQgdmVydCBtw6lkaWFuICovXHJcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZWFyY2hGb3JtLWR1cmF0aW9ue1xyXG5cclxuICAgICZDb250YWluZXJ7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgcGFkZGluZzogcmVtKDEwKSAwO1xyXG5cclxuICAgICAgQG1lZGlhKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICBwYWRkaW5nOiByZW0oMjApIHJlbSgyMCkgMDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJkxhYmVse1xyXG4gICAgICBsaW5lLWhlaWdodDogcmVtKDE0KTtcclxuICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcGFkZGluZy10b3A6IHJlbSg1KTtcclxuXHJcbiAgICAgICYtLW1haW57XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEoLS1tcS1taW5UYWJsZXQpe1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi0tbWFpbntcclxuICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgICAgICAgQG1lZGlhKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZMaXN0Q29udGFpbmVye1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcblxyXG4gICAgICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAyMHB4KTtcclxuICAgICAgICBwYWRkaW5nOiByZW0oNSkgMCByZW0oMjApO1xyXG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XHJcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJkxpc3R7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuXHJcbiAgICAgIEBtZWRpYSgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgaGVpZ2h0OiByZW0oMzIpO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgyMCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxpe1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgICAgICAgQG1lZGlhKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICAgICY6Zmlyc3QtY2hpbGQgLnNlYXJjaEZvcm0tZHVyYXRpb25CdXR0b257XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZCdXR0b257XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzMCk7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdyZXlNZWRpdW0pO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiByZW0oMjApO1xyXG4gICAgICBtYXJnaW4tbGVmdDogcmVtKDEwKTtcclxuICAgICAgbWluLXdpZHRoOiByZW0oMzcpO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIHBhZGRpbmc6IDAgcmVtKDUpO1xyXG4gICAgICBmb250LXNpemU6IHJlbSgxMik7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ3JlZW5MaWdodENvbG9yKTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tZ3JlZW5MaWdodENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAmSXRlbXtcclxuICAgICAgJi5zZWxlY3RlZCAuc2VhcmNoRm9ybS1kdXJhdGlvbkJ1dHRvbntcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JlZW4pO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdyZWVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZVbmlre1xyXG4gICAgICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuIiwiQGltcG9ydCBcIi4uLy4uLy4uL2NvbXBvbmVudHMvYnV0dG9uL19pbmRleC5jc3NcIjtcclxuQGltcG9ydCBcIi4uLy4uLy4uL2ZhY2V0dGUvdmlld3MvZHVyYXRpb24uY3NzXCI7XHJcblxyXG4vKioqIGNvbW1vbiBkaXNwbGF5ICoqKi9cclxuLnNlYXJjaEZvcm0tZ2xvYmFsSW5wdXRDb250YWluZXIgKnsvKiBwdXQgdGhpcyBpbnN0cnVjdGlvbiBmaXJzdCwgdG8gbGV0IGVhY2ggc3BlY2lmaWNhdGlvbiBvdmVyd3JpdGUgaXQqL1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG4uc2VhcmNoRm9ybSB7XHJcbiAgbGluZS1oZWlnaHQ6IHJlbSg2MCk7XHJcbiAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgZm9udC1zaXplOiAwO1xyXG5cclxuICAmLWNsb3NlQnRuIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiByZW0oMyk7XHJcbiAgICByaWdodDogcmVtKDcpO1xyXG4gICAgZm9udC1zaXplOiByZW0oMTApO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgei1pbmRleDogY2FsYyh2YXIoLS16SW5kZXgtLXNlYXJjaENvbnRlbnQpICsgNSk7XHJcblxyXG4gICAgLmNwZS1JY29uLS1jbG9zZSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtY2FwYWNpdHlOYiB7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIGxpbmUtaGVpZ2h0OiByZW0oMjApO1xyXG4gICAgbWFyZ2luLXRvcDogcmVtKC00KTtcclxuICB9XHJcblxyXG4gIEBtZWRpYSAoLS1tcS1taW5UYWJsZXQpe1xyXG4gICAgaGVpZ2h0IDogcmVtKDYwKTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGJvcmRlci1yYWRpdXMgOiByZW0oOCk7XHJcbiAgICB3aWR0aCA6IGF1dG87XHJcbiAgICBtYXJnaW4gOiAwIGF1dG87XHJcbiAgICBib3gtc2hhZG93OiAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcclxuICB9XHJcblxyXG4gIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgd2lkdGggOiA5NiU7XHJcbiAgfVxyXG5cclxuICAmLWdsb2JhbElucHV0Q29udGFpbmVye1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgIGhlaWdodDogOTAlO1xyXG4gICAgICB3aWR0aCA6IDEwMCU7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLW1pblRhYmxldCl7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBoZWlnaHQ6IHJlbSg2MCk7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgIHdpZHRoIDogMTAwJTtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcclxuICAgICAgd2lkdGggOiByZW0oODE2KTtcclxuXHJcbiAgICAgICYud2lkdGhTZWFyY2hGb3JtLWNvdW50cnlTaXRle1xyXG4gICAgICAgIHdpZHRoIDogcmVtKDExMDApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKioqIGdlbmVyaWMgZWxlbWVudHMgKioqL1xyXG4gICYtY29udGFpbmVye1xyXG4gICAgZGlzcGxheTpibG9jaztcclxuICAgIHdpZHRoOjEwMCU7XHJcbiAgICBtYXJnaW46MCBhdXRvO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcclxuICAgICAgYm90dG9tOiByZW0oNjUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICBmb250LXNpemU6IHJlbSgxNCk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgfVxyXG5cclxuICAmLWJsb2Nre1xyXG4gICAgcGFkZGluZyA6IDAgcmVtKDEwKTtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgcGFkZGluZyA6IDAgcmVtKDUpO1xyXG4gICAgfVxyXG5cclxuICAgICY6bGFzdC1jaGlsZHtcclxuICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtaW5wdXRDb250YWluZXIub3BlbmVkOmJlZm9yZXtcclxuICAgIEBtZWRpYSAoLS1tcS1taW5UYWJsZXQpe1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBib3JkZXItd2lkdGg6IDBweCAxMnB4IDEycHggMTJweDtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgICAgYm9yZGVyLWNvbG9yIDogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgd2hpdGUgdHJhbnNwYXJlbnQ7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tIDogcmVtKC0xMik7XHJcbiAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgbWFyZ2luLWxlZnQ6cmVtKC0xMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLWRhdGF7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG4gIH1cclxuXHJcbiAgJi1kYXRhT3BlbmVye1xyXG4gICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICBib3JkZXItd2lkdGg6IDA7XHJcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tYWluRm9udCk7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICBwYWRkaW5nOiAwJSAzLjc1JTtcclxuICAgICAgdmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG4gICAgICB3aWR0aDoxMDAlO1xyXG4gICAgICBoZWlnaHQ6MTAwJTtcclxuICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1taW5UYWJsZXQpe1xyXG4gICAgICBwYWRkaW5nOiByZW0oMTApIHJlbSgxNikgcmVtKDEwKSByZW0oMTApO1xyXG4gICAgICBsaW5lLWhlaWdodDogcmVtKDQwKTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGhlaWdodDogcmVtKDYwKTtcclxuICAgICAgZm9udC1zaXplOiB2YXIoLS1tYWluRm9udFNpemUpO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICYub3BlbmVke1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG5cclxuICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpbnB1dHtcclxuICAgICAgICBmb250LXNpemU6IHZhcigtLW1haW5Gb250U2l6ZSk7XHJcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XHJcbiAgICAgICAgei1pbmRleDogY2FsYyh2YXIoLS16SW5kZXgtLXNlYXJjaCkgKyAyKTtcclxuICAgICAgICB3aWR0aDogcmVtKDEyMCk7XHJcbiAgICAgICAgaGVpZ2h0OnJlbSgyMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIHNwZWNpZmljYXRpb24gc2Vsb24gdGFnIGRhdGFPcGVuZXIgKi9cclxuICBhLnNlYXJjaEZvcm0tZGF0YU9wZW5lcntcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcblxyXG4gICAgJi5vcGVuZWQ6YmVmb3Jle1xyXG4gICAgICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGJvcmRlci13aWR0aDogMHB4IDEwcHggMTBweCAxMHB4O1xyXG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yIDogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgd2hpdGUgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGJvdHRvbSA6IC0xMHB4O1xyXG4gICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICBtYXJnaW4tbGVmdDotMTBweDtcclxuICAgICAgICB6LWluZGV4OiBjYWxjKHZhcigtLXpJbmRleC0tc2VhcmNoQ29udGVudCkgKyAxMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnNlYXJjaEZvcm0tcGFya1NlbGVjdG9yLm9wZW5lZDpiZWZvcmV7XHJcbiAgICAgIEBtZWRpYSAoLS1tcS1taW5UYWJsZXQpe1xyXG4gICAgICAgIGJvcmRlci1jb2xvciA6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWdyZXlNb3VzZUNvbG9yKSB0cmFuc3BhcmVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5wdXQuc2VhcmNoRm9ybS1kYXRhT3BlbmVye1xyXG4gICAgYm9yZGVyLXdpZHRoOiAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcclxuICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG5cclxuICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgd2lkdGggOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDIzKTtcclxuICAgICAgcG9zaXRpb246YWJzb2x1dGU7XHJcbiAgICAgIHRvcDowO1xyXG4gICAgICBsZWZ0OjA7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0IDogcmVtKDEzKTtcclxuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB9XHJcblxyXG4gICAgJi5kaXNhYmxlZHtcclxuICAgICAgY29sb3I6IHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgICAgIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgIH1cclxuICAgICAgOjotbW96LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgICAgfVxyXG4gICAgICA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICAgICAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgICAgfVxyXG4gICAgICA6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQG1lZGlhICgtLW1xLW1pblRhYmxldCkge1xyXG4gICAgLnNlYXJjaEZvcm0tZGF0ZUNvbnRhaW5lciB7XHJcbiAgICAgICYuZGlydHkge1xyXG4gICAgICAgIGlucHV0LnNlYXJjaEZvcm0tZGF0YU9wZW5lciB7XHJcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBjbGlwO1xyXG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJjpub3QoLmRpcnR5KSB7XHJcbiAgICAgICAgaW5wdXQuc2VhcmNoRm9ybS1kYXRhT3BlbmVyIHtcclxuICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAub3BlbmVkLnNlYXJjaEZvcm0taW5wdXRDb250YWluZXIgLnNlYXJjaEZvcm0tZGF0YU9wZW5lcntcclxuICAgIEBtZWRpYSAoLS1tcS1taW5UYWJsZXQpe1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1xyXG4gICAgICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtaW5wdXRDb250YWluZXJ7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xyXG4gICAgICBoZWlnaHQ6IHJlbSg0MCk7XHJcbiAgICB9XHJcblxyXG4gICAgJjphZnRlcntcclxuICAgICAgcG9zaXRpb246YWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0IDogMTBweDtcclxuICAgICAgei1pbmRleDogY2FsYyh2YXIoLS16SW5kZXgtLXNlYXJjaCkgKyAxKTtcclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcclxuICAgICAgICBtYXJnaW4tdG9wOnJlbSgtMjIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqKiBnZW5lcmljIHN1YiBlbGVtZW50cyAqKiovXHJcbiAgJi1kYXRhTGlzdHtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgLnNlYXJjaEZvcm0tb3B0aW9uc0xpc3R7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmNoZWNrYm94LXNlbGVjdEFsbHtcclxuICAgICAgICBmb250LXN0eWxlIDogaXRhbGljO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLW1pblRhYmxldCl7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5TW91c2VDb2xvcik7XHJcbiAgICAgIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1zZWFyY2hDb250ZW50KSk7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSg4KTtcclxuXHJcbiAgICAgIGF7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtZGF0YUxpc3RDb250YWluZXJ7XHJcbiAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICB6LWluZGV4OiBjYWxjKHZhcigtLXpJbmRleC0tc2VhcmNoQ29udGVudCkgKyAxKTtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgcG9zaXRpb246c3RhdGljO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5TGlnaHRlckNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAvKkBtZWRpYSAoLS1tcS1taW5UYWJsZXQpe1xyXG4gICAgICAmOmJlZm9yZXtcclxuICAgICAgICBjb250ZW50OlwiXCI7XHJcbiAgICAgICAgZGlzcGxheTpibG9jaztcclxuICAgICAgICBwb3NpdGlvbjpmaXhlZDtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB3aWR0aDoxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB6LWluZGV4OiBjYWxjKHZhcigtLXpJbmRleC0tc2VhcmNoQ29udGVudCkgLSAxKTtcclxuICAgICAgfVxyXG4gICAgfSovXHJcblxyXG4gICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiByZW0oLTUpO1xyXG5cclxuICAgICAgJi5qcy1jb3VudHJ5OmFmdGVye1xyXG4gICAgICAgIGxlZnQ6MTUlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc2VhcmNoRm9ybS1saXN0Q29udGFpbmVye1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOjAuNGVtO1xyXG4gICAgICB9XHJcbiAgICAgIC5zZWFyY2hGb3JtLWxpc3RDb250YWluZXI6bGFzdC1jaGlsZHtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTowO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xyXG4gICAgICB3aWR0aCA6IHJlbSg4MTYpO1xyXG5cclxuICAgICAgJi5qcy1jb3VudHJ5OmFmdGVye1xyXG4gICAgICAgIGxlZnQ6cmVtKDcwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqKiBjb3VudHJ5L3BhcmsgZWxlbWVudHMgKioqL1xyXG4gICYtcGFya1NlbGVjdENvbnRhaW5lcntcclxuICAgIHBhZGRpbmcgOiAwIHJlbSgxMCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIGhlaWdodDogcmVtKDYwKTtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgLmZvcm0tbGFiZWx7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOm5vdCgub3BlbmVkKXsvKiBoYW5kbGluZyBob3ZlciB6b25lIGJ1ZyBvbiBjaHJvbWUgKi9cclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIH1cclxuXHJcbiAgICAuc2VhcmNoRm9ybS1kYXRhTGlzdENvbnRhaW5lcntcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBwYWRkaW5nLXRvcCA6IHJlbSgxMCk7XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XHJcbiAgICAgICAgd2lkdGggOiByZW0oMTEwMCk7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgtMTApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICBtYXJnaW4tbGVmdDowO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm9wZW5lZCwgJjpob3ZlcntcclxuICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHZhcigtLWdyZWVuTGlnaHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLW1pblRhYmxldCl7XHJcbiAgICAgIHdpZHRoIDogMjYlO1xyXG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiByZW0oNSkgMCAwIHJlbSg1KTtcclxuICAgIH1cclxuXHJcbiAgICBhLnNlYXJjaEZvcm0tcGFya1NlbGVjdG9ye1xyXG5cclxuICAgICAgJi5vcGVuZWQsICY6aG92ZXJ7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWdyZWVuTGlnaHRDb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zZWFyY2hGb3JtLWRhdGF7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuY3BlLUljb24uYXJyb3d7XHJcbiAgICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgICB0b3A6IHJlbSgxNSk7XHJcbiAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlYXJjaEZvcm0tbGlzdENvbnRhaW5lcntcclxuICAgICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAgICYudS1kaXNhYmxlZHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG5cclxuICAgICAgICBhLCBzcGFue1xyXG4gICAgICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi1jb3VudHJ5e1xyXG4gICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1taW5UYWJsZXQpe1xyXG4gICAgICB3aWR0aDogMjUlO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTApO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tZ3JleVBlYXJsQ29sb3IpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiByZW0oMTApO1xyXG4gICAgfVxyXG5cclxuICAgICZTZWxlY3RvcntcclxuICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgtMTApO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtLWNoZWNrYm94Q29udGFpbmVye1xyXG4gICAgICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgyMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmTGlzdHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleU1vdXNlQ29sb3IpO1xyXG4gICAgICBwYWRkaW5nIDogcmVtKDE1KTtcclxuXHJcbiAgICAgIC5jb3VudHJ5TWFwLWNvbnRhaW5lcntcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgcmlnaHQ6MDtcclxuICAgICAgICB0b3A6MDtcclxuICAgICAgICB3aWR0aDogMzMlO1xyXG5cclxuICAgICAgICBwaWN0dXJle1xyXG4gICAgICAgICAgZGlzcGxheTpibG9jaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDE0OHB4KTtcclxuICAgICAgICBvdmVyZmxvdy15OmF1dG87XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmT3B0aW9uc0xpc3R7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgcGFkZGluZyA6IHJlbSgyMCkgcmVtKDQwKSByZW0oMjApIDI1JTtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRURFREVELCAjRURFREVEIDI1JSwgI0ZGRkZGRiAyNS4xJSwgI0ZGRkZGRiAxMDAlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAtbW96LWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0VERURFRCwgI0VERURFRCAyNSUsICNGRkZGRkYgMjUuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgIC1tcy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNFREVERUQsICNFREVERUQgMjUlLCAjRkZGRkZGIDI1LjElLCAjRkZGRkZGIDEwMCUpO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgLW8tbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRURFREVELCAjRURFREVEIDI1JSwgI0ZGRkZGRiAyNS4xJSwgI0ZGRkZGRiAxMDAlKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0VERURFRCwgI0VERURFRCAyNSUsICNGRkZGRkYgMjUuMSUsICNGRkZGRkYgMTAwJSk7XHJcbiAgICAgICAgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjRURFREVEJyxlbmRDb2xvcnN0cj0nI0ZGRkZGRicsIEdyYWRpZW50VHlwZT0wKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oOCk7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDJweCA3cHggcmdiYSgwLDAsMCwuMik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIHBhZGRpbmc6IHJlbSgxMCkgcmVtKDgpIHJlbSgwKSByZW0oOCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxpe1xyXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICAgICAgXHJcbiAgICAgICAgQG1lZGlhKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZm9ybS1jaGVja2JveCB7XHJcbiAgICAgICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZNYXAtY29udGFpbmVye1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgJlF1YW50aXR5e1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHBhZGRpbmcgOiByZW0oMik7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmVlbik7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDEwKTtcclxuICAgICAgdGV4dC1hbGlnbiA6IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IHJlbSgyMCk7XHJcbiAgICAgIGhlaWdodDogcmVtKDIwKTtcclxuICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxNik7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiByZW0oNCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIGNvdW50cnkgc3BlY2lmaWNhdGlvbiAqKi9cclxuICAgIC8qIGFkanVzdGluZyBtYXAgcG9zaXRpb24sIHJlbGF0aXZlIHRvIGRldmljZSAqL1xyXG4gICAgJl9GUntcclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcclxuXHJcbiAgICAgICAgLmNvdW50cnlNYXAtY29udGFpbmVyIHtcclxuICAgICAgICAgIHdpZHRoIDogMzMlO1xyXG5cclxuICAgICAgICAgIHBpY3R1cmV7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgtMjApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlYXJjaEZvcm0tcmVmZXJlbmNlUGlue1xyXG4gICAgICAgICAgdG9wOiA0MiU7XHJcbiAgICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEoLS1tcS10YWJsZXQpe1xyXG4gICAgICAgIC5jb3VudHJ5TWFwLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICB3aWR0aCA6IDM1JTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWFyY2hGb3JtLXJlZmVyZW5jZVBpbntcclxuICAgICAgICAgIHRvcDogNDIlO1xyXG4gICAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhKG1heC13aWR0aDogODAwcHgpe1xyXG4gICAgICAgIC5jb3VudHJ5TWFwLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMjApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfREV7XHJcblxyXG4gICAgICAuc2VhcmNoRm9ybS1yZWZlcmVuY2VQaW57XHJcbiAgICAgICAgdG9wOiAzMC41JTtcclxuICAgICAgICBsZWZ0OiA2NyU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcclxuICAgICAgICBoZWlnaHQ6IHJlbSgzMDApO1xyXG5cclxuICAgICAgICAuY291bnRyeU1hcC1jb250YWluZXIge1xyXG4gICAgICAgICAgd2lkdGggOiAzMyU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgICAgaGVpZ2h0OiByZW0oMzAwKTtcclxuXHJcbiAgICAgICAgLmNvdW50cnlNYXAtY29udGFpbmVyIHtcclxuICAgICAgICAgIHdpZHRoIDogMzglO1xyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICAgQG1lZGlhKG1heC13aWR0aDogODAwcHgpe1xyXG4gICAgICAgIC5jb3VudHJ5TWFwLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMjApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfQkV7XHJcblxyXG4gICAgICAuc2VhcmNoRm9ybS1yZWZlcmVuY2VQaW57XHJcbiAgICAgICAgdG9wOiAzNCU7XHJcbiAgICAgICAgbGVmdDogNDAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgIGhlaWdodDogcmVtKDI5MCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5jb3VudHJ5TWFwLWNvbnRhaW5lciB7XHJcbiAgICAgICAgd2lkdGggOiAzNCU7XHJcblxyXG4gICAgICAgIHBpY3R1cmV7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oLTEwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYShtYXgtd2lkdGg6IDgwMHB4KXtcclxuICAgICAgICAuY291bnRyeU1hcC1jb250YWluZXIge1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDIwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgJl9OTHtcclxuXHJcbiAgICAgIC5zZWFyY2hGb3JtLXJlZmVyZW5jZVBpbntcclxuICAgICAgICB0b3A6IDQ0LjUlO1xyXG4gICAgICAgIGxlZnQ6IDQxJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgI3Bpbl9zaXRlX0xIe1xyXG4gICAgICAgIG1hcmdpbi10b3AgOiAtMzBweDtcclxuICAgICAgICBtYXJnaW4tbGVmdCA6IC05cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcclxuICAgICAgICBtaW4taGVpZ2h0OiByZW0oMzY1KTtcclxuXHJcbiAgICAgICAgLmNvdW50cnlNYXAtY29udGFpbmVye1xyXG4gICAgICAgICAgd2lkdGggOiA0MCU7XHJcblxyXG4gICAgICAgICAgaW1ne1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDoxMCU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuXHJcbiAgICAgICAgLmNvdW50cnlNYXAtY29udGFpbmVye1xyXG4gICAgICAgICAgd2lkdGggOiA0MCU7XHJcblxyXG4gICAgICAgICAgcGljdHVyZXtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKC0xMCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaW1ne1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDoxMCU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEobWF4LXdpZHRoOiA4MDBweCl7XHJcbiAgICAgICAgLmNvdW50cnlNYXAtY29udGFpbmVyIHtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSg2NSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlYXJjaEZvcm0tbGlzdEhlYWRlci5vcGVuZWQgLmNwZS1JY29uLS1hcnJvdzpiZWZvcmV7XHJcbiAgICAgIEBleHRlbmQgLmNwZS1JY29uLS1hcnJvdy10b3A6YmVmb3JlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi1zaXRlUGlue1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgY29sb3I6ICM4NmEwNmI7XHJcbiAgICBmb250LXNpemU6IHJlbSgzMCk7XHJcbiAgICBtYXJnaW46IHJlbSgtMzcpIDAgMCByZW0oLTEzKTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1zZWFyY2gpICsgMik7XHJcbiAgICBoZWlnaHQ6IHJlbSgzNik7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgICY6YmVmb3Jle1xyXG4gICAgICB3aWR0aDogcmVtKDI3KTtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgICYuY2hlY2tlZHtcclxuICAgICAgY29sb3IgOiB2YXIoLS1ncmVlbik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciwgJi5ob3ZlcntcclxuICAgICAgY29sb3I6IHZhcigtLWdyZWVuKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtcmVmZXJlbmNlUGlue1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICBmb250LXNpemU6IHJlbSgxMyk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBsaW5lLWhlaWdodDogMWVtO1xyXG5cclxuICAgICY6YmVmb3Jle1xyXG4gICAgICBjb250ZW50Olwi4oCiXCI7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDIwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGEuc2VhcmNoRm9ybS1saXN0SGVhZGVye1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgLmNwZS1JY29ue1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0OiByZW0oMjMpO1xyXG4gICAgICB0b3A6IHJlbSg0KTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgbWFyZ2luOiByZW0oMikgMDtcclxuICAgICAgcGFkZGluZy1sZWZ0IDogcmVtKDE3KTtcclxuICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDE0KSAwIDAgcmVtKDE0KTtcclxuICAgICAgbGluZS1oZWlnaHQ6IHJlbSg0MCk7XHJcbiAgICAgIGhlaWdodDogcmVtKDQwKTtcclxuICAgICAgei1pbmRleDogY2FsYyh2YXIoLS16SW5kZXgtLXNlYXJjaENvbnRlbnQpICsgMSk7XHJcblxyXG4gICAgICAmLm9wZW5lZHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBjb2xvcjogZ3JlZW47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleVBlYXJsQ29sb3IpO1xyXG4gICAgICBwYWRkaW5nOiByZW0oNCkgcmVtKDE1KTtcclxuICAgICAgZm9udC1zaXplOiByZW0oMTYpOyBcclxuXHJcbiAgICAgIC5jcGUtSWNvbntcclxuICAgICAgICB3aWR0aDogcmVtKDE0KTtcclxuICAgICAgICByaWdodDogcmVtKDI1KTtcclxuICAgICAgICBmb250LXNpemU6IHJlbSg4KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqKiBkYXRlIGVsZW1lbnRzICoqKi9cclxuICAmLWdsb2JhbERhdGVDb250YWluZXJ7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmb250LXNpemU6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHJlbSg1KSAwIDAgcmVtKDUpO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuICAgICAgaGVpZ2h0OiByZW0oNjApO1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICBwYWRkaW5nIDogMDtcclxuICAgICAgd2lkdGg6IDUwJTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XHJcbiAgICAgIHdpZHRoIDogNDUlO1xyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIC5waWthe1xyXG4gICAgICAmLXJlc2V0IHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICByaWdodDogcmVtKDIwKTtcclxuICAgICAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgICAgIHJpZ2h0OiByZW0oMTUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAuY3BlLUljb24ge1xyXG4gICAgICAgICAgZm9udC1zaXplOiByZW0oMTApO1xyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLnZpc2libGUge1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY3BlLUljb24tLWFycm93MntcclxuICAgICAgcG9zaXRpb246IHN0YXRpYztcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB6LWluZGV4OiBjYWxjKHZhcigtLXpJbmRleC0tc2VhcmNoKSArIDQpO1xyXG4gICAgICBmb250LXNpemU6IHJlbSgxMyk7XHJcbiAgICAgIHdpZHRoOiByZW0oMjApO1xyXG4gICAgICBoZWlnaHQ6IHJlbSg2MCk7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gICAgICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgICBtYXJnaW46IDAgcmVtKDUpO1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcclxuICAgICAgICAgIG1hcmdpbjogMCByZW0oOS41KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNDApO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gICAgICAgIGhlaWdodDogcmVtKDQwKTtcclxuICAgICAgICBtYXJnaW4tdG9wOiByZW0oLTgpO1xyXG4gICAgICAgIHdpZHRoOiA4JTtcclxuICAgICAgICAmOmJlZm9yZXtcclxuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmRhdGUtY29udGFpbmVye1xyXG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbiAgICAgICY6bm90KC5vcGVuZWQpe1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1taW5UYWJsZXQpIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgaGVpZ2h0OiByZW0oNjApO1xyXG4gICAgICAgIC5zZWFyY2hGb3JtLWRhdGFPcGVuZXJ7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIwKTtcclxuICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgLnNlYXJjaEZvcm0tZGF0YU9wZW5lcjpub3QoLmRpc2FibGVkKXtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDQpIHNvbGlkIHZhcigtLWdyZWVuTGlnaHRDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDE2KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuc2VhcmNoRm9ybS1kYXlMYWJlbHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWdyZWVuTGlnaHRDb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtdGFibGV0KSB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLSByZW0oOTMpKSAvIDIpO1xyXG4gICAgICAgIG1hcmdpbjogMCByZW0oMTQpO1xyXG4gICAgICAgICYuZGF0ZS1zdGFydCB7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSg1KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuZGF0ZS1lbmQge1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSg1KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWFyY2hGb3JtLWRhdGFPcGVuZXIge1xyXG4gICAgICAgICAgcGFkZGluZzogcmVtKDIwKSAwO1xyXG4gICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhICgtLW1xLWRlc2t0b3ApIHtcclxuICAgICAgICB3aWR0aDogY2FsYygoMTAwJSAtIHJlbSg2OSkpIC8gMik7XHJcbiAgICAgICAgLnNlYXJjaEZvcm0tZGF0YU9wZW5lciB7XHJcbiAgICAgICAgICBwYWRkaW5nOiByZW0oMjApIHJlbSgxOSk7XHJcblxyXG4gICAgICAgICAgJi5qcy1zZWFyY2gtZGF0ZV9iZWdpbiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSg5LjUpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYuanMtc2VhcmNoLWRhdGVfZW5kIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oOS41KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYub3BlbmVke1xyXG4gICAgICAgICYuc2VhcmNoRm9ybS1pbnB1dENvbnRhaW5lciBpbnB1dHtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IHJlbSg0KSBzb2xpZCB2YXIoLS1ncmVlbkxpZ2h0Q29sb3IpO1xyXG4gICAgICAgICAgY29sb3I6IHZhcigtLWdyZWVuTGlnaHRDb2xvcik7XHJcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDE2KTtcclxuXHJcbiAgICAgICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlVG9UYWJsZXQpe1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuc2VhcmNoRm9ybS1kYXRlQ29udGFpbmVyIHtcclxuICAgICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKSB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLnNlYXJjaEZvcm0tZGF5TGFiZWx7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICAgIC5kaXJ0eSB7XHJcblxyXG4gICAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpIHtcclxuICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBtZWRpYSAoLS1tcS1taW5UYWJsZXQpIHtcclxuICAgICAgICAgIGhlaWdodDogcmVtKDYwKTtcclxuXHJcbiAgICAgICAgICAuc2VhcmNoRm9ybS1kYXlMYWJlbCB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgbGVmdDogcmVtKDE5KTtcclxuICAgICAgICAgICAgYm90dG9tOiByZW0oMTIpO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgxNik7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMTYpO1xyXG4gICAgICAgICAgICB6LWluZGV4OiB2YXIoLS16SW5kZXgtLXNlYXJjaENvbnRlbnQpO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG4gICAgICAgICAgICAmLmpzLXNlYXJjaC1kZXBhcnR1cmVEYXkge1xyXG4gICAgICAgICAgICAgIGxlZnQ6IHJlbSg5LjUpO1xyXG4gICAgICAgICAgICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpIHtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAbWVkaWEgKC0tbXEtdGFibGV0KSB7XHJcbiAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5zZWFyY2hGb3JtLWRhdGFPcGVuZXIge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLndpZHRoU2VhcmNoRm9ybS1jb3VudHJ5U2l0ZSB7XHJcblxyXG4gICAgLnNlYXJjaEZvcm17XHJcblxyXG4gICAgICAmLWdsb2JhbERhdGVDb250YWluZXJ7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuXHJcbiAgICAgICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xyXG4gICAgICAgICAgd2lkdGggOiAzMCU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgICAgIHdpZHRoIDogMzUlO1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLWNhcGFjaXR5e1xyXG4gICAgICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcclxuICAgICAgICAgIHdpZHRoIDogMjYlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgICAgICB3aWR0aDogMjElO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi1zdWJtaXRDb250YWluZXIge1xyXG4gICAgICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICAgICAgd2lkdGg6IDE4JTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiogY2FwYWNpdHkgJiBwYXJ0aWNpcGFudHMgZWxlbWVudHMgKioqL1xyXG5cclxuICAmLWNhcGFjaXR5e1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICBoZWlnaHQ6IHJlbSg2MCk7XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xyXG4gICAgICB3aWR0aCA6IDM3JTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgd2lkdGg6IDI2JTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS1RdWFudGl0eS10b29sdGlwe1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJi5zZWFyY2hGb3JtLWJsb2NrIGEuc2VhcmNoRm9ybS1kYXRhT3BlbmVye1xyXG4gICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDQwKTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcclxuICAgICAgICBoZWlnaHQ6IHJlbSg0MCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLm9wZW5lZCwgJjpob3ZlcntcclxuICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDQpIHNvbGlkIHZhcigtLWdyZWVuTGlnaHRDb2xvcik7XHJcblxyXG4gICAgICBzcGFuLnNlYXJjaEZvcm0tY2FwYWNpdHlOYntcclxuICAgICAgICBjb2xvcjogdmFyKC0tZ3JlZW5MaWdodENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6bm90KC5vcGVuZWQpey8qIGhhbmRsaW5nIGhvdmVyIHpvbmUgYnVnIG9uIGNocm9tZSAqL1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgfVxyXG5cclxuICAgICYub3BlbmVkIC5zZWFyY2hGb3JtLWNhcGFjaXR5Q29udGFpbmVye1xyXG4gICAgICBib3gtc2hhZG93OiAwIHJlbSgyKSByZW0oNikgdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDUpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2hGb3Jte1xyXG4gICAgICAmLWNhcGFjaXR5Q29udGFpbmVye1xyXG4gICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYtY2FwYWNpdHkub3BlbmVkIC5zZWFyY2hGb3JtLWNhcGFjaXR5Q29udGFpbmVye1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgcmVtKDIpIHJlbSg2KSB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSg1KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi1jYXBhY2l0eU5ie1xyXG4gICAgICAgIEBtZWRpYSgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLXBldHNOYntcclxuICAgICAgICBAbWVkaWEoLS1tcS1taW5UYWJsZXQpe1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi1kYXRhTGlzdENvbnRhaW5lcntcclxuICAgICAgICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuXHJcbiAgICAgICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xyXG4gICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XHJcbiAgICAgICAgICBsZWZ0OiByZW0oLTUwKTtcclxuICAgICAgICAgIHRvcDogcmVtKDcwKTtcclxuICAgICAgICAgIHdpZHRoOnJlbSgzODUpO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIGxlZnQ6IHJlbSgtODApO1xyXG4gICAgICAgICAgdG9wOiByZW0oNzApO1xyXG4gICAgICAgICAgd2lkdGg6cmVtKDM3MCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2VhcmNoRm9ybS1jYXBhY2l0eUxpc3R7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICBwYWRkaW5nOiByZW0oOCkgcmVtKDE1KTtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6d2hpdGU7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oNSk7XHJcbiAgICAgICAgICB6LWluZGV4OiB2YXIoLS16SW5kZXgtLXNlYXJjaENvbnRlbnQpO1xyXG5cclxuICAgICAgICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmZvcm0tUXVhbnRpdHlDb250YWluZXJ7XHJcblxyXG4gICAgICAgICAgLmZvcm0tUXVhbnRpdHlMYWJlbHtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGVybSgxMCk7XHJcbiAgICAgICAgICAgIHB7XHJcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5mb3JtLVF1YW50aXR5U2VsZWN0b3J7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNlYXJjaEZvcm0tcXVhbnRpdHlCbG9ja3tcclxuICAgICAgICAgIHBhZGRpbmc6IHJlbSg2KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zZWFyY2hGb3JtLXF1YW50aXR5VmFsaWRhdGlvbntcclxuICAgICAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKioqIEFCVEVTVF9LSURTX0FHRVMgUkVMQVRFRCAqKiovXHJcbiAgICAgICAgLmtpZHNBZ2VzQ29udGFpbmVye1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDYpO1xyXG5cclxuICAgICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuICAgICAgICAgICAgd2lkdGg6IHJlbSgxMCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7XHJcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTApO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg1MSk7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgxMCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjNGM0YzQ7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7XHJcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTApO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMTApO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwMHB4KSBhbmQgKG1heC13aWR0aDogdmFyKC0tbW9iaWxlLW1heFdpZHRoKSl7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDQwMCk7XHJcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvKioqIC9BQlRFU1RfS0lEU19BR0VTIFJFTEFURUQgKioqL1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNwZS1JY29uLS1jb3VwbGV7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDEyLjE0KTtcclxuICAgICAgcGFkZGluZy1yaWdodDogcmVtKDMpO1xyXG4gICAgICB3aWR0aDogcmVtKDI1KTtcclxuICAgIH1cclxuXHJcbiAgICAuY3BlLUljb24uYXJyb3cudS1jcGVJY29uLS1jaGV2cm9ue1xyXG4gICAgICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICB0b3A6IHJlbSgxNSk7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKioqIGFjY29tbW9kYXRpb24gbnVtYmVyIGVsZW1lbnRzICoqKi9cclxuICAmLWFjY29tbW9kYXRpb25fbnVtYmVye1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogdmFyKC0tekluZGV4LS1zZWFyY2hDb250ZW50KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXlNb3VzZUNvbG9yKTtcclxuICAgIHBhZGRpbmcgOiAwIHJlbSgyMCk7XHJcblxyXG4gICAgLmZvcm17XHJcblxyXG4gICAgICAmLVNlbGVjdHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDUpO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg0MCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNSk7XHJcblxyXG4gICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgY29udGVudCA6IFwiXCI7XHJcbiAgICAgICAgICB3aWR0aCA6IHJlbSgxMCk7XHJcbiAgICAgICAgICBib3JkZXItY29sb3I6IGJsYWNrIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgICAgICAgIGJvcmRlci13aWR0aDogcmVtKDUpIHJlbSg1KSAwIHJlbSg1KTtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHJpZ2h0OiByZW0oMTApO1xyXG4gICAgICAgICAgdG9wIDogNTAlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi1zZWxlY3RJdGVte1xyXG4gICAgICAgIHdpZHRoOiAxMzAlO1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBwYWRkaW5nOiAwIHJlbSgxMykgMCByZW0oMjApO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cclxuICAgICAgICBvcHRpb257XHJcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBidWRnZXQgKiovXHJcbiAgJnRvdGFsUHJpY2Uge1xyXG4gICAgZm9udC1zaXplOiByZW0oMjApO1xyXG4gIH1cclxuXHJcbiAgLyoqIHN1Ym1pdCBlbGVtZW50ICoqL1xyXG4gICYtc3VibWl0Q29udGFpbmVye1xyXG5cclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLW1pblRhYmxldCl7XHJcblxyXG4gICAgICBoZWlnaHQ6IHJlbSg2MCk7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXJlZCk7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgcmVtKDgpIHJlbSg4KSAwO1xyXG4gICAgICB3aWR0aDogMTglO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAmOmhvdmVye1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXJlZFJvbGxPdmVyKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnN1Ym1pdFNlYXJjaEVuZ2luZXtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg2MCk7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZzogMCByZW0oMjApO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcclxuICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgIHdpZHRoOiAyNCU7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxuICAgICAgcGFkZGluZzogcmVtKDE0KSAwO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICBoZWlnaHQgOiByZW0oODgpO1xyXG4gICAgICBib3JkZXItdG9wOiByZW0oMikgc29saWQgdmFyKC0tZ3JleU1vdXNlQ29sb3IpO1xyXG4gICAgICBib3gtc2hhZG93OiAwIHJlbSgtMykgcmVtKDcpIHZhcigtLWdyZXlNb3VzZUNvbG9yKTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICB6LWluZGV4OiBjYWxjKHZhcigtLXpJbmRleC0tc2VhcmNoQ29udGVudCkgKyAyMSk7XHJcblxyXG4gICAgICAuc3VibWl0U2VhcmNoRW5naW5le1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDogdmFyKC0tcmVkKTtcclxuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDYwKTtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSg1KTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIHJlbSgyKSByZW0oNikgdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuICAgICAgICB3aWR0aDogOTAlO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG5cclxuICAgICAgICAmLmhhc1Jlc2V0IHtcclxuICAgICAgICAgIHdpZHRoOiA1OCU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5jcC1sb2FkaW5nOmJlZm9yZXtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwIHJlbSg1KSByZW0oNSkgMDtcclxuICAgIH1cclxuXHJcbiAgICAuY3Atc3Bpbm5lcntcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6MDtcclxuICAgICAgbWFyZ2luLXRvcDowO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6MDtcclxuICAgICAgaGVpZ2h0OiByZW0oNjApO1xyXG4gICAgICBsaW5lLWhlaWdodDogcmVtKDYwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBpY29uZSBjaGV2cm9uIC8gYXJyb3cgKiovXHJcbiAgLmNwZS1JY29uLmFycm93e1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgZm9udC1zaXplOiByZW0oOCk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIHJpZ2h0OiByZW0oMTApO1xyXG4gICAgdG9wOiByZW0oMjgpO1xyXG5cclxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICByaWdodDogcmVtKDkpO1xyXG4gICAgICB0b3A6IHJlbSgyOCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKioqIGFkYXB0YXRpb24gc3DDqWNpZmlxdWUgdG91Y2ggZGV2aWNlcyAqKiovXHJcbi5kZXZpY2VJc1RhYmxldCAuc2VhcmNoRm9ybS1zaXRlUGluOmJlZm9yZSwgLmRldmljZUlzTW9iaWxlIC5zZWFyY2hGb3JtLXNpdGVQaW46YmVmb3Jle1xyXG4gIG1hcmdpbi10b3A6MDtcclxufVxyXG5cclxuLyoqKiBnZXN0aW9uIGR1IHNlYXJjaEZvcm0gZW4gdmVyc2lvbiBvdXZlcnRlIHBvdXIgbGEgdmVyc2lvbiBtb2JpbGUgKioqL1xyXG5ib2R5LmJvZHktc2VhcmNoRW5naW5lT3BlbntcclxuXHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcblxyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcblxyXG4gICAgI21haW5Db250YWluZXJ7XHJcblxyXG4gICAgICBoZWFkZXIsIGZvb3RlciwgLmpzLWZpbHRlcnMsIC5oZWFkYmFuZFBpY3R1cmUsIC5oZWFkYmFuZC1jb250ZW50LCAuaGVhZGJhbmQgLmhlYWRiYW5kUGljdHVyZSwgLmhlYWRiYW5kVGhpbiAuaGVhZGJhbmRQaWN0dXJlLCAuaGVhZGJhbmRUaGluIC5oZWFkYmFuZFBpY3R1cmU6bm90KC5kb21haW5oZWFkYmFuZFBpY3R1cmUpLFxyXG4gICAgICAubWFpbkNvbnRlbnQsIC5iYW5uZXJTQ0stY29udGFpbmVyLCAuc2NrLWludHJvVG9wLCAuc2NrLXJlc3VsdHMsIC5pbnRyb2R1Y3Rpb25TQ0stY29udGFpbmVye1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgLyogdmlzaWJpbGl0eTogaGlkZGVuOyAqL1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc2VhcmNoRm9ybS1jb250YWluZXJ7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgIGJvdHRvbTogYXV0bztcclxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgdG9wOjA7XHJcbiAgICAgICAgbGVmdDowO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuaGVhZGJhbmRQaWN0dXJlTGluayB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLyoqIGdlc3Rpb24gZHUgcG9zaXRpb25uZW1lbnQgKiovXHJcbiAgICAgICYuc2VhcmNoRW5naW5lT3BlbmVkIHNlY3Rpb24uaGVhZGJhbmQsICYuc2VhcmNoRW5naW5lT3BlbmVkIHNlY3Rpb24uaGVhZGJhbmRUaGluLCAuc2VhcmNoRm9ybS1nbG9iYWxJbnB1dENvbnRhaW5lciwgLnNlYXJjaEZvcm17XHJcbiAgICAgICAgZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc2VhcmNoRm9ybXtcclxuICAgICAgICB6LWluZGV4OiB2YXIoLS16SW5kZXgtLXNlYXJjaCk7XHJcblxyXG4gICAgICAgICYtZ2xvYmFsSW5wdXRDb250YWluZXJ7XHJcbiAgICAgICAgICBwYWRkaW5nOiByZW0oNjApIHJlbSgxMCkgMCByZW0oMTApO1xyXG4gICAgICAgICAgei1pbmRleDogY2FsYyh2YXIoLS16SW5kZXgtLXNlYXJjaCkgKyAxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYtbGFiZWxNb2JpbGV7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIwKTtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgxNCk7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYtZGF0YXtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg0MCk7XHJcbiAgICAgICAgICBmb250LXNpemUgOiByZW0oMTYpO1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogcmVtKC0xMCk7XHJcblxyXG4gICAgICAgICAgJkxpc3R7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNDIpO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTUpIHJlbSgxMCkgcmVtKDIwKSByZW0oMTApO1xyXG5cclxuICAgICAgICAgICAgJkNvbnRhaW5lcntcclxuICAgICAgICAgICAgICBwb3NpdGlvbjpmaXhlZDtcclxuICAgICAgICAgICAgICB0b3A6MDtcclxuICAgICAgICAgICAgICBsZWZ0OjA7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OjEwMCU7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgICAgei1pbmRleDogY2FsYyh2YXIoLS16SW5kZXgtLXNlYXJjaENvbnRlbnQpICsgMjEpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmQ2xvc2Vye1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNjApO1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4KTtcclxuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWdyZXlNb3VzZUNvbG9yKTtcclxuXHJcbiAgICAgICAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHRvcDogcmVtKDIyKTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDUlO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqIGdlc3Rpb24gZHUgdG9nZ2xlciAqKi9cclxuICAgICAgICAmLXRvZ2dsZXJ7XHJcbiAgICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcclxuICAgICAgICAgIHRvcDowO1xyXG4gICAgICAgICAgZGlzcGxheTpibG9jaztcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQgOiByZW0oNjApO1xyXG4gICAgICAgICAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xyXG4gICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuICAgICAgICAgIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1zZWFyY2gpICsgNCk7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOjA7XHJcbiAgICAgICAgICBib3gtc2hhZG93Om5vbmU7XHJcbiAgICAgICAgICB3aWR0aDoxMDAlO1xyXG4gICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWdyZXlNb3VzZUNvbG9yKTtcclxuICAgICAgICAgIG1hcmdpbjogMDtcclxuXHJcbiAgICAgICAgICAuY3BlLUljb24uY3BlLUljb24tLXpvb20tdG9vbHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuY3BlLUljb24uY3BlLUljb24tLWNsb3Nle1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wIDogcmVtKDQpO1xyXG4gICAgICAgICAgICByaWdodDogIDUlO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgyMCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiogZ2VzdGlvbiBkZXMgY2hhbXAgZGUgZmFjZXR0ZSAqKi9cclxuICAgICAgICAmLWJsb2NrOm5vdCguc2VhcmNoRm9ybS1zdWJtaXRDb250YWluZXIsIC5kYXRlLWNvbnRhaW5lciksICYtaW5wdXRDb250YWluZXJ7XHJcbiAgICAgICAgICBtYXJnaW46IHJlbSgyMCkgYXV0bztcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXMgOiByZW0oMTApO1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvciA6IHdoaXRlO1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA5cHggdmFyKC0tZ3JleU1lZGl1bSk7XHJcbiAgICAgICAgICBoZWlnaHQ6IHJlbSg3MCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLWRhdGFPcGVuZXJ7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgcGFkZGluZy1sZWZ0IDogcmVtKDEwKTtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLWdsb2JhbERhdGVDb250YWluZXJ7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzIDogcmVtKDEwKTtcclxuICAgICAgICAgIGhlaWdodDogcmVtKDcwKTtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA5cHggdmFyKC0tZ3JleU1lZGl1bSk7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTApO1xyXG5cclxuICAgICAgICAgIC5zZWFyY2hGb3JtLWxhYmVsTW9iaWxle1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxMCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLnNlYXJjaEZvcm0taW5wdXRDb250YWluZXJ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgd2lkdGg6NDQlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg0MCk7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgtMTApO1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWFyY2hGb3JtLWRhdGFPcGVuZXJ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0IDogcmVtKDEwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuYm9keS1kaXNwbGF5U2VhcmNoTGlzdCAuc2VhcmNoRm9ybS10b2dnbGVye1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8qKiBkaXNhYmxlIGFuaW1hdGlvbiB3aGVuIHNlYXJjaCBlbmdpbmUgb3BlbiAqKi9cclxuICAgICAgLnNlYXJjaEZvcm0tdG9nZ2xlci51LVZpc2libGUtbW9iaWxle1xyXG4gICAgICAgICYuc3RpY2t5U2VhcmNoe1xyXG4gICAgICAgICAgdHJhbnNpdGlvbiA6IG5vbmU7XHJcbiAgICAgICAgICBhbmltYXRpb246IG5vbmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnVuc3RpY2t5U2VhcmNoe1xyXG4gICAgICAgICAgdHJhbnNpdGlvbiA6IG5vbmU7XHJcbiAgICAgICAgICBhbmltYXRpb246IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAubGFzdFNlYXJjaCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxMyk7XHJcblxyXG4gICAgICAgICYtdGl0bGUge1xyXG4gICAgICAgICAgd2lkdGg6IDg5JTtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIG1hcmdpbjogcmVtKDEwKSBhdXRvIHJlbSgxNSkgYXV0bztcclxuICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG5cclxuICAgICAgICAgIC5jcGUtSWNvbiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNik7XHJcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiByZW0oLTMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICAgICAgJi5tZGwtYnV0dG9uIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDQpO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tYWluRm9udCk7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjApO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oNSkgNSU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIEBleHRlbmQgLmNwZS1JY29uOmJlZm9yZTtcclxuICAgICAgICAgICAgQGV4dGVuZCAuY3BlLUljb24tLWFycm93LXJpZ2h0OmJlZm9yZTtcclxuXHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgcmlnaHQ6IDUlO1xyXG4gICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLWNhcnRvdWNoZSB7XHJcbiAgICAgICAgICB3aWR0aDogOTAlO1xyXG4gICAgICAgICAgbWFyZ2luOiByZW0oNSkgYXV0bztcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oNSk7XHJcblxyXG4gICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcgJztcclxuICAgICAgICAgICAgd2lkdGg6IDkwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMSk7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ncmV5TWVkaXVtKTtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICAgIGxlZnQ6IDUlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYtcGFya3Mge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYtZGF0ZXMubm90LXNwZWNpZmllZCB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLWNhcGFjaXR5IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYuaXMtbGFzdDphZnRlciB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAubGFzdFNlYXJjaGVzTGlzdCB7LyoqKiBBQlRFU1RfTEFTVF9TRUFSQ0hFUyBSRUxBVEVEICoqKi9cclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNlYXJjaEZpbHRlcnNPcGVuZWQgLnNlYXJjaEZpbHRlcnN7XHJcbiAgICAgICAgd2lkdGg6IDEwMHZ3O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKioqIEFCVEVTVF9MQVNUX1NFQVJDSEVTIFJFTEFURUQgKioqL1xyXG4ubGFzdFNlYXJjaGVzTGlzdCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLmJvZHktc2VhcmNoRW5naW5lT3Blbi5hYnRlc3RfbGFzdFNlYXJjaGVzIC5zZWFyY2hGb3JtLWNvbnRhaW5lcntcclxuICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICAgaGVpZ2h0OiAxMDB2aDtcclxuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcclxuICB9XHJcbn1cclxuLyoqKiAvQUJURVNUX0xBU1RfU0VBUkNIRVMgUkVMQVRFRCAqKiovXHJcblxyXG4uc2VhcmNoQmxvY2t7XHJcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICYgLnNlYXJjaEZvcm0tY29udGFpbmVyIC5zZWFyY2hGb3JtLXRvZ2dsZXIudS1WaXNpYmxlLW1vYmlsZXtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5jcC1sb2FkaW5nIHtcclxuICAmLnJlc3VsdExpc3QsICYuc2VhcmNoRmlsdGVycy1maWx0ZXJDb250ZW50LCAmLmRvbWFpbkFjY29tbW9kYXRpb25zLXJlc3VsdExpc3Qge1xyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnJlc3VsdExpc3QsICYuZG9tYWluQWNjb21tb2RhdGlvbnMtcmVzdWx0TGlzdCB7XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1jb250ZW50KS0gMik7XHJcbiAgICB9XHJcbiAgICAuY3Atc3Bpbm5lciB7XHJcbiAgICAgIHRvcDogcmVtKDIwMCk7XHJcbiAgICAgIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1jb250ZW50KS0gMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNlYXJjaEZpbHRlcnMtZmlsdGVyQ29udGVudCB7XHJcbiAgICAuY3Atc3Bpbm5lciB7XHJcbiAgICAgIEBtZWRpYSAoLS1tcS1taW5UYWJsZXQpe1xyXG4gICAgICAgIHRvcDogcmVtKDIwMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5lbmdpbmVPdXRzaWRlIHtcclxuICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuXHJcbiAgICAuc2VhcmNoRG9tYWluLXRvcCB7XHJcbiAgICAgIHBhZGRpbmc6IHJlbSgxMCkgMCByZW0oMik7XHJcbiAgICB9XHJcblxyXG4gICAgLmdlb1NlYXJjaERvbWFpbi5zZWFyY2hEb21haW4tcmVzdWx0e1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2hEb21haW4tcmVzdWx0IHtcclxuXHJcbiAgICAgIEBtZWRpYSgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDEyKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnJlc3VsdExpc3QtSGVhZGVyIHtcclxuICAgICAgICBwYWRkaW5nOiByZW0oMTcpIDAgMCByZW0oMTUpO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5yZXN1bHRMaXN0LUhlYWRlclNvcnQgI3Jlc3VsdExpc3QtSGVhZGVyU29ydFNlbGVjdG9yLmRyb3BEb3duTGlzdC1jb250YWluZXIge1xyXG4gICAgICAgIHRvcDogcmVtKC03NCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmJvZHktc2VhcmNoRW5naW5lT3BlbiB7XHJcblxyXG4gICAgICAjbWFpbkNvbnRhaW5lci5zZWFyY2hFbmdpbmVPcGVuZWQgLnNlYXJjaEZvcm0tY29udGFpbmVye1xyXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zdWJtZW51LWNvbnRlbnQsIC5jb250ZW50SGVhZGVyLCAuc2VhcmNoRG9tYWluLXJlc3VsdCwgLnNlYXJjaERvbWFpbi1oZWFkYmFuZCwgLnRhZ3MtaWRlYXNIb2xpZGF5cywgLnNjay1yZXN1bHRzLCAub2ZmZXJzVGl0bGUsIC5vdmVydmlld0Jhbm5lci1oZWFkYmFuZENvbnRhaW5lciwgLm92ZXJ2aWV3QmFubmVyLXRpdGxlLCAud2hhdHNOZXdCbG9jaywgLndoYXRzTmV3QmxvY2stdGl0bGUsIC5kb21haW5BY2NvbW1vZGF0aW9ucy1yZXN1bHRzLCAuc3RpY2t5TmF2RnBDb250YWluZXIsIC5zdGlja3lHb1RvRmlsdGVycyB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNlYXJjaEZvcm0tdG9nZ2xlci0taG9tZXtcclxuICAgICAgICB6LWluZGV4OiAtMTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNlYXJjaERvbWFpbi10b3Age1xyXG4gICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnBhZGRpbmdCb3R0b20tLXRhZ3Mge1xyXG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNlYXJjaEJsb2NrIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zZWFyY2hGaWx0ZXJzQ29udGFpbmVyIHtcclxuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmRvbWFpbkFjY29tbW9kYXRpb25zIC5zZWFyY2hGb3JtLWNvbnRhaW5lciB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICAmLndpZHRoRml4ZWRHb1RvRmlsdGVycyAuc3RpY2t5R29Ub0ZpbHRlcnN7XHJcbiAgICAgICAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgIC5zZWFyY2hEb21haW4tdG9wIHtcclxuICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg1MCk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNlYXJjaERvbWFpbi1yZXN1bHQsIC5zY2stcmVzdWx0cyB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiByZW0oNTApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmRldmljZUlzRGVza3RvcCAuc2VhcmNoRm9ybSAuY3BlLUljb24uYXJyb3csIC5kZXZpY2VJc0Rlc2t0b3AgLnNlYXJjaEZvcm0tcGFya1NlbGVjdENvbnRhaW5lciBhLnNlYXJjaEZvcm0tcGFya1NlbGVjdG9yIC5jcGUtSWNvbi5hcnJvdyB7XHJcbiAgQG1lZGlhKC0tbXEtdGFibGV0KXtcclxuICAgIHRvcDogcmVtKDEwKTtcclxuICB9XHJcbn1cclxuXHJcbi5zZWFyY2hGb3JtLWNvdW50cnlPcHRpb25zTGlzdCAuZm9ybS1jaGVja2JveENvbnRhaW5lciAuZm9ybS1jaGVja2JveExhYmVsLmhvdmVye1xyXG4gIGNvbG9yOiB2YXIoLS1ncmVlbik7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuXHJcbi8qIEhBTkRMSU5HIERFTEFZIEFDVElPTiBMQVlFUiAqL1xyXG4uZGVsYXlDbGlja0xheWVye2Rpc3BsYXk6bm9uZTt9XHJcblxyXG4uanMtZGVsYXlBY3Rpb24gLmRlbGF5Q2xpY2tMYXllcntcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1zZWFyY2hQaWthKSArIDEwMCk7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uc2VhcmNoRm9ybS1wYXJrU2VsZWN0Q29udGFpbmVyIC5kZWxheUNsaWNrTGF5ZXJ7XHJcblxyXG4gIEBtZWRpYSAoLS1tcS1taW5UYWJsZXQpe1xyXG4gICAgd2lkdGggOiAyNiU7XHJcbiAgICByaWdodDphdXRvO1xyXG4gIH1cclxufVxyXG5cclxuLyogSEFORExJTkcgU1RJQ0tZIFNFQVJDSCAqL1xyXG5AbWVkaWEoLS1tcS1taW5UYWJsZXQpe1xyXG4gIC5zdGlja3lTZWFyY2hEZXNrdG9wLC5zdGlja3lTZWFyY2hEZXNrdG9wIC5oZWFkYmFuZFRoaW4sIC5kb21haW5BY2NvbW1vZGF0aW9ucy5zdGlja3lTZWFyY2hEZXNrdG9we1xyXG4gICAgLnNlYXJjaEZvcm0tY29udGFpbmVye1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgd2lkdGg6IDEwMHZ3O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkIHZhcigtLWdyZWVuKTtcclxuICAgICAgei1pbmRleDogY2FsYyh2YXIoLS16SW5kZXgtLXNlYXJjaFBpa2EpICsgMTAwKTtcclxuICAgICAgaGVpZ2h0OiByZW0oNjUpO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICBtYXJnaW46MDtcclxuICAgIH1cclxuXHJcbiAgICAuc2VhcmNoRm9ybXtcclxuICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgIH1cclxuXHJcbiAgICAuc2VhcmNoRm9ybS1wYXJrU2VsZWN0Q29udGFpbmVyLCAuc2VhcmNoRm9ybS1zdWJtaXRDb250YWluZXJ7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnNlYXJjaEZvcm0tcGFya1NlbGVjdENvbnRhaW5lciB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiByZW0oMSkgc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5kb21haW5BY2NvbW1vZGF0aW9ucy5zdGlja3lTZWFyY2hEZXNrdG9wIC5zZWFyY2hGaWx0ZXJzQ29udGFpbmVye1xyXG4gICAgbWFyZ2luLXRvcDogcmVtKDExMCk7XHJcbiAgfVxyXG5cclxuICAuc3RpY2t5U2VhcmNoRGVza3RvcC5zaW5nbGVjbGljayAuc2NrLWludHJvVG9we1xyXG4gICAgbWFyZ2luLXRvcDogcmVtKDc2KTtcclxuICB9XHJcblxyXG4gIC8qIGZpeGVkIGRhdGVwaWNrZXIgKi9cclxuICAuc3RpY2t5U2VhcmNoRGVza3RvcCAucGlrYS1zaW5nbGUge1xyXG4gICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XHJcbiAgICB0b3A6IHJlbSg3MikgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbi8qIEhBTkRMSU5HIFNUSUNLWSBHTyBCQUNLIFRPIFRPUCAvIEZJTFRFUlMgKi9cclxuXHJcbi5zdGlja3lHb1RvRmlsdGVyc3tcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4ud2lkdGhGaXhlZEdvVG9GaWx0ZXJze1xyXG5cclxuICAuc3RpY2t5R29Ub0ZpbHRlcnMge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgei1pbmRleDogdmFyKC0tekluZGV4LS1zZWNvbmRhcnlOYXYpO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcblxyXG4gICAgQG1lZGlhKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgcmlnaHQ6IDMuNzUlO1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAtNTAlKTtcclxuICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICBwYWRkaW5nOiAwIHJlbSgyMCk7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXJlZCk7XHJcbiAgICAgIGJveC1zaGFkb3c6IDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG4gICAgICBmb250LXNpemU6IHJlbSgxNik7XHJcbiAgICAgIHdpZHRoOiByZW0oODUpO1xyXG4gICAgICBoZWlnaHQ6IHJlbSg4NSk7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhICgtLW1xLXRhYmxldCl7XHJcbiAgICAgIHdpZHRoOiByZW0oNzApO1xyXG4gICAgICBoZWlnaHQ6IHJlbSg3MCk7XHJcbiAgICAgIHJpZ2h0OiA2Ljc1JTtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICAgICByaWdodDogM3Z3O1xyXG4gICAgICBib3R0b206IDEwdmg7XHJcbiAgICAgIHdpZHRoOiByZW0oNDEpO1xyXG4gICAgICBoZWlnaHQ6IHJlbSg0MSk7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuXHJcbiAgICAgIC5jcGUtSWNvbi0tZ28tYmFja3tcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XHJcbiAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wIDogcmVtKDkpO1xyXG4gICAgICAgIGxlZnQ6IHJlbSgxMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY3BlLUljb24tLWZpbHRlciB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiByZW0oMTcpO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBmb250LXNpemU6IHJlbSgyNSk7XHJcblxyXG4gICAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgICB0b3A6IHJlbSgxNCk7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi10ZXh0IHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IHJlbSgxOCk7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDExKTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgICAgIGJvdHRvbTogcmVtKDEyKTtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiAgLyoqKiBHZXN0aW9uIGR1IHRvZ2dsZXIgKioqL1xyXG5ib2R5Om5vdCguaG9tZSkgLnNlYXJjaEZvcm17XHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAmLXRvZ2dsZXIudS1WaXNpYmxlLW1vYmlsZXtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgICBsaW5lLWhlaWdodDogcmVtKDU1KTtcclxuICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIGhlaWdodDogcmVtKDgyKTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIG1hcmdpbjogcmVtKDEwKSByZW0oMTYpIHJlbSgxMSkgcmVtKDE2KTtcclxuICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDEwKTtcclxuICAgICAgYm94LXNoYWRvdzogcmVtKDIpIDAgcmVtKDkpIDAgcmdiYSgwLCAwLCAwLCAwLjEzKTtcclxuXHJcbiAgICAgIC5zZWFyY2hGb3JtLXRvZ2dsZXItLWZvcm1IaWRkZW57XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luOiAwIHJlbSgxNSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYudG9nZ2xlLWFjdGl2ZXtcclxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWdyZXlQZWFybENvbG9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNlYXJjaEZvcm0tdG9nZ2xlcntcclxuICAgICAgICAmLS1mb3JtRGlzcGxheWVke1xyXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgICBmb250LXNpemU6IHJlbSgxOCk7XHJcbiAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLnNlYXJjaEZvcm1Ub2dnbGVyLXBhcnRpY2lwYW50cyAuY3BlLUljb24uY3BlLUljb24tLWNvdXBsZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuY3BlLUljb257XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgICAgICAgJi5jcGUtSWNvbi0tY2xvc2V7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAmLmNwZS1JY29uLS1jb3VwbGUge1xyXG4gICAgICAgICAgZm9udC1zaXplOiByZW0oMjMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi5zdGlja3lTZWFyY2h7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1zZWFyY2hDb250ZW50KSArIDEpO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogcmVtKDcxKTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIHJlbSgxMCkgcmVtKDEwKTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIHJlbSgyKSByZW0oNCkgMCByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcblxyXG4gICAgICAgIC5zZWFyY2hGb3JtLXRvZ2dsZXItLWZvcm1IaWRkZW57XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICBoZWlnaHQ6IHJlbSg0MCk7XHJcblxyXG4gICAgICAgICAgLmNwZS1JY29ue1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSg2KTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5zZWFyY2hGb3JtVG9nZ2xlcntcclxuXHJcbiAgICAgICAgICAgICYtZWxlbWVudHtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDIwKTtcclxuICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgIGhlaWdodDogcmVtKDM1KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi1wYXJre1xyXG4gICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHJlbSgyKSBzb2xpZCB2YXIoLS1ncmV5UGVhcmxDb2xvcik7XHJcblxyXG4gICAgICAgICAgICAgIC5jcGUtSWNvbi5jcGUtSWNvbi0tem9vbS10b29se1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi1kYXRle1xyXG4gICAgICAgICAgICAgIGhlaWdodDogcmVtKDI3KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5pbkZvb3RlciB7XHJcbiAgICAgICAgICByaWdodDogcmVtKC01MDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtdG9nZ2xlci0taG9tZS51LVZpc2libGUtbW9iaWxle1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJlRvZ2dsZXJ7XHJcbiAgICAmLWVsZW1lbnR7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNTApO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgcGFkZGluZzogMCAxdnc7XHJcblxyXG4gICAgICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgLmNwZS1JY29uLS1ob3VzZV9tb2JpbGUge1xyXG4gICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtcGFya3tcclxuICAgICAgcGFkZGluZzogMCAxdnc7XHJcbiAgICAgIGhlaWdodDogcmVtKDUwKTtcclxuICAgICAgbGluZS1oZWlnaHQ6IHJlbSg1MCk7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCB2YXIoLS1ncmVlbik7XHJcblxyXG4gICAgICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiByZW0oNDIpO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjApO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IHJlbSgyKSBzb2xpZCB2YXIoLS1ncmV5UGVhcmxDb2xvcik7XHJcblxyXG4gICAgICAgICYgc3BhbntcclxuICAgICAgICAgIG1hcmdpbjogcmVtKDEwKSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgI3NlYXJjaEZvcm1Ub2dnbGVyLWRvbWFpbmVze1xyXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLWRhdGVQYXJ0aWNpcGFudHN7XHJcbiAgICAgIEBtZWRpYSgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgaGVpZ2h0OiByZW0oNDApO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi10ZXh0e1xyXG4gICAgICBwYWRkaW5nOiAwIHJlbSg1KTtcclxuICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xyXG4gICAgICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG4gICAgICBmb250LXdlaWdodDogNTAwO1xyXG5cclxuICAgICAgQG1lZGlhKC0tbXEtbW9iaWxlKXtcclxuICAgICAgICBwYWRkaW5nOiAwIDAgMCByZW0oMTApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi1kYXRle1xyXG4gICAgICB3aWR0aDogNjYlO1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICBoZWlnaHQ6IHJlbSg1MCk7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgICAgIEBtZWRpYSgtLW1xLW1vYmlsZSl7XHJcbiAgICAgICAgd2lkdGg6IDc0JTtcclxuICAgICAgICBoZWlnaHQ6IHJlbSgyMCk7XHJcbiAgICAgICAgbWFyZ2luOiByZW0oMTApIDA7XHJcblxyXG4gICAgICAgIC5jcGUtSWNvbi0tY2FsZW5kYXJfbW9iaWxle1xyXG4gICAgICAgICAgZm9udC1zaXplOiByZW0oMTQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgI3NlYXJjaEZvcm1Ub2dnbGVyLWRhdGVze1xyXG4gICAgICAgICAgLmNwZS1JY29uLS10cmFuc2ZlcjF7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSg4KTtcclxuICAgICAgICAgICAgcGFkZGluZzogMCByZW0oMik7XHJcbiAgICAgICAgICAgIHRvcDogcmVtKC0yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLXBhcnRpY2lwYW50c3tcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgIGhlaWdodDogcmVtKDIwKTtcclxuICAgICAgICBtYXJnaW46IHJlbSgxMCkgMDtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxNSk7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQ6IHJlbSgyKSBzb2xpZCB2YXIoLS1ncmV5UGVhcmxDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmJvZHkuaG9tZSAjbWFpbkNvbnRhaW5lcntcclxuICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgIC5zZWFyY2hGb3JtLXRvZ2dsZXItLWhvbWV7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOjA7XHJcbiAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgKzUwJSk7XHJcbiAgICAgIG1pbi13aWR0aDogcmVtKDI1MCk7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgIHBhZGRpbmc6IDAgcmVtKDIwKTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmVkKTtcclxuICAgICAgaGVpZ2h0IDogcmVtKDUyKTtcclxuICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDI2KTtcclxuICAgICAgbGluZS1oZWlnaHQ6IHJlbSg1Mik7XHJcbiAgICAgIGJveC1zaGFkb3c6IDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG4gICAgICBmb250LXNpemU6IHJlbSgxNik7XHJcbiAgICAgIHotaW5kZXg6IDgwMDtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cclxuICAgICAgLmNwZS1JY29ue1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDEwKTtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgyNik7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cclxuICAgICAgICAmLmNwZS1JY29uLS1jbG9zZXtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnN0aWNreVNlYXJjaHtcclxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgYW5pbWF0aW9uOiBzdGlja3lCb3R0b21Ub1RvcCAxcztcclxuICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xyXG4gICAgICAgIG1pbi13aWR0aDogYXV0bztcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAgICAgcGFkZGluZzogcmVtKDE1KTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg0NSk7XHJcbiAgICAgICAgZGl2e1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmVkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNwYW57XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBwYWRkaW5nIDFzO1xyXG4gICAgICAgICAgdG9wOiByZW0oMyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmluRm9vdGVyIHtcclxuICAgICAgICAgIHJpZ2h0OiByZW0oLTUwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnVuc3RpY2t5U2VhcmNoe1xyXG4gICAgICAgIHRyYW5zaXRpb24gOiBmb250LXNpemUgMC41cywgcGFkZGluZyAwLjVzO1xyXG4gICAgICAgIGFuaW1hdGlvbjogdW5zdGlja3lFbGVtZW50IDAuNXM7XHJcbiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcclxuXHJcbiAgICAgICAgc3BhbntcclxuICAgICAgICAgIHBhZGRpbmctbGVmdCA6IHJlbSgxMCk7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuNXM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpub3QoLnNlYXJjaEVuZ2luZU9wZW5lZCkgLnNlYXJjaEZvcm17XHJcbiAgICAgICYtY29udGFpbmVye1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZWFyY2hGb3JtLXRvZ2dsZXJ7XHJcbiAgICAmLS1mb3JtSGlkZGVue1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgJi0tZm9ybURpc3BsYXllZHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmJvZHkuYm9keS1zZWFyY2hFbmdpbmVPcGVuICNtYWluQ29udGFpbmVyLnNlYXJjaEVuZ2luZU9wZW5lZCAuc2VhcmNoRm9ybS10b2dnbGVye1xyXG4gICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgIGhlaWdodDogcmVtKDYwKTtcclxuXHJcbiAgICAuc2VhcmNoRm9ybS10b2dnbGVye1xyXG4gICAgICAmLS1mb3JtSGlkZGVue1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgICAgJi0tZm9ybURpc3BsYXllZHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYtLWhvbWV7XHJcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgLnNlYXJjaEZvcm0tY29udGFpbmVye1xyXG4gICAgICBoZWlnaHQ6IHJlbSgxMjApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZvcm0tcXVhbnRpdHlFcnJvck1lc3NhZ2Uge1xyXG4gIHRyYW5zaXRpb246IDAuM3MgYWxsO1xyXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IHJlbSgyMCk7XHJcbiAgcmlnaHQ6IHJlbSgtNDApO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBwYWRkaW5nOiByZW0oMykgcmVtKDgpO1xyXG4gIGJvcmRlci1yYWRpdXM6IHJlbSg0KTtcclxuICBib3gtc2hhZG93OiAwIDAgcmVtKDMpIHJnYmEoMCwwLDAsLjEpO1xyXG4gIGNvbG9yOiB2YXIoLS1yZWQpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdyZXlNb3VzZUNvbG9yKTtcclxuICBmb250LXNpemU6IHJlbSgxMik7XHJcbiAgb3BhY2l0eTogMDtcclxuICB6LWluZGV4OiB2YXIoLS16SW5kZXgtLW5lZ2F0aXZlKTtcclxuXHJcbiAgJi5kaXNwbGF5LWFsZXJ0RXJyb3Ige1xyXG4gICAgYm90dG9tOiByZW0oNTgpO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHotaW5kZXg6IDkwMDtcclxuICB9XHJcblxyXG4gICAgQG1lZGlhKC0tbXEtbW9iaWxlKXtcclxuICAgICAgcmlnaHQ6IHJlbSgtMTYpO1xyXG5cclxuICAgICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xyXG4gICAgICAgIHJpZ2h0OiByZW0oNjApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICY6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICB3aWR0aDogMDtcclxuICAgIGhlaWdodDogMDtcclxuICAgIGJvcmRlci1sZWZ0OiByZW0oMTApIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXJpZ2h0OiByZW0oMTApIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXRvcDogcmVtKDE1KSBzb2xpZCB2YXIoLS1ncmV5TW91c2VDb2xvcik7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogcmVtKDgwKTtcclxuICAgIGJvdHRvbTogcmVtKC0xNSk7XHJcbiAgfVxyXG5cclxuICAmOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICB3aWR0aDogMDtcclxuICAgIGhlaWdodDogMDtcclxuICAgIGJvcmRlci1sZWZ0OiByZW0oMTApIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXJpZ2h0OiByZW0oMTApIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXRvcDogcmVtKDE1KSBzb2xpZCB3aGl0ZTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiByZW0oODApO1xyXG4gICAgYm90dG9tOiByZW0oLTE0KTtcclxuICB9XHJcbiAgXHJcbn1cclxuLyoqKiBBQlRFU1RfS0lEU19BR0VTIFJFTEFURUQgKioqL1xyXG4uaG9tZXtcclxuXHJcbiAgLnNlYXJjaEZvcm0tY29udGFpbmVyIC5zZWFyY2hGb3JtLWNhcGFjaXR5Q29udGFpbmVye1xyXG5cclxuICAgIC5raWRzU2VsZWN0b3JMYWJlbHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgICBwYWRkaW5nOiAwIHJlbSg2KSByZW0oNik7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcclxuICAgIH1cclxuXHJcbiAgICAua2lkc0FnZXNDb250YWluZXJ7XHJcblxyXG4gICAgICAuc2VsZWN0Mi1jb250YWluZXJ7XHJcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgICB6LWluZGV4OiA5MDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zZWxlY3RLaWRBZ2V7ICBcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGhlaWdodDogcmVtKDQwKTtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMTApO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgICAgIGFwcGVhcmFuY2U6bm9uZTtcclxuICAgICAgICAtbW96LWFwcGVhcmFuY2U6bm9uZTtcclxuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PSc4JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNNyA2LjI5MkwxLjA5OC4xNTRhLjU4NC41ODQgMCAwMC0uNzg4IDAgLjc2Ljc2IDAgMDAtLjI5Ny40NzguNzguNzggMCAwMC4xMDcuNTU4bDYuMzY0IDYuNjAzLjA2LjA2OEEuNzQ5Ljc0OSAwIDAwNyA4YS43MzMuNzMzIDAgMDAuNDYyLS4xMzdsLjA1OS0uMDY4IDYuMzY1LTYuNjE2YS43NzUuNzc1IDAgMDAuMS0uNTUzLjc1My43NTMgMCAwMC0uMjk3LS40Ny41ODQuNTg0IDAgMDAtLjc4OCAwTDcgNi4yOTN6JyBmaWxsPSclMjMzRDQyNDYnLyUzRSUzQy9zdmclM0VcIik7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxOXZ3IDE1cHg7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzOCk7XHJcblxyXG4gICAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgICAgd2lkdGg6IDMydnc7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxM3Z3O1xyXG5cclxuICAgICAgICAgIG9wdGlvbiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBibGFjaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAmLWNvbnRhaW5lcntcclxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDEwKTtcclxuICAgICAgICAgIHdpZHRoOiByZW0oNzApO1xyXG5cclxuICAgICAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgICAgICAgICB3aWR0aDogMjZ2dztcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDUpO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTApO1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5zZWxlY3QtYWxlcnRFcnJvciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kcy9iZy1zZWxlY3QtZXJyb3IucG5nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZm9ybS1zZWxlY3RFcnJvck1lc3NhZ2V7XHJcbiAgICBmb250LWZhbWlseTogQXJpYWw7XHJcbiAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBsaW5lLWhlaWdodDogMS4yNztcclxuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XHJcbiAgICBjb2xvcjogI2Q3NTMyYztcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgcGFkZGluZy1sZWZ0OiByZW0oNik7XHJcblxyXG4gICAgJi5kaXNwbGF5LWFsZXJ0RXJyb3Ige1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgei1pbmRleDogOTAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNlbGVjdC1hbGVydEVycm9ye1xyXG4gICAgYm9yZGVyOiBzb2xpZCAxcHggI2Q3NTMyYyAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IHtcclxuXHJcbiAgICAuc2VsZWN0Mi1zZWFyY2gtLWRyb3Bkb3duIC5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xyXG4gICAgICBkaXNwbGF5OiBub25lOyBcclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1yZXN1bHRzIHtcclxuICAgICAgd2lkdGg6IHJlbSg2MCk7XHJcbiAgICAgIHBhZGRpbmc6IHJlbSgxMCkgMDtcclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1yZXN1bHRzID4gLnNlbGVjdDItcmVzdWx0c19fb3B0aW9ucyB7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDE1MHB4O1xyXG4gICAgICBvdmVyZmxvdy15OiBhdXRvOyBcclxuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbnN7XHJcblxyXG4gICAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICAgICAgd2lkdGg6IHJlbSgxMCk7XHJcbiAgICAgIH1cclxuICBcclxuICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgICAgIHdpZHRoOiByZW0oNik7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDQpO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ3JleU1vdXNlQ29sb3IpO1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcclxuICAgICAgICB3aWR0aDogcmVtKDYpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSg0KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5TWVkaXVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbntcclxuICAgICAgaGVpZ2h0OiByZW0oMzQpO1xyXG4gICAgICBsaW5lLWhlaWdodDogcmVtKDM0KTtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgICAgZm9udC1zaXplOiByZW0oMTMpO1xyXG4gICAgICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuICAgICAgcGFkZGluZzogcmVtKDApIHJlbSgxNSkgcmVtKDApIHJlbSgxMCk7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGR7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJlthcmlhLWRpc2FibGVkPXRydWVdIHtcclxuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5TWVkaXVtKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi0taGlnaGxpZ2h0ZWRbYXJpYS1zZWxlY3RlZF0ge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0ge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6aG92ZXJ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JlZW5MaWdodGVyQ29sb3IpO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyBiOmJlZm9yZXtcclxuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZS5zZWxlY3QtYWxlcnRFcnJvciAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IGI6YmVmb3JlIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAjZDc1MzJjIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG5cclxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLW9wZW4gLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUuc2VsZWN0LWFsZXJ0RXJyb3IgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyBiOmJlZm9yZSB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2Q3NTMyYyB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiAuc2VsZWN0Mi1kcm9wZG93bi0tYmVsb3cge1xyXG4gICAgd2lkdGg6IHJlbSg3MCkgIWltcG9ydGFudDtcclxuICAgIGhlaWdodDogcmVtKDE3NSk7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMDBweCkgYW5kIChtYXgtd2lkdGg6IHZhcigtLW1vYmlsZS1tYXhXaWR0aCkpe1xyXG4gICAgICB3aWR0aDogcmVtKDY1KSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNlbGVjdDItc2VhcmNoLS1kcm9wZG93biB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vKioqIC9BQlRFU1RfS0lEU19BR0VTIFJFTEFURUQgKioqLyIsIi5jb250ZW50SGVhZGVyIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgcGFkZGluZzogMCAwIDEuNWVtO1xyXG5cclxuICBAbWVkaWEgKC0tbXEtZGVza3RvcCkge1xyXG4gICAgcGFkZGluZzogcmVtKDEwKSAwIHJlbSgxMCk7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKC0tbXEtbW9iaWxlKSB7XHJcbiAgICBwYWRkaW5nOiAwIHJlbSg1KTtcclxuICB9XHJcbn1cclxuXHJcbi5jb250ZW50SGVhZGVyLS1ub1BhZGRpbmcge1xyXG5cclxuICAmVG9wIHtcclxuICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKSB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJkJvdHRvbSB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICB9XHJcbn1cclxuXHJcbi5jb250ZW50SGVhZGVyLXRpdGxlIHtcclxuICBtYXJnaW4tYm90dG9tOiByZW0oMTApO1xyXG5cclxuICBAbWVkaWEgKC0tbXEtdGFibGV0KSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcclxuICB9XHJcblxyXG4gIEBtZWRpYSAoLS1tcS1tb2JpbGUpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XHJcbiAgfVxyXG5cclxuICAmLS1zZXBhcmF0b3I6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyAnO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogcmVtKDMwKTtcclxuICAgIGhlaWdodDogcmVtKDEpO1xyXG4gICAgYm9yZGVyLXRvcDogcmVtKDEpIHNvbGlkIHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgICBtYXJnaW46IHJlbSgyNSkgYXV0bztcclxuICB9XHJcbn1cclxuXHJcbi5jb250ZW50VGl0bGUtLW5vTWFyZ2luQm90dG9tIGgxLCAuY29udGVudFRpdGxlLS1ub01hcmdpbkJvdHRvbSBoMiB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmNvbnRlbnRUaXRsZS0tbm9NYXJnaW5Cb3R0b21Nb2JpbGUgaDEsIC5jb250ZW50VGl0bGUtLW5vTWFyZ2luQm90dG9tTW9iaWxlIGgyIHtcclxuICBAbWVkaWEgKC0tbXEtbW9iaWxlKSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xyXG4gIH1cclxufVxyXG5cclxuLmNvbnRlbnRIZWFkZXItdGV4dCB7XHJcbiAgcGFkZGluZzogMCAxZW07XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG5cclxuICBAbWVkaWEgKC0tbXEtZGVza3RvcCkge1xyXG4gICAgcGFkZGluZzogMCAyMCU7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKC0tbXEtdGFibGV0KSB7XHJcbiAgICBwYWRkaW5nOiAwIDEwJTtcclxuICB9XHJcbn1cclxuXHJcbi5jb250ZW50SGVhZGVyLXRleHQtLXdpdGhCb3R0b21NYXJnaW4ge1xyXG4gIG1hcmdpbi1ib3R0b206IDJlbTtcclxufVxyXG5cclxuLmJsb2NrVGV4dEhlYWRlciB7XHJcbiAgbWFyZ2luLXRvcDogcmVtKDgwKTtcclxuXHJcbiAgcCB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgLmJsb2NrVGV4dEhlYWRlclRpdGxlIHtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWl0YWxpY0ZvbnQpO1xyXG4gICAgICBmb250LXNpemU6IHZhcigtLWZvbnRTaXplRGVmYXVsdCk7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB3aWR0aDogcmVtKDI4KTtcclxuICAgICAgICBoZWlnaHQ6IHJlbSgxKTtcclxuICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuICAgICAgICBtYXJnaW46IHJlbSgxMCkgYXV0byByZW0oLTEwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ibG9ja1RleHRIZWFkZXJTZWN0aW9uIHtcclxuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuICAgIH1cclxuXHJcbiAgICAuYmxvY2tUZXh0SGVhZGVyU2VsZWN0IHtcclxuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWl0YWxpY0ZvbnQpO1xyXG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmFwaV90cnVuY1RvZ2dsZS1saW5rIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbWFyZ2luOiAxZW0gMCAyZW07XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uc2l0ZU5hbWVOb1dyYXAge1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgZm9udC1zaXplOiBpbmhlcml0O1xyXG59IiwiLnBvcGluIHsgIFxyXG4gICYtb3ZlcmxheSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIG9wYWNpdHk6IDAuNjtcclxuICAgIHotaW5kZXg6IHZhcigtLXpJbmRleC0tcG9waW4pO1xyXG4gIH1cclxuXHJcbiAgJi1jbG9zZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiByZW0oMjUpO1xyXG4gICAgdG9wOiByZW0oMjApO1xyXG5cclxuICAgIEBtZWRpYSgtLW1xLW1vYmlsZVRvVGFibGV0KSB7XHJcbiAgICAgIHBhZGRpbmc6IHJlbSgxMCk7XHJcbiAgICAgIHJpZ2h0OiByZW0oMTApO1xyXG4gICAgICB0b3A6IHJlbSgxMCk7XHJcbiAgICB9XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBjb250ZW50OiBcIlxcRUExOFwiO1xyXG4gICAgICBmb250LWZhbWlseTogJ2ljb25zJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYtYm94IHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdyZXlNb3VzZUNvbG9yKTtcclxuICAgIHBhZGRpbmc6IHJlbSg0NSkgcmVtKDM1KTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1wb3BpbikgKyAxKTtcclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcblxyXG4gICAgQG1lZGlhKC0tbXEtbW9iaWxlKSB7XHJcbiAgICAgIHdpZHRoOiA4MCVcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEoLS1tcS10YWJsZXQpIHtcclxuICAgICAgd2lkdGg6IDYwJVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi1tZXNzYWdlIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiA5NSU7XHJcbiAgfVxyXG59IiwiQGltcG9ydCBcIi4uLy4uL3V0aWxzL2Nzcy9pY29ucy9pY29ucy5jc3NcIjtcclxuXHJcbkBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gIC5ib2R5Tm9QYWRkaW5nVGFibGV0e1xyXG4gICAgcGFkZGluZzogMCFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4uZHJvcERvd25MaXN0e1xyXG5cclxuICAmLWxhYmVse1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgZm9udC1zaXplOiByZW0oMTIpO1xyXG4gICAgcGFkZGluZy10b3A6IHJlbSgyKTtcclxuICAgIGxpbmUtaGVpZ2h0OiByZW0oNDIpO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB9XHJcblxyXG4gICYtbGlzdHtcclxuXHJcbiAgICAmQ29udGFpbmVye1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9XHJcblxyXG4gICAgJkxhYmVse1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgcGFkZGluZzogcmVtKDEyKSByZW0oMTUpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiByZW0oNSk7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgICAgIGhlaWdodDogcmVtKDQyKTtcclxuICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxMik7XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB3aWR0aDogcmVtKDIwMCk7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAgICZUZXh0e1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIHdpZHRoOiByZW0oMTQ1KTtcclxuICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XHJcblxyXG4gICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi1jb250YWluZXJ7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgxKTtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgIC5hcGlfdG9nZ2xlX2NvbnRlbnR7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgd2lkdGg6IDgwJTtcclxuICAgICAgcmlnaHQ6IDAlO1xyXG4gICAgICB6LWluZGV4OiB2YXIoLS16SW5kZXgtLWRyb3BEb3duTGlzdCk7XHJcbiAgICAgIG1hcmdpbi10b3A6IHJlbSgtMSk7XHJcbiAgICAgIGJvcmRlcjogcmVtKDEpIHNvbGlkIHZhcigtLWdyZXlNZWRpdW1fMik7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1ncmV5U3RvbmUpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tYWluQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhICgtLW1xLXRhYmxldCkge1xyXG4gICAgICAgIHdpZHRoOiAzNHZ3ICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpIHtcclxuICAgICAgICB3aWR0aDogNzB2dztcclxuICAgICAgfVxyXG5cclxuICAgICAgdWx7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICAgICBsaXtcclxuICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oOCk7XHJcblxyXG4gICAgICAgICAgJltkYXRhLXNvcnQ9ZGlzdGFuY2VdLnUtZGlzYWJsZWQge1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE4KTtcclxuXHJcbiAgICAgICAgICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpIHtcclxuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE2KSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMik7XHJcbiAgICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJi5zZWxlY3RlZHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JlZW4pO1xyXG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjpob3ZlcntcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleU1vdXNlQ29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgd2lkdGg6IHJlbSgyOCk7XHJcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZ3JleU1lZGl1bV8yKTtcclxuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDgpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oOCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsaTpsYXN0LWNoaWxkOmFmdGVye1xyXG4gICAgICAgICAgY29udGVudDogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY3BlLUljb257XHJcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDgpO1xyXG4gICAgfVxyXG5cclxuICAgIC50b2dnbGUtYWN0aXZlIC5jcGUtSWNvbi0tYXJyb3c6YmVmb3Jle1xyXG4gICAgICBAZXh0ZW5kIC5jcGUtSWNvbi0tYXJyb3ctdG9wOmJlZm9yZTtcclxuICAgIH1cclxuXHJcbiAgICAuZHJvcERvd24taXRlbXtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBmb250LXNpemU6IHJlbSgxMik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qKlxuICogbWF0ZXJpYWwtZGVzaWduLWxpdGUgLSBNYXRlcmlhbCBEZXNpZ24gQ29tcG9uZW50cyBpbiBDU1MsIEpTIGFuZCBIVE1MXG4gKiBAdmVyc2lvbiB2MS4yLjFcbiAqIEBsaWNlbnNlIEFwYWNoZS0yLjBcbiAqIEBjb3B5cmlnaHQgMjAxNSBHb29nbGUsIEluYy5cbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvbWF0ZXJpYWwtZGVzaWduLWxpdGVcbiAqL1xuQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIE1hdGVyaWFsIERlc2lnbiBMaXRlICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLyogRGlhbG9nICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qXG4gKiBXaGF0IGZvbGxvd3MgaXMgdGhlIHJlc3VsdCBvZiBtdWNoIHJlc2VhcmNoIG9uIGNyb3NzLWJyb3dzZXIgc3R5bGluZy5cbiAqIENyZWRpdCBsZWZ0IGlubGluZSBhbmQgYmlnIHRoYW5rcyB0byBOaWNvbGFzIEdhbGxhZ2hlciwgSm9uYXRoYW4gTmVhbCxcbiAqIEtyb2MgQ2FtZW4sIGFuZCB0aGUgSDVCUCBkZXYgY29tbXVuaXR5IGFuZCB0ZWFtLlxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZSBzdHlsZXM6IG9waW5pb25hdGVkIGRlZmF1bHRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuaHRtbCB7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjg3KTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuLypcbiAqIFJlbW92ZSB0ZXh0LXNoYWRvdyBpbiBzZWxlY3Rpb24gaGlnaGxpZ2h0OlxuICogaHR0cHM6Ly90d2l0dGVyLmNvbS9taWtldGF5bHIvc3RhdHVzLzEyMjI4ODA1MzAxXG4gKlxuICogVGhlc2Ugc2VsZWN0aW9uIHJ1bGUgc2V0cyBoYXZlIHRvIGJlIHNlcGFyYXRlLlxuICogQ3VzdG9taXplIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIHRvIG1hdGNoIHlvdXIgZGVzaWduLlxuICovXG46Oi1tb3otc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogI2IzZDRmYztcbiAgdGV4dC1zaGFkb3c6IG5vbmU7IH1cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogI2IzZDRmYztcbiAgdGV4dC1zaGFkb3c6IG5vbmU7IH1cblxuLypcbiAqIEEgYmV0dGVyIGxvb2tpbmcgZGVmYXVsdCBob3Jpem9udGFsIHJ1bGVcbiAqL1xuaHIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxcHg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIG1hcmdpbjogMWVtIDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLypcbiAqIFJlbW92ZSB0aGUgZ2FwIGJldHdlZW4gYXVkaW8sIGNhbnZhcywgaWZyYW1lcyxcbiAqIGltYWdlcywgdmlkZW9zIGFuZCB0aGUgYm90dG9tIG9mIHRoZWlyIGNvbnRhaW5lcnM6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9pc3N1ZXMvNDQwXG4gKi9cbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8qXG4gKiBSZW1vdmUgZGVmYXVsdCBmaWVsZHNldCBzdHlsZXMuXG4gKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLypcbiAqIEFsbG93IG9ubHkgdmVydGljYWwgcmVzaXppbmcgb2YgdGV4dGFyZWFzLlxuICovXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJyb3dzZXIgVXBncmFkZSBQcm9tcHRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uYnJvd3NlcnVwZ3JhZGUge1xuICBtYXJnaW46IDAuMmVtIDA7XG4gIGJhY2tncm91bmQ6ICNjY2M7XG4gIGNvbG9yOiAjMDAwO1xuICBwYWRkaW5nOiAwLjJlbSAwOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBBdXRob3IncyBjdXN0b20gc3R5bGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEhlbHBlciBjbGFzc2VzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVuIHJlYWRlcnM6XG4gKi9cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLypcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqL1xuLnZpc3VhbGx5aGlkZGVuIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7IH1cblxuLypcbiAqIEV4dGVuZHMgdGhlIC52aXN1YWxseWhpZGRlbiBjbGFzcyB0byBhbGxvdyB0aGUgZWxlbWVudFxuICogdG8gYmUgZm9jdXNhYmxlIHdoZW4gbmF2aWdhdGVkIHRvIHZpYSB0aGUga2V5Ym9hcmQ6XG4gKiBodHRwczovL3d3dy5kcnVwYWwub3JnL25vZGUvODk3NjM4XG4gKi9cbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6YWN0aXZlLFxuLnZpc3VhbGx5aGlkZGVuLmZvY3VzYWJsZTpmb2N1cyB7XG4gIGNsaXA6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgd2lkdGg6IGF1dG87IH1cblxuLypcbiAqIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVuIHJlYWRlcnMsIGJ1dCBtYWludGFpbiBsYXlvdXRcbiAqL1xuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4vKlxuICogQ2xlYXJmaXg6IGNvbnRhaW4gZmxvYXRzXG4gKlxuICogRm9yIG1vZGVybiBicm93c2Vyc1xuICogMS4gVGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbiAqICAgIGBjb250ZW50ZWRpdGFibGVgIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbiAqICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuICogICAgdGhhdCByZWNlaXZlIHRoZSBgY2xlYXJmaXhgIGNsYXNzLlxuICogMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbiAqICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbiAqL1xuLmNsZWFyZml4OmJlZm9yZSxcbi5jbGVhcmZpeDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICAvKiAxICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAyICovIH1cblxuLmNsZWFyZml4OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEVYQU1QTEUgTWVkaWEgUXVlcmllcyBmb3IgUmVzcG9uc2l2ZSBEZXNpZ24uXG4gICBUaGVzZSBleGFtcGxlcyBvdmVycmlkZSB0aGUgcHJpbWFyeSAoJ21vYmlsZSBmaXJzdCcpIHN0eWxlcy5cbiAgIE1vZGlmeSBhcyBjb250ZW50IHJlcXVpcmVzLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzVlbSkge1xuICAvKiBTdHlsZSBhZGp1c3RtZW50cyBmb3Igdmlld3BvcnRzIHRoYXQgbWVldCB0aGUgY29uZGl0aW9uICovIH1cblxuQG1lZGlhIHByaW50LCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjI1KSwgKG1pbi1yZXNvbHV0aW9uOiAxLjI1ZHBweCksIChtaW4tcmVzb2x1dGlvbjogMTIwZHBpKSB7XG4gIC8qIFN0eWxlIGFkanVzdG1lbnRzIGZvciBoaWdoIHJlc29sdXRpb24gZGV2aWNlcyAqLyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcmludCBzdHlsZXMuXG4gICBJbmxpbmVkIHRvIGF2b2lkIHRoZSBhZGRpdGlvbmFsIEhUVFAgcmVxdWVzdDpcbiAgIGh0dHA6Ly93d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSBwcmludCB7XG4gICosXG4gICo6YmVmb3JlLFxuICAqOmFmdGVyLFxuICAqOmZpcnN0LWxldHRlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuICAgIC8qIEJsYWNrIHByaW50cyBmYXN0ZXI6IGh0dHA6Ly93d3cuc2FuYmVpamkuY29tL2FyY2hpdmVzLzk1MyAqL1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cbiAgLypcbiAgICAgKiBEb24ndCBzaG93IGxpbmtzIHRoYXQgYXJlIGZyYWdtZW50IGlkZW50aWZpZXJzLFxuICAgICAqIG9yIHVzZSB0aGUgYGphdmFzY3JpcHQ6YCBwc2V1ZG8gcHJvdG9jb2xcbiAgICAgKi9cbiAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIC8qXG4gICAgICogUHJpbnRpbmcgVGFibGVzOlxuICAgICAqIGh0dHA6Ly9jc3MtZGlzY3Vzcy5pbmN1dGlvLmNvbS93aWtpL1ByaW50aW5nX1RhYmxlc1xuICAgICAqL1xuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7IH1cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfSB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBSZW1vdmUgdGhlIHVud2FudGVkIGJveCBhcm91bmQgRkFCIGJ1dHRvbnMgKi9cbi8qIE1vcmUgaW5mbzogaHR0cDovL2dvby5nbC9JUHdLaSAqL1xuYSwgLm1kbC1hY2NvcmRpb24sIC5tZGwtYnV0dG9uLCAubWRsLWNhcmQsIC5tZGwtY2hlY2tib3gsIC5tZGwtZHJvcGRvd24tbWVudSxcbi5tZGwtaWNvbi10b2dnbGUsIC5tZGwtaXRlbSwgLm1kbC1yYWRpbywgLm1kbC1zbGlkZXIsIC5tZGwtc3dpdGNoLCAubWRsLXRhYnNfX3RhYiB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTsgfVxuXG4vKlxuICogTWFrZSBodG1sIHRha2UgdXAgdGhlIGVudGlyZSBzY3JlZW5cbiAqIFRoZW4gc2V0IHRvdWNoLWFjdGlvbiB0byBhdm9pZCB0b3VjaCBkZWxheSBvbiBtb2JpbGUgSUVcbiAqL1xuaHRtbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cblxuLypcbiogTWFrZSBib2R5IHRha2UgdXAgdGhlIGVudGlyZSBzY3JlZW5cbiogUmVtb3ZlIGJvZHkgbWFyZ2luIHNvIGxheW91dCBjb250YWluZXJzIGRvbid0IGNhdXNlIGV4dHJhIG92ZXJmbG93LlxuKi9cbmJvZHkge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qXG4gKiBNYWluIGRpc3BsYXkgcmVzZXQgZm9yIElFIHN1cHBvcnQuXG4gKiBTb3VyY2U6IGh0dHA6Ly93ZWJsb2cud2VzdC13aW5kLmNvbS9wb3N0cy8yMDE1L0phbi8xMi9tYWluLUhUTUw1LVRhZy1ub3Qtd29ya2luZy1pbi1JbnRlcm5ldC1FeHBsb3Jlci05MTAxMVxuICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiogQXBwbHkgbm8gZGlzcGxheSB0byBlbGVtZW50cyB3aXRoIHRoZSBoaWRkZW4gYXR0cmlidXRlLlxuKiBJRSA5IGFuZCAxMCBzdXBwb3J0LlxuKi9cbipbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi8qIERpYWxvZyAqL1xuaHRtbCwgYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7IH1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAgKiBTdHlsZXMgZm9yIEhUTUwgZWxlbWVudHNcbiAgKi9cbmgxIHNtYWxsLCBoMiBzbWFsbCwgaDMgc21hbGwsIGg0IHNtYWxsLCBoNSBzbWFsbCwgaDYgc21hbGwge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDU2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgb3BhY2l0eTogMC41NDtcbiAgZm9udC1zaXplOiAwLjZlbTsgfVxuXG5oMSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG5cbmgyIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA0NXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogNDhweDtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDsgfVxuXG5oMyB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMzRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbi10b3A6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IH1cblxuaDQge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbmg1IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIG1hcmdpbi10b3A6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxucCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbmEge1xuICBjb2xvcjogcmdiKDI1NSw2NCwxMjkpO1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbmJsb2NrcXVvdGUge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsgfVxuICBibG9ja3F1b3RlOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC0wLjVlbTtcbiAgICBjb250ZW50OiAn4oCcJzsgfVxuICBibG9ja3F1b3RlOmFmdGVyIHtcbiAgICBjb250ZW50OiAn4oCdJztcbiAgICBtYXJnaW4tbGVmdDogLTAuMDVlbTsgfVxuXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZmY4MTsgfVxuXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuYWRkcmVzcyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxudWwsIG9sIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7IH1cblxuLyoqXG4gKiBDbGFzcyBOYW1lIFN0eWxlc1xuICovXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktNCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTEycHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbTsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktNC1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTEycHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbTtcbiAgb3BhY2l0eTogMC41NDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMyB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS0zLWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA1NnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIG9wYWNpdHk6IDAuNTQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTIge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDQ1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS0yLWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA0NXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogNDhweDtcbiAgb3BhY2l0eTogMC41NDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMzRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTEtY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDM0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICBvcGFjaXR5OiAwLjU0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0taGVhZGxpbmUge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0taGVhZGxpbmUtY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGl0bGUge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGl0bGUtY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tc3ViaGVhZCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1zdWJoZWFkLWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgb3BhY2l0eTogMC44NzsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMi1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3BhY2l0eTogMC44NzsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0xLWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIG9wYWNpdHk6IDAuODc7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTItZm9yY2UtcHJlZmVycmVkLWZvbnQge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMi1mb3JjZS1wcmVmZXJyZWQtZm9udC1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0xLWZvcmNlLXByZWZlcnJlZC1mb250IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTEtZm9yY2UtcHJlZmVycmVkLWZvbnQtY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3BhY2l0eTogMC44NzsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWNhcHRpb24ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWNhcHRpb24tZm9yY2UtcHJlZmVycmVkLWZvbnQge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWNhcHRpb24tY29sb3ItY29udHJhc3Qge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3BhY2l0eTogMC41NDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWNhcHRpb24tZm9yY2UtcHJlZmVycmVkLWZvbnQtY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3BhY2l0eTogMC41NDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLW1lbnUge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLW1lbnUtY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3BhY2l0eTogMC44NzsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYnV0dG9uLWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIG9wYWNpdHk6IDAuODc7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGV4dC1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGV4dC1sb3dlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGV4dC11cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGV4dC1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LXRoaW4ge1xuICBmb250LXdlaWdodDogMjAwICFpbXBvcnRhbnQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LWxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tZm9udC1yZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tZm9udC1tZWRpdW0ge1xuICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LWJvbGQge1xuICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LWJsYWNrIHtcbiAgZm9udC13ZWlnaHQ6IDkwMCAhaW1wb3J0YW50OyB9XG5cbi5tYXRlcmlhbC1pY29ucyB7XG4gIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICAtbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnO1xuICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnO1xuICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLm1kbC1jb2xvci10ZXh0LS1yZWQge1xuICBjb2xvcjogcmdiKDI0NCw2Nyw1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ0LDY3LDU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTUwIHtcbiAgY29sb3I6IHJnYigyNTUsMjM1LDIzOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1yZWQtNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIzNSwyMzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjA1LDIxMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1yZWQtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMDUsMjEwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTIwMCB7XG4gIGNvbG9yOiByZ2IoMjM5LDE1NCwxNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzksMTU0LDE1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXJlZC0zMDAge1xuICBjb2xvcjogcmdiKDIyOSwxMTUsMTE1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI5LDExNSwxMTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtNDAwIHtcbiAgY29sb3I6IHJnYigyMzksODMsODApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzksODMsODApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtNTAwIHtcbiAgY29sb3I6IHJnYigyNDQsNjcsNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDQsNjcsNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtNjAwIHtcbiAgY29sb3I6IHJnYigyMjksNTcsNTMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjksNTcsNTMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtNzAwIHtcbiAgY29sb3I6IHJnYigyMTEsNDcsNDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTEsNDcsNDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtODAwIHtcbiAgY29sb3I6IHJnYigxOTgsNDAsNDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTgsNDAsNDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtOTAwIHtcbiAgY29sb3I6IHJnYigxODMsMjgsMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxODMsMjgsMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDEzOCwxMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDEzOCwxMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtQTIwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDgyLDgyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSw4Miw4MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXJlZC1BNDAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjMsNjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIzLDY4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLUE3MDAge1xuICBjb2xvcjogcmdiKDIxMywwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjEzLDAsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmsge1xuICBjb2xvcjogcmdiKDIzMywzMCw5OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMywzMCw5OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstNTAge1xuICBjb2xvcjogcmdiKDI1MiwyMjgsMjM2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUyLDIyOCwyMzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjQ4LDE4NywyMDgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ4LDE4NywyMDgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTIwMCB7XG4gIGNvbG9yOiByZ2IoMjQ0LDE0MywxNzcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ0LDE0MywxNzcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTMwMCB7XG4gIGNvbG9yOiByZ2IoMjQwLDk4LDE0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDAsOTgsMTQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay00MDAge1xuICBjb2xvcjogcmdiKDIzNiw2NCwxMjIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM2LDY0LDEyMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstNTAwIHtcbiAgY29sb3I6IHJnYigyMzMsMzAsOTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjMzLDMwLDk5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay02MDAge1xuICBjb2xvcjogcmdiKDIxNiwyNyw5NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTYsMjcsOTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTcwMCB7XG4gIGNvbG9yOiByZ2IoMTk0LDI0LDkxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5NCwyNCw5MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstODAwIHtcbiAgY29sb3I6IHJnYigxNzMsMjAsODcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTczLDIwLDg3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay05MDAge1xuICBjb2xvcjogcmdiKDEzNiwxNCw3OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMzYsMTQsNzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLUExMDAge1xuICBjb2xvcjogcmdiKDI1NSwxMjgsMTcxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTI4LDE3MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstQTIwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDY0LDEyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDY0LDEyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjQ1LDAsODcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NSwwLDg3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay1BNzAwIHtcbiAgY29sb3I6IHJnYigxOTcsMTcsOTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5NywxNyw5OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZSB7XG4gIGNvbG9yOiByZ2IoMTU2LDM5LDE3NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU2LDM5LDE3NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS01MCB7XG4gIGNvbG9yOiByZ2IoMjQzLDIyOSwyNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MywyMjksMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjI1LDE5MCwyMzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjUsMTkwLDIzMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS0yMDAge1xuICBjb2xvcjogcmdiKDIwNiwxNDcsMjE2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA2LDE0NywyMTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtMzAwIHtcbiAgY29sb3I6IHJnYigxODYsMTA0LDIwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4NiwxMDQsMjAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTQwMCB7XG4gIGNvbG9yOiByZ2IoMTcxLDcxLDE4OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3MSw3MSwxODgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtNTAwIHtcbiAgY29sb3I6IHJnYigxNTYsMzksMTc2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU2LDM5LDE3NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS02MDAge1xuICBjb2xvcjogcmdiKDE0MiwzNiwxNzApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDIsMzYsMTcwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTcwMCB7XG4gIGNvbG9yOiByZ2IoMTIzLDMxLDE2MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyMywzMSwxNjIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtODAwIHtcbiAgY29sb3I6IHJnYigxMDYsMjcsMTU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTA2LDI3LDE1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS05MDAge1xuICBjb2xvcjogcmdiKDc0LDIwLDE0MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc0LDIwLDE0MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS1BMTAwIHtcbiAgY29sb3I6IHJnYigyMzQsMTI4LDI1MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzQsMTI4LDI1MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS1BMjAwIHtcbiAgY29sb3I6IHJnYigyMjQsNjQsMjUxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCw2NCwyNTEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjEzLDAsMjQ5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxMywwLDI0OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS1BNzAwIHtcbiAgY29sb3I6IHJnYigxNzAsMCwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTcwLDAsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUge1xuICBjb2xvcjogcmdiKDEwMyw1OCwxODMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAzLDU4LDE4MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTUwIHtcbiAgY29sb3I6IHJnYigyMzcsMjMxLDI0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzcsMjMxLDI0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjA5LDE5NiwyMzMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwOSwxOTYsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtMjAwIHtcbiAgY29sb3I6IHJnYigxNzksMTU3LDIxOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTc5LDE1NywyMTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS0zMDAge1xuICBjb2xvcjogcmdiKDE0OSwxMTcsMjA1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDksMTE3LDIwNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTQwMCB7XG4gIGNvbG9yOiByZ2IoMTI2LDg3LDE5NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI2LDg3LDE5NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTUwMCB7XG4gIGNvbG9yOiByZ2IoMTAzLDU4LDE4MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAzLDU4LDE4MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTYwMCB7XG4gIGNvbG9yOiByZ2IoOTQsNTMsMTc3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig5NCw1MywxNzcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS03MDAge1xuICBjb2xvcjogcmdiKDgxLDQ1LDE2OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoODEsNDUsMTY4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtODAwIHtcbiAgY29sb3I6IHJnYig2OSwzOSwxNjApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY5LDM5LDE2MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTkwMCB7XG4gIGNvbG9yOiByZ2IoNDksMjcsMTQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig0OSwyNywxNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS1BMTAwIHtcbiAgY29sb3I6IHJnYigxNzksMTM2LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3OSwxMzYsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtQTIwMCB7XG4gIGNvbG9yOiByZ2IoMTI0LDc3LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyNCw3NywyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS1BNDAwIHtcbiAgY29sb3I6IHJnYigxMDEsMzEsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAxLDMxLDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLUE3MDAge1xuICBjb2xvcjogcmdiKDk4LDAsMjM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTgsMCwyMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28ge1xuICBjb2xvcjogcmdiKDYzLDgxLDE4MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTUwIHtcbiAgY29sb3I6IHJnYigyMzIsMjM0LDI0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjMyLDIzNCwyNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tMTAwIHtcbiAgY29sb3I6IHJnYigxOTcsMjAyLDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5NywyMDIsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTIwMCB7XG4gIGNvbG9yOiByZ2IoMTU5LDE2OCwyMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNTksMTY4LDIxOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby0zMDAge1xuICBjb2xvcjogcmdiKDEyMSwxMzQsMjAzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWluZGlnby0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTIxLDEzNCwyMDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tNDAwIHtcbiAgY29sb3I6IHJnYig5MiwxMDcsMTkyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWluZGlnby00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTIsMTA3LDE5MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby01MDAge1xuICBjb2xvcjogcmdiKDYzLDgxLDE4MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby02MDAge1xuICBjb2xvcjogcmdiKDU3LDczLDE3MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tNjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDU3LDczLDE3MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby03MDAge1xuICBjb2xvcjogcmdiKDQ4LDYzLDE1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQ4LDYzLDE1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby04MDAge1xuICBjb2xvcjogcmdiKDQwLDUzLDE0NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQwLDUzLDE0NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby05MDAge1xuICBjb2xvcjogcmdiKDI2LDM1LDEyNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI2LDM1LDEyNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby1BMTAwIHtcbiAgY29sb3I6IHJnYigxNDAsMTU4LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDAsMTU4LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby1BMjAwIHtcbiAgY29sb3I6IHJnYig4MywxMDksMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWluZGlnby1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDgzLDEwOSwyNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tQTQwMCB7XG4gIGNvbG9yOiByZ2IoNjEsOTAsMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWluZGlnby1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYxLDkwLDI1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby1BNzAwIHtcbiAgY29sb3I6IHJnYig0OCw3OSwyNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDgsNzksMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZSB7XG4gIGNvbG9yOiByZ2IoMzMsMTUwLDI0MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMzLDE1MCwyNDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLTUwIHtcbiAgY29sb3I6IHJnYigyMjcsMjQyLDI1MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNywyNDIsMjUzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS0xMDAge1xuICBjb2xvcjogcmdiKDE4NywyMjIsMjUxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4NywyMjIsMjUxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS0yMDAge1xuICBjb2xvcjogcmdiKDE0NCwyMDIsMjQ5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE0NCwyMDIsMjQ5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS0zMDAge1xuICBjb2xvcjogcmdiKDEwMCwxODEsMjQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMCwxODEsMjQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS00MDAge1xuICBjb2xvcjogcmdiKDY2LDE2NSwyNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjYsMTY1LDI0NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtNTAwIHtcbiAgY29sb3I6IHJnYigzMywxNTAsMjQzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMzLDE1MCwyNDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLTYwMCB7XG4gIGNvbG9yOiByZ2IoMzAsMTM2LDIyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzMCwxMzYsMjI5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS03MDAge1xuICBjb2xvcjogcmdiKDI1LDExOCwyMTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUsMTE4LDIxMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtODAwIHtcbiAgY29sb3I6IHJnYigyMSwxMDEsMTkyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxLDEwMSwxOTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLTkwMCB7XG4gIGNvbG9yOiByZ2IoMTMsNzEsMTYxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEzLDcxLDE2MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMTMwLDE3NywyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEzMCwxNzcsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1BMjAwIHtcbiAgY29sb3I6IHJnYig2OCwxMzgsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2OCwxMzgsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1BNDAwIHtcbiAgY29sb3I6IHJnYig0MSwxMjEsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig0MSwxMjEsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1BNzAwIHtcbiAgY29sb3I6IHJnYig0MSw5OCwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQxLDk4LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUge1xuICBjb2xvcjogcmdiKDMsMTY5LDI0NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMsMTY5LDI0NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtNTAge1xuICBjb2xvcjogcmdiKDIyNSwyNDUsMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI1LDI0NSwyNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTEwMCB7XG4gIGNvbG9yOiByZ2IoMTc5LDIyOSwyNTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTc5LDIyOSwyNTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTIwMCB7XG4gIGNvbG9yOiByZ2IoMTI5LDIxMiwyNTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI5LDIxMiwyNTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTMwMCB7XG4gIGNvbG9yOiByZ2IoNzksMTk1LDI0NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig3OSwxOTUsMjQ3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS00MDAge1xuICBjb2xvcjogcmdiKDQxLDE4MiwyNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDEsMTgyLDI0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtNTAwIHtcbiAgY29sb3I6IHJnYigzLDE2OSwyNDQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMywxNjksMjQ0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS02MDAge1xuICBjb2xvcjogcmdiKDMsMTU1LDIyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzLDE1NSwyMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTcwMCB7XG4gIGNvbG9yOiByZ2IoMiwxMzYsMjA5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIsMTM2LDIwOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtODAwIHtcbiAgY29sb3I6IHJnYigyLDExOSwxODkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMiwxMTksMTg5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS05MDAge1xuICBjb2xvcjogcmdiKDEsODcsMTU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEsODcsMTU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS1BMTAwIHtcbiAgY29sb3I6IHJnYigxMjgsMjE2LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI4LDIxNiwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLUEyMDAge1xuICBjb2xvcjogcmdiKDY0LDE5NiwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY0LDE5NiwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLUE0MDAge1xuICBjb2xvcjogcmdiKDAsMTc2LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxNzYsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS1BNzAwIHtcbiAgY29sb3I6IHJnYigwLDE0NSwyMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTQ1LDIzNCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4ge1xuICBjb2xvcjogcmdiKDAsMTg4LDIxMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTg4LDIxMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tNTAge1xuICBjb2xvcjogcmdiKDIyNCwyNDcsMjUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI0LDI0NywyNTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTEwMCB7XG4gIGNvbG9yOiByZ2IoMTc4LDIzNSwyNDIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTc4LDIzNSwyNDIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTIwMCB7XG4gIGNvbG9yOiByZ2IoMTI4LDIyMiwyMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI4LDIyMiwyMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTMwMCB7XG4gIGNvbG9yOiByZ2IoNzcsMjA4LDIyNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig3NywyMDgsMjI1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi00MDAge1xuICBjb2xvcjogcmdiKDM4LDE5OCwyMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzgsMTk4LDIxOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tNTAwIHtcbiAgY29sb3I6IHJnYigwLDE4OCwyMTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxODgsMjEyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi02MDAge1xuICBjb2xvcjogcmdiKDAsMTcyLDE5MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE3MiwxOTMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTcwMCB7XG4gIGNvbG9yOiByZ2IoMCwxNTEsMTY3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTUxLDE2NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tODAwIHtcbiAgY29sb3I6IHJnYigwLDEzMSwxNDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxMzEsMTQzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi05MDAge1xuICBjb2xvcjogcmdiKDAsOTYsMTAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsOTYsMTAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi1BMTAwIHtcbiAgY29sb3I6IHJnYigxMzIsMjU1LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTMyLDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLUEyMDAge1xuICBjb2xvcjogcmdiKDI0LDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0LDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLUE0MDAge1xuICBjb2xvcjogcmdiKDAsMjI5LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwyMjksMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi1BNzAwIHtcbiAgY29sb3I6IHJnYigwLDE4NCwyMTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTg0LDIxMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwge1xuICBjb2xvcjogcmdiKDAsMTUwLDEzNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTUwLDEzNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtNTAge1xuICBjb2xvcjogcmdiKDIyNCwyNDIsMjQxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI0LDI0MiwyNDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTEwMCB7XG4gIGNvbG9yOiByZ2IoMTc4LDIyMywyMTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTc4LDIyMywyMTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTIwMCB7XG4gIGNvbG9yOiByZ2IoMTI4LDIwMywxOTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI4LDIwMywxOTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTMwMCB7XG4gIGNvbG9yOiByZ2IoNzcsMTgyLDE3MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig3NywxODIsMTcyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC00MDAge1xuICBjb2xvcjogcmdiKDM4LDE2NiwxNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzgsMTY2LDE1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtNTAwIHtcbiAgY29sb3I6IHJnYigwLDE1MCwxMzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxNTAsMTM2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC02MDAge1xuICBjb2xvcjogcmdiKDAsMTM3LDEyMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDEzNywxMjMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTcwMCB7XG4gIGNvbG9yOiByZ2IoMCwxMjEsMTA3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTIxLDEwNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtODAwIHtcbiAgY29sb3I6IHJnYigwLDEwNSw5MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDEwNSw5MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtOTAwIHtcbiAgY29sb3I6IHJnYigwLDc3LDY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsNzcsNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLUExMDAge1xuICBjb2xvcjogcmdiKDE2NywyNTUsMjM1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNjcsMjU1LDIzNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtQTIwMCB7XG4gIGNvbG9yOiByZ2IoMTAwLDI1NSwyMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMCwyNTUsMjE4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC1BNDAwIHtcbiAgY29sb3I6IHJnYigyOSwyMzMsMTgyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyOSwyMzMsMTgyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC1BNzAwIHtcbiAgY29sb3I6IHJnYigwLDE5MSwxNjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTkxLDE2NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuIHtcbiAgY29sb3I6IHJnYig3NiwxNzUsODApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzYsMTc1LDgwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tNTAge1xuICBjb2xvcjogcmdiKDIzMiwyNDUsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMiwyNDUsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tMTAwIHtcbiAgY29sb3I6IHJnYigyMDAsMjMwLDIwMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjAwLDIzMCwyMDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi0yMDAge1xuICBjb2xvcjogcmdiKDE2NSwyMTQsMTY3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNjUsMjE0LDE2NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTMwMCB7XG4gIGNvbG9yOiByZ2IoMTI5LDE5OSwxMzIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyOSwxOTksMTMyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tNDAwIHtcbiAgY29sb3I6IHJnYigxMDIsMTg3LDEwNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAyLDE4NywxMDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi01MDAge1xuICBjb2xvcjogcmdiKDc2LDE3NSw4MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzYsMTc1LDgwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tNjAwIHtcbiAgY29sb3I6IHJnYig2NywxNjAsNzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tNjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY3LDE2MCw3MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTcwMCB7XG4gIGNvbG9yOiByZ2IoNTYsMTQyLDYwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1NiwxNDIsNjApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi04MDAge1xuICBjb2xvcjogcmdiKDQ2LDEyNSw1MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDYsMTI1LDUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tOTAwIHtcbiAgY29sb3I6IHJnYigyNyw5NCwzMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjcsOTQsMzIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi1BMTAwIHtcbiAgY29sb3I6IHJnYigxODUsMjQ2LDIwMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4NSwyNDYsMjAyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tQTIwMCB7XG4gIGNvbG9yOiByZ2IoMTA1LDI0MCwxNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDUsMjQwLDE3NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLUE0MDAge1xuICBjb2xvcjogcmdiKDAsMjMwLDExOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMjMwLDExOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLUE3MDAge1xuICBjb2xvcjogcmdiKDAsMjAwLDgzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwyMDAsODMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbiB7XG4gIGNvbG9yOiByZ2IoMTM5LDE5NSw3NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMzksMTk1LDc0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNTAge1xuICBjb2xvcjogcmdiKDI0MSwyNDgsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MSwyNDgsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tMTAwIHtcbiAgY29sb3I6IHJnYigyMjAsMjM3LDIwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjIwLDIzNywyMDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi0yMDAge1xuICBjb2xvcjogcmdiKDE5NywyMjUsMTY1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTcsMjI1LDE2NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTMwMCB7XG4gIGNvbG9yOiByZ2IoMTc0LDIxMywxMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3NCwyMTMsMTI5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNDAwIHtcbiAgY29sb3I6IHJnYigxNTYsMjA0LDEwMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU2LDIwNCwxMDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi01MDAge1xuICBjb2xvcjogcmdiKDEzOSwxOTUsNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEzOSwxOTUsNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi02MDAge1xuICBjb2xvcjogcmdiKDEyNCwxNzksNjYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyNCwxNzksNjYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi03MDAge1xuICBjb2xvcjogcmdiKDEwNCwxNTksNTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwNCwxNTksNTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi04MDAge1xuICBjb2xvcjogcmdiKDg1LDEzOSw0NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoODUsMTM5LDQ3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tOTAwIHtcbiAgY29sb3I6IHJnYig1MSwxMDUsMzApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDUxLDEwNSwzMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLUExMDAge1xuICBjb2xvcjogcmdiKDIwNCwyNTUsMTQ0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA0LDI1NSwxNDQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi1BMjAwIHtcbiAgY29sb3I6IHJnYigxNzgsMjU1LDg5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTc4LDI1NSw4OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLUE0MDAge1xuICBjb2xvcjogcmdiKDExOCwyNTUsMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDExOCwyNTUsMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLUE3MDAge1xuICBjb2xvcjogcmdiKDEwMCwyMjEsMjMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDAsMjIxLDIzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZSB7XG4gIGNvbG9yOiByZ2IoMjA1LDIyMCw1NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNSwyMjAsNTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLTUwIHtcbiAgY29sb3I6IHJnYigyNDksMjUxLDIzMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OSwyNTEsMjMxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS0xMDAge1xuICBjb2xvcjogcmdiKDI0MCwyNDQsMTk1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MCwyNDQsMTk1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS0yMDAge1xuICBjb2xvcjogcmdiKDIzMCwyMzgsMTU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMCwyMzgsMTU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS0zMDAge1xuICBjb2xvcjogcmdiKDIyMCwyMzEsMTE3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyMCwyMzEsMTE3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS00MDAge1xuICBjb2xvcjogcmdiKDIxMiwyMjUsODcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjEyLDIyNSw4NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtNTAwIHtcbiAgY29sb3I6IHJnYigyMDUsMjIwLDU3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNSwyMjAsNTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLTYwMCB7XG4gIGNvbG9yOiByZ2IoMTkyLDIwMiw1MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTIsMjAyLDUxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS03MDAge1xuICBjb2xvcjogcmdiKDE3NSwxODAsNDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTc1LDE4MCw0MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtODAwIHtcbiAgY29sb3I6IHJnYigxNTgsMTU3LDM2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1OCwxNTcsMzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLTkwMCB7XG4gIGNvbG9yOiByZ2IoMTMwLDExOSwyMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMzAsMTE5LDIzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS1BMTAwIHtcbiAgY29sb3I6IHJnYigyNDQsMjU1LDEyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ0LDI1NSwxMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLUEyMDAge1xuICBjb2xvcjogcmdiKDIzOCwyNTUsNjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOCwyNTUsNjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLUE0MDAge1xuICBjb2xvcjogcmdiKDE5OCwyNTUsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTk4LDI1NSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS1BNzAwIHtcbiAgY29sb3I6IHJnYigxNzQsMjM0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3NCwyMzQsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdyB7XG4gIGNvbG9yOiByZ2IoMjU1LDIzNSw1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIzNSw1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy01MCB7XG4gIGNvbG9yOiByZ2IoMjU1LDI1MywyMzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNTMsMjMxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDI0OSwxOTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjQ5LDE5NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy0yMDAge1xuICBjb2xvcjogcmdiKDI1NSwyNDUsMTU3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI0NSwxNTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctMzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjQxLDExOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNDEsMTE4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIzOCw4OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMzgsODgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctNTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjM1LDU5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIzNSw1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy02MDAge1xuICBjb2xvcjogcmdiKDI1MywyMTYsNTMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTMsMjE2LDUzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LTcwMCB7XG4gIGNvbG9yOiByZ2IoMjUxLDE5Miw0NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1MSwxOTIsNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctODAwIHtcbiAgY29sb3I6IHJnYigyNDksMTY4LDM3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ5LDE2OCwzNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy05MDAge1xuICBjb2xvcjogcmdiKDI0NSwxMjcsMjMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDUsMTI3LDIzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LUExMDAge1xuICBjb2xvcjogcmdiKDI1NSwyNTUsMTQxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNTUsMTQxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LUEyMDAge1xuICBjb2xvcjogcmdiKDI1NSwyNTUsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjU1LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIzNCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMzQsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy1BNzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjE0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIxNCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXIge1xuICBjb2xvcjogcmdiKDI1NSwxOTMsNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTkzLDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci01MCB7XG4gIGNvbG9yOiByZ2IoMjU1LDI0OCwyMjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI0OCwyMjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci0xMDAge1xuICBjb2xvcjogcmdiKDI1NSwyMzYsMTc5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjM2LDE3OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTIwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIyNCwxMzApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMjQsMTMwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItMzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjEzLDc5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjEzLDc5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItNDAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjAyLDQwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjAyLDQwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItNTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTkzLDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxOTMsNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTYwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE3OSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTc5LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci03MDAge1xuICBjb2xvcjogcmdiKDI1NSwxNjAsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE2MCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItODAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTQzLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNDMsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTkwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDExMSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTExLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci1BMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjI5LDEyNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMjksMTI3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItQTIwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIxNSw2NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMTUsNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci1BNDAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTk2LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTk2LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci1BNzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTcxLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTcxLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2Uge1xuICBjb2xvcjogcmdiKDI1NSwxNTIsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE1MiwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTUwIHtcbiAgY29sb3I6IHJnYigyNTUsMjQzLDIyNCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2UtNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI0MywyMjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjI0LDE3OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2UtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMjQsMTc4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTIwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIwNCwxMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjA0LDEyOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS0zMDAge1xuICBjb2xvcjogcmdiKDI1NSwxODMsNzcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTgzLDc3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE2NywzOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2UtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNjcsMzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtNTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTUyLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTUyLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtNjAwIHtcbiAgY29sb3I6IHJnYigyNTEsMTQwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTEsMTQwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtNzAwIHtcbiAgY29sb3I6IHJnYigyNDUsMTI0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDUsMTI0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtODAwIHtcbiAgY29sb3I6IHJnYigyMzksMTA4LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzksMTA4LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtOTAwIHtcbiAgY29sb3I6IHJnYigyMzAsODEsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2UtOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMCw4MSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLUExMDAge1xuICBjb2xvcjogcmdiKDI1NSwyMDksMTI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMDksMTI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLUEyMDAge1xuICBjb2xvcjogcmdiKDI1NSwxNzEsNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE3MSw2NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BNDAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTQ1LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE0NSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLUE3MDAge1xuICBjb2xvcjogcmdiKDI1NSwxMDksMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2UtQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTA5LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZSB7XG4gIGNvbG9yOiByZ2IoMjU1LDg3LDM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSw4NywzNCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTUwIHtcbiAgY29sb3I6IHJnYigyNTEsMjMzLDIzMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTEsMjMzLDIzMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIwNCwxODgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMDQsMTg4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtMjAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTcxLDE0NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE3MSwxNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS0zMDAge1xuICBjb2xvcjogcmdiKDI1NSwxMzgsMTAxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTM4LDEwMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDExMiw2NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDExMiw2NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTUwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDg3LDM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsODcsMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS02MDAge1xuICBjb2xvcjogcmdiKDI0NCw4MSwzMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ0LDgxLDMwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtNzAwIHtcbiAgY29sb3I6IHJnYigyMzAsNzQsMjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMCw3NCwyNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTgwMCB7XG4gIGNvbG9yOiByZ2IoMjE2LDY3LDIxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTYsNjcsMjEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS05MDAge1xuICBjb2xvcjogcmdiKDE5MSw1NCwxMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTkxLDU0LDEyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE1OCwxMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTU4LDEyOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUEyMDAge1xuICBjb2xvcjogcmdiKDI1NSwxMTAsNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTEwLDY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDYxLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsNjEsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUE3MDAge1xuICBjb2xvcjogcmdiKDIyMSw0NCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjIxLDQ0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93biB7XG4gIGNvbG9yOiByZ2IoMTIxLDg1LDcyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJyb3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyMSw4NSw3MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTUwIHtcbiAgY29sb3I6IHJnYigyMzksMjM1LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzksMjM1LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjE1LDIwNCwyMDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxNSwyMDQsMjAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYnJvd24tMjAwIHtcbiAgY29sb3I6IHJnYigxODgsMTcwLDE2NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTg4LDE3MCwxNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi0zMDAge1xuICBjb2xvcjogcmdiKDE2MSwxMzYsMTI3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJyb3duLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNjEsMTM2LDEyNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTQwMCB7XG4gIGNvbG9yOiByZ2IoMTQxLDExMCw5OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQxLDExMCw5OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTUwMCB7XG4gIGNvbG9yOiByZ2IoMTIxLDg1LDcyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJyb3duLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjEsODUsNzIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi02MDAge1xuICBjb2xvcjogcmdiKDEwOSw3Niw2NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTA5LDc2LDY1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYnJvd24tNzAwIHtcbiAgY29sb3I6IHJnYig5Myw2NCw1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTMsNjQsNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi04MDAge1xuICBjb2xvcjogcmdiKDc4LDUyLDQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJyb3duLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig3OCw1Miw0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTkwMCB7XG4gIGNvbG9yOiByZ2IoNjIsMzksMzUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYyLDM5LDM1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleSB7XG4gIGNvbG9yOiByZ2IoMTU4LDE1OCwxNTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNTgsMTU4LDE1OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZXktNTAge1xuICBjb2xvcjogcmdiKDI1MCwyNTAsMjUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUwLDI1MCwyNTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTEwMCB7XG4gIGNvbG9yOiByZ2IoMjQ1LDI0NSwyNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1LDI0NSwyNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTIwMCB7XG4gIGNvbG9yOiByZ2IoMjM4LDIzOCwyMzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM4LDIzOCwyMzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTMwMCB7XG4gIGNvbG9yOiByZ2IoMjI0LDIyNCwyMjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI0LDIyNCwyMjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTQwMCB7XG4gIGNvbG9yOiByZ2IoMTg5LDE4OSwxODkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTg5LDE4OSwxODkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTUwMCB7XG4gIGNvbG9yOiByZ2IoMTU4LDE1OCwxNTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU4LDE1OCwxNTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTYwMCB7XG4gIGNvbG9yOiByZ2IoMTE3LDExNywxMTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTE3LDExNywxMTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTcwMCB7XG4gIGNvbG9yOiByZ2IoOTcsOTcsOTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTcsOTcsOTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTgwMCB7XG4gIGNvbG9yOiByZ2IoNjYsNjYsNjYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjYsNjYsNjYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTkwMCB7XG4gIGNvbG9yOiByZ2IoMzMsMzMsMzMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzMsMzMsMzMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXkge1xuICBjb2xvcjogcmdiKDk2LDEyNSwxMzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1ncmV5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDk2LDEyNSwxMzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNTAge1xuICBjb2xvcjogcmdiKDIzNiwyMzksMjQxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzYsMjM5LDI0MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS0xMDAge1xuICBjb2xvcjogcmdiKDIwNywyMTYsMjIwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA3LDIxNiwyMjApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktMjAwIHtcbiAgY29sb3I6IHJnYigxNzYsMTkwLDE5NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3NiwxOTAsMTk3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTMwMCB7XG4gIGNvbG9yOiByZ2IoMTQ0LDE2NCwxNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDQsMTY0LDE3NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS00MDAge1xuICBjb2xvcjogcmdiKDEyMCwxNDQsMTU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTIwLDE0NCwxNTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNTAwIHtcbiAgY29sb3I6IHJnYig5NiwxMjUsMTM5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTYsMTI1LDEzOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS02MDAge1xuICBjb2xvcjogcmdiKDg0LDExMCwxMjIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig4NCwxMTAsMTIyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTcwMCB7XG4gIGNvbG9yOiByZ2IoNjksOTAsMTAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjksOTAsMTAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTgwMCB7XG4gIGNvbG9yOiByZ2IoNTUsNzEsNzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1NSw3MSw3OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS05MDAge1xuICBjb2xvcjogcmdiKDM4LDUwLDU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzgsNTAsNTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmxhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibGFjayB7XG4gIGNvbG9yOiByZ2IoMCwwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0td2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS13aGl0ZSB7XG4gIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2Myw4MSwxODEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHJpbWFyeS1jb250cmFzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjU1LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wcmltYXJ5LWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDgsNjMsMTU5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsNjQsMTI5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFjY2VudC1jb250cmFzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjU1LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXByaW1hcnkge1xuICBjb2xvcjogcmdiKDYzLDgxLDE4MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXByaW1hcnktY29udHJhc3Qge1xuICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHJpbWFyeS1kYXJrIHtcbiAgY29sb3I6IHJnYig0OCw2MywxNTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hY2NlbnQge1xuICBjb2xvcjogcmdiKDI1NSw2NCwxMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hY2NlbnQtY29udHJhc3Qge1xuICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4ubWRsLXJpcHBsZSB7XG4gIGJhY2tncm91bmQ6IHJnYigwLDAsMCk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHdpZHRoOiA1MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGwtcmlwcGxlLmlzLWFuaW1hdGluZyB7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgaGVpZ2h0IDAuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC42cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgd2lkdGggMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgaGVpZ2h0IDAuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC42cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgd2lkdGggMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgaGVpZ2h0IDAuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC42cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuICAubWRsLXJpcHBsZS5pcy12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAwLjM7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi5tZGwtYW5pbWF0aW9uLS1kZWZhdWx0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cblxuLm1kbC1hbmltYXRpb24tLWZhc3Qtb3V0LXNsb3ctaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRsLWFuaW1hdGlvbi0tbGluZWFyLW91dC1zbG93LWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpOyB9XG5cbi5tZGwtYW5pbWF0aW9uLS1mYXN0LW91dC1saW5lYXItaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi5tZGwtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1hcmdpbi1yaWdodDogMjRweDsgfVxuICAubWRsLWJhZGdlOm5vdChbZGF0YS1iYWRnZV0pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLm1kbC1iYWRnZVtkYXRhLWJhZGdlXTphZnRlciB7XG4gICAgY29udGVudDogYXR0cihkYXRhLWJhZGdlKTtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgLW1zLWZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtbGluZS1wYWNrOiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMTFweDtcbiAgICByaWdodDogLTI0cHg7XG4gICAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHJnYigyNTUsNjQsMTI5KTtcbiAgICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KTsgfVxuICAgIC5tZGwtYnV0dG9uIC5tZGwtYmFkZ2VbZGF0YS1iYWRnZV06YWZ0ZXIge1xuICAgICAgdG9wOiAtMTBweDtcbiAgICAgIHJpZ2h0OiAtNXB4OyB9XG4gIC5tZGwtYmFkZ2UubWRsLWJhZGdlLS1uby1iYWNrZ3JvdW5kW2RhdGEtYmFkZ2VdOmFmdGVyIHtcbiAgICBjb2xvcjogcmdiKDI1NSw2NCwxMjkpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMXB4IGdyYXk7IH1cbiAgLm1kbC1iYWRnZS5tZGwtYmFkZ2UtLW92ZXJsYXAge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAgIC5tZGwtYmFkZ2UubWRsLWJhZGdlLS1vdmVybGFwOmFmdGVyIHtcbiAgICAgIHJpZ2h0OiAtMTBweDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi8qIERpYWxvZyAqL1xuLm1kbC1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGNvbG9yOiByZ2IoMCwwLDApO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMzZweDtcbiAgbWFyZ2luOiAwO1xuICBtaW4td2lkdGg6IDY0cHg7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lsbC1jaGFuZ2U6IGJveC1zaGFkb3c7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLm1kbC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDsgfVxuICAubWRsLWJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTgsMTU4LDE1OCwgMC4yMCk7IH1cbiAgLm1kbC1idXR0b246Zm9jdXM6bm90KDphY3RpdmUpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjEyKTsgfVxuICAubWRsLWJ1dHRvbjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTU4LDE1OCwxNTgsIDAuNDApOyB9XG4gIC5tZGwtYnV0dG9uLm1kbC1idXR0b24tLWNvbG9yZWQge1xuICAgIGNvbG9yOiByZ2IoNjMsODEsMTgxKTsgfVxuICAgIC5tZGwtYnV0dG9uLm1kbC1idXR0b24tLWNvbG9yZWQ6Zm9jdXM6bm90KDphY3RpdmUpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIDAuMTIpOyB9XG5cbmlucHV0Lm1kbC1idXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4ubWRsLWJ1dHRvbi0tcmFpc2VkIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxNTgsMTU4LDE1OCwgMC4yMCk7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAubWRsLWJ1dHRvbi0tcmFpc2VkOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjQwKTsgfVxuICAubWRsLWJ1dHRvbi0tcmFpc2VkOmZvY3VzOm5vdCg6YWN0aXZlKSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuMTgpLCAwIDhweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4zNik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTgsMTU4LDE1OCwgMC40MCk7IH1cbiAgLm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1jb2xvcmVkIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTtcbiAgICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KTsgfVxuICAgIC5tZGwtYnV0dG9uLS1yYWlzZWQubWRsLWJ1dHRvbi0tY29sb3JlZDpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKTsgfVxuICAgIC5tZGwtYnV0dG9uLS1yYWlzZWQubWRsLWJ1dHRvbi0tY29sb3JlZDphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSk7IH1cbiAgICAubWRsLWJ1dHRvbi0tcmFpc2VkLm1kbC1idXR0b24tLWNvbG9yZWQ6Zm9jdXM6bm90KDphY3RpdmUpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gICAgLm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1jb2xvcmVkIC5tZGwtcmlwcGxlIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYigyNTUsMjU1LDI1NSk7IH1cblxuLm1kbC1idXR0b24tLWZhYiB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBoZWlnaHQ6IDU2cHg7XG4gIG1hcmdpbjogYXV0bztcbiAgbWluLXdpZHRoOiA1NnB4O1xuICB3aWR0aDogNTZweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogcmdiYSgxNTgsMTU4LDE1OCwgMC4yMCk7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDEuNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAxcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI0KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gIC5tZGwtYnV0dG9uLS1mYWIgLm1hdGVyaWFsLWljb25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEycHgsIC0xMnB4KTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMnB4LCAtMTJweCk7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7IH1cbiAgLm1kbC1idXR0b24tLWZhYi5tZGwtYnV0dG9uLS1taW5pLWZhYiB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1pbi13aWR0aDogNDBweDtcbiAgICB3aWR0aDogNDBweDsgfVxuICAubWRsLWJ1dHRvbi0tZmFiIC5tZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVyIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7IH1cbiAgLm1kbC1idXR0b24tLWZhYjphY3RpdmUge1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTgsMTU4LDE1OCwgMC40MCk7IH1cbiAgLm1kbC1idXR0b24tLWZhYjpmb2N1czpub3QoOmFjdGl2ZSkge1xuICAgIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjE4KSwgMCA4cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMzYpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTU4LDE1OCwxNTgsIDAuNDApOyB9XG4gIC5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tY29sb3JlZCB7XG4gICAgYmFja2dyb3VuZDogcmdiKDI1NSw2NCwxMjkpO1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG4gICAgLm1kbC1idXR0b24tLWZhYi5tZGwtYnV0dG9uLS1jb2xvcmVkOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsNjQsMTI5KTsgfVxuICAgIC5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tY29sb3JlZDpmb2N1czpub3QoOmFjdGl2ZSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSw2NCwxMjkpOyB9XG4gICAgLm1kbC1idXR0b24tLWZhYi5tZGwtYnV0dG9uLS1jb2xvcmVkOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDY0LDEyOSk7IH1cbiAgICAubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLWNvbG9yZWQgLm1kbC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZDogcmdiKDI1NSwyNTUsMjU1KTsgfVxuXG4ubWRsLWJ1dHRvbi0taWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1pbi13aWR0aDogMzJweDtcbiAgd2lkdGg6IDMycHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gIC5tZGwtYnV0dG9uLS1pY29uIC5tYXRlcmlhbC1pY29ucyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMnB4LCAtMTJweCk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTJweCwgLTEycHgpO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAyNHB4OyB9XG4gIC5tZGwtYnV0dG9uLS1pY29uLm1kbC1idXR0b24tLW1pbmktaWNvbiB7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIG1pbi13aWR0aDogMjRweDtcbiAgICB3aWR0aDogMjRweDsgfVxuICAgIC5tZGwtYnV0dG9uLS1pY29uLm1kbC1idXR0b24tLW1pbmktaWNvbiAubWF0ZXJpYWwtaWNvbnMge1xuICAgICAgdG9wOiAwcHg7XG4gICAgICBsZWZ0OiAwcHg7IH1cbiAgLm1kbC1idXR0b24tLWljb24gLm1kbC1idXR0b25fX3JpcHBsZS1jb250YWluZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgd2hpdGUsIGJsYWNrKTsgfVxuXG4ubWRsLWJ1dHRvbl9fcmlwcGxlLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kbC1idXR0b25bZGlzYWJsZWRdIC5tZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxlLFxuICAubWRsLWJ1dHRvbi5tZGwtYnV0dG9uLS1kaXNhYmxlZCAubWRsLWJ1dHRvbl9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tcHJpbWFyeSB7XG4gIGNvbG9yOiByZ2IoNjMsODEsMTgxKTsgfVxuICAubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1wcmltYXJ5IC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG4gIC5tZGwtYnV0dG9uLS1wcmltYXJ5Lm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tcmFpc2VkLCAubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1wcmltYXJ5Lm1kbC1idXR0b24tLWZhYiB7XG4gICAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSk7IH1cblxuLm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1hY2NlbnQge1xuICBjb2xvcjogcmdiKDI1NSw2NCwxMjkpOyB9XG4gIC5tZGwtYnV0dG9uLS1hY2NlbnQubWRsLWJ1dHRvbi0tYWNjZW50IC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG4gIC5tZGwtYnV0dG9uLS1hY2NlbnQubWRsLWJ1dHRvbi0tYWNjZW50Lm1kbC1idXR0b24tLXJhaXNlZCwgLm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1hY2NlbnQubWRsLWJ1dHRvbi0tZmFiIHtcbiAgICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDY0LDEyOSk7IH1cblxuLm1kbC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLm1kbC1idXR0b24ubWRsLWJ1dHRvbi0tZGlzYWJsZWQubWRsLWJ1dHRvbi0tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLDAsMCwgMC4yNik7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLm1kbC1idXR0b24tLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwgMC4xMik7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTsgfVxuXG4ubWRsLWJ1dHRvbi0tcmFpc2VkW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tZGwtYnV0dG9uLS1yYWlzZWQubWRsLWJ1dHRvbi0tZGlzYWJsZWQubWRsLWJ1dHRvbi0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjEyKTtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5tZGwtYnV0dG9uLS1jb2xvcmVkW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tZGwtYnV0dG9uLS1jb2xvcmVkLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpOyB9XG5cbi5tZGwtYnV0dG9uIC5tYXRlcmlhbC1pY29ucyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi5tZGwtY2FyZCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWluLWhlaWdodDogMjAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAzMzBweDtcbiAgei1pbmRleDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiByZ2IoMjU1LDI1NSwyNTUpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1kbC1jYXJkX19tZWRpYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsNjQsMTI5KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmctYm94O1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ubWRsLWNhcmRfX3RpdGxlIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogcmdiKDAsMCwwKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuICAgICAgLW1zLWZsZXgtcGFjazogc3RyZXRjaDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDE2cHggMTZweDtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW46IDE2NXB4IDU2cHg7XG4gICAgICAgICAgcGVyc3BlY3RpdmUtb3JpZ2luOiAxNjVweCA1NnB4O1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDE2NXB4IDU2cHg7XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMTY1cHggNTZweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAubWRsLWNhcmRfX3RpdGxlLm1kbC1jYXJkLS1ib3JkZXIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLm1kbC1jYXJkX190aXRsZS10ZXh0IHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTQ5cHggNDhweDtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxNDlweCA0OHB4O1xuICBtYXJnaW46IDA7IH1cblxuLm1kbC1jYXJkX19zdWJ0aXRsZS10ZXh0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogcmdiYSgwLDAsMCwgMC41NCk7XG4gIG1hcmdpbjogMDsgfVxuXG4ubWRsLWNhcmRfX3N1cHBvcnRpbmctdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjU0KTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMTZweCAxNnB4O1xuICB3aWR0aDogOTAlOyB9XG5cbi5tZGwtY2FyZF9fYWN0aW9ucyB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiA4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLm1kbC1jYXJkX19hY3Rpb25zLm1kbC1jYXJkLS1ib3JkZXIge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLm1kbC1jYXJkLS1leHBhbmQge1xuICAtd2Via2l0LWZsZXgtZ3JvdzogMTtcbiAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xuICAgICAgICAgIGZsZXgtZ3JvdzogMTsgfVxuXG4ubWRsLWNhcmRfX21lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxNnB4O1xuICB0b3A6IDE2cHg7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjRweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtdXBncmFkZWQge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDsgfVxuXG4ubWRsLWNoZWNrYm94X19pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG4gIC5tZGwtY2hlY2tib3guaXMtdXBncmFkZWQgLm1kbC1jaGVja2JveF9faW5wdXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lOyB9XG5cbi5tZGwtY2hlY2tib3hfX2JveC1vdXRsaW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDNweDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW46IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLDAsMCwgMC41NCk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgei1pbmRleDogMjsgfVxuICAubWRsLWNoZWNrYm94LmlzLWNoZWNrZWQgLm1kbC1jaGVja2JveF9fYm94LW91dGxpbmUge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYig2Myw4MSwxODEpOyB9XG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLWNoZWNrYm94IC5tZGwtY2hlY2tib3hfX2JveC1vdXRsaW5lLFxuICAubWRsLWNoZWNrYm94LmlzLWRpc2FibGVkIC5tZGwtY2hlY2tib3hfX2JveC1vdXRsaW5lIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICBjdXJzb3I6IGF1dG87IH1cblxuLm1kbC1jaGVja2JveF9fZm9jdXMtaGVscGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDNweDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5tZGwtY2hlY2tib3guaXMtZm9jdXNlZCAubWRsLWNoZWNrYm94X19mb2N1cy1oZWxwZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgLm1kbC1jaGVja2JveC5pcy1mb2N1c2VkLmlzLWNoZWNrZWQgLm1kbC1jaGVja2JveF9fZm9jdXMtaGVscGVyIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMHB4IDhweCByZ2JhKDYzLDgxLDE4MSwgMC4yNik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg2Myw4MSwxODEsIDAuMjYpOyB9XG5cbi5tZGwtY2hlY2tib3hfX3RpY2stb3V0bGluZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICAtd2Via2l0LW1hc2s6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpSUhOMFlXNWtZV3h2Ym1VOUltNXZJajgrQ2p4emRtY0tJQ0FnZUcxc2JuTTZaR005SW1oMGRIQTZMeTl3ZFhKc0xtOXlaeTlrWXk5bGJHVnRaVzUwY3k4eExqRXZJZ29nSUNCNGJXeHVjenBqWXowaWFIUjBjRG92TDJOeVpXRjBhWFpsWTI5dGJXOXVjeTV2Y21jdmJuTWpJZ29nSUNCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaUNpQWdJSGh0Ykc1ek9uTjJaejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpQ2lBZ0lIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJS0lDQWdkbVZ5YzJsdmJqMGlNUzR4SWdvZ0lDQjJhV1YzUW05NFBTSXdJREFnTVNBeElnb2dJQ0J3Y21WelpYSjJaVUZ6Y0dWamRGSmhkR2x2UFNKNFRXbHVXVTFwYmlCdFpXVjBJajRLSUNBOFpHVm1jejRLSUNBZ0lEeGpiR2x3VUdGMGFDQnBaRDBpWTJ4cGNDSStDaUFnSUNBZ0lEeHdZWFJvQ2lBZ0lDQWdJQ0FnSUdROUlrMGdNQ3d3SURBc01TQXhMREVnTVN3d0lEQXNNQ0I2SUUwZ01DNDROVE0wTXpjMUxEQXVNVFkzTVRnM05TQXdMamsxT1RZNE56VXNNQzR5TnpNeE1qVWdNQzQwTWprek56VXNNQzQ0TURNME16YzFJREF1TXpJek1USTFMREF1T1RBNU5qZzNOU0F3TGpJeE56RTROelVzTUM0NE1ETTBNemMxSURBdU1EUXdNekV5TlN3d0xqWXlOamczTlNBd0xqRTBOalUyTWpVc01DNDFNakEyTWpVZ01DNHpNak14TWpVc01DNDJPVGMxSURBdU9EVXpORE0zTlN3d0xqRTJOekU0TnpVZ2VpSUtJQ0FnSUNBZ0lDQWdjM1I1YkdVOUltWnBiR3c2STJabVptWm1aanRtYVd4c0xXOXdZV05wZEhrNk1UdHpkSEp2YTJVNmJtOXVaU0lnTHo0S0lDQWdJRHd2WTJ4cGNGQmhkR2crQ2lBZ0lDQThiV0Z6YXlCcFpEMGliV0Z6YXlJZ2JXRnphMVZ1YVhSelBTSnZZbXBsWTNSQ2IzVnVaR2x1WjBKdmVDSWdiV0Z6YTBOdmJuUmxiblJWYm1sMGN6MGliMkpxWldOMFFtOTFibVJwYm1kQ2IzZ2lQZ29nSUNBZ0lDQThjR0YwYUFvZ0lDQWdJQ0FnSUNCa1BTSk5JREFzTUNBd0xERWdNU3d4SURFc01DQXdMREFnZWlCTklEQXVPRFV6TkRNM05Td3dMakUyTnpFNE56VWdNQzQ1TlRrMk9EYzFMREF1TWpjek1USTFJREF1TkRJNU16YzFMREF1T0RBek5ETTNOU0F3TGpNeU16RXlOU3d3TGprd09UWTROelVnTUM0eU1UY3hPRGMxTERBdU9EQXpORE0zTlNBd0xqQTBNRE14TWpVc01DNDJNalk0TnpVZ01DNHhORFkxTmpJMUxEQXVOVEl3TmpJMUlEQXVNekl6TVRJMUxEQXVOamszTlNBd0xqZzFNelF6TnpVc01DNHhOamN4T0RjMUlIb2lDaUFnSUNBZ0lDQWdJSE4wZVd4bFBTSm1hV3hzT2lObVptWm1abVk3Wm1sc2JDMXZjR0ZqYVhSNU9qRTdjM1J5YjJ0bE9tNXZibVVpSUM4K0NpQWdJQ0E4TDIxaGMycytDaUFnUEM5a1pXWnpQZ29nSUR4eVpXTjBDaUFnSUNBZ2QybGtkR2c5SWpFaUNpQWdJQ0FnYUdWcFoyaDBQU0l4SWdvZ0lDQWdJSGc5SWpBaUNpQWdJQ0FnZVQwaU1DSUtJQ0FnSUNCamJHbHdMWEJoZEdnOUluVnliQ2dqWTJ4cGNDa2lDaUFnSUNBZ2MzUjViR1U5SW1acGJHdzZJekF3TURBd01EdG1hV3hzTFc5d1lXTnBkSGs2TVR0emRISnZhMlU2Ym05dVpTSWdMejRLUEM5emRtYytDZz09XCIpO1xuICAgICAgICAgIG1hc2s6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpSUhOMFlXNWtZV3h2Ym1VOUltNXZJajgrQ2p4emRtY0tJQ0FnZUcxc2JuTTZaR005SW1oMGRIQTZMeTl3ZFhKc0xtOXlaeTlrWXk5bGJHVnRaVzUwY3k4eExqRXZJZ29nSUNCNGJXeHVjenBqWXowaWFIUjBjRG92TDJOeVpXRjBhWFpsWTI5dGJXOXVjeTV2Y21jdmJuTWpJZ29nSUNCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaUNpQWdJSGh0Ykc1ek9uTjJaejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpQ2lBZ0lIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJS0lDQWdkbVZ5YzJsdmJqMGlNUzR4SWdvZ0lDQjJhV1YzUW05NFBTSXdJREFnTVNBeElnb2dJQ0J3Y21WelpYSjJaVUZ6Y0dWamRGSmhkR2x2UFNKNFRXbHVXVTFwYmlCdFpXVjBJajRLSUNBOFpHVm1jejRLSUNBZ0lEeGpiR2x3VUdGMGFDQnBaRDBpWTJ4cGNDSStDaUFnSUNBZ0lEeHdZWFJvQ2lBZ0lDQWdJQ0FnSUdROUlrMGdNQ3d3SURBc01TQXhMREVnTVN3d0lEQXNNQ0I2SUUwZ01DNDROVE0wTXpjMUxEQXVNVFkzTVRnM05TQXdMamsxT1RZNE56VXNNQzR5TnpNeE1qVWdNQzQwTWprek56VXNNQzQ0TURNME16YzFJREF1TXpJek1USTFMREF1T1RBNU5qZzNOU0F3TGpJeE56RTROelVzTUM0NE1ETTBNemMxSURBdU1EUXdNekV5TlN3d0xqWXlOamczTlNBd0xqRTBOalUyTWpVc01DNDFNakEyTWpVZ01DNHpNak14TWpVc01DNDJPVGMxSURBdU9EVXpORE0zTlN3d0xqRTJOekU0TnpVZ2VpSUtJQ0FnSUNBZ0lDQWdjM1I1YkdVOUltWnBiR3c2STJabVptWm1aanRtYVd4c0xXOXdZV05wZEhrNk1UdHpkSEp2YTJVNmJtOXVaU0lnTHo0S0lDQWdJRHd2WTJ4cGNGQmhkR2crQ2lBZ0lDQThiV0Z6YXlCcFpEMGliV0Z6YXlJZ2JXRnphMVZ1YVhSelBTSnZZbXBsWTNSQ2IzVnVaR2x1WjBKdmVDSWdiV0Z6YTBOdmJuUmxiblJWYm1sMGN6MGliMkpxWldOMFFtOTFibVJwYm1kQ2IzZ2lQZ29nSUNBZ0lDQThjR0YwYUFvZ0lDQWdJQ0FnSUNCa1BTSk5JREFzTUNBd0xERWdNU3d4SURFc01DQXdMREFnZWlCTklEQXVPRFV6TkRNM05Td3dMakUyTnpFNE56VWdNQzQ1TlRrMk9EYzFMREF1TWpjek1USTFJREF1TkRJNU16YzFMREF1T0RBek5ETTNOU0F3TGpNeU16RXlOU3d3TGprd09UWTROelVnTUM0eU1UY3hPRGMxTERBdU9EQXpORE0zTlNBd0xqQTBNRE14TWpVc01DNDJNalk0TnpVZ01DNHhORFkxTmpJMUxEQXVOVEl3TmpJMUlEQXVNekl6TVRJMUxEQXVOamszTlNBd0xqZzFNelF6TnpVc01DNHhOamN4T0RjMUlIb2lDaUFnSUNBZ0lDQWdJSE4wZVd4bFBTSm1hV3hzT2lObVptWm1abVk3Wm1sc2JDMXZjR0ZqYVhSNU9qRTdjM1J5YjJ0bE9tNXZibVVpSUM4K0NpQWdJQ0E4TDIxaGMycytDaUFnUEM5a1pXWnpQZ29nSUR4eVpXTjBDaUFnSUNBZ2QybGtkR2c5SWpFaUNpQWdJQ0FnYUdWcFoyaDBQU0l4SWdvZ0lDQWdJSGc5SWpBaUNpQWdJQ0FnZVQwaU1DSUtJQ0FnSUNCamJHbHdMWEJoZEdnOUluVnliQ2dqWTJ4cGNDa2lDaUFnSUNBZ2MzUjViR1U5SW1acGJHdzZJekF3TURBd01EdG1hV3hzTFc5d1lXTnBkSGs2TVR0emRISnZhMlU2Ym05dVpTSWdMejRLUEM5emRtYytDZz09XCIpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yOHM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtY2hlY2tlZCAubWRsLWNoZWNrYm94X190aWNrLW91dGxpbmUge1xuICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpSUhOMFlXNWtZV3h2Ym1VOUltNXZJajgrQ2p4emRtY0tJQ0FnZUcxc2JuTTZaR005SW1oMGRIQTZMeTl3ZFhKc0xtOXlaeTlrWXk5bGJHVnRaVzUwY3k4eExqRXZJZ29nSUNCNGJXeHVjenBqWXowaWFIUjBjRG92TDJOeVpXRjBhWFpsWTI5dGJXOXVjeTV2Y21jdmJuTWpJZ29nSUNCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaUNpQWdJSGh0Ykc1ek9uTjJaejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpQ2lBZ0lIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJS0lDQWdkbVZ5YzJsdmJqMGlNUzR4SWdvZ0lDQjJhV1YzUW05NFBTSXdJREFnTVNBeElnb2dJQ0J3Y21WelpYSjJaVUZ6Y0dWamRGSmhkR2x2UFNKNFRXbHVXVTFwYmlCdFpXVjBJajRLSUNBOGNHRjBhQW9nSUNBZ0lHUTlJazBnTUM0d05EQXpPREExT1N3d0xqWXlOamMzTmpjZ01DNHhORFkwTkRZMk1Td3dMalV5TURjeE1EWTRJREF1TkRJNU1qZzVNeklzTUM0NE1ETTFOVE16T1NBd0xqTXlNekl5TXpNc01DNDVNRGsyTVRrME1TQjZJRTBnTUM0eU1UY3hOVGN5T1N3d0xqZ3dNelUxTXpNNUlEQXVPRFV6TlRVek16a3NNQzR4TmpjeE5UY3lPU0F3TGprMU9UWXhPVFF4TERBdU1qY3pNakl6TXlBd0xqTXlNekl5TXpNc01DNDVNRGsyTVRrME1TQjZJZ29nSUNBZ0lHbGtQU0p5WldOME16YzRNQ0lLSUNBZ0lDQnpkSGxzWlQwaVptbHNiRG9qWm1abVptWm1PMlpwYkd3dGIzQmhZMmwwZVRveE8zTjBjbTlyWlRwdWIyNWxJaUF2UGdvOEwzTjJaejRLXCIpOyB9XG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLWNoZWNrYm94LmlzLWNoZWNrZWQgLm1kbC1jaGVja2JveF9fdGljay1vdXRsaW5lLFxuICAubWRsLWNoZWNrYm94LmlzLWNoZWNrZWQuaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fdGljay1vdXRsaW5lIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwLjI2KSB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaUlITjBZVzVrWVd4dmJtVTlJbTV2SWo4K0NqeHpkbWNLSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWdvZ0lDQjRiV3h1Y3pwall6MGlhSFIwY0RvdkwyTnlaV0YwYVhabFkyOXRiVzl1Y3k1dmNtY3Zibk1qSWdvZ0lDQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlDaUFnSUhodGJHNXpPbk4yWnowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUNpQWdJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SUtJQ0FnZG1WeWMybHZiajBpTVM0eElnb2dJQ0IyYVdWM1FtOTRQU0l3SURBZ01TQXhJZ29nSUNCd2NtVnpaWEoyWlVGemNHVmpkRkpoZEdsdlBTSjRUV2x1V1UxcGJpQnRaV1YwSWo0S0lDQThjR0YwYUFvZ0lDQWdJR1E5SWswZ01DNHdOREF6T0RBMU9Td3dMall5TmpjM05qY2dNQzR4TkRZME5EWTJNU3d3TGpVeU1EY3hNRFk0SURBdU5ESTVNamc1TXpJc01DNDRNRE0xTlRNek9TQXdMak15TXpJeU16TXNNQzQ1TURrMk1UazBNU0I2SUUwZ01DNHlNVGN4TlRjeU9Td3dMamd3TXpVMU16TTVJREF1T0RVek5UVXpNemtzTUM0eE5qY3hOVGN5T1NBd0xqazFPVFl4T1RReExEQXVNamN6TWpJek15QXdMak15TXpJeU16TXNNQzQ1TURrMk1UazBNU0I2SWdvZ0lDQWdJR2xrUFNKeVpXTjBNemM0TUNJS0lDQWdJQ0J6ZEhsc1pUMGlabWxzYkRvalptWm1abVptTzJacGJHd3RiM0JoWTJsMGVUb3hPM04wY205clpUcHViMjVsSWlBdlBnbzhMM04yWno0S1wiKTsgfVxuXG4ubWRsLWNoZWNrYm94X19sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW46IDA7IH1cbiAgZmllbGRzZXRbZGlzYWJsZWRdIC5tZGwtY2hlY2tib3ggLm1kbC1jaGVja2JveF9fbGFiZWwsXG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICBjdXJzb3I6IGF1dG87IH1cblxuLm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAtNnB4O1xuICBsZWZ0OiAtMTBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSwgYmxhY2spOyB9XG4gIC5tZGwtY2hlY2tib3hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpOyB9XG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLWNoZWNrYm94IC5tZGwtY2hlY2tib3hfX3JpcHBsZS1jb250YWluZXIsXG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLWNoZWNrYm94IC5tZGwtY2hlY2tib3hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUsXG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtY2hpcCB7XG4gIGhlaWdodDogMzJweDtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZWRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjg3KTtcbiAgbWFyZ2luOiAycHggMDtcbiAgZm9udC1zaXplOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gIC5tZGwtY2hpcF9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5tZGwtY2hpcF9fYWN0aW9uIHtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgb3BhY2l0eTogMC41NDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwIDAgMCA0cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogcmdiYSgwLDAsMCwgMC44Nyk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAubWRsLWNoaXBfX2NvbnRhY3Qge1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMzJweDsgfVxuICAubWRsLWNoaXA6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG4gIC5tZGwtY2hpcDphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkNmQ2ZDY7IH1cbiAgLm1kbC1jaGlwLS1kZWxldGFibGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweDsgfVxuICAubWRsLWNoaXAtLWNvbnRhY3Qge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi8qIERpYWxvZyAqL1xuLm1kbC1kYXRhLXRhYmxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjU1LDI1NSk7IH1cbiAgLm1kbC1kYXRhLXRhYmxlIHRoZWFkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4OyB9XG4gICAgLm1kbC1kYXRhLXRhYmxlIHRoZWFkIC5tZGwtZGF0YS10YWJsZV9fc2VsZWN0IHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLm1kbC1kYXRhLXRhYmxlIHRib2R5IHRyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjhzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3I7IH1cbiAgICAubWRsLWRhdGEtdGFibGUgdGJvZHkgdHIuaXMtc2VsZWN0ZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsgfVxuICAgIC5tZGwtZGF0YS10YWJsZSB0Ym9keSB0cjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlOyB9XG4gIC5tZGwtZGF0YS10YWJsZSB0ZCwgLm1kbC1kYXRhLXRhYmxlIHRoIHtcbiAgICBwYWRkaW5nOiAwIDE4cHggMTJweCAxOHB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLm1kbC1kYXRhLXRhYmxlIHRkOmZpcnN0LW9mLXR5cGUsIC5tZGwtZGF0YS10YWJsZSB0aDpmaXJzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsgfVxuICAgIC5tZGwtZGF0YS10YWJsZSB0ZDpsYXN0LW9mLXR5cGUsIC5tZGwtZGF0YS10YWJsZSB0aDpsYXN0LW9mLXR5cGUge1xuICAgICAgcGFkZGluZy1yaWdodDogMjRweDsgfVxuICAubWRsLWRhdGEtdGFibGUgdGQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGhlaWdodDogNDhweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgLm1kbC1kYXRhLXRhYmxlIHRkIC5tZGwtZGF0YS10YWJsZV9fc2VsZWN0IHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLm1kbC1kYXRhLXRhYmxlIHRoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAubWRsLWRhdGEtdGFibGUgdGgubWRsLWRhdGEtdGFibGVfX2hlYWRlci0tc29ydGVkLWFzY2VuZGluZywgLm1kbC1kYXRhLXRhYmxlIHRoLm1kbC1kYXRhLXRhYmxlX19oZWFkZXItLXNvcnRlZC1kZXNjZW5kaW5nIHtcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpOyB9XG4gICAgICAubWRsLWRhdGEtdGFibGUgdGgubWRsLWRhdGEtdGFibGVfX2hlYWRlci0tc29ydGVkLWFzY2VuZGluZzpiZWZvcmUsIC5tZGwtZGF0YS10YWJsZSB0aC5tZGwtZGF0YS10YWJsZV9faGVhZGVyLS1zb3J0ZWQtZGVzY2VuZGluZzpiZWZvcmUge1xuICAgICAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgICAgICAgLW1vei1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgICAgICAgICAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgICAgICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgY29udGVudDogXCJcXGU1ZDhcIjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBzdWI7IH1cbiAgICAgIC5tZGwtZGF0YS10YWJsZSB0aC5tZGwtZGF0YS10YWJsZV9faGVhZGVyLS1zb3J0ZWQtYXNjZW5kaW5nOmhvdmVyLCAubWRsLWRhdGEtdGFibGUgdGgubWRsLWRhdGEtdGFibGVfX2hlYWRlci0tc29ydGVkLWRlc2NlbmRpbmc6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgICAgLm1kbC1kYXRhLXRhYmxlIHRoLm1kbC1kYXRhLXRhYmxlX19oZWFkZXItLXNvcnRlZC1hc2NlbmRpbmc6aG92ZXI6YmVmb3JlLCAubWRsLWRhdGEtdGFibGUgdGgubWRsLWRhdGEtdGFibGVfX2hlYWRlci0tc29ydGVkLWRlc2NlbmRpbmc6aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTsgfVxuICAgIC5tZGwtZGF0YS10YWJsZSB0aC5tZGwtZGF0YS10YWJsZV9faGVhZGVyLS1zb3J0ZWQtZGVzY2VuZGluZzpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGU1ZGJcIjsgfVxuXG4ubWRsLWRhdGEtdGFibGVfX3NlbGVjdCB7XG4gIHdpZHRoOiAxNnB4OyB9XG5cbi5tZGwtZGF0YS10YWJsZV9fY2VsbC0tbm9uLW51bWVyaWMubWRsLWRhdGEtdGFibGVfX2NlbGwtLW5vbi1udW1lcmljIHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi8qIERpYWxvZyAqL1xuLm1kbC1kaWFsb2cge1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgd2lkdGg6IDI4MHB4OyB9XG4gIC5tZGwtZGlhbG9nX190aXRsZSB7XG4gICAgcGFkZGluZzogMjRweCAyNHB4IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMi41cmVtOyB9XG4gIC5tZGwtZGlhbG9nX19hY3Rpb25zIHtcbiAgICBwYWRkaW5nOiA4cHggOHB4IDhweCAyNHB4O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1kbC1kaWFsb2dfX2FjdGlvbnMgPiAqIHtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgaGVpZ2h0OiAzNnB4OyB9XG4gICAgICAubWRsLWRpYWxvZ19fYWN0aW9ucyA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAubWRsLWRpYWxvZ19fYWN0aW9ucy0tZnVsbC13aWR0aCB7XG4gICAgICBwYWRkaW5nOiAwIDAgOHB4IDA7IH1cbiAgICAgIC5tZGwtZGlhbG9nX19hY3Rpb25zLS1mdWxsLXdpZHRoID4gKiB7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgLXdlYmtpdC1mbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgICAgIC1tcy1mbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubWRsLWRpYWxvZ19fY29udGVudCB7XG4gICAgcGFkZGluZzogMjBweCAyNHB4IDI0cHggMjRweDtcbiAgICBjb2xvcjogcmdiYSgwLDAsMCwgMC41NCk7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtbWVnYS1mb290ZXIge1xuICBwYWRkaW5nOiAxNnB4IDQwcHg7XG4gIGNvbG9yOiByZ2IoMTU4LDE1OCwxNTgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjYsNjYsNjYpOyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLXRvcC1zZWN0aW9uOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlci0tbWlkZGxlLXNlY3Rpb246YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyLS1ib3R0b20tc2VjdGlvbjphZnRlcixcbi5tZGwtbWVnYS1mb290ZXJfX3RvcC1zZWN0aW9uOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlcl9fbWlkZGxlLXNlY3Rpb246YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tbGVmdC1zZWN0aW9uLFxuLm1kbC1tZWdhLWZvb3Rlcl9fbGVmdC1zZWN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1yaWdodC1zZWN0aW9uLFxuLm1kbC1tZWdhLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tcmlnaHQtc2VjdGlvbiBhLFxuLm1kbC1tZWdhLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgLm1kbC1tZWdhLWZvb3Rlci0tbGVmdC1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyX19sZWZ0LXNlY3Rpb24ge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLXJpZ2h0LXNlY3Rpb24sXG4gIC5tZGwtbWVnYS1mb290ZXJfX3JpZ2h0LXNlY3Rpb24ge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1yaWdodC1zZWN0aW9uIGEsXG4gIC5tZGwtbWVnYS1mb290ZXJfX3JpZ2h0LXNlY3Rpb24gYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH0gfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1zb2NpYWwtYnRuLFxuLm1kbC1tZWdhLWZvb3Rlcl9fc29jaWFsLWJ0biB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1OCwxNTgsMTU4KTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uLFxuLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbiB7XG4gICAgd2lkdGg6IDMzJTsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMSksXG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgyKSxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDEpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMikge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgzKSxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDMpIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMyk6YWZ0ZXIsXG4gICAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDMpOmFmdGVyIHtcbiAgICAgIGNsZWFyOiByaWdodDsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoNCksXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCg0KSB7XG4gICAgY2xlYXI6IHJpZ2h0O1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1taWRkbGUtc2VjdGlvbjphZnRlcixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fbWlkZGxlLXNlY3Rpb246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLWJvdHRvbS1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbiB7XG4gICAgcGFkZGluZy10b3A6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb24sXG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgzKSxcbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDQpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDMpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoNCkge1xuICAgIHdpZHRoOiAyNCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH0gfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94LFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTUuOHB4O1xuICBwYWRkaW5nOiAzMnB4O1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi10b3A6IC0xNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IDE7XG4gIG9wYWNpdHk6IDA7IH1cbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3ggKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyLFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIge1xuICAgIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICAgIGNvbnRlbnQ6ICdcXEU1Q0UnOyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCB+IC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCxcbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCB+IC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCxcbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsXG4ubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nICsgLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZyArIC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCxcbi5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3Qge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbi5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIge1xuICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgY29udGVudDogJ1xcRTVDRic7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZyxcbi5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAzOS44cHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDIzLjhweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiByZ2IoMjI0LDIyNCwyMjQpOyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMy44cHg7XG4gIGhlaWdodDogMjMuOHB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCxcbi5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3Q6YWZ0ZXIsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogJyc7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0IGxpLFxuLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IGxpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4OyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCBhLFxuLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IGEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3gsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbiAgICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZzphZnRlcixcbiAgICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbiAgICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZzphZnRlciB7XG4gICAgICBjb250ZW50OiAnJzsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgfiAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsXG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCB+IC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCxcbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZyArIC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCxcbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZyArIC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgfiAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnOyB9IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tYm90dG9tLXNlY3Rpb24sXG4ubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbi5tZGwtbG9nbyB7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1ib3R0b20tc2VjdGlvbiAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QgbGksXG4ubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbiAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QgbGkge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gIC5tZGwtbG9nbyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7IH0gfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLm1kbC1taW5pLWZvb3RlciB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDMycHggMTZweDtcbiAgY29sb3I6IHJnYigxNTgsMTU4LDE1OCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2Niw2Niw2Nik7IH1cbiAgLm1kbC1taW5pLWZvb3RlcjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kbC1taW5pLWZvb3RlciAubWRsLWxvZ28ge1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4OyB9XG5cbi5tZGwtbWluaS1mb290ZXItLWxpbmstbGlzdCxcbi5tZGwtbWluaS1mb290ZXJfX2xpbmstbGlzdCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgLW1zLWZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuICAubWRsLW1pbmktZm9vdGVyLS1saW5rLWxpc3QgbGksXG4gIC5tZGwtbWluaS1mb290ZXJfX2xpbmstbGlzdCBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjBweCkge1xuICAgICAgLm1kbC1taW5pLWZvb3Rlci0tbGluay1saXN0IGxpLFxuICAgICAgLm1kbC1taW5pLWZvb3Rlcl9fbGluay1saXN0IGxpIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM2cHg7IH0gfVxuICAubWRsLW1pbmktZm9vdGVyLS1saW5rLWxpc3QgYSxcbiAgLm1kbC1taW5pLWZvb3Rlcl9fbGluay1saXN0IGEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5tZGwtbWluaS1mb290ZXItLWxlZnQtc2VjdGlvbixcbi5tZGwtbWluaS1mb290ZXJfX2xlZnQtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLXdlYmtpdC1vcmRlcjogMDtcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAwO1xuICAgICAgICAgIG9yZGVyOiAwOyB9XG5cbi5tZGwtbWluaS1mb290ZXItLXJpZ2h0LXNlY3Rpb24sXG4ubWRsLW1pbmktZm9vdGVyX19yaWdodC1zZWN0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAtd2Via2l0LW9yZGVyOiAxO1xuICAgICAgLW1zLWZsZXgtb3JkZXI6IDE7XG4gICAgICAgICAgb3JkZXI6IDE7IH1cblxuLm1kbC1taW5pLWZvb3Rlci0tc29jaWFsLWJ0bixcbi5tZGwtbWluaS1mb290ZXJfX3NvY2lhbC1idG4ge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNTgsMTU4LDE1OCk7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLm1kbC1pY29uLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDMycHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4ubWRsLWljb24tdG9nZ2xlX19pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4OyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtdXBncmFkZWQgLm1kbC1pY29uLXRvZ2dsZV9faW5wdXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lOyB9XG5cbi5tZGwtaWNvbi10b2dnbGVfX2xhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMzJweDtcbiAgbWluLXdpZHRoOiAzMnB4O1xuICBjb2xvcjogcmdiKDk3LDk3LDk3KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZC1jb2xvcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAubWRsLWljb24tdG9nZ2xlX19sYWJlbC5tYXRlcmlhbC1pY29ucyB7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgZm9udC1zaXplOiAyNHB4OyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtY2hlY2tlZCAubWRsLWljb24tdG9nZ2xlX19sYWJlbCB7XG4gICAgY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtZGlzYWJsZWQgLm1kbC1pY29uLXRvZ2dsZV9fbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAubWRsLWljb24tdG9nZ2xlLmlzLWZvY3VzZWQgLm1kbC1pY29uLXRvZ2dsZV9fbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIDAuMTIpOyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtZm9jdXNlZC5pcy1jaGVja2VkIC5tZGwtaWNvbi10b2dnbGVfX2xhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDYzLDgxLDE4MSwgMC4yNik7IH1cblxuLm1kbC1pY29uLXRvZ2dsZV9fcmlwcGxlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAtMnB4O1xuICBsZWZ0OiAtMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7IH1cbiAgLm1kbC1pY29uLXRvZ2dsZV9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiKDk3LDk3LDk3KTsgfVxuICAubWRsLWljb24tdG9nZ2xlLmlzLWRpc2FibGVkIC5tZGwtaWNvbi10b2dnbGVfX3JpcHBsZS1jb250YWluZXIge1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAubWRsLWljb24tdG9nZ2xlLmlzLWRpc2FibGVkIC5tZGwtaWNvbi10b2dnbGVfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLyogRGlhbG9nICovXG4ubWRsLWxpc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogOHB4IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLm1kbC1saXN0X19pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIC13ZWJraXQtZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMTZweDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogcmdiYSgwLDAsMCwgMC44Nyk7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kbC1saXN0X19pdGVtIC5tZGwtbGlzdF9faXRlbS1wcmltYXJ5LWNvbnRlbnQge1xuICAgIC13ZWJraXQtb3JkZXI6IDA7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAwO1xuICAgICAgICAgICAgb3JkZXI6IDA7XG4gICAgLXdlYmtpdC1mbGV4LWdyb3c6IDI7XG4gICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAyO1xuICAgICAgICAgICAgZmxleC1ncm93OiAyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAubWRsLWxpc3RfX2l0ZW0gLm1kbC1saXN0X19pdGVtLXByaW1hcnktY29udGVudCAubWRsLWxpc3RfX2l0ZW0taWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMycHg7IH1cbiAgICAubWRsLWxpc3RfX2l0ZW0gLm1kbC1saXN0X19pdGVtLXByaW1hcnktY29udGVudCAubWRsLWxpc3RfX2l0ZW0tYXZhdGFyIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTZweDsgfVxuICAubWRsLWxpc3RfX2l0ZW0gLm1kbC1saXN0X19pdGVtLXNlY29uZGFyeS1jb250ZW50IHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtd2Via2l0LWZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgICAtbXMtZmxleC1mbG93OiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tbGVmdDogMTZweDsgfVxuICAgIC5tZGwtbGlzdF9faXRlbSAubWRsLWxpc3RfX2l0ZW0tc2Vjb25kYXJ5LWNvbnRlbnQgLm1kbC1saXN0X19pdGVtLXNlY29uZGFyeS1hY3Rpb24gbGFiZWwge1xuICAgICAgZGlzcGxheTogaW5saW5lOyB9XG4gICAgLm1kbC1saXN0X19pdGVtIC5tZGwtbGlzdF9faXRlbS1zZWNvbmRhcnktY29udGVudCAubWRsLWxpc3RfX2l0ZW0tc2Vjb25kYXJ5LWluZm8ge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICBjb2xvcjogcmdiYSgwLDAsMCwgMC41NCk7IH1cbiAgICAubWRsLWxpc3RfX2l0ZW0gLm1kbC1saXN0X19pdGVtLXNlY29uZGFyeS1jb250ZW50IC5tZGwtbGlzdF9faXRlbS1zdWItaGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDE2cHg7IH1cblxuLm1kbC1saXN0X19pdGVtLWljb24sXG4ubWRsLWxpc3RfX2l0ZW0taWNvbi5tYXRlcmlhbC1pY29ucyB7XG4gIGhlaWdodDogMjRweDtcbiAgd2lkdGg6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IHJnYigxMTcsMTE3LDExNyk7IH1cblxuLm1kbC1saXN0X19pdGVtLWF2YXRhcixcbi5tZGwtbGlzdF9faXRlbS1hdmF0YXIubWF0ZXJpYWwtaWNvbnMge1xuICBoZWlnaHQ6IDQwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMTcsMTE3LDExNyk7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgY29sb3I6IHdoaXRlOyB9XG5cbi5tZGwtbGlzdF9faXRlbS0tdHdvLWxpbmUge1xuICBoZWlnaHQ6IDcycHg7IH1cbiAgLm1kbC1saXN0X19pdGVtLS10d28tbGluZSAubWRsLWxpc3RfX2l0ZW0tcHJpbWFyeS1jb250ZW50IHtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAubWRsLWxpc3RfX2l0ZW0tLXR3by1saW5lIC5tZGwtbGlzdF9faXRlbS1wcmltYXJ5LWNvbnRlbnQgLm1kbC1saXN0X19pdGVtLWF2YXRhciB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5tZGwtbGlzdF9faXRlbS0tdHdvLWxpbmUgLm1kbC1saXN0X19pdGVtLXByaW1hcnktY29udGVudCAubWRsLWxpc3RfX2l0ZW0taWNvbiB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi10b3A6IDZweDsgfVxuICAgIC5tZGwtbGlzdF9faXRlbS0tdHdvLWxpbmUgLm1kbC1saXN0X19pdGVtLXByaW1hcnktY29udGVudCAubWRsLWxpc3RfX2l0ZW0tc2Vjb25kYXJ5LWNvbnRlbnQge1xuICAgICAgaGVpZ2h0OiAzNnB4OyB9XG4gICAgLm1kbC1saXN0X19pdGVtLS10d28tbGluZSAubWRsLWxpc3RfX2l0ZW0tcHJpbWFyeS1jb250ZW50IC5tZGwtbGlzdF9faXRlbS1zdWItdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjU0KTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogMDsgfVxuXG4ubWRsLWxpc3RfX2l0ZW0tLXRocmVlLWxpbmUge1xuICBoZWlnaHQ6IDg4cHg7IH1cbiAgLm1kbC1saXN0X19pdGVtLS10aHJlZS1saW5lIC5tZGwtbGlzdF9faXRlbS1wcmltYXJ5LWNvbnRlbnQge1xuICAgIGhlaWdodDogNTJweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5tZGwtbGlzdF9faXRlbS0tdGhyZWUtbGluZSAubWRsLWxpc3RfX2l0ZW0tcHJpbWFyeS1jb250ZW50IC5tZGwtbGlzdF9faXRlbS1hdmF0YXIsXG4gICAgLm1kbC1saXN0X19pdGVtLS10aHJlZS1saW5lIC5tZGwtbGlzdF9faXRlbS1wcmltYXJ5LWNvbnRlbnQgLm1kbC1saXN0X19pdGVtLWljb24ge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1kbC1saXN0X19pdGVtLS10aHJlZS1saW5lIC5tZGwtbGlzdF9faXRlbS1zZWNvbmRhcnktY29udGVudCB7XG4gICAgaGVpZ2h0OiA1MnB4OyB9XG4gIC5tZGwtbGlzdF9faXRlbS0tdGhyZWUtbGluZSAubWRsLWxpc3RfX2l0ZW0tdGV4dC1ib2R5IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBoZWlnaHQ6IDUycHg7XG4gICAgY29sb3I6IHJnYmEoMCwwLDAsIDAuNTQpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtbWVudV9fY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IC0xOyB9XG4gIC5tZGwtbWVudV9fY29udGFpbmVyLmlzLXZpc2libGUsIC5tZGwtbWVudV9fY29udGFpbmVyLmlzLWFuaW1hdGluZyB7XG4gICAgei1pbmRleDogOTk5O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLm1kbC1tZW51X19vdXRsaW5lIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IHJnYigyNTUsMjU1LDI1NSk7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB6LWluZGV4OiAtMTsgfVxuICAubWRsLW1lbnVfX2NvbnRhaW5lci5pcy12aXNpYmxlIC5tZGwtbWVudV9fb3V0bGluZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHotaW5kZXg6IDk5OTsgfVxuICAubWRsLW1lbnVfX291dGxpbmUubWRsLW1lbnUtLWJvdHRvbS1yaWdodCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7IH1cbiAgLm1kbC1tZW51X19vdXRsaW5lLm1kbC1tZW51LS10b3AtbGVmdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7IH1cbiAgLm1kbC1tZW51X19vdXRsaW5lLm1kbC1tZW51LS10b3AtcmlnaHQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlOyB9XG5cbi5tZGwtbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBtaW4td2lkdGg6IDEyNHB4O1xuICBwYWRkaW5nOiA4cHggMDtcbiAgbWFyZ2luOiAwO1xuICBvcGFjaXR5OiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICB6LWluZGV4OiAtMTsgfVxuICAubWRsLW1lbnVfX2NvbnRhaW5lci5pcy12aXNpYmxlIC5tZGwtbWVudSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB6LWluZGV4OiA5OTk7IH1cbiAgLm1kbC1tZW51LmlzLWFuaW1hdGluZyB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGNsaXAgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIC5tZGwtbWVudS5tZGwtbWVudS0tYm90dG9tLXJpZ2h0IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAwOyB9XG4gIC5tZGwtbWVudS5tZGwtbWVudS0tdG9wLWxlZnQge1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDA7IH1cbiAgLm1kbC1tZW51Lm1kbC1tZW51LS10b3AtcmlnaHQge1xuICAgIHRvcDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDsgfVxuICAubWRsLW1lbnUubWRsLW1lbnUtLXVuYWxpZ25lZCB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87IH1cblxuLm1kbC1tZW51X19pdGVtIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDE2cHg7XG4gIG91dGxpbmUtY29sb3I6IHJnYigxODksMTg5LDE4OSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAubWRsLW1lbnVfX2NvbnRhaW5lci5pcy12aXNpYmxlIC5tZGwtbWVudV9faXRlbSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAubWRsLW1lbnVfX2l0ZW06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDsgfVxuICAubWRsLW1lbnVfX2l0ZW0tLWZ1bGwtYmxlZWQtZGl2aWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMTIpOyB9XG4gIC5tZGwtbWVudV9faXRlbVtkaXNhYmxlZF0sIC5tZGwtbWVudV9faXRlbVtkYXRhLW1kbC1kaXNhYmxlZF0ge1xuICAgIGNvbG9yOiByZ2IoMTg5LDE4OSwxODkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIC5tZGwtbWVudV9faXRlbVtkaXNhYmxlZF06aG92ZXIsIC5tZGwtbWVudV9faXRlbVtkYXRhLW1kbC1kaXNhYmxlZF06aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAubWRsLW1lbnVfX2l0ZW1bZGlzYWJsZWRdOmZvY3VzLCAubWRsLW1lbnVfX2l0ZW1bZGF0YS1tZGwtZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLm1kbC1tZW51X19pdGVtW2Rpc2FibGVkXSAubWRsLXJpcHBsZSwgLm1kbC1tZW51X19pdGVtW2RhdGEtbWRsLWRpc2FibGVkXSAubWRsLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAubWRsLW1lbnVfX2l0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsMjM4LDIzOCk7IH1cbiAgLm1kbC1tZW51X19pdGVtOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsMjM4LDIzOCk7IH1cbiAgLm1kbC1tZW51X19pdGVtOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCwyMjQsMjI0KTsgfVxuXG4ubWRsLW1lbnVfX2l0ZW0tLXJpcHBsZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4ubWRsLXByb2dyZXNzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA0cHg7XG4gIHdpZHRoOiA1MDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5tZGwtcHJvZ3Jlc3MgPiAuYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAwJTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG5cbi5tZGwtcHJvZ3Jlc3MgPiAucHJvZ3Jlc3NiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKTtcbiAgei1pbmRleDogMTtcbiAgbGVmdDogMDsgfVxuXG4ubWRsLXByb2dyZXNzID4gLmJ1ZmZlcmJhciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsMjU1LDI1NSwgMC43KSwgcmdiYSgyNTUsMjU1LDI1NSwgMC43KSksIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiKDYzLDgxLDE4MSksIHJnYig2Myw4MSwxODEpKTtcbiAgei1pbmRleDogMDtcbiAgbGVmdDogMDsgfVxuXG4ubWRsLXByb2dyZXNzID4gLmF1eGJhciB7XG4gIHJpZ2h0OiAwOyB9XG5cbkBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lKSB7XG4gIC5tZGwtcHJvZ3Jlc3M6bm90KC5tZGwtcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUpOm5vdCgubWRsLXByb2dyZXNzLS1pbmRldGVybWluYXRlKSA+IC5hdXhiYXIsXG4gIC5tZGwtcHJvZ3Jlc3M6bm90KC5tZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUpOm5vdCgubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlKSA+IC5hdXhiYXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsMjU1LDI1NSwgMC43KSwgcmdiYSgyNTUsMjU1LDI1NSwgMC43KSksIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiKDYzLDgxLDE4MSksIHJnYig2Myw4MSwxODEpKTtcbiAgICAtd2Via2l0LW1hc2s6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWo4K0NqeHpkbWNnZDJsa2RHZzlJakV5SWlCb1pXbG5hSFE5SWpRaUlIWnBaWGRRYjNKMFBTSXdJREFnTVRJZ05DSWdkbVZ5YzJsdmJqMGlNUzR4SWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpUGdvZ0lEeGxiR3hwY0hObElHTjRQU0l5SWlCamVUMGlNaUlnY25nOUlqSWlJSEo1UFNJeUlqNEtJQ0FnSUR4aGJtbHRZWFJsSUdGMGRISnBZblYwWlU1aGJXVTlJbU40SWlCbWNtOXRQU0l5SWlCMGJ6MGlMVEV3SWlCa2RYSTlJakF1Tm5NaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlBdlBnb2dJRHd2Wld4c2FYQnpaVDRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVFFpSUdONVBTSXlJaUJ5ZUQwaU1pSWdjbms5SWpJaUlHTnNZWE56UFNKc2IyRmtaWElpUGdvZ0lDQWdQR0Z1YVcxaGRHVWdZWFIwY21saWRYUmxUbUZ0WlQwaVkzZ2lJR1p5YjIwOUlqRTBJaUIwYnowaU1pSWdaSFZ5UFNJd0xqWnpJaUJ5WlhCbFlYUkRiM1Z1ZEQwaWFXNWtaV1pwYm1sMFpTSWdMejRLSUNBOEwyVnNiR2x3YzJVK0Nqd3ZjM1puUGdvPVwiKTtcbiAgICAgICAgICAgIG1hc2s6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWo4K0NqeHpkbWNnZDJsa2RHZzlJakV5SWlCb1pXbG5hSFE5SWpRaUlIWnBaWGRRYjNKMFBTSXdJREFnTVRJZ05DSWdkbVZ5YzJsdmJqMGlNUzR4SWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpUGdvZ0lEeGxiR3hwY0hObElHTjRQU0l5SWlCamVUMGlNaUlnY25nOUlqSWlJSEo1UFNJeUlqNEtJQ0FnSUR4aGJtbHRZWFJsSUdGMGRISnBZblYwWlU1aGJXVTlJbU40SWlCbWNtOXRQU0l5SWlCMGJ6MGlMVEV3SWlCa2RYSTlJakF1Tm5NaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlBdlBnb2dJRHd2Wld4c2FYQnpaVDRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVFFpSUdONVBTSXlJaUJ5ZUQwaU1pSWdjbms5SWpJaUlHTnNZWE56UFNKc2IyRmtaWElpUGdvZ0lDQWdQR0Z1YVcxaGRHVWdZWFIwY21saWRYUmxUbUZ0WlQwaVkzZ2lJR1p5YjIwOUlqRTBJaUIwYnowaU1pSWdaSFZ5UFNJd0xqWnpJaUJ5WlhCbFlYUkRiM1Z1ZEQwaWFXNWtaV1pwYm1sMFpTSWdMejRLSUNBOEwyVnNiR2x3YzJVK0Nqd3ZjM1puUGdvPVwiKTsgfSB9XG5cbi5tZGwtcHJvZ3Jlc3M6bm90KC5tZGwtcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUpID4gLmF1eGJhcixcbi5tZGwtcHJvZ3Jlc3M6bm90KC5tZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUpID4gLmF1eGJhciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsMjU1LDI1NSwgMC45KSwgcmdiYSgyNTUsMjU1LDI1NSwgMC45KSksIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiKDYzLDgxLDE4MSksIHJnYig2Myw4MSwxODEpKTsgfVxuXG4ubWRsLXByb2dyZXNzLm1kbC1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZSA+IC5iYXIxLFxuLm1kbC1wcm9ncmVzcy5tZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUgPiAuYmFyMSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2Myw4MSwxODEpO1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBpbmRldGVybWluYXRlMTtcbiAgICAgICAgICBhbmltYXRpb24tbmFtZTogaW5kZXRlcm1pbmF0ZTE7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7IH1cblxuLm1kbC1wcm9ncmVzcy5tZGwtcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUgPiAuYmFyMyxcbi5tZGwtcHJvZ3Jlc3MubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlID4gLmJhcjMge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKTtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogaW5kZXRlcm1pbmF0ZTI7XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGluZGV0ZXJtaW5hdGUyO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBpbmRldGVybWluYXRlMSB7XG4gIDAlIHtcbiAgICBsZWZ0OiAwJTtcbiAgICB3aWR0aDogMCU7IH1cbiAgNTAlIHtcbiAgICBsZWZ0OiAyNSU7XG4gICAgd2lkdGg6IDc1JTsgfVxuICA3NSUge1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgd2lkdGg6IDAlOyB9IH1cblxuQGtleWZyYW1lcyBpbmRldGVybWluYXRlMSB7XG4gIDAlIHtcbiAgICBsZWZ0OiAwJTtcbiAgICB3aWR0aDogMCU7IH1cbiAgNTAlIHtcbiAgICBsZWZ0OiAyNSU7XG4gICAgd2lkdGg6IDc1JTsgfVxuICA3NSUge1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgd2lkdGg6IDAlOyB9IH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUyIHtcbiAgMCUge1xuICAgIGxlZnQ6IDAlO1xuICAgIHdpZHRoOiAwJTsgfVxuICA1MCUge1xuICAgIGxlZnQ6IDAlO1xuICAgIHdpZHRoOiAwJTsgfVxuICA3NSUge1xuICAgIGxlZnQ6IDAlO1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgMTAwJSB7XG4gICAgbGVmdDogMTAwJTtcbiAgICB3aWR0aDogMCU7IH0gfVxuXG5Aa2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUyIHtcbiAgMCUge1xuICAgIGxlZnQ6IDAlO1xuICAgIHdpZHRoOiAwJTsgfVxuICA1MCUge1xuICAgIGxlZnQ6IDAlO1xuICAgIHdpZHRoOiAwJTsgfVxuICA3NSUge1xuICAgIGxlZnQ6IDAlO1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgMTAwJSB7XG4gICAgbGVmdDogMTAwJTtcbiAgICB3aWR0aDogMCU7IH0gfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi8qIERpYWxvZyAqL1xuLm1kbC1uYXZpZ2F0aW9uIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ubWRsLW5hdmlnYXRpb25fX2xpbmsge1xuICBjb2xvcjogcmdiKDY2LDY2LDY2KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjg3OyB9XG4gIC5tZGwtbmF2aWdhdGlvbl9fbGluayAubWF0ZXJpYWwtaWNvbnMge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLm1kbC1sYXlvdXQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi5tZGwtbGF5b3V0LmlzLXNtYWxsLXNjcmVlbiAubWRsLWxheW91dC0tbGFyZ2Utc2NyZWVuLW9ubHkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZGwtbGF5b3V0Om5vdCguaXMtc21hbGwtc2NyZWVuKSAubWRsLWxheW91dC0tc21hbGwtc2NyZWVuLW9ubHkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZGwtbGF5b3V0X19jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuLm1kbC1sYXlvdXRfX3RpdGxlLFxuLm1kbC1sYXlvdXQtdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5tZGwtbGF5b3V0LXNwYWNlciB7XG4gIC13ZWJraXQtZmxleC1ncm93OiAxO1xuICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XG4gICAgICAgICAgZmxleC1ncm93OiAxOyB9XG5cbi5tZGwtbGF5b3V0X19kcmF3ZXIge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtd2Via2l0LWZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB3aWR0aDogMjQwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiKDIyNCwyMjQsMjI0KTtcbiAgYmFja2dyb3VuZDogcmdiKDI1MCwyNTAsMjUwKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgICAgICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIC13ZWJraXQtdHJhbnNmb3JtO1xuICBjb2xvcjogcmdiKDY2LDY2LDY2KTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHotaW5kZXg6IDU7IH1cbiAgLm1kbC1sYXlvdXRfX2RyYXdlci5pcy12aXNpYmxlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAgIC5tZGwtbGF5b3V0X19kcmF3ZXIuaXMtdmlzaWJsZSB+IC5tZGwtbGF5b3V0X19jb250ZW50Lm1kbC1sYXlvdXRfX2NvbnRlbnQge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAubWRsLWxheW91dF9fZHJhd2VyID4gKiB7XG4gICAgLXdlYmtpdC1mbGV4LXNocmluazogMDtcbiAgICAgICAgLW1zLWZsZXgtbmVnYXRpdmU6IDA7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDsgfVxuICAubWRsLWxheW91dF9fZHJhd2VyID4gLm1kbC1sYXlvdXRfX3RpdGxlLFxuICAubWRsLWxheW91dF9fZHJhd2VyID4gLm1kbC1sYXlvdXQtdGl0bGUge1xuICAgIGxpbmUtaGVpZ2h0OiA2NHB4O1xuICAgIHBhZGRpbmctbGVmdDogNDBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLm1kbC1sYXlvdXRfX2RyYXdlciA+IC5tZGwtbGF5b3V0X190aXRsZSxcbiAgICAgIC5tZGwtbGF5b3V0X19kcmF3ZXIgPiAubWRsLWxheW91dC10aXRsZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1NnB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7IH0gfVxuICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiB7XG4gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLXdlYmtpdC1hbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7XG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtcm93LWFsaWduOiBzdHJldGNoO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgcGFkZGluZy10b3A6IDE2cHg7IH1cbiAgICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiAubWRsLW5hdmlnYXRpb25fX2xpbmsge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAtd2Via2l0LWZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwO1xuICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIHBhZGRpbmc6IDE2cHggNDBweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGNvbG9yOiAjNzU3NTc1OyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgLm1kbC1sYXlvdXRfX2RyYXdlciAubWRsLW5hdmlnYXRpb24gLm1kbC1uYXZpZ2F0aW9uX19saW5rIHtcbiAgICAgICAgICBwYWRkaW5nOiAxNnB4IDE2cHg7IH0gfVxuICAgICAgLm1kbC1sYXlvdXRfX2RyYXdlciAubWRsLW5hdmlnYXRpb24gLm1kbC1uYXZpZ2F0aW9uX19saW5rOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCwyMjQsMjI0KTsgfVxuICAgICAgLm1kbC1sYXlvdXRfX2RyYXdlciAubWRsLW5hdmlnYXRpb24gLm1kbC1uYXZpZ2F0aW9uX19saW5rLS1jdXJyZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCwyMjQsMjI0KTtcbiAgICAgICAgY29sb3I6IHJnYigwLDAsMCk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gICAgLm1kbC1sYXlvdXQtLWZpeGVkLWRyYXdlciA+IC5tZGwtbGF5b3V0X19kcmF3ZXIge1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi5tZGwtbGF5b3V0X19kcmF3ZXItYnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiA0OHB4O1xuICB3aWR0aDogNDhweDtcbiAgYm9yZGVyOiAwO1xuICAtd2Via2l0LWZsZXgtc2hyaW5rOiAwO1xuICAgICAgLW1zLWZsZXgtbmVnYXRpdmU6IDA7XG4gICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDI2cHg7XG4gIGxpbmUtaGVpZ2h0OiA1NnB4O1xuICBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiA4cHggMTJweDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KTtcbiAgei1pbmRleDogNDsgfVxuICAubWRsLWxheW91dF9faGVhZGVyIC5tZGwtbGF5b3V0X19kcmF3ZXItYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLm1kbC1sYXlvdXRfX2hlYWRlciAubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogNHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXRfX2RyYXdlci1idXR0b24ge1xuICAgICAgbWFyZ2luOiA0cHg7XG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gICAgLm1kbC1sYXlvdXRfX2RyYXdlci1idXR0b24ge1xuICAgICAgbGluZS1oZWlnaHQ6IDU0cHg7IH1cbiAgICAgIC5tZGwtbGF5b3V0LS1uby1kZXNrdG9wLWRyYXdlci1idXR0b24gLm1kbC1sYXlvdXRfX2RyYXdlci1idXR0b24sXG4gICAgICAubWRsLWxheW91dC0tZml4ZWQtZHJhd2VyID4gLm1kbC1sYXlvdXRfX2RyYXdlci1idXR0b24sXG4gICAgICAubWRsLWxheW91dC0tbm8tZHJhd2VyLWJ1dHRvbiAubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4ubWRsLWxheW91dF9faGVhZGVyIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAtbXMtZmxleC1wYWNrOiBzdGFydDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtZmxleC1zaHJpbms6IDA7XG4gICAgICAtbXMtZmxleC1uZWdhdGl2ZTogMDtcbiAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBtaW4taGVpZ2h0OiA2NHB4O1xuICBtYXgtaGVpZ2h0OiAxMDAwcHg7XG4gIHotaW5kZXg6IDM7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2Myw4MSwxODEpO1xuICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KTtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbWF4LWhlaWdodCwgYm94LXNoYWRvdzsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAubWRsLWxheW91dF9faGVhZGVyIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDU2cHg7IH0gfVxuICAubWRsLWxheW91dC0tZml4ZWQtZHJhd2VyLmlzLXVwZ3JhZGVkOm5vdCguaXMtc21hbGwtc2NyZWVuKSA+IC5tZGwtbGF5b3V0X19oZWFkZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAyNDBweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMjQwcHgpOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgIC5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIgPiAubWRsLWxheW91dF9faGVhZGVyIC5tZGwtbGF5b3V0X19oZWFkZXItcm93IHtcbiAgICAgIHBhZGRpbmctbGVmdDogNDBweDsgfSB9XG4gIC5tZGwtbGF5b3V0X19oZWFkZXIgPiAubWRsLWxheW91dC1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNDBweDtcbiAgICB0b3A6IDE2cHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMztcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLm1kbC1sYXlvdXRfX2hlYWRlciA+IC5tZGwtbGF5b3V0LWljb24ge1xuICAgICAgICBsZWZ0OiAxNnB4O1xuICAgICAgICB0b3A6IDEycHg7IH0gfVxuICAubWRsLWxheW91dC5oYXMtZHJhd2VyIC5tZGwtbGF5b3V0X19oZWFkZXIgPiAubWRsLWxheW91dC1pY29uIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5tZGwtbGF5b3V0X19oZWFkZXIuaXMtY29tcGFjdCB7XG4gICAgbWF4LWhlaWdodDogNjRweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLm1kbC1sYXlvdXRfX2hlYWRlci5pcy1jb21wYWN0IHtcbiAgICAgICAgbWF4LWhlaWdodDogNTZweDsgfSB9XG4gIC5tZGwtbGF5b3V0X19oZWFkZXIuaXMtY29tcGFjdC5oYXMtdGFicyB7XG4gICAgaGVpZ2h0OiAxMTJweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLm1kbC1sYXlvdXRfX2hlYWRlci5pcy1jb21wYWN0Lmhhcy10YWJzIHtcbiAgICAgICAgbWluLWhlaWdodDogMTA0cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAubWRsLWxheW91dF9faGVhZGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubWRsLWxheW91dC0tZml4ZWQtaGVhZGVyID4gLm1kbC1sYXlvdXRfX2hlYWRlciB7XG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuXG4ubWRsLWxheW91dF9faGVhZGVyLS10cmFuc3BhcmVudC5tZGwtbGF5b3V0X19oZWFkZXItLXRyYW5zcGFyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLm1kbC1sYXlvdXRfX2hlYWRlci0tc2VhbWVkIHtcbiAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4ubWRsLWxheW91dF9faGVhZGVyLS1zY3JvbGwge1xuICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5tZGwtbGF5b3V0X19oZWFkZXItLXdhdGVyZmFsbCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci0td2F0ZXJmYWxsLmlzLWNhc3Rpbmctc2hhZG93IHtcbiAgICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci0td2F0ZXJmYWxsLm1kbC1sYXlvdXRfX2hlYWRlci0td2F0ZXJmYWxsLWhpZGUtdG9wIHtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAtd2Via2l0LWZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAtd2Via2l0LWZsZXgtc2hyaW5rOiAwO1xuICAgICAgLW1zLWZsZXgtbmVnYXRpdmU6IDA7XG4gICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0cmV0Y2g7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDY0cHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCA0MHB4IDAgODBweDsgfVxuICAubWRsLWxheW91dC0tbm8tZHJhd2VyLWJ1dHRvbiAubWRsLWxheW91dF9faGVhZGVyLXJvdyB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgIC5tZGwtbGF5b3V0LS1uby1kZXNrdG9wLWRyYXdlci1idXR0b24gLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgcGFkZGluZzogMCAxNnB4IDAgNzJweDsgfVxuICAgICAgLm1kbC1sYXlvdXQtLW5vLWRyYXdlci1idXR0b24gLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7IH0gfVxuICAubWRsLWxheW91dF9faGVhZGVyLXJvdyA+ICoge1xuICAgIC13ZWJraXQtZmxleC1zaHJpbms6IDA7XG4gICAgICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci0tc2Nyb2xsIC5tZGwtbGF5b3V0X19oZWFkZXItcm93IHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWxheW91dF9faGVhZGVyLXJvdyAubWRsLW5hdmlnYXRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogNjRweDtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgLW1zLWdyaWQtcm93LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubWRsLWxheW91dF9faGVhZGVyLXJvdyAubWRsLW5hdmlnYXRpb24ge1xuICAgICAgICBoZWlnaHQ6IDU2cHg7IH0gfVxuICAubWRsLWxheW91dF9faGVhZGVyLXJvdyAubWRsLW5hdmlnYXRpb25fX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICAgIGxpbmUtaGVpZ2h0OiA2NHB4O1xuICAgIHBhZGRpbmc6IDAgMjRweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cgLm1kbC1uYXZpZ2F0aW9uX19saW5rIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDU2cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweDsgfSB9XG5cbi5tZGwtbGF5b3V0X19vYmZ1c2NhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA0O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3I7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIC5tZGwtbGF5b3V0X19vYmZ1c2NhdG9yLmlzLXZpc2libGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIEBzdXBwb3J0cyAocG9pbnRlci1ldmVudHM6IGF1dG8pIHtcbiAgICAubWRsLWxheW91dF9fb2JmdXNjYXRvciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgICAgLm1kbC1sYXlvdXRfX29iZnVzY2F0b3IuaXMtdmlzaWJsZSB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICBvcGFjaXR5OiAxOyB9IH1cblxuLm1kbC1sYXlvdXRfX2NvbnRlbnQge1xuICAtbXMtZmxleDogMCAxIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIC13ZWJraXQtZmxleC1ncm93OiAxO1xuICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XG4gICAgICAgICAgZmxleC1ncm93OiAxO1xuICB6LWluZGV4OiAxO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cbiAgLm1kbC1sYXlvdXQtLWZpeGVkLWRyYXdlciA+IC5tZGwtbGF5b3V0X19jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogMjQwcHg7IH1cbiAgLm1kbC1sYXlvdXRfX2NvbnRhaW5lci5oYXMtc2Nyb2xsaW5nLWhlYWRlciAubWRsLWxheW91dF9fY29udGVudCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXQtLWZpeGVkLWRyYXdlciA+IC5tZGwtbGF5b3V0X19jb250ZW50IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLm1kbC1sYXlvdXRfX2NvbnRhaW5lci5oYXMtc2Nyb2xsaW5nLWhlYWRlciAubWRsLWxheW91dF9fY29udGVudCB7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOyB9IH1cblxuLm1kbC1sYXlvdXRfX3RhYi1iYXIge1xuICBoZWlnaHQ6IDk2cHg7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDExMnB4KTtcbiAgcGFkZGluZzogMCAwIDAgNTZweDtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsOyB9XG4gIC5tZGwtbGF5b3V0X190YWItYmFyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubWRsLWxheW91dC0tbm8tZHJhd2VyLWJ1dHRvbiAubWRsLWxheW91dF9fdGFiLWJhciB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMnB4KTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAubWRsLWxheW91dC0tbm8tZGVza3RvcC1kcmF3ZXItYnV0dG9uIC5tZGwtbGF5b3V0X190YWItYmFyIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMnB4KTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5tZGwtbGF5b3V0X190YWItYmFyIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA2MHB4KTtcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDYwcHg7IH1cbiAgICAgIC5tZGwtbGF5b3V0LS1uby1kcmF3ZXItYnV0dG9uIC5tZGwtbGF5b3V0X190YWItYmFyIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDhweCk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNHB4OyB9IH1cbiAgLm1kbC1sYXlvdXQtLWZpeGVkLXRhYnMgLm1kbC1sYXlvdXRfX3RhYi1iYXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4ubWRsLWxheW91dF9fdGFiLWJhci1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNDhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICB6LWluZGV4OiAyO1xuICAtd2Via2l0LWZsZXgtZ3JvdzogMDtcbiAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAwO1xuICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgLXdlYmtpdC1mbGV4LXNocmluazogMDtcbiAgICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwO1xuICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGwtbGF5b3V0X19jb250YWluZXIgPiAubWRsLWxheW91dF9fdGFiLWJhci1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDsgfVxuXG4ubWRsLWxheW91dF9fdGFiLWJhci1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIHdpZHRoOiA1NnB4O1xuICB6LWluZGV4OiA0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2Myw4MSwxODEpO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAubWRsLWxheW91dC0tbm8tZGVza3RvcC1kcmF3ZXItYnV0dG9uIC5tZGwtbGF5b3V0X190YWItYmFyLWJ1dHRvbixcbiAgLm1kbC1sYXlvdXQtLW5vLWRyYXdlci1idXR0b24gLm1kbC1sYXlvdXRfX3RhYi1iYXItYnV0dG9uIHtcbiAgICB3aWR0aDogMTZweDsgfVxuICAgIC5tZGwtbGF5b3V0LS1uby1kZXNrdG9wLWRyYXdlci1idXR0b24gLm1kbC1sYXlvdXRfX3RhYi1iYXItYnV0dG9uIC5tYXRlcmlhbC1pY29ucyxcbiAgICAubWRsLWxheW91dC0tbm8tZHJhd2VyLWJ1dHRvbiAubWRsLWxheW91dF9fdGFiLWJhci1idXR0b24gLm1hdGVyaWFsLWljb25zIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxlZnQ6IC00cHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXRfX3RhYi1iYXItYnV0dG9uIHtcbiAgICAgIHdpZHRoOiA2MHB4OyB9IH1cbiAgLm1kbC1sYXlvdXQtLWZpeGVkLXRhYnMgLm1kbC1sYXlvdXRfX3RhYi1iYXItYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5tZGwtbGF5b3V0X190YWItYmFyLWJ1dHRvbiAubWF0ZXJpYWwtaWNvbnMge1xuICAgIGxpbmUtaGVpZ2h0OiA0OHB4OyB9XG4gIC5tZGwtbGF5b3V0X190YWItYmFyLWJ1dHRvbi5pcy1hY3RpdmUge1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG5cbi5tZGwtbGF5b3V0X190YWItYmFyLWxlZnQtYnV0dG9uIHtcbiAgbGVmdDogMDsgfVxuXG4ubWRsLWxheW91dF9fdGFiLWJhci1yaWdodC1idXR0b24ge1xuICByaWdodDogMDsgfVxuXG4ubWRsLWxheW91dF9fdGFiIHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMjRweCAwIDI0cHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAtd2Via2l0LWZsZXgtZ3JvdzogMDtcbiAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAwO1xuICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgLXdlYmtpdC1mbGV4LXNocmluazogMDtcbiAgICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwO1xuICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGhlaWdodDogNDhweDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwgMC42KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAubWRsLWxheW91dF9fdGFiIHtcbiAgICAgIHBhZGRpbmc6IDAgMTJweCAwIDEycHg7IH0gfVxuICAubWRsLWxheW91dC0tZml4ZWQtdGFicyAubWRsLWxheW91dF9fdGFiIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICAtd2Via2l0LWZsZXgtZ3JvdzogMTtcbiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgcGFkZGluZzogMDsgfVxuICAubWRsLWxheW91dC5pcy11cGdyYWRlZCAubWRsLWxheW91dF9fdGFiLmlzLWFjdGl2ZSB7XG4gICAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSk7IH1cbiAgLm1kbC1sYXlvdXQuaXMtdXBncmFkZWQgLm1kbC1sYXlvdXRfX3RhYi5pcy1hY3RpdmU6OmFmdGVyIHtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogcmdiKDI1NSw2NCwxMjkpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBib3JkZXItZXhwYW5kIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC40LCAxKSAwLjAxcyBhbHRlcm5hdGUgZm9yd2FyZHM7XG4gICAgICAgICAgICBhbmltYXRpb246IGJvcmRlci1leHBhbmQgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjQsIDEpIDAuMDFzIGFsdGVybmF0ZSBmb3J3YXJkcztcbiAgICB0cmFuc2l0aW9uOiBhbGwgMXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7IH1cbiAgLm1kbC1sYXlvdXRfX3RhYiAubWRsLWxheW91dF9fdGFiLXJpcHBsZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLm1kbC1sYXlvdXRfX3RhYiAubWRsLWxheW91dF9fdGFiLXJpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNTUsMjU1KTsgfVxuXG4ubWRsLWxheW91dF9fdGFiLXBhbmVsIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kbC1sYXlvdXQuaXMtdXBncmFkZWQgLm1kbC1sYXlvdXRfX3RhYi1wYW5lbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubWRsLWxheW91dC5pcy11cGdyYWRlZCAubWRsLWxheW91dF9fdGFiLXBhbmVsLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtcmFkaW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLm1kbC1yYWRpby5pcy11cGdyYWRlZCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4OyB9XG5cbi5tZGwtcmFkaW9fX2J1dHRvbiB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG4gIC5tZGwtcmFkaW8uaXMtdXBncmFkZWQgLm1kbC1yYWRpb19fYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLW1zLWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTsgfVxuXG4ubWRsLXJhZGlvX19vdXRlci1jaXJjbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNHB4O1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIG1hcmdpbjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDAsMCwwLCAwLjU0KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB6LWluZGV4OiAyOyB9XG4gIC5tZGwtcmFkaW8uaXMtY2hlY2tlZCAubWRsLXJhZGlvX19vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtcmFkaW9fX291dGVyLWNpcmNsZSBmaWVsZHNldFtkaXNhYmxlZF0gLm1kbC1yYWRpbyxcbiAgLm1kbC1yYWRpby5pcy1kaXNhYmxlZCAubWRsLXJhZGlvX19vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgIGN1cnNvcjogYXV0bzsgfVxuXG4ubWRsLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIG1hcmdpbjogMDtcbiAgdG9wOiA4cHg7XG4gIGxlZnQ6IDRweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yOHM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIC13ZWJraXQtdHJhbnNmb3JtO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMCwgMCwgMCk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogcmdiKDYzLDgxLDE4MSk7IH1cbiAgLm1kbC1yYWRpby5pcy1jaGVja2VkIC5tZGwtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7IH1cbiAgZmllbGRzZXRbZGlzYWJsZWRdIC5tZGwtcmFkaW8gLm1kbC1yYWRpb19faW5uZXItY2lyY2xlLFxuICAubWRsLXJhZGlvLmlzLWRpc2FibGVkIC5tZGwtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5tZGwtcmFkaW8uaXMtZm9jdXNlZCAubWRsLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLm1kbC1yYWRpb19fbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgZmllbGRzZXRbZGlzYWJsZWRdIC5tZGwtcmFkaW8gLm1kbC1yYWRpb19fbGFiZWwsXG4gIC5tZGwtcmFkaW8uaXMtZGlzYWJsZWQgLm1kbC1yYWRpb19fbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICBjdXJzb3I6IGF1dG87IH1cblxuLm1kbC1yYWRpb19fcmlwcGxlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAtOXB4O1xuICBsZWZ0OiAtMTNweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDQycHg7XG4gIGhlaWdodDogNDJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSwgYmxhY2spOyB9XG4gIC5tZGwtcmFkaW9fX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpOyB9XG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLXJhZGlvIC5tZGwtcmFkaW9fX3JpcHBsZS1jb250YWluZXIsXG4gIC5tZGwtcmFkaW8uaXMtZGlzYWJsZWQgLm1kbC1yYWRpb19fcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLXJhZGlvIC5tZGwtcmFkaW9fX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUsXG4gIC5tZGwtcmFkaW8uaXMtZGlzYWJsZWQgLm1kbC1yYWRpb19fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbl86LW1zLWlucHV0LXBsYWNlaG9sZGVyLCA6cm9vdCAubWRsLXNsaWRlci5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkIHtcbiAgLW1zLWFwcGVhcmFuY2U6IG5vbmU7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luOiAwOyB9XG5cbi5tZGwtc2xpZGVyIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICBtYXJnaW46IDAgMjBweDsgfVxuICAubWRsLXNsaWRlci5pcy11cGdyYWRlZCB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIG91dGxpbmU6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB6LWluZGV4OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBUcmFja3MgKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBUaHVtYnMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAwLXZhbHVlICoqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiogRGlzYWJsZWQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8gfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbW96LWZvY3VzLW91dGVyIHtcbiAgICAgIGJvcmRlcjogMDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbXMtdG9vbHRpcCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDo6LW1zLXRyYWNrIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyOiBub25lOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi1tcy1maWxsLWxvd2VyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCAxNnB4LCByZ2IoNjMsODEsMTgxKSAxNnB4LCByZ2IoNjMsODEsMTgxKSAwKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCAxNnB4LCByZ2JhKDAsMCwwLCAwLjI2KSAxNnB4LCByZ2JhKDAsMCwwLCAwLjI2KSAwKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB3aWR0aDogMTJweDtcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlciAwLjE4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBib3gtc2hhZG93IDAuMThzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJhY2tncm91bmQgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4xOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBib3JkZXIgMC4xOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYm94LXNoYWRvdyAwLjE4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBiYWNrZ3JvdW5kIDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYm9yZGVyIDAuMThzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJveC1zaGFkb3cgMC4xOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYmFja2dyb3VuZCAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCAtd2Via2l0LXRyYW5zZm9ybSAwLjE4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpO1xuICAgICAgYm9yZGVyOiBub25lOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Zm9jdXM6bm90KDphY3RpdmUpOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoNjMsODEsMTgxLCAwLjI2KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmZvY3VzOm5vdCg6YWN0aXZlKTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoNjMsODEsMTgxLCAwLjI2KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpO1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmFjdGl2ZTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogcmdiKDYzLDgxLDE4MSk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDo6LW1zLXRodW1iIHtcbiAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZDogcmdiKDYzLDgxLDE4MSk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMzc1KTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4xOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBiYWNrZ3JvdW5kIDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYmFja2dyb3VuZCAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCAtd2Via2l0LXRyYW5zZm9ybSAwLjE4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Zm9jdXM6bm90KDphY3RpdmUpOjotbXMtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBjbG9zZXN0LXNpZGUsIHJnYig2Myw4MSwxODEpIDAlLCByZ2IoNjMsODEsMTgxKSAzNy41JSwgcmdiYSg2Myw4MSwxODEsIDAuMjYpIDM3LjUlLCByZ2JhKDYzLDgxLDE4MSwgMC4yNikgMTAwJSk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6YWN0aXZlOjotbXMtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZDogcmdiKDYzLDgxLDE4MSk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNTYyNSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZSArXG4ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4ID4gLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtdXBwZXIge1xuICAgICAgbGVmdDogNnB4OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmZvY3VzOm5vdCg6YWN0aXZlKTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDAsMCwwLCAwLjEyKTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsIDAuMTIpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmZvY3VzOm5vdCg6YWN0aXZlKTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoMCwwLDAsIDAuMTIpO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4xMik7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICBib3JkZXI6IDEuNnB4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTphY3RpdmUgK1xuLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCA+IC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVyIHtcbiAgICAgIGxlZnQ6IDlweDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTo6LW1zLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgY2xvc2VzdC1zaWRlLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgNjYuNjclLCByZ2JhKDAsMCwwLCAwLjI2KSA2Ni42NyUsIHJnYmEoMCwwLDAsIDAuMjYpIDEwMCUpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmZvY3VzOm5vdCg6YWN0aXZlKTo6LW1zLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgY2xvc2VzdC1zaWRlLCByZ2JhKDAsMCwwLCAwLjEyKSAwJSwgcmdiYSgwLDAsMCwgMC4xMikgMjUlLCByZ2JhKDAsMCwwLCAwLjI2KSAyNSUsIHJnYmEoMCwwLDAsIDAuMjYpIDM3LjUlLCByZ2JhKDAsMCwwLCAwLjEyKSAzNy41JSwgcmdiYSgwLDAsMCwgMC4xMikgMTAwJSk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmFjdGl2ZTo6LW1zLXRodW1iIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC41NjI1KTtcbiAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgY2xvc2VzdC1zaWRlLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgNzcuNzglLCByZ2JhKDAsMCwwLCAwLjI2KSA3Ny43OCUsIHJnYmEoMCwwLDAsIDAuMjYpIDEwMCUpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOjotbXMtZmlsbC1sb3dlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTo6LW1zLWZpbGwtdXBwZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDZweDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTphY3RpdmU6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA5cHg7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDpmb2N1czo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC42NjcpO1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNjY3KTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsIDAuMjYpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6Zm9jdXM6Oi1tb3otcmFuZ2UtdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOmFjdGl2ZTo6LW1vei1yYW5nZS10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjY2Nyk7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwLjI2KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkICtcbi5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXggPiAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1sb3dlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICAgIGxlZnQ6IC02cHg7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZCArXG4ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4ID4gLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtdXBwZXIge1xuICAgICAgbGVmdDogNnB4OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmZvY3VzOjotd2Via2l0LXNsaWRlci10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjY2Nyk7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC42NjcpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmZvY3VzOjotbW96LXJhbmdlLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlOjotbW96LXJhbmdlLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC42NjcpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmFjdGl2ZSArXG4ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4ID4gLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtdXBwZXIge1xuICAgICAgbGVmdDogNnB4OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6Zm9jdXM6Oi1tcy10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6YWN0aXZlOjotbXMtdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOjotbXMtdGh1bWIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjI1KTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsIDAuMjYpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmZvY3VzOjotbXMtdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDphY3RpdmU6Oi1tcy10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOjotbXMtdGh1bWIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjI1KTtcbiAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgY2xvc2VzdC1zaWRlLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDAsMCwwLCAwLjI2KSA1MCUsIHJnYmEoMCwwLDAsIDAuMjYpIDEwMCUpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6Oi1tcy1maWxsLWxvd2VyIHtcbiAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQgMjVweCwgcmdiYSgwLDAsMCwgMC4yNikgMjVweCwgcmdiYSgwLDAsMCwgMC4yNikgMCk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDo6LW1zLWZpbGwtdXBwZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDZweDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDphY3RpdmU6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7IH1cblxuLm1kbC1zbGlkZXJfX2llLWNvbnRhaW5lciB7XG4gIGhlaWdodDogMThweDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiBub25lO1xuICBwYWRkaW5nOiBub25lOyB9XG5cbi5tZGwtc2xpZGVyX19jb250YWluZXIge1xuICBoZWlnaHQ6IDE4cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuXG4ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAycHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA1MnB4KTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbjogMCAyNnB4O1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTFweCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTFweCk7IH1cblxuLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtbG93ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTtcbiAgLXdlYmtpdC1mbGV4OiAwO1xuICAgICAgLW1zLWZsZXg6IDA7XG4gICAgICAgICAgZmxleDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtdXBwZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgLXdlYmtpdC1mbGV4OiAwO1xuICAgICAgLW1zLWZsZXg6IDA7XG4gICAgICAgICAgZmxleDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHRyYW5zaXRpb246IGxlZnQgMC4xOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi8qIERpYWxvZyAqL1xuLm1kbC1zbmFja2JhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1MCU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyMzIzMjtcbiAgei1pbmRleDogMztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgODBweCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgODBweCk7XG4gIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0NzlweCkge1xuICAgIC5tZGwtc25hY2tiYXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWluLWhlaWdodDogNDhweDtcbiAgICAgIG1heC1oZWlnaHQ6IDgwcHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAubWRsLXNuYWNrYmFyIHtcbiAgICAgIG1pbi13aWR0aDogMjg4cHg7XG4gICAgICBtYXgtd2lkdGg6IDU2OHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA4MHB4KTtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgODBweCk7IH0gfVxuICAubWRsLXNuYWNrYmFyLS1hY3RpdmUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCAtd2Via2l0LXRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgICAgLm1kbC1zbmFja2Jhci0tYWN0aXZlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsgfSB9XG4gIC5tZGwtc25hY2tiYXJfX3RleHQge1xuICAgIHBhZGRpbmc6IDE0cHggMTJweCAxNHB4IDI0cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1kbC1zbmFja2Jhcl9fYWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6IHJnYigyNTUsNjQsMTI5KTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nOiAxNHB4IDI0cHggMTRweCAxMnB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAtd2Via2l0LWFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyOyB9XG4gICAgLm1kbC1zbmFja2Jhcl9fYWN0aW9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDsgfVxuICAgIC5tZGwtc25hY2tiYXJfX2FjdGlvbjpub3QoW2FyaWEtaGlkZGVuXSkge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4ubWRsLXNwaW5uZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDsgfVxuICAubWRsLXNwaW5uZXI6bm90KC5pcy11cGdyYWRlZCkuaXMtYWN0aXZlOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIkxvYWRpbmcuLi5cIjsgfVxuICAubWRsLXNwaW5uZXIuaXMtdXBncmFkZWQuaXMtYWN0aXZlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogbWRsLXNwaW5uZXJfX2NvbnRhaW5lci1yb3RhdGUgMTU2OC4yMzUyOTQxMm1zIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbWRsLXNwaW5uZXJfX2NvbnRhaW5lci1yb3RhdGUgMTU2OC4yMzUyOTQxMm1zIGxpbmVhciBpbmZpbml0ZTsgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2NvbnRhaW5lci1yb3RhdGUge1xuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2NvbnRhaW5lci1yb3RhdGUge1xuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XG5cbi5tZGwtc3Bpbm5lcl9fbGF5ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7IH1cblxuLm1kbC1zcGlubmVyX19sYXllci0xIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoNjYsMTY1LDI0NSk7IH1cbiAgLm1kbC1zcGlubmVyLS1zaW5nbGUtY29sb3IgLm1kbC1zcGlubmVyX19sYXllci0xIHtcbiAgICBib3JkZXItY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgLm1kbC1zcGlubmVyX19sYXllci0xIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogbWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCBtZGwtc3Bpbm5lcl9fbGF5ZXItMS1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIG1kbC1zcGlubmVyX19sYXllci0xLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7IH1cblxuLm1kbC1zcGlubmVyX19sYXllci0yIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjQ0LDY3LDU0KTsgfVxuICAubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAubWRsLXNwaW5uZXJfX2xheWVyLTIge1xuICAgIGJvcmRlci1jb2xvcjogcmdiKDYzLDgxLDE4MSk7IH1cbiAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xheWVyLTIge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIG1kbC1zcGlubmVyX19sYXllci0yLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XG4gICAgICAgICAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgbWRsLXNwaW5uZXJfX2xheWVyLTItZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDsgfVxuXG4ubWRsLXNwaW5uZXJfX2xheWVyLTMge1xuICBib3JkZXItY29sb3I6IHJnYigyNTMsMjE2LDUzKTsgfVxuICAubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAubWRsLXNwaW5uZXJfX2xheWVyLTMge1xuICAgIGJvcmRlci1jb2xvcjogcmdiKDYzLDgxLDE4MSk7IH1cbiAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xheWVyLTMge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIG1kbC1zcGlubmVyX19sYXllci0zLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7XG4gICAgICAgICAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgbWRsLXNwaW5uZXJfX2xheWVyLTMtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDsgfVxuXG4ubWRsLXNwaW5uZXJfX2xheWVyLTQge1xuICBib3JkZXItY29sb3I6IHJnYig3NiwxNzUsODApOyB9XG4gIC5tZGwtc3Bpbm5lci0tc2luZ2xlLWNvbG9yIC5tZGwtc3Bpbm5lcl9fbGF5ZXItNCB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2IoNjMsODEsMTgxKTsgfVxuICAubWRsLXNwaW5uZXIuaXMtYWN0aXZlIC5tZGwtc3Bpbm5lcl9fbGF5ZXItNCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgbWRsLXNwaW5uZXJfX2xheWVyLTQtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCBtZGwtc3Bpbm5lcl9fbGF5ZXItNC1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoOyB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlIHtcbiAgMTIuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7IH1cbiAgMjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOyB9XG4gIDM3LjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQwNWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0MDVkZWcpOyB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNTQwZGVnKTsgfVxuICA2Mi41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg2NzVkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjc1ZGVnKTsgfVxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoODEwZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDgxMGRlZyk7IH1cbiAgODcuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTQ1ZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDk0NWRlZyk7IH1cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTA4MGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMDgwZGVnKTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSB7XG4gIDEyLjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpOyB9XG4gIDI1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgfVxuICAzNy41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0MDVkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDA1ZGVnKTsgfVxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNTQwZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDU0MGRlZyk7IH1cbiAgNjIuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNjc1ZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDY3NWRlZyk7IH1cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDgxMGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg4MTBkZWcpOyB9XG4gIDg3LjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDk0NWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5NDVkZWcpOyB9XG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEwODBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTA4MGRlZyk7IH0gfVxuXG4vKipcbiogSEFDSzogRXZlbiB0aG91Z2ggdGhlIGludGVudGlvbiBpcyB0byBoYXZlIHRoZSBjdXJyZW50IC5tZGwtc3Bpbm5lcl9fbGF5ZXItTlxuKiBhdCBgb3BhY2l0eTogMWAsIHdlIHNldCBpdCB0byBgb3BhY2l0eTogMC45OWAgaW5zdGVhZCBzaW5jZSB0aGlzIGZvcmNlcyBDaHJvbWVcbiogdG8gZG8gcHJvcGVyIHN1YnBpeGVsIHJlbmRlcmluZyBmb3IgdGhlIGVsZW1lbnRzIGJlaW5nIGFuaW1hdGVkLiBUaGlzIGlzXG4qIGVzcGVjaWFsbHkgdmlzaWJsZSBpbiBDaHJvbWUgMzkgb24gVWJ1bnR1IDE0LjA0LiBTZWU6XG4qXG4qIC0gaHR0cHM6Ly9naXRodWIuY29tL1BvbHltZXIvcGFwZXItc3Bpbm5lci9pc3N1ZXMvOVxuKiAtIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00MzYyNTVcbiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTEtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDI1JSB7XG4gICAgb3BhY2l0eTogMC45OTsgfVxuICAyNiUge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgODklIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDkwJSB7XG4gICAgb3BhY2l0eTogMC45OTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9IH1cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTEtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDI1JSB7XG4gICAgb3BhY2l0eTogMC45OTsgfVxuICAyNiUge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgODklIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDkwJSB7XG4gICAgb3BhY2l0eTogMC45OTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9IH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sYXllci0yLWZhZGUtaW4tb3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxNSUge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMjUlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC45OTsgfVxuICA1MSUge1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sYXllci0yLWZhZGUtaW4tb3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAxNSUge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMjUlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC45OTsgfVxuICA1MSUge1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTMtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgNzUlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDc2JSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTMtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgNzUlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDc2JSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fbGF5ZXItNC1mYWRlLWluLW91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgNjUlIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDc1JSB7XG4gICAgb3BhY2l0eTogMC45OTsgfVxuICA5MCUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTQtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDY1JSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA3NSUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgOTAlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4vKipcbiogUGF0Y2ggdGhlIGdhcCB0aGF0IGFwcGVhciBiZXR3ZWVuIHRoZSB0d28gYWRqYWNlbnRcbiogZGl2Lm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlciB3aGlsZSB0aGUgc3Bpbm5lciBpcyByb3RhdGluZ1xuKiAoYXBwZWFycyBvbiBDaHJvbWUgMzgsIFNhZmFyaSA3LjEsIGFuZCBJRSAxMSkuXG4qXG4qIFVwZGF0ZTogdGhlIGdhcCBubyBsb25nZXIgYXBwZWFycyBvbiBDaHJvbWUgd2hlbiAubWRsLXNwaW5uZXJfX2xheWVyLU4nc1xuKiBvcGFjaXR5IGlzIDAuOTksIGJ1dCBzdGlsbCBkb2VzIG9uIFNhZmFyaSBhbmQgSUUuXG4qL1xuLm1kbC1zcGlubmVyX19nYXAtcGF0Y2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRvcDogMDtcbiAgbGVmdDogNDUlO1xuICB3aWR0aDogMTAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDsgfVxuICAubWRsLXNwaW5uZXJfX2dhcC1wYXRjaCAubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gICAgd2lkdGg6IDEwMDAlO1xuICAgIGxlZnQ6IC00NTAlOyB9XG5cbi5tZGwtc3Bpbm5lcl9fY2lyY2xlLWNsaXBwZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDUwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7IH1cbiAgLm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlciAubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gICAgd2lkdGg6IDIwMCU7IH1cblxuLm1kbC1zcGlubmVyX19jaXJjbGUge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci13aWR0aDogM3B4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7XG4gICAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDsgfVxuICAubWRsLXNwaW5uZXJfX2xlZnQgLm1kbC1zcGlubmVyX19jaXJjbGUge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEyOWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMjlkZWcpOyB9XG4gICAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xlZnQgLm1kbC1zcGlubmVyX19jaXJjbGUge1xuICAgICAgLXdlYmtpdC1hbmltYXRpb246IG1kbC1zcGlubmVyX19sZWZ0LXNwaW4gMTMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDtcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fbGVmdC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7IH1cbiAgLm1kbC1zcGlubmVyX19yaWdodCAubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gICAgbGVmdDogLTEwMCU7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMTI5ZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMjlkZWcpOyB9XG4gICAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX3JpZ2h0IC5tZGwtc3Bpbm5lcl9fY2lyY2xlIHtcbiAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fcmlnaHQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO1xuICAgICAgICAgICAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19yaWdodC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7IH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sZWZ0LXNwaW4ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpOyB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7IH1cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sZWZ0LXNwaW4ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpOyB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7IH1cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7IH0gfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgbWRsLXNwaW5uZXJfX3JpZ2h0LXNwaW4ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7IH1cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDVkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNWRlZyk7IH1cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX3JpZ2h0LXNwaW4ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xMzBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7IH1cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDVkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNWRlZyk7IH1cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKTsgfSB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLyogRGlhbG9nICovXG4ubWRsLXN3aXRjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLm1kbC1zd2l0Y2guaXMtdXBncmFkZWQge1xuICAgIHBhZGRpbmctbGVmdDogMjhweDsgfVxuXG4ubWRsLXN3aXRjaF9faW5wdXQge1xuICBsaW5lLWhlaWdodDogMjRweDsgfVxuICAubWRsLXN3aXRjaC5pcy11cGdyYWRlZCAubWRsLXN3aXRjaF9faW5wdXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lOyB9XG5cbi5tZGwtc3dpdGNoX190cmFjayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogNXB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIHdpZHRoOiAzNnB4O1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1kbC1zd2l0Y2guaXMtY2hlY2tlZCAubWRsLXN3aXRjaF9fdHJhY2sge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjMsODEsMTgxLCAwLjUpOyB9XG4gIC5tZGwtc3dpdGNoX190cmFjayBmaWVsZHNldFtkaXNhYmxlZF0gLm1kbC1zd2l0Y2gsXG4gIC5tZGwtc3dpdGNoLmlzLWRpc2FibGVkIC5tZGwtc3dpdGNoX190cmFjayB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4xMik7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZGwtc3dpdGNoX190aHVtYiB7XG4gIGJhY2tncm91bmQ6IHJnYigyNTAsMjUwLDI1MCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAycHg7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjhzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdDsgfVxuICAubWRsLXN3aXRjaC5pcy1jaGVja2VkIC5tZGwtc3dpdGNoX190aHVtYiB7XG4gICAgYmFja2dyb3VuZDogcmdiKDYzLDgxLDE4MSk7XG4gICAgbGVmdDogMTZweDtcbiAgICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cbiAgLm1kbC1zd2l0Y2hfX3RodW1iIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLXN3aXRjaCxcbiAgLm1kbC1zd2l0Y2guaXMtZGlzYWJsZWQgLm1kbC1zd2l0Y2hfX3RodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMTg5LDE4OSwxODkpO1xuICAgIGN1cnNvcjogYXV0bzsgfVxuXG4ubWRsLXN3aXRjaF9fZm9jdXMtaGVscGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC00cHgsIC00cHgpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC00cHgsIC00cHgpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5tZGwtc3dpdGNoLmlzLWZvY3VzZWQgLm1kbC1zd2l0Y2hfX2ZvY3VzLWhlbHBlciB7XG4gICAgYm94LXNoYWRvdzogMCAwIDBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgLm1kbC1zd2l0Y2guaXMtZm9jdXNlZC5pcy1jaGVja2VkIC5tZGwtc3dpdGNoX19mb2N1cy1oZWxwZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggMjBweCByZ2JhKDYzLDgxLDE4MSwgMC4yNik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg2Myw4MSwxODEsIDAuMjYpOyB9XG5cbi5tZGwtc3dpdGNoX19sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW46IDA7XG4gIGxlZnQ6IDI0cHg7IH1cbiAgLm1kbC1zd2l0Y2hfX2xhYmVsIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLXN3aXRjaCxcbiAgLm1kbC1zd2l0Y2guaXMtZGlzYWJsZWQgLm1kbC1zd2l0Y2hfX2xhYmVsIHtcbiAgICBjb2xvcjogcmdiKDE4OSwxODksMTg5KTtcbiAgICBjdXJzb3I6IGF1dG87IH1cblxuLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogLTEycHg7XG4gIGxlZnQ6IC0xNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNDBzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogc3RlcC1lbmQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7IH1cbiAgLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtc3dpdGNoX19yaXBwbGUtY29udGFpbmVyIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLXN3aXRjaCxcbiAgLm1kbC1zd2l0Y2guaXMtZGlzYWJsZWQgLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIge1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICBmaWVsZHNldFtkaXNhYmxlZF0gLm1kbC1zd2l0Y2ggLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUsXG4gIC5tZGwtc3dpdGNoLmlzLWRpc2FibGVkIC5tZGwtc3dpdGNoX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAubWRsLXN3aXRjaC5pcy1jaGVja2VkIC5tZGwtc3dpdGNoX19yaXBwbGUtY29udGFpbmVyIHtcbiAgICBsZWZ0OiAycHg7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi5tZGwtdGFicyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubWRsLXRhYnNfX3RhYi1iYXIge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAtbXMtZmxleC1saW5lLXBhY2s6IGp1c3RpZnk7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBwYWRkaW5nOiAwIDAgMCAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IoMjI0LDIyNCwyMjQpOyB9XG5cbi5tZGwtdGFic19fdGFiIHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMjRweCAwIDI0cHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGhlaWdodDogNDhweDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogcmdiYSgwLDAsMCwgMC41NCk7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kbC10YWJzLmlzLXVwZ3JhZGVkIC5tZGwtdGFic19fdGFiLmlzLWFjdGl2ZSB7XG4gICAgY29sb3I6IHJnYmEoMCwwLDAsIDAuODcpOyB9XG4gIC5tZGwtdGFicy5pcy11cGdyYWRlZCAubWRsLXRhYnNfX3RhYi5pcy1hY3RpdmU6YWZ0ZXIge1xuICAgIGhlaWdodDogMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGJvdHRvbTogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogcmdiKDYzLDgxLDE4MSk7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IGJvcmRlci1leHBhbmQgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjQsIDEpIDAuMDFzIGFsdGVybmF0ZSBmb3J3YXJkcztcbiAgICAgICAgICAgIGFuaW1hdGlvbjogYm9yZGVyLWV4cGFuZCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuNCwgMSkgMC4wMXMgYWx0ZXJuYXRlIGZvcndhcmRzO1xuICAgIHRyYW5zaXRpb246IGFsbCAxcyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTsgfVxuICAubWRsLXRhYnNfX3RhYiAubWRsLXRhYnNfX3JpcHBsZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGVmdDogMHB4O1xuICAgIHRvcDogMHB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5tZGwtdGFic19fdGFiIC5tZGwtdGFic19fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTsgfVxuXG4ubWRsLXRhYnNfX3BhbmVsIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kbC10YWJzLmlzLXVwZ3JhZGVkIC5tZGwtdGFic19fcGFuZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1kbC10YWJzLmlzLXVwZ3JhZGVkIC5tZGwtdGFic19fcGFuZWwuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm9yZGVyLWV4cGFuZCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdpZHRoOiAwOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5Aa2V5ZnJhbWVzIGJvcmRlci1leHBhbmQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB3aWR0aDogMDsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtdGV4dGZpZWxkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDMwMHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMjBweCAwOyB9XG4gIC5tZGwtdGV4dGZpZWxkIC5tZGwtYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAyMHB4OyB9XG5cbi5tZGwtdGV4dGZpZWxkLS1hbGlnbi1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi5tZGwtdGV4dGZpZWxkLS1mdWxsLXdpZHRoIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLm1kbC10ZXh0ZmllbGQtLWV4cGFuZGFibGUge1xuICBtaW4td2lkdGg6IDMycHg7XG4gIHdpZHRoOiBhdXRvO1xuICBtaW4taGVpZ2h0OiAzMnB4OyB9XG4gIC5tZGwtdGV4dGZpZWxkLS1leHBhbmRhYmxlIC5tZGwtYnV0dG9uLS1pY29uIHtcbiAgICB0b3A6IDE2cHg7IH1cblxuLm1kbC10ZXh0ZmllbGRfX2lucHV0IHtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwgMC4xMik7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNHB4IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogaW5oZXJpdDsgfVxuICAubWRsLXRleHRmaWVsZF9faW5wdXRbdHlwZT1cIm51bWJlclwiXSB7XG4gICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IH1cbiAgLm1kbC10ZXh0ZmllbGRfX2lucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sIC5tZGwtdGV4dGZpZWxkX19pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWZvY3VzZWQgLm1kbC10ZXh0ZmllbGRfX2lucHV0IHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWludmFsaWQgLm1kbC10ZXh0ZmllbGRfX2lucHV0IHtcbiAgICBib3JkZXItY29sb3I6IHJnYigyMTMsMCwwKTtcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLXRleHRmaWVsZCAubWRsLXRleHRmaWVsZF9faW5wdXQsXG4gIC5tZGwtdGV4dGZpZWxkLmlzLWRpc2FibGVkIC5tZGwtdGV4dGZpZWxkX19pbnB1dCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCByZ2JhKDAsMCwwLCAwLjEyKTtcbiAgICBjb2xvcjogcmdiYSgwLDAsMCwgMC4yNik7IH1cblxuLm1kbC10ZXh0ZmllbGQgdGV4dGFyZWEubWRsLXRleHRmaWVsZF9faW5wdXQge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ubWRsLXRleHRmaWVsZF9fbGFiZWwge1xuICBib3R0b206IDA7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRvcDogMjRweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1kbC10ZXh0ZmllbGQuaXMtZGlydHkgLm1kbC10ZXh0ZmllbGRfX2xhYmVsLFxuICAubWRsLXRleHRmaWVsZC5oYXMtcGxhY2Vob2xkZXIgLm1kbC10ZXh0ZmllbGRfX2xhYmVsIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsIC5tZGwtdGV4dGZpZWxkX19sYWJlbCB7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwuaGFzLXBsYWNlaG9sZGVyIC5tZGwtdGV4dGZpZWxkX19sYWJlbCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICBmaWVsZHNldFtkaXNhYmxlZF0gLm1kbC10ZXh0ZmllbGQgLm1kbC10ZXh0ZmllbGRfX2xhYmVsLFxuICAubWRsLXRleHRmaWVsZC5pcy1kaXNhYmxlZC5pcy1kaXNhYmxlZCAubWRsLXRleHRmaWVsZF9fbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTsgfVxuICAubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwuaXMtZm9jdXNlZCAubWRsLXRleHRmaWVsZF9fbGFiZWwsXG4gIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5pcy1kaXJ0eSAubWRsLXRleHRmaWVsZF9fbGFiZWwsXG4gIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5oYXMtcGxhY2Vob2xkZXIgLm1kbC10ZXh0ZmllbGRfX2xhYmVsIHtcbiAgICBjb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogNHB4O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWZvY3VzZWQgLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyIC5tZGwtdGV4dGZpZWxkX19sYWJlbCxcbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWRpcnR5IC5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciAubWRsLXRleHRmaWVsZF9fbGFiZWwsXG4gIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5oYXMtcGxhY2Vob2xkZXIgLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyIC5tZGwtdGV4dGZpZWxkX19sYWJlbCB7XG4gICAgdG9wOiAtMTZweDsgfVxuICAubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwuaXMtaW52YWxpZCAubWRsLXRleHRmaWVsZF9fbGFiZWwge1xuICAgIGNvbG9yOiByZ2IoMjEzLDAsMCk7XG4gICAgZm9udC1zaXplOiAxMnB4OyB9XG4gIC5tZGwtdGV4dGZpZWxkX19sYWJlbDphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gICAgYm90dG9tOiAyMHB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGxlZnQ6IDQ1JTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwcHg7IH1cbiAgLm1kbC10ZXh0ZmllbGQuaXMtZm9jdXNlZCAubWRsLXRleHRmaWVsZF9fbGFiZWw6YWZ0ZXIge1xuICAgIGxlZnQ6IDA7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLXRleHRmaWVsZC5pcy1pbnZhbGlkIC5tZGwtdGV4dGZpZWxkX19sYWJlbDphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxMywwLDApOyB9XG5cbi5tZGwtdGV4dGZpZWxkX19lcnJvciB7XG4gIGNvbG9yOiByZ2IoMjEzLDAsMCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kbC10ZXh0ZmllbGQuaXMtaW52YWxpZCAubWRsLXRleHRmaWVsZF9fZXJyb3Ige1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiAzMnB4O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDAuMXB4OyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWZvY3VzZWQgLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyLCAubWRsLXRleHRmaWVsZC5pcy1kaXJ0eSAubWRsLXRleHRmaWVsZF9fZXhwYW5kYWJsZS1ob2xkZXIge1xuICAgIG1heC13aWR0aDogNjAwcHg7IH1cbiAgLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyIC5tZGwtdGV4dGZpZWxkX19sYWJlbDphZnRlciB7XG4gICAgYm90dG9tOiAwOyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4ubWRsLXRvb2x0aXAge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG4gIHotaW5kZXg6IDk5OTtcbiAgYmFja2dyb3VuZDogcmdiYSg5Nyw5Nyw5NywgMC45KTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBtYXgtd2lkdGg6IDE3MHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogLTUwMHB4O1xuICBsZWZ0OiAtNTAwcHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5tZGwtdG9vbHRpcC5pcy1hY3RpdmUge1xuICAtd2Via2l0LWFuaW1hdGlvbjogcHVsc2UgMjAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkgZm9yd2FyZHM7XG4gICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZSAyMDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSBmb3J3YXJkczsgfVxuXG4ubWRsLXRvb2x0aXAtLWxhcmdlIHtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZzogMTZweDsgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOTkpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk5KTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfSB9XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOTkpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk5KTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfSB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLyogRGlhbG9nICovXG4ubWRsLXNoYWRvdy0tMmRwIHtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGwtc2hhZG93LS0zZHAge1xuICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kbC1zaGFkb3ctLTRkcCB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLm1kbC1zaGFkb3ctLTZkcCB7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAxOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5tZGwtc2hhZG93LS04ZHAge1xuICBib3gtc2hhZG93OiAwIDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLm1kbC1zaGFkb3ctLTE2ZHAge1xuICBib3gtc2hhZG93OiAwIDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4ubWRsLXNoYWRvdy0tMjRkcCB7XG4gIGJveC1zaGFkb3c6IDAgOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLypcbiogTk9URTogU29tZSBydWxlcyBoZXJlIGFyZSBhcHBsaWVkIHVzaW5nIGR1cGxpY2F0ZSBzZWxlY3RvcnMuXG4qIFRoaXMgaXMgb24gcHVycG9zZSB0byBpbmNyZWFzZSB0aGVpciBzcGVjaWZpY2l0eSB3aGVuIGFwcGxpZWQuXG4qIEZvciBleGFtcGxlOiBgLm1kbC1jZWxsLS0xLWNvbC1waG9uZS5tZGwtY2VsbC0tMS1jb2wtcGhvbmVgXG4qL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLm1kbC1ncmlkIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1mbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgbWFyZ2luOiAwIGF1dG8gMCBhdXRvO1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi5tZGwtY2VsbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1kbC1jZWxsLS10b3Age1xuICAtd2Via2l0LWFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydDtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OyB9XG5cbi5tZGwtY2VsbC0tbWlkZGxlIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyOyB9XG5cbi5tZGwtY2VsbC0tYm90dG9tIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4ubWRsLWNlbGwtLXN0cmV0Y2gge1xuICAtd2Via2l0LWFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdHJldGNoO1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7IH1cblxuLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItMSB7XG4gIC13ZWJraXQtb3JkZXI6IDE7XG4gICAgICAtbXMtZmxleC1vcmRlcjogMTtcbiAgICAgICAgICBvcmRlcjogMTsgfVxuXG4ubWRsLWNlbGwtLW9yZGVyLTIge1xuICAtd2Via2l0LW9yZGVyOiAyO1xuICAgICAgLW1zLWZsZXgtb3JkZXI6IDI7XG4gICAgICAgICAgb3JkZXI6IDI7IH1cblxuLm1kbC1jZWxsLS1vcmRlci0zIHtcbiAgLXdlYmtpdC1vcmRlcjogMztcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAzO1xuICAgICAgICAgIG9yZGVyOiAzOyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItNCB7XG4gIC13ZWJraXQtb3JkZXI6IDQ7XG4gICAgICAtbXMtZmxleC1vcmRlcjogNDtcbiAgICAgICAgICBvcmRlcjogNDsgfVxuXG4ubWRsLWNlbGwtLW9yZGVyLTUge1xuICAtd2Via2l0LW9yZGVyOiA1O1xuICAgICAgLW1zLWZsZXgtb3JkZXI6IDU7XG4gICAgICAgICAgb3JkZXI6IDU7IH1cblxuLm1kbC1jZWxsLS1vcmRlci02IHtcbiAgLXdlYmtpdC1vcmRlcjogNjtcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiA2O1xuICAgICAgICAgIG9yZGVyOiA2OyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItNyB7XG4gIC13ZWJraXQtb3JkZXI6IDc7XG4gICAgICAtbXMtZmxleC1vcmRlcjogNztcbiAgICAgICAgICBvcmRlcjogNzsgfVxuXG4ubWRsLWNlbGwtLW9yZGVyLTgge1xuICAtd2Via2l0LW9yZGVyOiA4O1xuICAgICAgLW1zLWZsZXgtb3JkZXI6IDg7XG4gICAgICAgICAgb3JkZXI6IDg7IH1cblxuLm1kbC1jZWxsLS1vcmRlci05IHtcbiAgLXdlYmtpdC1vcmRlcjogOTtcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiA5O1xuICAgICAgICAgIG9yZGVyOiA5OyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItMTAge1xuICAtd2Via2l0LW9yZGVyOiAxMDtcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAxMDtcbiAgICAgICAgICBvcmRlcjogMTA7IH1cblxuLm1kbC1jZWxsLS1vcmRlci0xMSB7XG4gIC13ZWJraXQtb3JkZXI6IDExO1xuICAgICAgLW1zLWZsZXgtb3JkZXI6IDExO1xuICAgICAgICAgIG9yZGVyOiAxMTsgfVxuXG4ubWRsLWNlbGwtLW9yZGVyLTEyIHtcbiAgLXdlYmtpdC1vcmRlcjogMTI7XG4gICAgICAtbXMtZmxleC1vcmRlcjogMTI7XG4gICAgICAgICAgb3JkZXI6IDEyOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0NzlweCkge1xuICAubWRsLWdyaWQge1xuICAgIHBhZGRpbmc6IDhweDsgfVxuICAubWRsLWNlbGwge1xuICAgIG1hcmdpbjogOHB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLWhpZGUtcGhvbmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTEtcGhvbmUubWRsLWNlbGwtLW9yZGVyLTEtcGhvbmUge1xuICAgIC13ZWJraXQtb3JkZXI6IDE7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xuICAgICAgICAgICAgb3JkZXI6IDE7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci0yLXBob25lLm1kbC1jZWxsLS1vcmRlci0yLXBob25lIHtcbiAgICAtd2Via2l0LW9yZGVyOiAyO1xuICAgICAgICAtbXMtZmxleC1vcmRlcjogMjtcbiAgICAgICAgICAgIG9yZGVyOiAyOyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItMy1waG9uZS5tZGwtY2VsbC0tb3JkZXItMy1waG9uZSB7XG4gICAgLXdlYmtpdC1vcmRlcjogMztcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDM7XG4gICAgICAgICAgICBvcmRlcjogMzsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTQtcGhvbmUubWRsLWNlbGwtLW9yZGVyLTQtcGhvbmUge1xuICAgIC13ZWJraXQtb3JkZXI6IDQ7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiA0O1xuICAgICAgICAgICAgb3JkZXI6IDQ7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci01LXBob25lLm1kbC1jZWxsLS1vcmRlci01LXBob25lIHtcbiAgICAtd2Via2l0LW9yZGVyOiA1O1xuICAgICAgICAtbXMtZmxleC1vcmRlcjogNTtcbiAgICAgICAgICAgIG9yZGVyOiA1OyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItNi1waG9uZS5tZGwtY2VsbC0tb3JkZXItNi1waG9uZSB7XG4gICAgLXdlYmtpdC1vcmRlcjogNjtcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDY7XG4gICAgICAgICAgICBvcmRlcjogNjsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTctcGhvbmUubWRsLWNlbGwtLW9yZGVyLTctcGhvbmUge1xuICAgIC13ZWJraXQtb3JkZXI6IDc7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiA3O1xuICAgICAgICAgICAgb3JkZXI6IDc7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci04LXBob25lLm1kbC1jZWxsLS1vcmRlci04LXBob25lIHtcbiAgICAtd2Via2l0LW9yZGVyOiA4O1xuICAgICAgICAtbXMtZmxleC1vcmRlcjogODtcbiAgICAgICAgICAgIG9yZGVyOiA4OyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItOS1waG9uZS5tZGwtY2VsbC0tb3JkZXItOS1waG9uZSB7XG4gICAgLXdlYmtpdC1vcmRlcjogOTtcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDk7XG4gICAgICAgICAgICBvcmRlcjogOTsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTEwLXBob25lLm1kbC1jZWxsLS1vcmRlci0xMC1waG9uZSB7XG4gICAgLXdlYmtpdC1vcmRlcjogMTA7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAxMDtcbiAgICAgICAgICAgIG9yZGVyOiAxMDsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTExLXBob25lLm1kbC1jZWxsLS1vcmRlci0xMS1waG9uZSB7XG4gICAgLXdlYmtpdC1vcmRlcjogMTE7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAxMTtcbiAgICAgICAgICAgIG9yZGVyOiAxMTsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTEyLXBob25lLm1kbC1jZWxsLS1vcmRlci0xMi1waG9uZSB7XG4gICAgLXdlYmtpdC1vcmRlcjogMTI7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAxMjtcbiAgICAgICAgICAgIG9yZGVyOiAxMjsgfVxuICAubWRsLWNlbGwtLTEtY29sLFxuICAubWRsLWNlbGwtLTEtY29sLXBob25lLm1kbC1jZWxsLS0xLWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMS1jb2wtcGhvbmUubWRsLWNlbGwtLTEtY29sLXBob25lIHtcbiAgICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1kbC1jZWxsLS0yLWNvbCxcbiAgLm1kbC1jZWxsLS0yLWNvbC1waG9uZS5tZGwtY2VsbC0tMi1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0yLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTItY29sLXBob25lLm1kbC1jZWxsLS0yLWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gIC5tZGwtY2VsbC0tMy1jb2wsXG4gIC5tZGwtY2VsbC0tMy1jb2wtcGhvbmUubWRsLWNlbGwtLTMtY29sLXBob25lIHtcbiAgICB3aWR0aDogY2FsYyg3NSUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMy1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0zLWNvbC1waG9uZS5tZGwtY2VsbC0tMy1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDc1JTsgfVxuICAubWRsLWNlbGwtLTQtY29sLFxuICAubWRsLWNlbGwtLTQtY29sLXBob25lLm1kbC1jZWxsLS00LWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS00LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTQtY29sLXBob25lLm1kbC1jZWxsLS00LWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTUtY29sLFxuICAubWRsLWNlbGwtLTUtY29sLXBob25lLm1kbC1jZWxsLS01LWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS01LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTUtY29sLXBob25lLm1kbC1jZWxsLS01LWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTYtY29sLFxuICAubWRsLWNlbGwtLTYtY29sLXBob25lLm1kbC1jZWxsLS02LWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS02LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTYtY29sLXBob25lLm1kbC1jZWxsLS02LWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTctY29sLFxuICAubWRsLWNlbGwtLTctY29sLXBob25lLm1kbC1jZWxsLS03LWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS03LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTctY29sLXBob25lLm1kbC1jZWxsLS03LWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTgtY29sLFxuICAubWRsLWNlbGwtLTgtY29sLXBob25lLm1kbC1jZWxsLS04LWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS04LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTgtY29sLXBob25lLm1kbC1jZWxsLS04LWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTktY29sLFxuICAubWRsLWNlbGwtLTktY29sLXBob25lLm1kbC1jZWxsLS05LWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS05LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTktY29sLXBob25lLm1kbC1jZWxsLS05LWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTEwLWNvbCxcbiAgLm1kbC1jZWxsLS0xMC1jb2wtcGhvbmUubWRsLWNlbGwtLTEwLWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMC1jb2wtcGhvbmUubWRsLWNlbGwtLTEwLWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTExLWNvbCxcbiAgLm1kbC1jZWxsLS0xMS1jb2wtcGhvbmUubWRsLWNlbGwtLTExLWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMS1jb2wtcGhvbmUubWRsLWNlbGwtLTExLWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTEyLWNvbCxcbiAgLm1kbC1jZWxsLS0xMi1jb2wtcGhvbmUubWRsLWNlbGwtLTEyLWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMi1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMi1jb2wtcGhvbmUubWRsLWNlbGwtLTEyLWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTEtb2Zmc2V0LFxuICAubWRsLWNlbGwtLTEtb2Zmc2V0LXBob25lLm1kbC1jZWxsLS0xLW9mZnNldC1waG9uZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMjUlICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMS1vZmZzZXQsIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xLW9mZnNldC1waG9uZS5tZGwtY2VsbC0tMS1vZmZzZXQtcGhvbmUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubWRsLWNlbGwtLTItb2Zmc2V0LFxuICAubWRsLWNlbGwtLTItb2Zmc2V0LXBob25lLm1kbC1jZWxsLS0yLW9mZnNldC1waG9uZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMi1vZmZzZXQsIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0yLW9mZnNldC1waG9uZS5tZGwtY2VsbC0tMi1vZmZzZXQtcGhvbmUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubWRsLWNlbGwtLTMtb2Zmc2V0LFxuICAubWRsLWNlbGwtLTMtb2Zmc2V0LXBob25lLm1kbC1jZWxsLS0zLW9mZnNldC1waG9uZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNzUlICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMy1vZmZzZXQsIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0zLW9mZnNldC1waG9uZS5tZGwtY2VsbC0tMy1vZmZzZXQtcGhvbmUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDc1JTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkgYW5kIChtYXgtd2lkdGg6IDgzOXB4KSB7XG4gIC5tZGwtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4OyB9XG4gIC5tZGwtY2VsbCB7XG4gICAgbWFyZ2luOiA4cHg7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwge1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAubWRsLWNlbGwtLWhpZGUtdGFibGV0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci0xLXRhYmxldC5tZGwtY2VsbC0tb3JkZXItMS10YWJsZXQge1xuICAgIC13ZWJraXQtb3JkZXI6IDE7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xuICAgICAgICAgICAgb3JkZXI6IDE7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci0yLXRhYmxldC5tZGwtY2VsbC0tb3JkZXItMi10YWJsZXQge1xuICAgIC13ZWJraXQtb3JkZXI6IDI7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAyO1xuICAgICAgICAgICAgb3JkZXI6IDI7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci0zLXRhYmxldC5tZGwtY2VsbC0tb3JkZXItMy10YWJsZXQge1xuICAgIC13ZWJraXQtb3JkZXI6IDM7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAzO1xuICAgICAgICAgICAgb3JkZXI6IDM7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci00LXRhYmxldC5tZGwtY2VsbC0tb3JkZXItNC10YWJsZXQge1xuICAgIC13ZWJraXQtb3JkZXI6IDQ7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiA0O1xuICAgICAgICAgICAgb3JkZXI6IDQ7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci01LXRhYmxldC5tZGwtY2VsbC0tb3JkZXItNS10YWJsZXQge1xuICAgIC13ZWJraXQtb3JkZXI6IDU7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiA1O1xuICAgICAgICAgICAgb3JkZXI6IDU7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci02LXRhYmxldC5tZGwtY2VsbC0tb3JkZXItNi10YWJsZXQge1xuICAgIC13ZWJraXQtb3JkZXI6IDY7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiA2O1xuICAgICAgICAgICAgb3JkZXI6IDY7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci03LXRhYmxldC5tZGwtY2VsbC0tb3JkZXItNy10YWJsZXQge1xuICAgIC13ZWJraXQtb3JkZXI6IDc7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiA3O1xuICAgICAgICAgICAgb3JkZXI6IDc7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci04LXRhYmxldC5tZGwtY2VsbC0tb3JkZXItOC10YWJsZXQge1xuICAgIC13ZWJraXQtb3JkZXI6IDg7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiA4O1xuICAgICAgICAgICAgb3JkZXI6IDg7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci05LXRhYmxldC5tZGwtY2VsbC0tb3JkZXItOS10YWJsZXQge1xuICAgIC13ZWJraXQtb3JkZXI6IDk7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiA5O1xuICAgICAgICAgICAgb3JkZXI6IDk7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci0xMC10YWJsZXQubWRsLWNlbGwtLW9yZGVyLTEwLXRhYmxldCB7XG4gICAgLXdlYmtpdC1vcmRlcjogMTA7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAxMDtcbiAgICAgICAgICAgIG9yZGVyOiAxMDsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTExLXRhYmxldC5tZGwtY2VsbC0tb3JkZXItMTEtdGFibGV0IHtcbiAgICAtd2Via2l0LW9yZGVyOiAxMTtcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDExO1xuICAgICAgICAgICAgb3JkZXI6IDExOyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItMTItdGFibGV0Lm1kbC1jZWxsLS1vcmRlci0xMi10YWJsZXQge1xuICAgIC13ZWJraXQtb3JkZXI6IDEyO1xuICAgICAgICAtbXMtZmxleC1vcmRlcjogMTI7XG4gICAgICAgICAgICBvcmRlcjogMTI7IH1cbiAgLm1kbC1jZWxsLS0xLWNvbCxcbiAgLm1kbC1jZWxsLS0xLWNvbC10YWJsZXQubWRsLWNlbGwtLTEtY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoMTIuNSUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xLWNvbC10YWJsZXQubWRsLWNlbGwtLTEtY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogMTIuNSU7IH1cbiAgLm1kbC1jZWxsLS0yLWNvbCxcbiAgLm1kbC1jZWxsLS0yLWNvbC10YWJsZXQubWRsLWNlbGwtLTItY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTItY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMi1jb2wtdGFibGV0Lm1kbC1jZWxsLS0yLWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDI1JTsgfVxuICAubWRsLWNlbGwtLTMtY29sLFxuICAubWRsLWNlbGwtLTMtY29sLXRhYmxldC5tZGwtY2VsbC0tMy1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYygzNy41JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0zLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTMtY29sLXRhYmxldC5tZGwtY2VsbC0tMy1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiAzNy41JTsgfVxuICAubWRsLWNlbGwtLTQtY29sLFxuICAubWRsLWNlbGwtLTQtY29sLXRhYmxldC5tZGwtY2VsbC0tNC1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS00LWNvbC10YWJsZXQubWRsLWNlbGwtLTQtY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gIC5tZGwtY2VsbC0tNS1jb2wsXG4gIC5tZGwtY2VsbC0tNS1jb2wtdGFibGV0Lm1kbC1jZWxsLS01LWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDYyLjUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTUtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNS1jb2wtdGFibGV0Lm1kbC1jZWxsLS01LWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDYyLjUlOyB9XG4gIC5tZGwtY2VsbC0tNi1jb2wsXG4gIC5tZGwtY2VsbC0tNi1jb2wtdGFibGV0Lm1kbC1jZWxsLS02LWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDc1JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS02LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTYtY29sLXRhYmxldC5tZGwtY2VsbC0tNi1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1kbC1jZWxsLS03LWNvbCxcbiAgLm1kbC1jZWxsLS03LWNvbC10YWJsZXQubWRsLWNlbGwtLTctY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoODcuNSUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNy1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS03LWNvbC10YWJsZXQubWRsLWNlbGwtLTctY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogODcuNSU7IH1cbiAgLm1kbC1jZWxsLS04LWNvbCxcbiAgLm1kbC1jZWxsLS04LWNvbC10YWJsZXQubWRsLWNlbGwtLTgtY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS04LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTgtY29sLXRhYmxldC5tZGwtY2VsbC0tOC1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZGwtY2VsbC0tOS1jb2wsXG4gIC5tZGwtY2VsbC0tOS1jb2wtdGFibGV0Lm1kbC1jZWxsLS05LWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tOS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS05LWNvbC10YWJsZXQubWRsLWNlbGwtLTktY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTEwLWNvbCxcbiAgLm1kbC1jZWxsLS0xMC1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMC1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEwLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTEwLWNvbC10YWJsZXQubWRsLWNlbGwtLTEwLWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS0xMS1jb2wsXG4gIC5tZGwtY2VsbC0tMTEtY29sLXRhYmxldC5tZGwtY2VsbC0tMTEtY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMS1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMS1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZGwtY2VsbC0tMTItY29sLFxuICAubWRsLWNlbGwtLTEyLWNvbC10YWJsZXQubWRsLWNlbGwtLTEyLWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTItY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTItY29sLXRhYmxldC5tZGwtY2VsbC0tMTItY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTEtb2Zmc2V0LFxuICAubWRsLWNlbGwtLTEtb2Zmc2V0LXRhYmxldC5tZGwtY2VsbC0tMS1vZmZzZXQtdGFibGV0IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygxMi41JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMS1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS0xLW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEyLjUlOyB9XG4gIC5tZGwtY2VsbC0tMi1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tMi1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS0yLW9mZnNldC10YWJsZXQge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDI1JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTItb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMi1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS0yLW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubWRsLWNlbGwtLTMtb2Zmc2V0LFxuICAubWRsLWNlbGwtLTMtb2Zmc2V0LXRhYmxldC5tZGwtY2VsbC0tMy1vZmZzZXQtdGFibGV0IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygzNy41JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTMtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMy1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS0zLW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDM3LjUlOyB9XG4gIC5tZGwtY2VsbC0tNC1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tNC1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS00LW9mZnNldC10YWJsZXQge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDUwJSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTQtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNC1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS00LW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubWRsLWNlbGwtLTUtb2Zmc2V0LFxuICAubWRsLWNlbGwtLTUtb2Zmc2V0LXRhYmxldC5tZGwtY2VsbC0tNS1vZmZzZXQtdGFibGV0IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg2Mi41JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTUtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNS1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS01LW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDYyLjUlOyB9XG4gIC5tZGwtY2VsbC0tNi1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tNi1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS02LW9mZnNldC10YWJsZXQge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDc1JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTYtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNi1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS02LW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubWRsLWNlbGwtLTctb2Zmc2V0LFxuICAubWRsLWNlbGwtLTctb2Zmc2V0LXRhYmxldC5tZGwtY2VsbC0tNy1vZmZzZXQtdGFibGV0IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg4Ny41JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTctb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNy1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS03LW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDg3LjUlOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDg0MHB4KSB7XG4gIC5tZGwtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4OyB9XG4gIC5tZGwtY2VsbCB7XG4gICAgbWFyZ2luOiA4cHg7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMyUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7IH1cbiAgLm1kbC1jZWxsLS1oaWRlLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTEtZGVza3RvcC5tZGwtY2VsbC0tb3JkZXItMS1kZXNrdG9wIHtcbiAgICAtd2Via2l0LW9yZGVyOiAxO1xuICAgICAgICAtbXMtZmxleC1vcmRlcjogMTtcbiAgICAgICAgICAgIG9yZGVyOiAxOyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItMi1kZXNrdG9wLm1kbC1jZWxsLS1vcmRlci0yLWRlc2t0b3Age1xuICAgIC13ZWJraXQtb3JkZXI6IDI7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAyO1xuICAgICAgICAgICAgb3JkZXI6IDI7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci0zLWRlc2t0b3AubWRsLWNlbGwtLW9yZGVyLTMtZGVza3RvcCB7XG4gICAgLXdlYmtpdC1vcmRlcjogMztcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDM7XG4gICAgICAgICAgICBvcmRlcjogMzsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTQtZGVza3RvcC5tZGwtY2VsbC0tb3JkZXItNC1kZXNrdG9wIHtcbiAgICAtd2Via2l0LW9yZGVyOiA0O1xuICAgICAgICAtbXMtZmxleC1vcmRlcjogNDtcbiAgICAgICAgICAgIG9yZGVyOiA0OyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItNS1kZXNrdG9wLm1kbC1jZWxsLS1vcmRlci01LWRlc2t0b3Age1xuICAgIC13ZWJraXQtb3JkZXI6IDU7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiA1O1xuICAgICAgICAgICAgb3JkZXI6IDU7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci02LWRlc2t0b3AubWRsLWNlbGwtLW9yZGVyLTYtZGVza3RvcCB7XG4gICAgLXdlYmtpdC1vcmRlcjogNjtcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDY7XG4gICAgICAgICAgICBvcmRlcjogNjsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTctZGVza3RvcC5tZGwtY2VsbC0tb3JkZXItNy1kZXNrdG9wIHtcbiAgICAtd2Via2l0LW9yZGVyOiA3O1xuICAgICAgICAtbXMtZmxleC1vcmRlcjogNztcbiAgICAgICAgICAgIG9yZGVyOiA3OyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItOC1kZXNrdG9wLm1kbC1jZWxsLS1vcmRlci04LWRlc2t0b3Age1xuICAgIC13ZWJraXQtb3JkZXI6IDg7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiA4O1xuICAgICAgICAgICAgb3JkZXI6IDg7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci05LWRlc2t0b3AubWRsLWNlbGwtLW9yZGVyLTktZGVza3RvcCB7XG4gICAgLXdlYmtpdC1vcmRlcjogOTtcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDk7XG4gICAgICAgICAgICBvcmRlcjogOTsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTEwLWRlc2t0b3AubWRsLWNlbGwtLW9yZGVyLTEwLWRlc2t0b3Age1xuICAgIC13ZWJraXQtb3JkZXI6IDEwO1xuICAgICAgICAtbXMtZmxleC1vcmRlcjogMTA7XG4gICAgICAgICAgICBvcmRlcjogMTA7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci0xMS1kZXNrdG9wLm1kbC1jZWxsLS1vcmRlci0xMS1kZXNrdG9wIHtcbiAgICAtd2Via2l0LW9yZGVyOiAxMTtcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDExO1xuICAgICAgICAgICAgb3JkZXI6IDExOyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItMTItZGVza3RvcC5tZGwtY2VsbC0tb3JkZXItMTItZGVza3RvcCB7XG4gICAgLXdlYmtpdC1vcmRlcjogMTI7XG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAxMjtcbiAgICAgICAgICAgIG9yZGVyOiAxMjsgfVxuICAubWRsLWNlbGwtLTEtY29sLFxuICAubWRsLWNlbGwtLTEtY29sLWRlc2t0b3AubWRsLWNlbGwtLTEtY29sLWRlc2t0b3Age1xuICAgIHdpZHRoOiBjYWxjKDguMzMzMzMzMzMzMyUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xLWNvbC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tMi1jb2wsXG4gIC5tZGwtY2VsbC0tMi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMi1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoMTYuNjY2NjY2NjY2NyUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMi1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0yLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0yLWNvbC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTsgfVxuICAubWRsLWNlbGwtLTMtY29sLFxuICAubWRsLWNlbGwtLTMtY29sLWRlc2t0b3AubWRsLWNlbGwtLTMtY29sLWRlc2t0b3Age1xuICAgIHdpZHRoOiBjYWxjKDI1JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0zLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTMtY29sLWRlc2t0b3AubWRsLWNlbGwtLTMtY29sLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IDI1JTsgfVxuICAubWRsLWNlbGwtLTQtY29sLFxuICAubWRsLWNlbGwtLTQtY29sLWRlc2t0b3AubWRsLWNlbGwtLTQtY29sLWRlc2t0b3Age1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzMzMlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTQtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7IH1cbiAgLm1kbC1jZWxsLS01LWNvbCxcbiAgLm1kbC1jZWxsLS01LWNvbC1kZXNrdG9wLm1kbC1jZWxsLS01LWNvbC1kZXNrdG9wIHtcbiAgICB3aWR0aDogY2FsYyg0MS42NjY2NjY2NjY3JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS01LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTUtY29sLWRlc2t0b3AubWRsLWNlbGwtLTUtY29sLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IDQxLjY2NjY2NjY2NjclOyB9XG4gIC5tZGwtY2VsbC0tNi1jb2wsXG4gIC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTYtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gIC5tZGwtY2VsbC0tNy1jb2wsXG4gIC5tZGwtY2VsbC0tNy1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNy1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNTguMzMzMzMzMzMzMyUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNy1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS03LWNvbC1kZXNrdG9wLm1kbC1jZWxsLS03LWNvbC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTsgfVxuICAubWRsLWNlbGwtLTgtY29sLFxuICAubWRsLWNlbGwtLTgtY29sLWRlc2t0b3AubWRsLWNlbGwtLTgtY29sLWRlc2t0b3Age1xuICAgIHdpZHRoOiBjYWxjKDY2LjY2NjY2NjY2NjclIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTgtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tOC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tOC1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7IH1cbiAgLm1kbC1jZWxsLS05LWNvbCxcbiAgLm1kbC1jZWxsLS05LWNvbC1kZXNrdG9wLm1kbC1jZWxsLS05LWNvbC1kZXNrdG9wIHtcbiAgICB3aWR0aDogY2FsYyg3NSUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tOS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS05LWNvbC1kZXNrdG9wLm1kbC1jZWxsLS05LWNvbC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1kbC1jZWxsLS0xMC1jb2wsXG4gIC5tZGwtY2VsbC0tMTAtY29sLWRlc2t0b3AubWRsLWNlbGwtLTEwLWNvbC1kZXNrdG9wIHtcbiAgICB3aWR0aDogY2FsYyg4My4zMzMzMzMzMzMzJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMTAtY29sLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tMTEtY29sLFxuICAubWRsLWNlbGwtLTExLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xMS1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoOTEuNjY2NjY2NjY2NyUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTEtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTEtY29sLWRlc2t0b3AubWRsLWNlbGwtLTExLWNvbC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiA5MS42NjY2NjY2NjY3JTsgfVxuICAubWRsLWNlbGwtLTEyLWNvbCxcbiAgLm1kbC1jZWxsLS0xMi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMTItY29sLWRlc2t0b3Age1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTItY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTItY29sLWRlc2t0b3AubWRsLWNlbGwtLTEyLWNvbC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZGwtY2VsbC0tMS1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tMS1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tMS1vZmZzZXQtZGVza3RvcCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoOC4zMzMzMzMzMzMzJSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMS1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tMS1vZmZzZXQtZGVza3RvcCB7XG4gICAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzJTsgfVxuICAubWRsLWNlbGwtLTItb2Zmc2V0LFxuICAubWRsLWNlbGwtLTItb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTItb2Zmc2V0LWRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDE2LjY2NjY2NjY2NjclICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMi1vZmZzZXQsIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0yLW9mZnNldC1kZXNrdG9wLm1kbC1jZWxsLS0yLW9mZnNldC1kZXNrdG9wIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NjY3JTsgfVxuICAubWRsLWNlbGwtLTMtb2Zmc2V0LFxuICAubWRsLWNlbGwtLTMtb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTMtb2Zmc2V0LWRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDI1JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTMtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMy1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tMy1vZmZzZXQtZGVza3RvcCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5tZGwtY2VsbC0tNC1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tNC1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tNC1vZmZzZXQtZGVza3RvcCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMzMuMzMzMzMzMzMzMyUgKyA4cHgpOyB9XG4gICAgLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS00LW9mZnNldCwgLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTQtb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTQtb2Zmc2V0LWRlc2t0b3Age1xuICAgICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tNS1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tNS1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tNS1vZmZzZXQtZGVza3RvcCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNDEuNjY2NjY2NjY2NyUgKyA4cHgpOyB9XG4gICAgLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS01LW9mZnNldCwgLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTUtb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTUtb2Zmc2V0LWRlc2t0b3Age1xuICAgICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY2NjclOyB9XG4gIC5tZGwtY2VsbC0tNi1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tNi1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tNi1vZmZzZXQtZGVza3RvcCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNi1vZmZzZXQsIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS02LW9mZnNldC1kZXNrdG9wLm1kbC1jZWxsLS02LW9mZnNldC1kZXNrdG9wIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLm1kbC1jZWxsLS03LW9mZnNldCxcbiAgLm1kbC1jZWxsLS03LW9mZnNldC1kZXNrdG9wLm1kbC1jZWxsLS03LW9mZnNldC1kZXNrdG9wIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg1OC4zMzMzMzMzMzMzJSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTctb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNy1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tNy1vZmZzZXQtZGVza3RvcCB7XG4gICAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMzMyU7IH1cbiAgLm1kbC1jZWxsLS04LW9mZnNldCxcbiAgLm1kbC1jZWxsLS04LW9mZnNldC1kZXNrdG9wLm1kbC1jZWxsLS04LW9mZnNldC1kZXNrdG9wIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg2Ni42NjY2NjY2NjY3JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTgtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tOC1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tOC1vZmZzZXQtZGVza3RvcCB7XG4gICAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjY2NyU7IH1cbiAgLm1kbC1jZWxsLS05LW9mZnNldCxcbiAgLm1kbC1jZWxsLS05LW9mZnNldC1kZXNrdG9wLm1kbC1jZWxsLS05LW9mZnNldC1kZXNrdG9wIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg3NSUgKyA4cHgpOyB9XG4gICAgLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS05LW9mZnNldCwgLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTktb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTktb2Zmc2V0LWRlc2t0b3Age1xuICAgICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubWRsLWNlbGwtLTEwLW9mZnNldCxcbiAgLm1kbC1jZWxsLS0xMC1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tMTAtb2Zmc2V0LWRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDgzLjMzMzMzMzMzMzMlICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTAtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTAtb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTEwLW9mZnNldC1kZXNrdG9wIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMzMzJTsgfVxuICAubWRsLWNlbGwtLTExLW9mZnNldCxcbiAgLm1kbC1jZWxsLS0xMS1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tMTEtb2Zmc2V0LWRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDkxLjY2NjY2NjY2NjclICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTEtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTEtb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTExLW9mZnNldC1kZXNrdG9wIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NjY3JTsgfSB9XG4iLCJAY2hhcnNldCBcIlVURi04XCI7LmZhbmN5Ym94LWVuYWJsZWR7b3ZlcmZsb3c6aGlkZGVufS5mYW5jeWJveC1lbmFibGVkIGJvZHl7b3ZlcmZsb3c6dmlzaWJsZTtoZWlnaHQ6MTAwJX0uZmFuY3lib3gtaXMtaGlkZGVue3Bvc2l0aW9uOmFic29sdXRlO3RvcDotOTk5OXB4O2xlZnQ6LTk5OTlweDt2aXNpYmlsaXR5OmhpZGRlbn0uZmFuY3lib3gtY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3otaW5kZXg6OTk5OTM7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0uZmFuY3lib3gtY29udGFpbmVyfi5mYW5jeWJveC1jb250YWluZXJ7ei1pbmRleDo5OTk5Mn0uZmFuY3lib3gtYmcsLmZhbmN5Ym94LWlubmVyLC5mYW5jeWJveC1vdXRlciwuZmFuY3lib3gtc3RhZ2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjB9LmZhbmN5Ym94LW91dGVye292ZXJmbG93LXk6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uZmFuY3lib3gtYmd7YmFja2dyb3VuZDojMWUxZTFlO29wYWNpdHk6MDt0cmFuc2l0aW9uLWR1cmF0aW9uOmluaGVyaXQ7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5O3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNDcsMCwuNzQsLjcxKX0uZmFuY3lib3gtaXMtb3BlbiAuZmFuY3lib3gtYmd7b3BhY2l0eTouODc7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMiwuNjEsLjM2LDEpfS5mYW5jeWJveC1jYXB0aW9uLXdyYXAsLmZhbmN5Ym94LWluZm9iYXIsLmZhbmN5Ym94LXRvb2xiYXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlyZWN0aW9uOmx0cjt6LWluZGV4Ojk5OTk3O29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyx2aXNpYmlsaXR5IDBzIGxpbmVhciAuMjVzO2JveC1zaXppbmc6Ym9yZGVyLWJveH0uZmFuY3lib3gtc2hvdy1jYXB0aW9uIC5mYW5jeWJveC1jYXB0aW9uLXdyYXAsLmZhbmN5Ym94LXNob3ctaW5mb2JhciAuZmFuY3lib3gtaW5mb2JhciwuZmFuY3lib3gtc2hvdy10b29sYmFyIC5mYW5jeWJveC10b29sYmFye29wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMsdmlzaWJpbGl0eSAwc30uZmFuY3lib3gtaW5mb2Jhcnt0b3A6MDtsZWZ0OjUwJTttYXJnaW4tbGVmdDotNzlweH0uZmFuY3lib3gtaW5mb2Jhcl9fYm9keXtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo3MHB4O2xpbmUtaGVpZ2h0OjQ0cHg7Zm9udC1zaXplOjEzcHg7Zm9udC1mYW1pbHk6SGVsdmV0aWNhIE5ldWUsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6I2RkZDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzAsMzAsMzAsLjcpO3BvaW50ZXItZXZlbnRzOm5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LWZvbnQtc21vb3RoaW5nOnN1YnBpeGVsLWFudGlhbGlhc2VkfS5mYW5jeWJveC10b29sYmFye3RvcDowO3JpZ2h0OjB9LmZhbmN5Ym94LXN0YWdle292ZXJmbG93OmhpZGRlbjtkaXJlY3Rpb246bHRyO3otaW5kZXg6OTk5OTQ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0uZmFuY3lib3gtc2xpZGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWFyZ2luOjA7cGFkZGluZzowO292ZXJmbG93OmF1dG87b3V0bGluZTpub25lO3doaXRlLXNwYWNlOm5vcm1hbDtib3gtc2l6aW5nOmJvcmRlci1ib3g7dGV4dC1hbGlnbjpjZW50ZXI7ei1pbmRleDo5OTk5NDstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtkaXNwbGF5Om5vbmU7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHksLXdlYmtpdC10cmFuc2Zvcm07dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm0sb3BhY2l0eTt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybSxvcGFjaXR5LC13ZWJraXQtdHJhbnNmb3JtOy13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkO3RyYW5zZm9ybS1zdHlsZTpwcmVzZXJ2ZS0zZH0uZmFuY3lib3gtc2xpZGU6YmVmb3Jle2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7aGVpZ2h0OjEwMCU7d2lkdGg6MH0uZmFuY3lib3gtaXMtc2xpZGluZyAuZmFuY3lib3gtc2xpZGUsLmZhbmN5Ym94LXNsaWRlLS1jdXJyZW50LC5mYW5jeWJveC1zbGlkZS0tbmV4dCwuZmFuY3lib3gtc2xpZGUtLXByZXZpb3Vze2Rpc3BsYXk6YmxvY2t9LmZhbmN5Ym94LXNsaWRlLS1pbWFnZXtvdmVyZmxvdzp2aXNpYmxlfS5mYW5jeWJveC1zbGlkZS0taW1hZ2U6YmVmb3Jle2Rpc3BsYXk6bm9uZX0uZmFuY3lib3gtc2xpZGUtLXZpZGVvIC5mYW5jeWJveC1jb250ZW50LC5mYW5jeWJveC1zbGlkZS0tdmlkZW8gaWZyYW1le2JhY2tncm91bmQ6IzAwMH0uZmFuY3lib3gtc2xpZGUtLW1hcCAuZmFuY3lib3gtY29udGVudCwuZmFuY3lib3gtc2xpZGUtLW1hcCBpZnJhbWV7YmFja2dyb3VuZDojZTVlM2RmfS5mYW5jeWJveC1zbGlkZS0tbmV4dHt6LWluZGV4Ojk5OTk1fS5mYW5jeWJveC1zbGlkZT4qe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MjRweDttYXJnaW46NDRweCAwO2JvcmRlci13aWR0aDowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZC1jb2xvcjojZmZmO292ZXJmbG93OmF1dG87Ym94LXNpemluZzpib3JkZXItYm94fS5mYW5jeWJveC1zbGlkZSAuZmFuY3lib3gtaW1hZ2Utd3JhcHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO3otaW5kZXg6OTk5OTU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjdXJzb3I6ZGVmYXVsdDtvdmVyZmxvdzp2aXNpYmxlOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjp0b3AgbGVmdDt0cmFuc2Zvcm0tb3JpZ2luOnRvcCBsZWZ0O2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0Oy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW59LmZhbmN5Ym94LWNhbi16b29tT3V0IC5mYW5jeWJveC1pbWFnZS13cmFwe2N1cnNvcjp6b29tLW91dH0uZmFuY3lib3gtY2FuLXpvb21JbiAuZmFuY3lib3gtaW1hZ2Utd3JhcHtjdXJzb3I6em9vbS1pbn0uZmFuY3lib3gtY2FuLWRyYWcgLmZhbmN5Ym94LWltYWdlLXdyYXB7Y3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYn0uZmFuY3lib3gtaXMtZHJhZ2dpbmcgLmZhbmN5Ym94LWltYWdlLXdyYXB7Y3Vyc29yOi13ZWJraXQtZ3JhYmJpbmc7Y3Vyc29yOmdyYWJiaW5nfS5mYW5jeWJveC1pbWFnZSwuZmFuY3lib3gtc3BhY2ViYWxse3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDttYXgtd2lkdGg6bm9uZTttYXgtaGVpZ2h0Om5vbmV9LmZhbmN5Ym94LXNwYWNlYmFsbHt6LWluZGV4OjF9LmZhbmN5Ym94LXNsaWRlLS1pZnJhbWUgLmZhbmN5Ym94LWNvbnRlbnR7cGFkZGluZzowO3dpZHRoOjgwJTtoZWlnaHQ6ODAlO21heC13aWR0aDpjYWxjKDEwMCUgLSAxMDBweCk7bWF4LWhlaWdodDpjYWxjKDEwMCUgLSA4OHB4KTtvdmVyZmxvdzp2aXNpYmxlO2JhY2tncm91bmQ6I2ZmZn0uZmFuY3lib3gtaWZyYW1le2Rpc3BsYXk6YmxvY2s7cGFkZGluZzowO2JvcmRlcjowO2hlaWdodDoxMDAlfS5mYW5jeWJveC1lcnJvciwuZmFuY3lib3gtaWZyYW1le21hcmdpbjowO3dpZHRoOjEwMCU7YmFja2dyb3VuZDojZmZmfS5mYW5jeWJveC1lcnJvcntwYWRkaW5nOjQwcHg7bWF4LXdpZHRoOjM4MHB4O2N1cnNvcjpkZWZhdWx0fS5mYW5jeWJveC1lcnJvciBwe21hcmdpbjowO3BhZGRpbmc6MDtjb2xvcjojNDQ0O2ZvbnQ6MTZweC8yMHB4IEhlbHZldGljYSBOZXVlLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmfS5mYW5jeWJveC1jbG9zZS1zbWFsbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7cGFkZGluZzowO21hcmdpbjowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtvdXRsaW5lOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt6LWluZGV4OjEwO2N1cnNvcjpwb2ludGVyfS5mYW5jeWJveC1jbG9zZS1zbWFsbDphZnRlcntjb250ZW50Olwiw5dcIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NXB4O3JpZ2h0OjVweDt3aWR0aDozMHB4O2hlaWdodDozMHB4O2ZvbnQ6MjBweC8zMHB4IEFyaWFsLEhlbHZldGljYSBOZXVlLEhlbHZldGljYSxzYW5zLXNlcmlmO2NvbG9yOiM4ODg7Zm9udC13ZWlnaHQ6MzAwO3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlci13aWR0aDowO2JhY2tncm91bmQ6I2ZmZjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjI1cztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoyfS5mYW5jeWJveC1jbG9zZS1zbWFsbDpmb2N1czphZnRlcntvdXRsaW5lOjFweCBkb3R0ZWQgIzg4OH0uZmFuY3lib3gtY2xvc2Utc21hbGw6aG92ZXI6YWZ0ZXJ7Y29sb3I6IzU1NTtiYWNrZ3JvdW5kOiNlZWV9LmZhbmN5Ym94LXNsaWRlLS1pZnJhbWUgLmZhbmN5Ym94LWNsb3NlLXNtYWxse3RvcDowO3JpZ2h0Oi00NHB4fS5mYW5jeWJveC1zbGlkZS0taWZyYW1lIC5mYW5jeWJveC1jbG9zZS1zbWFsbDphZnRlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2ZvbnQtc2l6ZTozNXB4O2NvbG9yOiNhYWF9LmZhbmN5Ym94LXNsaWRlLS1pZnJhbWUgLmZhbmN5Ym94LWNsb3NlLXNtYWxsOmhvdmVyOmFmdGVye2NvbG9yOiNmZmZ9LmZhbmN5Ym94LWNhcHRpb24td3JhcHtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtwYWRkaW5nOjYwcHggMzBweCAwO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx0cmFuc3BhcmVudCAwLHJnYmEoMCwwLDAsLjEpIDIwJSxyZ2JhKDAsMCwwLC4yKSA0MCUscmdiYSgwLDAsMCwuNikgODAlLHJnYmEoMCwwLDAsLjgpKTtwb2ludGVyLWV2ZW50czpub25lfS5mYW5jeWJveC1jYXB0aW9ue3BhZGRpbmc6MzBweCAwO2JvcmRlci10b3A6MXB4IHNvbGlkIGhzbGEoMCwwJSwxMDAlLC40KTtmb250LXNpemU6MTRweDtmb250LWZhbWlseTpIZWx2ZXRpY2EgTmV1ZSxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojZmZmO2xpbmUtaGVpZ2h0OjIwcHg7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0Om5vbmV9LmZhbmN5Ym94LWNhcHRpb24gYSwuZmFuY3lib3gtY2FwdGlvbiBidXR0b24sLmZhbmN5Ym94LWNhcHRpb24gc2VsZWN0e3BvaW50ZXItZXZlbnRzOmFsbH0uZmFuY3lib3gtY2FwdGlvbiBhe2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uZmFuY3lib3gtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDt3aWR0aDo0NHB4O2hlaWdodDo0NHB4O2xpbmUtaGVpZ2h0OjQ0cHg7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZGRkO2JvcmRlci1yYWRpdXM6MDtjdXJzb3I6cG9pbnRlcjt2ZXJ0aWNhbC1hbGlnbjp0b3A7b3V0bGluZTpub25lfS5mYW5jeWJveC1idXR0b25bZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0O3BvaW50ZXItZXZlbnRzOm5vbmV9LmZhbmN5Ym94LWJ1dHRvbiwuZmFuY3lib3gtaW5mb2Jhcl9fYm9keXtiYWNrZ3JvdW5kOnJnYmEoMzAsMzAsMzAsLjYpfS5mYW5jeWJveC1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pe2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44KX0uZmFuY3lib3gtYnV0dG9uOmFmdGVyLC5mYW5jeWJveC1idXR0b246YmVmb3Jle2NvbnRlbnQ6XCJcIjtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yO2NvbG9yOmN1cnJlbnRDb2xvcjtvcGFjaXR5Oi45O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmlubGluZS1ibG9ja30uZmFuY3lib3gtYnV0dG9uW2Rpc2FibGVkXTphZnRlciwuZmFuY3lib3gtYnV0dG9uW2Rpc2FibGVkXTpiZWZvcmV7b3BhY2l0eTouM30uZmFuY3lib3gtYnV0dG9uLS1sZWZ0OmFmdGVyLC5mYW5jeWJveC1idXR0b24tLXJpZ2h0OmFmdGVye3RvcDoxOHB4O3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDoycHggc29saWQgY3VycmVudENvbG9yO2JvcmRlci1yaWdodDoycHggc29saWQgY3VycmVudENvbG9yfS5mYW5jeWJveC1idXR0b24tLWxlZnQ6YWZ0ZXJ7bGVmdDoyMHB4Oy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpfS5mYW5jeWJveC1idXR0b24tLXJpZ2h0OmFmdGVye3JpZ2h0OjIwcHg7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0uZmFuY3lib3gtYnV0dG9uLS1sZWZ0e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NXB4fS5mYW5jeWJveC1idXR0b24tLXJpZ2h0e2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjVweH0uZmFuY3lib3gtYnV0dG9uLS1jbG9zZTphZnRlciwuZmFuY3lib3gtYnV0dG9uLS1jbG9zZTpiZWZvcmV7Y29udGVudDpcIlwiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoycHg7d2lkdGg6MTZweDt0b3A6Y2FsYyg1MCUgLSAxcHgpO2xlZnQ6Y2FsYyg1MCUgLSA4cHgpfS5mYW5jeWJveC1idXR0b24tLWNsb3NlOmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5mYW5jeWJveC1idXR0b24tLWNsb3NlOmFmdGVyey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX0uZmFuY3lib3gtYXJyb3d7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTttYXJnaW46LTUwcHggMCAwO2hlaWdodDoxMDBweDt3aWR0aDo1NHB4O3BhZGRpbmc6MDtib3JkZXI6MDtvdXRsaW5lOm5vbmU7YmFja2dyb3VuZDpub25lO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6OTk5OTU7b3BhY2l0eTowOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1c30uZmFuY3lib3gtYXJyb3c6YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyOHB4O3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDMwLDMwLDMwLC44KTtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUJtYVd4c1BTSWpSa1pHUmtaR0lpQm9aV2xuYUhROUlqUTRJaUIyYVdWM1FtOTRQU0l3SURBZ01qUWdNalFpSUhkcFpIUm9QU0kwT0NJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0Z0lDQWdQSEJoZEdnZ1pEMGlUVEFnTUdneU5IWXlORWd3ZWlJZ1ptbHNiRDBpYm05dVpTSXZQaUFnSUNBOGNHRjBhQ0JrUFNKTk1USWdOR3d0TVM0ME1TQXhMalF4VERFMkxqRTNJREV4U0RSMk1tZ3hNaTR4TjJ3dE5TNDFPQ0ExTGpVNVRERXlJREl3YkRndE9Ib2lMejQ4TDNOMlp6ND0pO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtiYWNrZ3JvdW5kLXNpemU6MjRweCAyNHB4fS5mYW5jeWJveC1hcnJvdy0tcmlnaHR7cmlnaHQ6MH0uZmFuY3lib3gtYXJyb3ctLWxlZnR7bGVmdDowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgtMSk7dHJhbnNmb3JtOnNjYWxlWCgtMSl9LmZhbmN5Ym94LWFycm93LS1sZWZ0OmFmdGVyLC5mYW5jeWJveC1hcnJvdy0tcmlnaHQ6YWZ0ZXJ7bGVmdDowfS5mYW5jeWJveC1zaG93LW5hdiAuZmFuY3lib3gtYXJyb3d7b3BhY2l0eTouNn0uZmFuY3lib3gtc2hvdy1uYXYgLmZhbmN5Ym94LWFycm93W2Rpc2FibGVkXXtvcGFjaXR5Oi4zfS5mYW5jeWJveC1sb2FkaW5ne2JvcmRlcjo2cHggc29saWQgaHNsYSgwLDAlLDM5JSwuNCk7Ym9yZGVyLXRvcDo2cHggc29saWQgaHNsYSgwLDAlLDEwMCUsLjYpO2JvcmRlci1yYWRpdXM6MTAwJTtoZWlnaHQ6NTBweDt3aWR0aDo1MHB4Oy13ZWJraXQtYW5pbWF0aW9uOmEgLjhzIGluZmluaXRlIGxpbmVhcjthbmltYXRpb246YSAuOHMgaW5maW5pdGUgbGluZWFyO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTttYXJnaW4tdG9wOi0yNXB4O21hcmdpbi1sZWZ0Oi0yNXB4O3otaW5kZXg6OTk5OTl9LmZhbmN5Ym94LWFuaW1hdGVke3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLDAsLjI1LDEpfS5mYW5jeWJveC1meC1zbGlkZS5mYW5jeWJveC1zbGlkZS0tcHJldmlvdXN7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKTtvcGFjaXR5OjB9LmZhbmN5Ym94LWZ4LXNsaWRlLmZhbmN5Ym94LXNsaWRlLS1uZXh0ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApO29wYWNpdHk6MH0uZmFuY3lib3gtZngtc2xpZGUuZmFuY3lib3gtc2xpZGUtLWN1cnJlbnR7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTtvcGFjaXR5OjF9LmZhbmN5Ym94LWZ4LWZhZGUuZmFuY3lib3gtc2xpZGUtLW5leHQsLmZhbmN5Ym94LWZ4LWZhZGUuZmFuY3lib3gtc2xpZGUtLXByZXZpb3Vze29wYWNpdHk6MDt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE5LDEsLjIyLDEpfS5mYW5jeWJveC1meC1mYWRlLmZhbmN5Ym94LXNsaWRlLS1jdXJyZW50e29wYWNpdHk6MX0uZmFuY3lib3gtZngtem9vbS1pbi1vdXQuZmFuY3lib3gtc2xpZGUtLXByZXZpb3Vzey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS41LDEuNSwxLjUpO3RyYW5zZm9ybTpzY2FsZTNkKDEuNSwxLjUsMS41KTtvcGFjaXR5OjB9LmZhbmN5Ym94LWZ4LXpvb20taW4tb3V0LmZhbmN5Ym94LXNsaWRlLS1uZXh0ey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjUsLjUsLjUpO3RyYW5zZm9ybTpzY2FsZTNkKC41LC41LC41KTtvcGFjaXR5OjB9LmZhbmN5Ym94LWZ4LXpvb20taW4tb3V0LmZhbmN5Ym94LXNsaWRlLS1jdXJyZW50ey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgxKTt0cmFuc2Zvcm06c2NhbGVYKDEpO29wYWNpdHk6MX0uZmFuY3lib3gtZngtcm90YXRlLmZhbmN5Ym94LXNsaWRlLS1wcmV2aW91c3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTF0dXJuKTt0cmFuc2Zvcm06cm90YXRlKC0xdHVybik7b3BhY2l0eTowfS5mYW5jeWJveC1meC1yb3RhdGUuZmFuY3lib3gtc2xpZGUtLW5leHR7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTt0cmFuc2Zvcm06cm90YXRlKDF0dXJuKTtvcGFjaXR5OjB9LmZhbmN5Ym94LWZ4LXJvdGF0ZS5mYW5jeWJveC1zbGlkZS0tY3VycmVudHstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTtvcGFjaXR5OjF9LmZhbmN5Ym94LWZ4LWNpcmN1bGFyLmZhbmN5Ym94LXNsaWRlLS1wcmV2aW91c3std2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDAsMCwwKSB0cmFuc2xhdGUzZCgtMTAwJSwwLDApO3RyYW5zZm9ybTpzY2FsZTNkKDAsMCwwKSB0cmFuc2xhdGUzZCgtMTAwJSwwLDApO29wYWNpdHk6MH0uZmFuY3lib3gtZngtY2lyY3VsYXIuZmFuY3lib3gtc2xpZGUtLW5leHR7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgwLDAsMCkgdHJhbnNsYXRlM2QoMTAwJSwwLDApO3RyYW5zZm9ybTpzY2FsZTNkKDAsMCwwKSB0cmFuc2xhdGUzZCgxMDAlLDAsMCk7b3BhY2l0eTowfS5mYW5jeWJveC1meC1jaXJjdWxhci5mYW5jeWJveC1zbGlkZS0tY3VycmVudHstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSkgdHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06c2NhbGVYKDEpIHRyYW5zbGF0ZVooMCk7b3BhY2l0eToxfS5mYW5jeWJveC1meC10dWJlLmZhbmN5Ym94LXNsaWRlLS1wcmV2aW91c3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApIHNjYWxlKC4xKSBza2V3KC0xMGRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCkgc2NhbGUoLjEpIHNrZXcoLTEwZGVnKX0uZmFuY3lib3gtZngtdHViZS5mYW5jeWJveC1zbGlkZS0tbmV4dHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCkgc2NhbGUoLjEpIHNrZXcoMTBkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCkgc2NhbGUoLjEpIHNrZXcoMTBkZWcpfS5mYW5jeWJveC1meC10dWJlLmZhbmN5Ym94LXNsaWRlLS1jdXJyZW50ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCkgc2NhbGUoMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCkgc2NhbGUoMSl9QG1lZGlhIChtYXgtd2lkdGg6ODAwcHgpey5mYW5jeWJveC1pbmZvYmFye2xlZnQ6MDttYXJnaW4tbGVmdDowfS5mYW5jeWJveC1idXR0b24tLWxlZnQsLmZhbmN5Ym94LWJ1dHRvbi0tcmlnaHR7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZmFuY3lib3gtY2FwdGlvbntwYWRkaW5nOjIwcHggMDttYXJnaW46MH19LmZhbmN5Ym94LWJ1dHRvbi0tZnVsbHNjcmVlbjpiZWZvcmV7d2lkdGg6MTVweDtoZWlnaHQ6MTFweDtsZWZ0OmNhbGMoNTAlIC0gN3B4KTt0b3A6Y2FsYyg1MCUgLSA2cHgpO2JvcmRlcjoycHggc29saWQ7YmFja2dyb3VuZDpub25lfS5mYW5jeWJveC1idXR0b24tLXBhdXNlOmJlZm9yZSwuZmFuY3lib3gtYnV0dG9uLS1wbGF5OmJlZm9yZXt0b3A6Y2FsYyg1MCUgLSA2cHgpO2xlZnQ6Y2FsYyg1MCUgLSA0cHgpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmZhbmN5Ym94LWJ1dHRvbi0tcGxheTpiZWZvcmV7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItdG9wOjZweCBpbnNldCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjZweCBpbnNldCB0cmFuc3BhcmVudDtib3JkZXItbGVmdDoxMHB4IHNvbGlkO2JvcmRlci1yYWRpdXM6MXB4fS5mYW5jeWJveC1idXR0b24tLXBhdXNlOmJlZm9yZXt3aWR0aDo3cHg7aGVpZ2h0OjExcHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowIDJweH0uZmFuY3lib3gtYnV0dG9uLS10aHVtYnMsLmZhbmN5Ym94LXRodW1ic3tkaXNwbGF5Om5vbmV9QG1lZGlhIChtaW4td2lkdGg6ODAwcHgpey5mYW5jeWJveC1idXR0b24tLXRodW1ic3tkaXNwbGF5OmlubGluZS1ibG9ja30uZmFuY3lib3gtYnV0dG9uLS10aHVtYnMgc3Bhbntmb250LXNpemU6MjNweH0uZmFuY3lib3gtYnV0dG9uLS10aHVtYnM6YmVmb3Jle3dpZHRoOjNweDtoZWlnaHQ6M3B4O3RvcDpjYWxjKDUwJSAtIDJweCk7bGVmdDpjYWxjKDUwJSAtIDJweCk7Ym94LXNoYWRvdzowIC00cHggMCwtNHB4IC00cHggMCw0cHggLTRweCAwLGluc2V0IDAgMCAwIDMycHgsLTRweCAwIDAsNHB4IDAgMCwwIDRweCAwLC00cHggNHB4IDAsNHB4IDRweCAwfS5mYW5jeWJveC10aHVtYnN7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OmF1dG87d2lkdGg6MjIwcHg7bWFyZ2luOjA7cGFkZGluZzo1cHggNXB4IDAgMDtiYWNrZ3JvdW5kOiNmZmY7d29yZC1icmVhazpub3JtYWw7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoOy1tcy1vdmVyZmxvdy1zdHlsZTotbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6OTk5OTV9LmZhbmN5Ym94LXNob3ctdGh1bWJzIC5mYW5jeWJveC10aHVtYnN7ZGlzcGxheTpibG9ja30uZmFuY3lib3gtc2hvdy10aHVtYnMgLmZhbmN5Ym94LWlubmVye3JpZ2h0OjIyMHB4fS5mYW5jeWJveC10aHVtYnM+dWx7bGlzdC1zdHlsZTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWFyZ2luOjA7cGFkZGluZzowO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bztmb250LXNpemU6MH0uZmFuY3lib3gtdGh1bWJzPnVsPmxpe2Zsb2F0OmxlZnQ7b3ZlcmZsb3c6aGlkZGVuO21heC13aWR0aDo1MCU7cGFkZGluZzowO21hcmdpbjowO3dpZHRoOjEwNXB4O2hlaWdodDo3NXB4O3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO291dGxpbmU6bm9uZTtib3JkZXI6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3Atd2lkdGg6MDtib3JkZXItcmlnaHQtd2lkdGg6MDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtib3gtc2l6aW5nOmJvcmRlci1ib3h9bGkuZmFuY3lib3gtdGh1bWJzLWxvYWRpbmd7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xKX0uZmFuY3lib3gtdGh1bWJzPnVsPmxpPmltZ3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7bWluLXdpZHRoOjEwMCU7bWluLWhlaWdodDoxMDAlO21heC13aWR0aDpub25lO21heC1oZWlnaHQ6bm9uZTstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmZhbmN5Ym94LXRodW1icz51bD5saTpiZWZvcmV7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjo0cHggc29saWQgIzRlYTdmOTt6LWluZGV4Ojk5OTkxO29wYWNpdHk6MDt0cmFuc2l0aW9uOmFsbCAuMnMgY3ViaWMtYmV6aWVyKC4yNSwuNDYsLjQ1LC45NCl9LmZhbmN5Ym94LXRodW1icz51bD5saS5mYW5jeWJveC10aHVtYnMtYWN0aXZlOmJlZm9yZXtvcGFjaXR5OjF9fSIsIkBpbXBvcnQgXCIuLi8uLi9saWJzL2ZhbmN5Ym94L2pxdWVyeS5mYW5jeWJveC5taW4uY3NzXCI7XHJcblxyXG4uZmFuY3lib3gtc2xpZGUgc2NyaXB0e1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLmZhbmN5Ym94LXNsaWRlLS1pZnJhbWUgLmZhbmN5Ym94LWNsb3NlLXNtYWxse1xyXG4gIHJpZ2h0OiAwO1xyXG59XHJcblxyXG4uZmFuY3lib3gtYmxvY1ZpZGVvR2xvYmFse1xyXG4gIEBtZWRpYSAoLS1tcS10YWJsZXQpe1xyXG4gICAgcGFkZGluZy1ib3R0b206IHJlbSg1MCk7XHJcbiAgfVxyXG59XHJcbi5mYW5jeWJveC1ibG9jVmlkZW97XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgJjphZnRlcntcclxuICAgIGNvbnRlbnQ6IFwiIFwiO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9hc3NldHMvaW1hZ2VzL2NvbW1vbi9idXR0b25QbGF5LnBuZycpO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICB3aWR0aDogcmVtKDkwKTtcclxuICAgIGhlaWdodDogcmVtKDY0KTtcclxuICAgIG1hcmdpbi1sZWZ0OiByZW0oLTQ1KTtcclxuICAgIG1hcmdpbi10b3A6IHJlbSgtMzIpO1xyXG4gICAgei1pbmRleDogdmFyKC0tekluZGV4LS1jb250ZW50KTtcclxuICB9XHJcblxyXG4gICYudmlkZW9JbnNpZGVCYW5uZXJ7XHJcbiAgICBAbWVkaWEoLS1tcS1kZXNrdG9wKXtcclxuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Oy8qIGhpZGRpbmcgcGxheSBidXR0b24gd2hlbiB2aWRlbyBpcyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBwYWdlICovXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaGFzQ2FydG91Y2hlLmZhbmN5Ym94LWJsb2NWaWRlb3tcclxuICAmOmFmdGVye1xyXG4gICAgdG9wOiA0MiU7XHJcblxyXG4gICAgQG1lZGlhKC0tbXEtdGFibGV0KSwgQG1lZGlhKC0tbXEtbW9iaWxlKXtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZmFuY3lib3gtc2xpZGUtLWlmcmFtZSAuZmFuY3lib3gtY29udGVudHtcclxuICBtaW4taGVpZ2h0OiByZW0oMjAwKTtcclxufVxyXG5cclxuLyogaGFjayBzYWZhcmkgcG91ciBnw6lyZXIgbGUgcGIgZGUgc2Nyb2xsIGR1IGNvbnRlbnUgZGVycmnDqHJlIGxhIHBvcGluIGxvcnNxdSd1bmUgZmFuY3lib3ggZXN0IG91dmVydGUgKi9cclxuQG1lZGlhIG5vdCBhbGwgYW5kIChtaW4tcmVzb2x1dGlvbjouMDAxZHBjbSkge1xyXG4gIEBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmUpIHtcclxuICAgIC5wcmV2ZW50U2Nyb2xsICNtYWluQ29udGFpbmVye1xyXG4gICAgICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgICAgICBoZWlnaHQgOiAzMDBweDtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5idXR0b24uZmFuY3lib3gtY2xvc2Utc21hbGw6YWZ0ZXJ7XHJcbiAgZm9udC1zaXplOiByZW0oMjgpO1xyXG59XHJcblxyXG4ubGlnaHRDb3R0YWdlRGV0YWlscyB7XHJcbiAgLmZhbmN5Ym94LWJnIHtcclxuICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcclxuICAgIG9wYWNpdHk6IC41O1xyXG4gIH1cclxuXHJcbiAgLmZhbmN5Ym94LXNsaWRlLS1pZnJhbWUge1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC5mYW5jeWJveC1jb250ZW50IHtcclxuICAgICAgbWF4LWhlaWdodDogbm9uZTtcclxuICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgICB3aWR0aDogMTAwdncgIWltcG9ydGFudDtcclxuXHJcbiAgICAgIEBtZWRpYSAoLS1tcS1kZXNrdG9wKXtcclxuICAgICAgICB3aWR0aDogOTUlICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mYW5jeWJveC1zbGlkZSB7XHJcbiAgICBsZWZ0OiBhdXRvO1xyXG4gICAgcmlnaHQ6IC0xMDAlO1xyXG4gICAgdHJhbnNpdGlvbjogLjdzO1xyXG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XHJcbiAgICB3aWR0aDogMTAwdnc7XHJcblxyXG4gICAgJi5mYW5jeWJveC1zbGlkZS0tY29tcGxldGUge1xyXG4gICAgICByaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5kZXZpY2VJc0Rlc2t0b3Age1xyXG4gIEBtZWRpYSAoLS1tcS1tb2JpbGVUb1RhYmxldCl7XHJcbiAgICAubGlnaHRDb3R0YWdlRGV0YWlscyAuZmFuY3lib3gtc2xpZGUtLWlmcmFtZSAuZmFuY3lib3gtY29udGVudCB7XHJcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZmFuY3lib3gtYXJyb3dbZGlzYWJsZWRdIHtcclxuICBvcGFjaXR5OiAwLjMgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZhbmN5Ym94LWlubmVye1xyXG4gIC5mYW5jeWJveC1hcnJvdyB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICB3aWR0aDogcmVtKDM2KTtcclxuICAgIGhlaWdodDogcmVtKDM2KTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgIGJveC1zaGFkb3c6IDAgMCA4LjhweCAwLjJweCByZ2JhKDAsIDAsIDAsIDAuMTMpO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjVzIGVhc2U7XHJcblxyXG4gICAgJltkaXNhYmxlZH49XCJ0cnVlXCJde1xyXG4gICAgICBvcGFjaXR5OiAwLjY7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3Zlcntjb2xvcjogIzc4QjEzRTt9XHJcblxyXG4gICAgJjo6YWZ0ZXJ7XHJcbiAgICAgIGZvbnQtZmFtaWx5OiBcImljb25zXCI7XHJcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogbm9ybWFsO1xyXG4gICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcclxuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBwb3NpdGlvbjogaW5pdGlhbDtcclxuICAgICAgdG9wOiByZW0oMjgpO1xyXG4gICAgICB3aWR0aDogcmVtKDM4KTtcclxuICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICBmb250LXNpemU6IHJlbSgyMCk7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICB9XHJcblxyXG4gICAgJi0tcmlnaHQ6OmFmdGVye0BleHRlbmQgLmNwZS1JY29uLS1hcnJvdy1yaWdodDpiZWZvcmU7IHdpZHRoOiByZW0oMzgpO31cclxuICAgIFxyXG4gICAgJi0tbGVmdDo6YWZ0ZXJ7QGV4dGVuZCAuY3BlLUljb24tLWFycm93LWxlZnQ6YmVmb3JlOyB3aWR0aDogcmVtKDM2KTt9XHJcbiAgICBcclxuICAgICYtLXJpZ2h0e1xyXG4gICAgICByaWdodDogcmVtKDE1KTtcclxuICAgICAgQG1lZGlhICgtLW1xLWRlc2t0b3Ape1xyXG4gICAgICAgIHJpZ2h0OiByZW0oNzApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmLS1sZWZ0e1xyXG4gICAgICBsZWZ0OiByZW0oMTUpO1xyXG4gICAgICBAbWVkaWEgKC0tbXEtZGVza3RvcCl7XHJcbiAgICAgICAgbGVmdDogcmVtKDcwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZhbmN5Ym94LXRvb2xiYXIge1xyXG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcclxuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mYW5jeWJveC1odG1sNS1jb250YWluZXJ7XHJcbiAgcGFkZGluZzogMDtcclxuICB3aWR0aDogODAlO1xyXG4gIGhlaWdodDogODAlO1xyXG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpO1xyXG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDg4cHgpO1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gIG1pbi1oZWlnaHQ6IDEyLjVyZW07XHJcbn1cclxuXHJcbi5mYW5jeWJveC1odG1sNS1jb250ZW50e1xyXG4gIG1hcmdpbjogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBiYWNrZ3JvdW5kOiBibGFjaztcclxuICBwYWRkaW5nOiAwO1xyXG4gIGJvcmRlcjogMDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgdmlkZW97XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgYmFja2dyb3VuZDogYmxhY2s7XHJcbiAgfVxyXG59XHJcbiIsIlxyXG5odG1sIHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIGZvbnQtc2l6ZTogcmVtKDE2KTsvKiB0byByZXNldCBtZGwgdmFsdWVzICovXHJcbn1cclxuXHJcbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcclxuICBib3gtc2l6aW5nOiBpbmhlcml0O1xyXG59XHJcblxyXG5ib2R5IHtcclxuICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcclxuICBmb250LWZhbWlseTogdmFyKC0tZGVmYXVsdEZvbnQpO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBmb250LXdlaWdodDpub3JtYWw7XHJcblxyXG4gIEBtZWRpYSAoLS1tcS1zbWFsbERlc2t0b3Ape1xyXG4gICAgcGFkZGluZzogMCByZW0oMzIpO1xyXG4gIH1cclxuXHJcbiAgQG1lZGlhICgtLW1xLW1pblRhYmxldCkge1xyXG4gICAgZm9udC1zaXplOnZhcigtLW1haW5Gb250U2l6ZURlc2t0b3ApOyBcclxuICB9XHJcbn1cclxuXHJcbnAsIGxhYmVsLCBpbnB1dCwgYnV0dG9uLCBsaSwgYSwgc3BhbiB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgZm9udC1zaXplOiB2YXIoLS1tYWluRm9udFNpemUpO1xyXG5cclxuICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KSB7XHJcbiAgICBmb250LXNpemU6dmFyKC0tbWFpbkZvbnRTaXplRGVza3RvcCk7XHJcbiAgfVxyXG59XHJcblxyXG5we1xyXG4gIGxpbmUtaGVpZ2h0OiByZW0oMTYpO1xyXG5cclxuICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KSB7XHJcbiAgICBsaW5lLWhlaWdodDogcmVtKDIwKTtcclxuICB9XHJcbn1cclxuXHJcbm9wdGlvbntcclxuICBmb250LXNpemU6IHZhcigtLWZvbnRTaXplRGVmYXVsdCk7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuICBjb2xvcjp2YXIoLS1ncmV5TWVkaXVtXzIpO1xyXG59XHJcblxyXG5he291dGxpbmU6IG5vbmU7Y29sb3I6dmFyKC0tZ3JlZW4pO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtZmFtaWx5OiB2YXIoLS1tYWluRm9udCk7IGZvbnQtd2VpZ2h0OiBpbmhlcml0O31cclxuXHJcbnVse1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGZvbnQtc2l6ZTogMDtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG59XHJcblxyXG5idXR0b257XHJcbiAgY29sb3I6IHZhcigtLWdyZXlTdG9uZSk7XHJcbiAgXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuaW1nIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbmltZzpub3QoW3NyY10pIHtcclxuICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbn1cclxuXHJcbkAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKSB7XHJcbiAgaW1nOi1tb3otbG9hZGluZyB7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgfVxyXG59XHJcblxyXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2e1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tYWluRm9udCk7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxufVxyXG5cclxuaDEsIC5oMS1saWtle1xyXG4gIGZvbnQtc2l6ZTogcmVtKDYwKTtcclxuICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG5cclxuICBAbWVkaWEgKC0tbXEtdGFibGV0KSB7XHJcbiAgICBmb250LXNpemU6IHJlbSgzOCk7IFxyXG4gICAgbGluZS1oZWlnaHQ6IHJlbSgzOCk7XHJcbiAgICBwYWRkaW5nIDogcmVtKDUpIDA7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKC0tbXEtbW9iaWxlKSB7XHJcbiAgICBmb250LXNpemU6IHJlbSgyNSk7IFxyXG4gICAgbGluZS1oZWlnaHQ6IHJlbSgyNik7XHJcbiAgICBtYXJnaW4tdG9wOiByZW0oMTApO1xyXG4gIH1cclxufVxyXG5cclxuaDIsIC5oMi1saWtle1xyXG4gIGZvbnQtc2l6ZTogcmVtKDQ1KTtcclxuICBmb250LWZhbWlseTogdmFyKC0tbWFpbkZvbnQpO1xyXG4gIGxpbmUtaGVpZ2h0OiByZW0oNTIpO1xyXG5cclxuICBAbWVkaWEgKC0tbXEtdGFibGV0KSB7XHJcbiAgICBmb250LXNpemU6IHJlbSgzMCk7IFxyXG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XHJcbiAgICBwYWRkaW5nIDogcmVtKDcpIDA7XHJcbiAgfVxyXG4gIEBtZWRpYSgtLW1xLW1vYmlsZSl7XHJcbiAgICBmb250LXNpemU6IHJlbSgyMSk7XHJcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcclxuICB9XHJcbn1cclxuXHJcbmgzLCAuaDMtbGlrZXtcclxuICBmb250LXNpemU6IHJlbSgzMCk7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTtcclxuICBsaW5lLWhlaWdodDogMS4yZW07XHJcbiAgbWFyZ2luOiAxZW0gMDtcclxuXHJcbiAgQG1lZGlhICgtLW1xLXRhYmxldCkge1xyXG4gICAgZm9udC1zaXplOnJlbSgyNCk7IFxyXG4gIH1cclxuICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICAgZm9udC1zaXplOiByZW0oMTgpO1xyXG4gIH1cclxufVxyXG5cclxuaDQsIC5oNC1saWtle1xyXG4gIGZvbnQtc2l6ZTpyZW0oMTgpO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1tYWluRm9udCk7XHJcbiAgbGluZS1oZWlnaHQ6IHJlbSgyMCk7XHJcbiAgbWFyZ2luOiAwIDAgcmVtKDIwKTtcclxuXHJcbiAgQG1lZGlhICgtLW1xLXRhYmxldCkge1xyXG4gICAgZm9udC1zaXplOnJlbSgxOCk7XHJcbiAgICBsaW5lLWhlaWdodDogcmVtKDIwKTtcclxuICB9XHJcbiAgQG1lZGlhKC0tbXEtbW9iaWxlKXtcclxuICAgIGZvbnQtc2l6ZTpyZW0oMTYpO1xyXG4gICAgbGluZS1oZWlnaHQ6IHJlbSgxNik7XHJcbiAgfVxyXG59XHJcblxyXG4uZG90dGVkQmFja2dyb3VuZHtcclxuICBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vYXNzZXRzL2ltYWdlcy9iYWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLXBvaW50cy5wbmcpO1xyXG59XHJcblxyXG4udS1wcm9tb0luZm97XHJcbiAgbWFyZ2luIDogcmVtKDEwKSAwO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1pdGFsaWNGb250KTtcclxufVxyXG5cclxuLnUtbW9iaWxlQm9yZGVyQm90dG9tLS1XaGl0ZTIwe1xyXG4gIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgYm9yZGVyLWJvdHRvbTogcmVtKDEwKSBzb2xpZCB3aGl0ZTtcclxuICB9XHJcbn1cclxuXHJcbi51LXRhYmxldEJvcmRlckJvdHRvbS0tV2hpdGU0MHtcclxuICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgIGJvcmRlci1ib3R0b206IHJlbSg0MCkgc29saWQgd2hpdGU7XHJcbiAgfVxyXG59XHJcblxyXG4udS1yZWxhdGl2ZXtwb3NpdGlvbjpyZWxhdGl2ZTt9XHJcbi51LWJsb2Nre2Rpc3BsYXk6IGJsb2NrO31cclxuLnUtbWFpbkZvbnR7Zm9udC1mYW1pbHk6IHZhcigtLW1haW5Gb250KTt9XHJcbi51LW1haW5Gb250TWVkaXVte2ZvbnQtZmFtaWx5OiB2YXIoLS1tYWluRm9udCk7Zm9udC13ZWlnaHQ6NTAwO31cclxuLnUtbWFpbkZvbnRCb2xke2ZvbnQtZmFtaWx5OiB2YXIoLS1tYWluRm9udCk7Zm9udC13ZWlnaHQ6NzAwO31cclxuLnUtaXRhbGlje2ZvbnQtZmFtaWx5OiB2YXIoLS1pdGFsaWNGb250KTt9XHJcbi51LWl0YWxpY01lZGl1bXtmb250LWZhbWlseTogdmFyKC0taXRhbGljRm9udCk7Zm9udC13ZWlnaHQ6NTAwO31cclxuLnUtaXRhbGljQm9sZHtmb250LWZhbWlseTogdmFyKC0taXRhbGljRm9udCk7Zm9udC13ZWlnaHQ6NzAwO31cclxuLnUtc3Ryb25ne2ZvbnQtd2VpZ2h0OiBib2xkO31cclxuLnUtY29sb3ItLWdyZWVue2NvbG9yOiB2YXIoLS1ncmVlbik7fVxyXG4udS1jb2xvci0tcmVke2NvbG9yOiB2YXIoLS1yZWQpO31cclxuLnUtY29sb3ItLXllbGxvd1NhbmR7Y29sb3I6IHZhcigtLXllbGxvdyk7fVxyXG4udS1jb2xvci0td2hpdGV7Y29sb3I6IHdoaXRlO31cclxuLnUtZGlzcGxheVRhYmxle2Rpc3BsYXk6dGFibGU7fVxyXG4udS1kaXNwbGF5VGFibGVDZWxse2Rpc3BsYXk6dGFibGUtY2VsbDt9XHJcbi51LWRpc3BsYXlUYWJsZVJvd3tkaXNwbGF5OnRhYmxlLXJvdzt9XHJcbi51LWRpc2FibGVke1xyXG4gIG9wYWNpdHk6IDAuNTtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbn1cclxuLnUtc2ltcGxlRGlzYWJsZWR7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcbi8qIGN1c3RvbSBvbCBjb3VudGVycywgdG8gYWRkIGNzcyBzdHlsZSBlZmZlY3QgdG8gY291bnRlcnMgKi9cclxuLnUtY3VzdG9tQ291bnRlcnttYXJnaW4tbGVmdDogMDtwYWRkaW5nLXJpZ2h0OiAwO2xpc3Qtc3R5bGUtdHlwZTogbm9uZTt9XHJcbi51LWN1c3RvbUNvdW50ZXIgbGl7Y291bnRlci1pbmNyZW1lbnQ6IHN0ZXAtY291bnRlcjt9XHJcbi51LWN1c3RvbUNvdW50ZXIgbGk6YmVmb3Jle1xyXG4gIGNvbnRlbnQ6IGNvdW50ZXIoc3RlcC1jb3VudGVyKVwiLlwiO1xyXG4gIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG4udS1pY29uQWxlcnR7XHJcbiAgc3BhbiB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tc2Vjb25kYXJ5Rm9udCk7XHJcbiAgICBmb250LXNpemU6IHJlbSgxMik7XHJcbiAgICBsaW5lLWhlaWdodDogcmVtKDI0KTtcclxuICAgIGNvbG9yOiB2YXIoLS1yZWQpO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBwYWRkaW5nOiAwIHJlbSgxMikgMCByZW0oMzApO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogcmVtKDE1KTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiIVwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxNyk7XHJcbiAgICAgIGhlaWdodDogcmVtKDI0KTtcclxuICAgICAgd2lkdGg6IHJlbSgyNCk7XHJcbiAgICAgIGJvcmRlcjogcmVtKDQpIHNvbGlkIHZhcigtLXJlZCk7XHJcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiNtYWluQ29udGFpbmVye1xyXG4gIEBtZWRpYSgtLW1xLW1vYmlsZSl7XHJcbiAgICB3aWR0aDoxMDB2dztcclxuICB9XHJcbn1cclxuXHJcbi5jb21tb25MYXlvdXR7XHJcbiAgZm9udC1zaXplOiAwO1xyXG4gIHBhZGRpbmc6IDAgNyU7XHJcblxyXG4vKiAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkgYW5kIChtYXgtd2lkdGg6IDE0MDBweCkge1xyXG4gIHBhZGRpbmc6IDAgMSU7XHJcbn1cclxuICovXHJcbiAgQG1lZGlhICgtLW1xLXNtYWxsRGVza3RvcCl7XHJcbiAgICAgIHBhZGRpbmc6IDAgMiU7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKC0tbXEtdGFibGV0KXtcclxuICAgIHBhZGRpbmc6IDAgMyU7XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKC0tbXEtbW9iaWxlKXtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4uZW5naW5lT3V0c2lkZSAuc2VhcmNoRG9tYWluLXRvcCAuY29tbW9uTGF5b3V0IHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4uY3BlLUljb24uY3BlLUljb24tLWNsb3NlOmhvdmVyOjpiZWZvcmUsIC5jcGUtSWNvbi5jcGUtSWNvbi0taW5mb3JtYXRpb246aG92ZXI6OmJlZm9yZXtcclxuICBjb2xvcjogdmFyKC0tZ3JlZW5MaWdodENvbG9yKTtcclxufVxyXG5cclxuLmRlc2t0b3BQYWRkaW5nQ29udGFpbmVye1xyXG4gIGZvbnQtc2l6ZTogMDtcclxuXHJcbiAgQG1lZGlhKC0tbXEtZGVza3RvcCl7XHJcbiAgICBwYWRkaW5nIDogMCA3JTtcclxuICB9XHJcbn1cclxuXHJcbi8qKiogTElHSFRWSUVXICoqKi9cclxuI2xpZ2h0dmlld0NvbnRhaW5lcntcclxuICBtYXJnaW4gOiByZW0oMjApIHJlbSgwKTtcclxufVxyXG5cclxuLnBzZXVkb0ljby1hbGVydDpiZWZvcmV7XHJcbiAgY29udGVudDogXCIhXCI7XHJcbiAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogcmVtKDE0KTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgaGVpZ2h0OiByZW0oMjQpO1xyXG4gIHdpZHRoOiByZW0oMjQpO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBsaW5lLWhlaWdodDogcmVtKDE4KTtcclxuICBtYXJnaW4tcmlnaHQ6IHJlbSgxMCk7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGJvcmRlcjogM3B4IHZhcigtLXJlZCkgc29saWQ7XHJcbn1cclxuXHJcbi8qKiogU2FmYXJpIGZpeGVzICoqKi9cclxuXzo6LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWEsIF86ZnV0dXJlLCA6cm9vdCB7XHJcbiAgLmRldmljZUlzRGVza3RvcCB7XHJcbiAgICAuc2VhcmNoRm9ybS1zaXRlUGluOmJlZm9yZSB7XHJcbiAgICAgIG1hcmdpbi10b3A6IHJlbSg1KTtcclxuICAgIH1cclxuXHJcbiAgICAuaWNvbldheXNUb0RpbmUtcGljdG8ge1xyXG4gICAgICBtYXJnaW4tdG9wOiByZW0oMjApO1xyXG4gICAgfVxyXG5cclxuICAgIC5jcC1lYXREcmlua1Jlc3RhdXJhbnRzIC5pY29uV2F5c1RvRGluZS1waWN0byB7XHJcbiAgICAgIG1hcmdpbi10b3A6IHJlbSgzMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLmljb25XYXlzVG9EaW5lLXRleHQge1xyXG4gICAgICBtYXJnaW4tdG9wOiAxMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLnRoZW1hdGljc0xpc3QgLnRoZW1hdGljSWNvbiB7XHJcbiAgICAgIHRvcDogLTIwJTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9vdGVyLW5ld3MgI25ld3NsZXR0ZXJGb3JtIC5pbnB1dENvbnRhaW5lciB7XHJcbiAgICAgIGhlaWdodDogcmVtKDQwKTtcclxuICAgIH1cclxuXHJcbiAgICAuaGVhZGJhbmQtY29udGVudCAuZG9tYWluLXBsYXlWaWRlb0J0biAuY3BlLUljb246YmVmb3JlLFxyXG4gICAgLmhlYWRiYW5kLWNvbnRlbnQgLmRvbWFpbi1vcGVuVmlydHVhbFRvdXJCdG4gIC5jcGUtSWNvbjpiZWZvcmUge1xyXG4gICAgICBtYXJnaW4tdG9wOiByZW0oOCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiBmaXhpbmcgSU9TIG1kbCBlZmZlY3QgKi9cclxuLm1kbC1yaXBwbGUge1xyXG4gIGJhY2tncm91bmQ6ICMwMDA7IG9wYWNpdHk6IDAuMDAxO1xyXG59XHJcbiIsIi5jb29raWVzQmFubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyOSwgMjksIDI5LCAwLjgpO1xuICBjb2xvcjogI0ZGRjtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgcGFkZGluZzogcmVtKDE1KSAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHotaW5kZXg6IGNhbGModmFyKC0tekluZGV4LS1zcGlubmVyKSAtIDEpO1xuICBkaXNwbGF5OiBub25lO1xuXG4gICYtdGV4dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiA1NSU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IHJlbSgzMCk7XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDExKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKC0tbXEtdGFibGV0KSB7XG4gICAgICB3aWR0aDogNzAlO1xuICAgIH1cblxuICAgIEBtZWRpYSAoLS1tcS1tb2JpbGUpIHtcbiAgICAgIHdpZHRoOiA5MyU7XG4gICAgICBtYXJnaW46IDAgMCByZW0oMTApO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBjb2xvcjogI0ZGRjtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDExKTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogI0ZGRjtcbiAgICBjb2xvcjogdmFyKC0tZ3JleVN0b25lKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nOiByZW0oMikgcmVtKDIwKTtcbiAgICBmb250LXNpemU6IHJlbSgxMik7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBib3JkZXItcmFkaXVzOiByZW0oMTUpO1xuICAgIGJvcmRlcjogcmVtKDIpIHNvbGlkIHdoaXRlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gIH1cbn0iLCJAaW1wb3J0IFwibm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi91dGlscy9jc3MvbWVkaWFxdWVyaWVzLmNzc1wiO1xyXG5cclxuQGltcG9ydCBcImNzc3JlY2lwZXMtZGVmYXVsdHMvbGliL2JvcmRlci1jb2xsYXBzZS5jc3NcIjtcclxuQGltcG9ydCBcImNzc3JlY2lwZXMtZGVmYXVsdHMvbGliL2JveC1zaXppbmcuY3NzXCI7XHJcbkBpbXBvcnQgXCJjc3NyZWNpcGVzLWRlZmF1bHRzL2xpYi9kb2N1bWVudC1yZW1vdmUtbWFyZ2luLXBhZGRpbmcuY3NzXCI7XHJcbkBpbXBvcnQgXCJjc3NyZWNpcGVzLWRlZmF1bHRzL2xpYi9oaWRkZW4uY3NzXCI7XHJcbkBpbXBvcnQgXCJjc3NyZWNpcGVzLXJlc2V0L2luZGV4LmNzc1wiO1xyXG5AaW1wb3J0IFwiY3NzcmVjaXBlcy1ncmlkL2luZGV4LmNzc1wiO1xyXG5AaW1wb3J0IFwiY3NzcmVjaXBlcy11dGlscy9saWIvYWxsLmNzc1wiO1xyXG5AaW1wb3J0IFwiY3NzcmVjaXBlcy11dGlscy9saWIvbWF4LmNzc1wiO1xyXG5AaW1wb3J0IFwiY3NzcmVjaXBlcy11dGlscy9saWIvbWluLmNzc1wiO1xyXG5cclxuQGltcG9ydCBcIi4uLy4uL3V0aWxzL2Nzcy92YXJpYWJsZXMuY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi91dGlscy9jc3MvbWl4aW5zLmNzc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vdXRpbHMvY3NzL2tleWZyYW1lcy5jc3NcIjtcclxuQGltcG9ydCBcIi4uLy4uL3V0aWxzL2Nzcy9ncmlkLmNzc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vdXRpbHMvY3NzL2ljb25zL2ljb25zLmNzc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vdXRpbHMvY3NzL3ZlcnRpY2FsLWNlbnRlcmluZy5jc3NcIjtcclxuQGltcG9ydCBcIi4uLy4uL3V0aWxzL2Nzcy9kaXNwbGF5LmNzc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vdXRpbHMvY3NzL2ZvbnRzLmNzc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vdXRpbHMvY3NzL3RvZ2dsZS5jc3NcIjtcclxuQGltcG9ydCBcIi4uLy4uL3V0aWxzL2Nzcy9pbWFnZS1lZmZlY3RzLmNzc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vdXRpbHMvY3NzL3NwaW5uZXIuY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi91dGlscy9jc3Mvc2xpY2stY2Fyb3VzZWwuY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi91dGlscy9jc3Mvc2Nyb2xsYmFyLmNzc1wiO1xyXG5cclxuQGltcG9ydCBcIi4uLy4uL2NvbXBvbmVudHMvcGljdHVyZS9faW5kZXguY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL2Zvcm0vX2luZGV4LmNzc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vY29tcG9uZW50cy9mb3JtL3NlbGVjdC9faW5kZXguY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL2hlYWRlci9faW5kZXguY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL2Zvb3Rlci9faW5kZXguY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL3NlYXJjaEVsYXN0aWMvbWFpbi9faW5kZXguY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL2NvbnRlbnRIZWFkZXIvX2luZGV4LmNzc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vY29tcG9uZW50cy9wb3Bpbi9faW5kZXguY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL2J1dHRvbi9faW5kZXguY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL2Ryb3BEb3duTGlzdC9faW5kZXguY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi9hc3NldHMvc3R5bGVzaGVldHMvc3ByaXRlLmNzc1wiO1xyXG5cclxuQGltcG9ydCBcIm1hdGVyaWFsLWRlc2lnbi1saXRlL21hdGVyaWFsLmNzc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vY29tcG9uZW50cy9mYW5jeWJveC9faW5kZXguY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL2NvbW1vbi9jb21tb24uY3NzXCI7XHJcbkBpbXBvcnQgXCIuLi8uLi9jb21wb25lbnRzL2Nvb2tpZXNCYW5uZXIvX2luZGV4LmNzc1wiO1xyXG5cclxuYm9keSB7XHJcbiAgcGFkZGluZzogMCAzLjc1dnc7XHJcblxyXG4gIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgcGFkZGluZyA6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yIDogdmFyKC0tZ3JleVBlYXJsQ29sb3IpO1xyXG4gIH1cclxufVxyXG5cclxuLnUtc2hhZG93Qm94e2JveC1zaGFkb3c6IDBweCAycHggN3B4IHJnYmEoMCwwLDAsLjIpO31cclxuLnUtY2VudGVye3RleHQtYWxpZ246Y2VudGVyO31cclxuXHJcbi8qKiogQ0hFVlJPTiBHRU5FUklRVUVTIFFVSSBDSEFOR0UgRCdBU1BFQ1QgQSBMJ09VVkVSVFVSRSAqKiovXHJcbi51LWNwZUljb24tLWNoZXZyb257XHJcbiAgZm9udC1zaXplOiByZW0oMTUpO1xyXG5cclxuICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgICY6YmVmb3Jle1xyXG4gICAgICBAZXh0ZW5kIC5jcGUtSWNvbi0tYXJyb3c6YmVmb3JlOyAvKiBvdXZldHVyZSBib3R0b20gLyBmZXJtZXR1cmUgdG9wIHNvdXMgdGFibGV0IGV0IGRlc2t0b3AgKi9cclxuICAgIH1cclxuICB9XHJcbiAgQG1lZGlhICgtLW1xLW1vYmlsZSl7XHJcbiAgICAmOmJlZm9yZXtcclxuICAgICAgQGV4dGVuZCAuY3BlLUljb24tLWFycm93LXJpZ2h0OmJlZm9yZTsgLyogb3V2ZXR1cmUgcmlnaHQgLyBmZXJtZXR1cmUgbGVmdCBzb3VzIG1vYmlsZSAqL1xyXG4gICAgfVxyXG5cclxuICB9XHJcbn1cclxuXHJcbi5vcGVuZWQgLnUtY3BlSWNvbi0tY2hldnJvbntcclxuICBAbWVkaWEgKC0tbXEtbWluVGFibGV0KXtcclxuICAgICY6YmVmb3Jle1xyXG4gICAgICBAZXh0ZW5kIC5jcGUtSWNvbi0tYXJyb3ctdG9wOmJlZm9yZTsgLyogb3V2ZXR1cmUgYm90dG9tIC8gZmVybWV0dXJlIHRvcCBzb3VzIHRhYmxldCBldCBkZXNrdG9wICovXHJcbiAgICB9XHJcbiAgfVxyXG4gIEBtZWRpYSAoLS1tcS1tb2JpbGUpe1xyXG4gICAgJjpiZWZvcmV7XHJcbiAgICAgQGV4dGVuZCAuY3BlLUljb24tLWFycm93LWxlZnQ6YmVmb3JlOyAvKiBvdXZldHVyZSByaWdodCAvIGZlcm1ldHVyZSBsZWZ0IHNvdXMgbW9iaWxlICovXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubWFpbkNvbnRhaW5lcldpdGhHdXR0ZU9uTW9iaWxle1xyXG5cclxuICBAbWVkaWEoLS1tcS1tb2JpbGUpe1xyXG4gICAgI21haW5Db250YWluZXJ7XHJcbiAgICAgIHBhZGRpbmc6IDAgM3Z3O1xyXG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIH1cclxuXHJcbiAgICBmb290ZXJ7XHJcbiAgICAgIG1hcmdpbjogMCAtM3Z3O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmVycm9yTXNne1xyXG4gIGNvbG9yOiB2YXIoLS1yZWQpO1xyXG4gIG1hcmdpbi10b3A6IHJlbSg1KTtcclxufVxyXG5cclxuLmhlaWdodEZvckZ1bGxXaWR0aF8xNl85e1xyXG4gIEBtZWRpYSgtLW1xLW1vYmlsZSl7XHJcbiAgICBoZWlnaHQ6IDQ0dnc7XHJcblxyXG4gICAgcGljdHVyZXtcclxuICAgICAgaGVpZ2h0OiA0NHZ3O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQG1lZGlhKC0tbXEtdGFibGV0KXtcclxuICAgIGhlaWdodDogNDF2dztcclxuXHJcbiAgICBwaWN0dXJle1xyXG4gICAgICBoZWlnaHQ6IDQxdnc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEoLS1tcS1kZXNrdG9wKXtcclxuICAgIGhlaWdodDogNDAuNXZ3O1xyXG5cclxuICAgIHBpY3R1cmV7XHJcbiAgICAgIGhlaWdodDogNDAuNXZ3O1xyXG4gICAgfVxyXG4gIH1cclxufSIsIkBtZWRpYSAoLS1yLW1heFhMKSB7XG5cbiAgLnItbWF4WEwtLTFvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDEyKTtcbiAgfVxuXG4gIC5yLW1heFhMLS0xb2YxMCB7XG4gICAgd2lkdGg6IDEwJTtcbiAgfVxuXG4gIC5yLW1heFhMLS0xb2Y4IHtcbiAgICB3aWR0aDogMTIuNSU7XG4gIH1cblxuICAuci1tYXhYTC0tMW9mNixcbiAgLnItbWF4WEwtLTJvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDYpO1xuICB9XG5cbiAgLnItbWF4WEwtLTFvZjUsXG4gIC5yLW1heFhMLS0yb2YxMCB7XG4gICAgd2lkdGg6IDIwJTtcbiAgfVxuXG4gIC5yLW1heFhMLS0xb2Y0LFxuICAuci1tYXhYTC0tMm9mOCxcbiAgLnItbWF4WEwtLTNvZjEyIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG5cbiAgLnItbWF4WEwtLTNvZjEwIHtcbiAgICB3aWR0aDogMzAlO1xuICB9XG5cbiAgLnItbWF4WEwtLTFvZjMsXG4gIC5yLW1heFhMLS0yb2Y2LFxuICAuci1tYXhYTC0tNG9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gMyk7XG4gIH1cblxuICAuci1tYXhYTC0tM29mOCB7XG4gICAgd2lkdGg6IDM3LjUlO1xuICB9XG5cbiAgLnItbWF4WEwtLTJvZjUsXG4gIC5yLW1heFhMLS00b2YxMCB7XG4gICAgd2lkdGg6IDQwJTtcbiAgfVxuXG4gIC5yLW1heFhMLS01b2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDUgLyAxMik7XG4gIH1cblxuICAuci1tYXhYTC0tMW9mMixcbiAgLnItbWF4WEwtLTJvZjQsXG4gIC5yLW1heFhMLS0zb2Y2LFxuICAuci1tYXhYTC0tNG9mOCxcbiAgLnItbWF4WEwtLTVvZjEwLFxuICAuci1tYXhYTC0tNm9mMTIge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cblxuICAuci1tYXhYTC0tN29mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA3IC8gMTIpO1xuICB9XG5cbiAgLnItbWF4WEwtLTNvZjUsXG4gIC5yLW1heFhMLS02b2YxMCB7XG4gICAgd2lkdGg6IDYwJTtcbiAgfVxuXG4gIC5yLW1heFhMLS01b2Y4IHtcbiAgICB3aWR0aDogNjIuNSU7XG4gIH1cblxuICAuci1tYXhYTC0tMm9mMyxcbiAgLnItbWF4WEwtLTRvZjYsXG4gIC5yLW1heFhMLS04b2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDIgLyAzKTtcbiAgfVxuXG4gIC5yLW1heFhMLS03b2YxMCB7XG4gICAgd2lkdGg6IDcwJTtcbiAgfVxuXG4gIC5yLW1heFhMLS0zb2Y0LFxuICAuci1tYXhYTC0tNm9mOCxcbiAgLnItbWF4WEwtLTlvZjEyIHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG5cbiAgLnItbWF4WEwtLTRvZjUsXG4gIC5yLW1heFhMLS04b2YxMCB7XG4gICAgd2lkdGg6IDgwJTtcbiAgfVxuXG4gIC5yLW1heFhMLS01b2Y2LFxuICAuci1tYXhYTC0tMTBvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNSAvIDYpO1xuICB9XG5cbiAgLnItbWF4WEwtLTdvZjgge1xuICAgIHdpZHRoOiA4Ny41JTtcbiAgfVxuXG4gIC5yLW1heFhMLS05b2YxMCB7XG4gICAgd2lkdGg6IDkwJTtcbiAgfVxuXG4gIC5yLW1heFhMLS0xMW9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxMSAvIDEyKTtcbiAgfVxuXG4gIC5yLW1heFhMLS0xb2YxLFxuICAuci1tYXhYTC0tMm9mMixcbiAgLnItbWF4WEwtLTNvZjMsXG4gIC5yLW1heFhMLS00b2Y0LFxuICAuci1tYXhYTC0tNW9mNSxcbiAgLnItbWF4WEwtLTZvZjYsXG4gIC5yLW1heFhMLS04b2Y4LFxuICAuci1tYXhYTC0tMTBvZjEwLFxuICAuci1tYXhYTC0tMTJvZjEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5yLW1heFhMLS1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuci1tYXhYTC0tdmlzaWJsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG4iLCJAbWVkaWEgKC0tci1tYXhMKSB7XG5cbiAgLnItbWF4TC0tMW9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gMTIpO1xuICB9XG5cbiAgLnItbWF4TC0tMW9mMTAge1xuICAgIHdpZHRoOiAxMCU7XG4gIH1cblxuICAuci1tYXhMLS0xb2Y4IHtcbiAgICB3aWR0aDogMTIuNSU7XG4gIH1cblxuICAuci1tYXhMLS0xb2Y2LFxuICAuci1tYXhMLS0yb2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2KTtcbiAgfVxuXG4gIC5yLW1heEwtLTFvZjUsXG4gIC5yLW1heEwtLTJvZjEwIHtcbiAgICB3aWR0aDogMjAlO1xuICB9XG5cbiAgLnItbWF4TC0tMW9mNCxcbiAgLnItbWF4TC0tMm9mOCxcbiAgLnItbWF4TC0tM29mMTIge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cblxuICAuci1tYXhMLS0zb2YxMCB7XG4gICAgd2lkdGg6IDMwJTtcbiAgfVxuXG4gIC5yLW1heEwtLTFvZjMsXG4gIC5yLW1heEwtLTJvZjYsXG4gIC5yLW1heEwtLTRvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMpO1xuICB9XG5cbiAgLnItbWF4TC0tM29mOCB7XG4gICAgd2lkdGg6IDM3LjUlO1xuICB9XG5cbiAgLnItbWF4TC0tMm9mNSxcbiAgLnItbWF4TC0tNG9mMTAge1xuICAgIHdpZHRoOiA0MCU7XG4gIH1cblxuICAuci1tYXhMLS01b2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDUgLyAxMik7XG4gIH1cblxuICAuci1tYXhMLS0xb2YyLFxuICAuci1tYXhMLS0yb2Y0LFxuICAuci1tYXhMLS0zb2Y2LFxuICAuci1tYXhMLS00b2Y4LFxuICAuci1tYXhMLS01b2YxMCxcbiAgLnItbWF4TC0tNm9mMTIge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cblxuICAuci1tYXhMLS03b2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDcgLyAxMik7XG4gIH1cblxuICAuci1tYXhMLS0zb2Y1LFxuICAuci1tYXhMLS02b2YxMCB7XG4gICAgd2lkdGg6IDYwJTtcbiAgfVxuXG4gIC5yLW1heEwtLTVvZjgge1xuICAgIHdpZHRoOiA2Mi41JTtcbiAgfVxuXG4gIC5yLW1heEwtLTJvZjMsXG4gIC5yLW1heEwtLTRvZjYsXG4gIC5yLW1heEwtLThvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMiAvIDMpO1xuICB9XG5cbiAgLnItbWF4TC0tN29mMTAge1xuICAgIHdpZHRoOiA3MCU7XG4gIH1cblxuICAuci1tYXhMLS0zb2Y0LFxuICAuci1tYXhMLS02b2Y4LFxuICAuci1tYXhMLS05b2YxMiB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuXG4gIC5yLW1heEwtLTRvZjUsXG4gIC5yLW1heEwtLThvZjEwIHtcbiAgICB3aWR0aDogODAlO1xuICB9XG5cbiAgLnItbWF4TC0tNW9mNixcbiAgLnItbWF4TC0tMTBvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNSAvIDYpO1xuICB9XG5cbiAgLnItbWF4TC0tN29mOCB7XG4gICAgd2lkdGg6IDg3LjUlO1xuICB9XG5cbiAgLnItbWF4TC0tOW9mMTAge1xuICAgIHdpZHRoOiA5MCU7XG4gIH1cblxuICAuci1tYXhMLS0xMW9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxMSAvIDEyKTtcbiAgfVxuXG4gIC5yLW1heEwtLTFvZjEsXG4gIC5yLW1heEwtLTJvZjIsXG4gIC5yLW1heEwtLTNvZjMsXG4gIC5yLW1heEwtLTRvZjQsXG4gIC5yLW1heEwtLTVvZjUsXG4gIC5yLW1heEwtLTZvZjYsXG4gIC5yLW1heEwtLThvZjgsXG4gIC5yLW1heEwtLTEwb2YxMCxcbiAgLnItbWF4TC0tMTJvZjEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5yLW1heEwtLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5yLW1heEwtLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuIiwiQG1lZGlhICgtLXItbWF4TSkge1xuXG4gIC5yLW1heE0tLTFvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDEyKTtcbiAgfVxuXG4gIC5yLW1heE0tLTFvZjEwIHtcbiAgICB3aWR0aDogMTAlO1xuICB9XG5cbiAgLnItbWF4TS0tMW9mOCB7XG4gICAgd2lkdGg6IDEyLjUlO1xuICB9XG5cbiAgLnItbWF4TS0tMW9mNixcbiAgLnItbWF4TS0tMm9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNik7XG4gIH1cblxuICAuci1tYXhNLS0xb2Y1LFxuICAuci1tYXhNLS0yb2YxMCB7XG4gICAgd2lkdGg6IDIwJTtcbiAgfVxuXG4gIC5yLW1heE0tLTFvZjQsXG4gIC5yLW1heE0tLTJvZjgsXG4gIC5yLW1heE0tLTNvZjEyIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG5cbiAgLnItbWF4TS0tM29mMTAge1xuICAgIHdpZHRoOiAzMCU7XG4gIH1cblxuICAuci1tYXhNLS0xb2YzLFxuICAuci1tYXhNLS0yb2Y2LFxuICAuci1tYXhNLS00b2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzKTtcbiAgfVxuXG4gIC5yLW1heE0tLTNvZjgge1xuICAgIHdpZHRoOiAzNy41JTtcbiAgfVxuXG4gIC5yLW1heE0tLTJvZjUsXG4gIC5yLW1heE0tLTRvZjEwIHtcbiAgICB3aWR0aDogNDAlO1xuICB9XG5cbiAgLnItbWF4TS0tNW9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA1IC8gMTIpO1xuICB9XG5cbiAgLnItbWF4TS0tMW9mMixcbiAgLnItbWF4TS0tMm9mNCxcbiAgLnItbWF4TS0tM29mNixcbiAgLnItbWF4TS0tNG9mOCxcbiAgLnItbWF4TS0tNW9mMTAsXG4gIC5yLW1heE0tLTZvZjEyIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG5cbiAgLnItbWF4TS0tN29mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA3IC8gMTIpO1xuICB9XG5cbiAgLnItbWF4TS0tM29mNSxcbiAgLnItbWF4TS0tNm9mMTAge1xuICAgIHdpZHRoOiA2MCU7XG4gIH1cblxuICAuci1tYXhNLS01b2Y4IHtcbiAgICB3aWR0aDogNjIuNSU7XG4gIH1cblxuICAuci1tYXhNLS0yb2YzLFxuICAuci1tYXhNLS00b2Y2LFxuICAuci1tYXhNLS04b2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDIgLyAzKTtcbiAgfVxuXG4gIC5yLW1heE0tLTdvZjEwIHtcbiAgICB3aWR0aDogNzAlO1xuICB9XG5cbiAgLnItbWF4TS0tM29mNCxcbiAgLnItbWF4TS0tNm9mOCxcbiAgLnItbWF4TS0tOW9mMTIge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cblxuICAuci1tYXhNLS00b2Y1LFxuICAuci1tYXhNLS04b2YxMCB7XG4gICAgd2lkdGg6IDgwJTtcbiAgfVxuXG4gIC5yLW1heE0tLTVvZjYsXG4gIC5yLW1heE0tLTEwb2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDUgLyA2KTtcbiAgfVxuXG4gIC5yLW1heE0tLTdvZjgge1xuICAgIHdpZHRoOiA4Ny41JTtcbiAgfVxuXG4gIC5yLW1heE0tLTlvZjEwIHtcbiAgICB3aWR0aDogOTAlO1xuICB9XG5cbiAgLnItbWF4TS0tMTFvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMTEgLyAxMik7XG4gIH1cblxuICAuci1tYXhNLS0xb2YxLFxuICAuci1tYXhNLS0yb2YyLFxuICAuci1tYXhNLS0zb2YzLFxuICAuci1tYXhNLS00b2Y0LFxuICAuci1tYXhNLS01b2Y1LFxuICAuci1tYXhNLS02b2Y2LFxuICAuci1tYXhNLS04b2Y4LFxuICAuci1tYXhNLS0xMG9mMTAsXG4gIC5yLW1heE0tLTEyb2YxMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuci1tYXhNLS1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuci1tYXhNLS12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cbiIsIkBtZWRpYSAoLS1yLW1heFMpIHtcblxuICAuci1tYXhTLS0xb2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAxMik7XG4gIH1cblxuICAuci1tYXhTLS0xb2YxMCB7XG4gICAgd2lkdGg6IDEwJTtcbiAgfVxuXG4gIC5yLW1heFMtLTFvZjgge1xuICAgIHdpZHRoOiAxMi41JTtcbiAgfVxuXG4gIC5yLW1heFMtLTFvZjYsXG4gIC5yLW1heFMtLTJvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDYpO1xuICB9XG5cbiAgLnItbWF4Uy0tMW9mNSxcbiAgLnItbWF4Uy0tMm9mMTAge1xuICAgIHdpZHRoOiAyMCU7XG4gIH1cblxuICAuci1tYXhTLS0xb2Y0LFxuICAuci1tYXhTLS0yb2Y4LFxuICAuci1tYXhTLS0zb2YxMiB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuXG4gIC5yLW1heFMtLTNvZjEwIHtcbiAgICB3aWR0aDogMzAlO1xuICB9XG5cbiAgLnItbWF4Uy0tMW9mMyxcbiAgLnItbWF4Uy0tMm9mNixcbiAgLnItbWF4Uy0tNG9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gMyk7XG4gIH1cblxuICAuci1tYXhTLS0zb2Y4IHtcbiAgICB3aWR0aDogMzcuNSU7XG4gIH1cblxuICAuci1tYXhTLS0yb2Y1LFxuICAuci1tYXhTLS00b2YxMCB7XG4gICAgd2lkdGg6IDQwJTtcbiAgfVxuXG4gIC5yLW1heFMtLTVvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNSAvIDEyKTtcbiAgfVxuXG4gIC5yLW1heFMtLTFvZjIsXG4gIC5yLW1heFMtLTJvZjQsXG4gIC5yLW1heFMtLTNvZjYsXG4gIC5yLW1heFMtLTRvZjgsXG4gIC5yLW1heFMtLTVvZjEwLFxuICAuci1tYXhTLS02b2YxMiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuXG4gIC5yLW1heFMtLTdvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNyAvIDEyKTtcbiAgfVxuXG4gIC5yLW1heFMtLTNvZjUsXG4gIC5yLW1heFMtLTZvZjEwIHtcbiAgICB3aWR0aDogNjAlO1xuICB9XG5cbiAgLnItbWF4Uy0tNW9mOCB7XG4gICAgd2lkdGg6IDYyLjUlO1xuICB9XG5cbiAgLnItbWF4Uy0tMm9mMyxcbiAgLnItbWF4Uy0tNG9mNixcbiAgLnItbWF4Uy0tOG9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAyIC8gMyk7XG4gIH1cblxuICAuci1tYXhTLS03b2YxMCB7XG4gICAgd2lkdGg6IDcwJTtcbiAgfVxuXG4gIC5yLW1heFMtLTNvZjQsXG4gIC5yLW1heFMtLTZvZjgsXG4gIC5yLW1heFMtLTlvZjEyIHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG5cbiAgLnItbWF4Uy0tNG9mNSxcbiAgLnItbWF4Uy0tOG9mMTAge1xuICAgIHdpZHRoOiA4MCU7XG4gIH1cblxuICAuci1tYXhTLS01b2Y2LFxuICAuci1tYXhTLS0xMG9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA1IC8gNik7XG4gIH1cblxuICAuci1tYXhTLS03b2Y4IHtcbiAgICB3aWR0aDogODcuNSU7XG4gIH1cblxuICAuci1tYXhTLS05b2YxMCB7XG4gICAgd2lkdGg6IDkwJTtcbiAgfVxuXG4gIC5yLW1heFMtLTExb2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDExIC8gMTIpO1xuICB9XG5cbiAgLnItbWF4Uy0tMW9mMSxcbiAgLnItbWF4Uy0tMm9mMixcbiAgLnItbWF4Uy0tM29mMyxcbiAgLnItbWF4Uy0tNG9mNCxcbiAgLnItbWF4Uy0tNW9mNSxcbiAgLnItbWF4Uy0tNm9mNixcbiAgLnItbWF4Uy0tOG9mOCxcbiAgLnItbWF4Uy0tMTBvZjEwLFxuICAuci1tYXhTLS0xMm9mMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnItbWF4Uy0taGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnItbWF4Uy0tdmlzaWJsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG4iLCJAbWVkaWEgKC0tci1taW5TKSB7XG5cbiAgLnItbWluUy0tMW9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gMTIpO1xuICB9XG5cbiAgLnItbWluUy0tMW9mMTAge1xuICAgIHdpZHRoOiAxMCU7XG4gIH1cblxuICAuci1taW5TLS0xb2Y4IHtcbiAgICB3aWR0aDogMTIuNSU7XG4gIH1cblxuICAuci1taW5TLS0xb2Y2LFxuICAuci1taW5TLS0yb2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2KTtcbiAgfVxuXG4gIC5yLW1pblMtLTFvZjUsXG4gIC5yLW1pblMtLTJvZjEwIHtcbiAgICB3aWR0aDogMjAlO1xuICB9XG5cbiAgLnItbWluUy0tMW9mNCxcbiAgLnItbWluUy0tMm9mOCxcbiAgLnItbWluUy0tM29mMTIge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cblxuICAuci1taW5TLS0zb2YxMCB7XG4gICAgd2lkdGg6IDMwJTtcbiAgfVxuXG4gIC5yLW1pblMtLTFvZjMsXG4gIC5yLW1pblMtLTJvZjYsXG4gIC5yLW1pblMtLTRvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMpO1xuICB9XG5cbiAgLnItbWluUy0tM29mOCB7XG4gICAgd2lkdGg6IDM3LjUlO1xuICB9XG5cbiAgLnItbWluUy0tMm9mNSxcbiAgLnItbWluUy0tNG9mMTAge1xuICAgIHdpZHRoOiA0MCU7XG4gIH1cblxuICAuci1taW5TLS01b2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDUgLyAxMik7XG4gIH1cblxuICAuci1taW5TLS0xb2YyLFxuICAuci1taW5TLS0yb2Y0LFxuICAuci1taW5TLS0zb2Y2LFxuICAuci1taW5TLS00b2Y4LFxuICAuci1taW5TLS01b2YxMCxcbiAgLnItbWluUy0tNm9mMTIge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cblxuICAuci1taW5TLS03b2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDcgLyAxMik7XG4gIH1cblxuICAuci1taW5TLS0zb2Y1LFxuICAuci1taW5TLS02b2YxMCB7XG4gICAgd2lkdGg6IDYwJTtcbiAgfVxuXG4gIC5yLW1pblMtLTVvZjgge1xuICAgIHdpZHRoOiA2Mi41JTtcbiAgfVxuXG4gIC5yLW1pblMtLTJvZjMsXG4gIC5yLW1pblMtLTRvZjYsXG4gIC5yLW1pblMtLThvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMiAvIDMpO1xuICB9XG5cbiAgLnItbWluUy0tN29mMTAge1xuICAgIHdpZHRoOiA3MCU7XG4gIH1cblxuICAuci1taW5TLS0zb2Y0LFxuICAuci1taW5TLS02b2Y4LFxuICAuci1taW5TLS05b2YxMiB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuXG4gIC5yLW1pblMtLTRvZjUsXG4gIC5yLW1pblMtLThvZjEwIHtcbiAgICB3aWR0aDogODAlO1xuICB9XG5cbiAgLnItbWluUy0tNW9mNixcbiAgLnItbWluUy0tMTBvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNSAvIDYpO1xuICB9XG5cbiAgLnItbWluUy0tN29mOCB7XG4gICAgd2lkdGg6IDg3LjUlO1xuICB9XG5cbiAgLnItbWluUy0tOW9mMTAge1xuICAgIHdpZHRoOiA5MCU7XG4gIH1cblxuICAuci1taW5TLS0xMW9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxMSAvIDEyKTtcbiAgfVxuXG4gIC5yLW1pblMtLTFvZjEsXG4gIC5yLW1pblMtLTJvZjIsXG4gIC5yLW1pblMtLTNvZjMsXG4gIC5yLW1pblMtLTRvZjQsXG4gIC5yLW1pblMtLTVvZjUsXG4gIC5yLW1pblMtLTZvZjYsXG4gIC5yLW1pblMtLThvZjgsXG4gIC5yLW1pblMtLTEwb2YxMCxcbiAgLnItbWluUy0tMTJvZjEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5yLW1pblMtLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5yLW1pblMtLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuIiwiQG1lZGlhICgtLXItbWluTSkge1xuXG4gIC5yLW1pbk0tLTFvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDEyKTtcbiAgfVxuXG4gIC5yLW1pbk0tLTFvZjEwIHtcbiAgICB3aWR0aDogMTAlO1xuICB9XG5cbiAgLnItbWluTS0tMW9mOCB7XG4gICAgd2lkdGg6IDEyLjUlO1xuICB9XG5cbiAgLnItbWluTS0tMW9mNixcbiAgLnItbWluTS0tMm9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNik7XG4gIH1cblxuICAuci1taW5NLS0xb2Y1LFxuICAuci1taW5NLS0yb2YxMCB7XG4gICAgd2lkdGg6IDIwJTtcbiAgfVxuXG4gIC5yLW1pbk0tLTFvZjQsXG4gIC5yLW1pbk0tLTJvZjgsXG4gIC5yLW1pbk0tLTNvZjEyIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG5cbiAgLnItbWluTS0tM29mMTAge1xuICAgIHdpZHRoOiAzMCU7XG4gIH1cblxuICAuci1taW5NLS0xb2YzLFxuICAuci1taW5NLS0yb2Y2LFxuICAuci1taW5NLS00b2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzKTtcbiAgfVxuXG4gIC5yLW1pbk0tLTNvZjgge1xuICAgIHdpZHRoOiAzNy41JTtcbiAgfVxuXG4gIC5yLW1pbk0tLTJvZjUsXG4gIC5yLW1pbk0tLTRvZjEwIHtcbiAgICB3aWR0aDogNDAlO1xuICB9XG5cbiAgLnItbWluTS0tNW9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA1IC8gMTIpO1xuICB9XG5cbiAgLnItbWluTS0tMW9mMixcbiAgLnItbWluTS0tMm9mNCxcbiAgLnItbWluTS0tM29mNixcbiAgLnItbWluTS0tNG9mOCxcbiAgLnItbWluTS0tNW9mMTAsXG4gIC5yLW1pbk0tLTZvZjEyIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG5cbiAgLnItbWluTS0tN29mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA3IC8gMTIpO1xuICB9XG5cbiAgLnItbWluTS0tM29mNSxcbiAgLnItbWluTS0tNm9mMTAge1xuICAgIHdpZHRoOiA2MCU7XG4gIH1cblxuICAuci1taW5NLS01b2Y4IHtcbiAgICB3aWR0aDogNjIuNSU7XG4gIH1cblxuICAuci1taW5NLS0yb2YzLFxuICAuci1taW5NLS00b2Y2LFxuICAuci1taW5NLS04b2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDIgLyAzKTtcbiAgfVxuXG4gIC5yLW1pbk0tLTdvZjEwIHtcbiAgICB3aWR0aDogNzAlO1xuICB9XG5cbiAgLnItbWluTS0tM29mNCxcbiAgLnItbWluTS0tNm9mOCxcbiAgLnItbWluTS0tOW9mMTIge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cblxuICAuci1taW5NLS00b2Y1LFxuICAuci1taW5NLS04b2YxMCB7XG4gICAgd2lkdGg6IDgwJTtcbiAgfVxuXG4gIC5yLW1pbk0tLTVvZjYsXG4gIC5yLW1pbk0tLTEwb2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDUgLyA2KTtcbiAgfVxuXG4gIC5yLW1pbk0tLTdvZjgge1xuICAgIHdpZHRoOiA4Ny41JTtcbiAgfVxuXG4gIC5yLW1pbk0tLTlvZjEwIHtcbiAgICB3aWR0aDogOTAlO1xuICB9XG5cbiAgLnItbWluTS0tMTFvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMTEgLyAxMik7XG4gIH1cblxuICAuci1taW5NLS0xb2YxLFxuICAuci1taW5NLS0yb2YyLFxuICAuci1taW5NLS0zb2YzLFxuICAuci1taW5NLS00b2Y0LFxuICAuci1taW5NLS01b2Y1LFxuICAuci1taW5NLS02b2Y2LFxuICAuci1taW5NLS04b2Y4LFxuICAuci1taW5NLS0xMG9mMTAsXG4gIC5yLW1pbk0tLTEyb2YxMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuci1taW5NLS1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuci1taW5NLS12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cbiIsIkBtZWRpYSAoLS1yLW1pbkwpIHtcblxuICAuci1taW5MLS0xb2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAxMik7XG4gIH1cblxuICAuci1taW5MLS0xb2YxMCB7XG4gICAgd2lkdGg6IDEwJTtcbiAgfVxuXG4gIC5yLW1pbkwtLTFvZjgge1xuICAgIHdpZHRoOiAxMi41JTtcbiAgfVxuXG4gIC5yLW1pbkwtLTFvZjYsXG4gIC5yLW1pbkwtLTJvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDYpO1xuICB9XG5cbiAgLnItbWluTC0tMW9mNSxcbiAgLnItbWluTC0tMm9mMTAge1xuICAgIHdpZHRoOiAyMCU7XG4gIH1cblxuICAuci1taW5MLS0xb2Y0LFxuICAuci1taW5MLS0yb2Y4LFxuICAuci1taW5MLS0zb2YxMiB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuXG4gIC5yLW1pbkwtLTNvZjEwIHtcbiAgICB3aWR0aDogMzAlO1xuICB9XG5cbiAgLnItbWluTC0tMW9mMyxcbiAgLnItbWluTC0tMm9mNixcbiAgLnItbWluTC0tNG9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gMyk7XG4gIH1cblxuICAuci1taW5MLS0zb2Y4IHtcbiAgICB3aWR0aDogMzcuNSU7XG4gIH1cblxuICAuci1taW5MLS0yb2Y1LFxuICAuci1taW5MLS00b2YxMCB7XG4gICAgd2lkdGg6IDQwJTtcbiAgfVxuXG4gIC5yLW1pbkwtLTVvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNSAvIDEyKTtcbiAgfVxuXG4gIC5yLW1pbkwtLTFvZjIsXG4gIC5yLW1pbkwtLTJvZjQsXG4gIC5yLW1pbkwtLTNvZjYsXG4gIC5yLW1pbkwtLTRvZjgsXG4gIC5yLW1pbkwtLTVvZjEwLFxuICAuci1taW5MLS02b2YxMiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuXG4gIC5yLW1pbkwtLTdvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNyAvIDEyKTtcbiAgfVxuXG4gIC5yLW1pbkwtLTNvZjUsXG4gIC5yLW1pbkwtLTZvZjEwIHtcbiAgICB3aWR0aDogNjAlO1xuICB9XG5cbiAgLnItbWluTC0tNW9mOCB7XG4gICAgd2lkdGg6IDYyLjUlO1xuICB9XG5cbiAgLnItbWluTC0tMm9mMyxcbiAgLnItbWluTC0tNG9mNixcbiAgLnItbWluTC0tOG9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAyIC8gMyk7XG4gIH1cblxuICAuci1taW5MLS03b2YxMCB7XG4gICAgd2lkdGg6IDcwJTtcbiAgfVxuXG4gIC5yLW1pbkwtLTNvZjQsXG4gIC5yLW1pbkwtLTZvZjgsXG4gIC5yLW1pbkwtLTlvZjEyIHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG5cbiAgLnItbWluTC0tNG9mNSxcbiAgLnItbWluTC0tOG9mMTAge1xuICAgIHdpZHRoOiA4MCU7XG4gIH1cblxuICAuci1taW5MLS01b2Y2LFxuICAuci1taW5MLS0xMG9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA1IC8gNik7XG4gIH1cblxuICAuci1taW5MLS03b2Y4IHtcbiAgICB3aWR0aDogODcuNSU7XG4gIH1cblxuICAuci1taW5MLS05b2YxMCB7XG4gICAgd2lkdGg6IDkwJTtcbiAgfVxuXG4gIC5yLW1pbkwtLTExb2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDExIC8gMTIpO1xuICB9XG5cbiAgLnItbWluTC0tMW9mMSxcbiAgLnItbWluTC0tMm9mMixcbiAgLnItbWluTC0tM29mMyxcbiAgLnItbWluTC0tNG9mNCxcbiAgLnItbWluTC0tNW9mNSxcbiAgLnItbWluTC0tNm9mNixcbiAgLnItbWluTC0tOG9mOCxcbiAgLnItbWluTC0tMTBvZjEwLFxuICAuci1taW5MLS0xMm9mMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnItbWluTC0taGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnItbWluTC0tdmlzaWJsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG4iLCJAbWVkaWEgKC0tci1taW5YTCkge1xuXG4gIC5yLW1pblhMLS0xb2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAxMik7XG4gIH1cblxuICAuci1taW5YTC0tMW9mMTAge1xuICAgIHdpZHRoOiAxMCU7XG4gIH1cblxuICAuci1taW5YTC0tMW9mOCB7XG4gICAgd2lkdGg6IDEyLjUlO1xuICB9XG5cbiAgLnItbWluWEwtLTFvZjYsXG4gIC5yLW1pblhMLS0yb2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2KTtcbiAgfVxuXG4gIC5yLW1pblhMLS0xb2Y1LFxuICAuci1taW5YTC0tMm9mMTAge1xuICAgIHdpZHRoOiAyMCU7XG4gIH1cblxuICAuci1taW5YTC0tMW9mNCxcbiAgLnItbWluWEwtLTJvZjgsXG4gIC5yLW1pblhMLS0zb2YxMiB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuXG4gIC5yLW1pblhMLS0zb2YxMCB7XG4gICAgd2lkdGg6IDMwJTtcbiAgfVxuXG4gIC5yLW1pblhMLS0xb2YzLFxuICAuci1taW5YTC0tMm9mNixcbiAgLnItbWluWEwtLTRvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMpO1xuICB9XG5cbiAgLnItbWluWEwtLTNvZjgge1xuICAgIHdpZHRoOiAzNy41JTtcbiAgfVxuXG4gIC5yLW1pblhMLS0yb2Y1LFxuICAuci1taW5YTC0tNG9mMTAge1xuICAgIHdpZHRoOiA0MCU7XG4gIH1cblxuICAuci1taW5YTC0tNW9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA1IC8gMTIpO1xuICB9XG5cbiAgLnItbWluWEwtLTFvZjIsXG4gIC5yLW1pblhMLS0yb2Y0LFxuICAuci1taW5YTC0tM29mNixcbiAgLnItbWluWEwtLTRvZjgsXG4gIC5yLW1pblhMLS01b2YxMCxcbiAgLnItbWluWEwtLTZvZjEyIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG5cbiAgLnItbWluWEwtLTdvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNyAvIDEyKTtcbiAgfVxuXG4gIC5yLW1pblhMLS0zb2Y1LFxuICAuci1taW5YTC0tNm9mMTAge1xuICAgIHdpZHRoOiA2MCU7XG4gIH1cblxuICAuci1taW5YTC0tNW9mOCB7XG4gICAgd2lkdGg6IDYyLjUlO1xuICB9XG5cbiAgLnItbWluWEwtLTJvZjMsXG4gIC5yLW1pblhMLS00b2Y2LFxuICAuci1taW5YTC0tOG9mMTIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAyIC8gMyk7XG4gIH1cblxuICAuci1taW5YTC0tN29mMTAge1xuICAgIHdpZHRoOiA3MCU7XG4gIH1cblxuICAuci1taW5YTC0tM29mNCxcbiAgLnItbWluWEwtLTZvZjgsXG4gIC5yLW1pblhMLS05b2YxMiB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuXG4gIC5yLW1pblhMLS00b2Y1LFxuICAuci1taW5YTC0tOG9mMTAge1xuICAgIHdpZHRoOiA4MCU7XG4gIH1cblxuICAuci1taW5YTC0tNW9mNixcbiAgLnItbWluWEwtLTEwb2YxMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDUgLyA2KTtcbiAgfVxuXG4gIC5yLW1pblhMLS03b2Y4IHtcbiAgICB3aWR0aDogODcuNSU7XG4gIH1cblxuICAuci1taW5YTC0tOW9mMTAge1xuICAgIHdpZHRoOiA5MCU7XG4gIH1cblxuICAuci1taW5YTC0tMTFvZjEyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMTEgLyAxMik7XG4gIH1cblxuICAuci1taW5YTC0tMW9mMSxcbiAgLnItbWluWEwtLTJvZjIsXG4gIC5yLW1pblhMLS0zb2YzLFxuICAuci1taW5YTC0tNG9mNCxcbiAgLnItbWluWEwtLTVvZjUsXG4gIC5yLW1pblhMLS02b2Y2LFxuICAuci1taW5YTC0tOG9mOCxcbiAgLnItbWluWEwtLTEwb2YxMCxcbiAgLnItbWluWEwtLTEyb2YxMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuci1taW5YTC0taGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnItbWluWEwtLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuIl19 */
