@charset "UTF-8";
/*! normalize.css v1.1.0 | MIT License | git.io/normalize */
/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block; }

/**
 * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
 */
audio,
canvas,
video {
  display: inline-block;
  *display: inline;
  *zoom: 1; }

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

/**
 * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
 * Known issue: no IE 6 support.
 */
[hidden] {
  display: none; }

/* ==========================================================================
   Base
   ========================================================================== */
/**
 * 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
 *    `em` units.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-size: 100%;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Address `font-family` inconsistency between `textarea` and other form
 * elements.
 */
html,
button,
input,
select,
textarea {
  font-family: sans-serif; }

/**
 * Address margins handled incorrectly in IE 6/7.
 */
body {
  margin: 0; }

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

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

/* ==========================================================================
   Typography
   ========================================================================== */
/**
 * Address font sizes and margins set differently in IE 6/7.
 * Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
 * and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

h2 {
  font-size: 1.5em;
  margin: 0.83em 0; }

h3 {
  font-size: 1.17em;
  margin: 1em 0; }

h4 {
  font-size: 1em;
  margin: 1.33em 0; }

h5 {
  font-size: 0.83em;
  margin: 1.67em 0; }

h6 {
  font-size: 0.67em;
  margin: 2.33em 0; }

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

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

blockquote {
  margin: 1em 40px; }

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

/**
 * Address differences between Firefox and other browsers.
 * Known issue: no IE 6/7 normalization.
 */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0; }

/**
 * Address styling not present in IE 6/7/8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address margins set differently in IE 6/7.
 */
p,
pre {
  margin: 1em 0; }

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

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

/**
 * Address CSS quotes not supported in IE 6/7.
 */
q {
  quotes: none; }

/**
 * Address `quotes` property not supported in Safari 4.
 */
q:before,
q:after {
  content: '';
  content: none; }

/**
 * 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; }

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

dd {
  margin: 0 0 0 40px; }

/**
 * Address paddings set differently in IE 6/7.
 */
menu,
ol,
ul {
  padding: 0 0 0 40px; }

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

/* ==========================================================================
   Embedded content
   ========================================================================== */
/**
 * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
 * 2. Improve image quality when scaled in IE 7.
 */
img {
  border: 0;
  /* 1 */
  -ms-interpolation-mode: bicubic;
  /* 2 */ }

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

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

/* ==========================================================================
   Forms
   ========================================================================== */
/**
 * Correct margin displayed oddly in IE 6/7.
 */
form {
  margin: 0; }

/**
 * 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 6/7/8/9.
 * 2. Correct text not wrapping in Firefox 3.
 * 3. Correct alignment displayed oddly in IE 6/7.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  white-space: normal;
  /* 2 */
  *margin-left: -7px;
  /* 3 */ }

/**
 * 1. Correct font size not being inherited in all browsers.
 * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
 *    and Chrome.
 * 3. Improve appearance and consistency in all browsers.
 */
button,
input,
select,
textarea {
  font-size: 100%;
  /* 1 */
  margin: 0;
  /* 2 */
  vertical-align: baseline;
  /* 3 */
  *vertical-align: middle;
  /* 3 */ }

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

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

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 * 4. Remove inner spacing in IE 7 without affecting normal text inputs.
 *    Known issue: inner spacing remains in IE 6.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */
  *overflow: visible;
  /* 4 */ }

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

/**
 * 1. Address box sizing set to content-box in IE 8/9.
 * 2. Remove excess padding in IE 8/9.
 * 3. Remove excess padding in IE 7.
 *    Known issue: excess padding remains in IE 6.
 */
input[type="checkbox"],
input[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
  *height: 13px;
  /* 3 */
  *width: 13px;
  /* 3 */ }

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

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

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

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

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

.row {
  max-width: 1200px;
  margin: 0 auto; }
  .row:after {
    clear: both;
    content: "";
    display: table; }
  .row.full-width {
    max-width: none; }
  .row.reverse *[class*="col-"] {
    float: right; }

.col-1 {
  display: block;
  float: left;
  min-height: 1px;
  padding-left: 12px;
  padding-right: 12px;
  width: 8.33333%; }

.push-1 {
  margin-left: 8.33333%; }

.pull-1 {
  margin-left: -8.33333%; }

.col-2 {
  display: block;
  float: left;
  min-height: 1px;
  padding-left: 12px;
  padding-right: 12px;
  width: 16.66667%; }

.push-2 {
  margin-left: 16.66667%; }

.pull-2 {
  margin-left: -16.66667%; }

.col-3 {
  display: block;
  float: left;
  min-height: 1px;
  padding-left: 12px;
  padding-right: 12px;
  width: 25%; }

.push-3 {
  margin-left: 25%; }

.pull-3 {
  margin-left: -25%; }

.col-4 {
  display: block;
  float: left;
  min-height: 1px;
  padding-left: 12px;
  padding-right: 12px;
  width: 33.33333%; }

.push-4 {
  margin-left: 33.33333%; }

.pull-4 {
  margin-left: -33.33333%; }

.col-5 {
  display: block;
  float: left;
  min-height: 1px;
  padding-left: 12px;
  padding-right: 12px;
  width: 41.66667%; }

.push-5 {
  margin-left: 41.66667%; }

.pull-5 {
  margin-left: -41.66667%; }

.col-6 {
  display: block;
  float: left;
  min-height: 1px;
  padding-left: 12px;
  padding-right: 12px;
  width: 50%; }

.push-6 {
  margin-left: 50%; }

.pull-6 {
  margin-left: -50%; }

.col-7 {
  display: block;
  float: left;
  min-height: 1px;
  padding-left: 12px;
  padding-right: 12px;
  width: 58.33333%; }

.push-7 {
  margin-left: 58.33333%; }

.pull-7 {
  margin-left: -58.33333%; }

.col-8 {
  display: block;
  float: left;
  min-height: 1px;
  padding-left: 12px;
  padding-right: 12px;
  width: 66.66667%; }

.push-8 {
  margin-left: 66.66667%; }

.pull-8 {
  margin-left: -66.66667%; }

.col-9 {
  display: block;
  float: left;
  min-height: 1px;
  padding-left: 12px;
  padding-right: 12px;
  width: 75%; }

.push-9 {
  margin-left: 75%; }

.pull-9 {
  margin-left: -75%; }

.col-10 {
  display: block;
  float: left;
  min-height: 1px;
  padding-left: 12px;
  padding-right: 12px;
  width: 83.33333%; }

.push-10 {
  margin-left: 83.33333%; }

.pull-10 {
  margin-left: -83.33333%; }

.col-11 {
  display: block;
  float: left;
  min-height: 1px;
  padding-left: 12px;
  padding-right: 12px;
  width: 91.66667%; }

.push-11 {
  margin-left: 91.66667%; }

.pull-11 {
  margin-left: -91.66667%; }

.col-12 {
  display: block;
  float: left;
  min-height: 1px;
  padding-left: 12px;
  padding-right: 12px;
  width: 100%; }

.push-12 {
  margin-left: 100%; }

.pull-12 {
  margin-left: -100%; }

.alpha {
  padding-left: 0; }

.omega {
  padding-right: 0; }

.no-pad {
  padding-left: 0;
  padding-right: 0; }

@media screen and (max-width: 1200px) {
  .xl-col-1 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 8.33333%; }
  .xl-push-1 {
    margin-left: 8.33333%; }
  .xl-pull-1 {
    margin-left: -8.33333%; }
  .xl-alpha {
    padding-left: 0; }
  .xl-omega {
    padding-right: 0; }
  .xl-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xl-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xl-no-push,
  .xl-no-pull {
    margin-left: 0; }
  .xl-col-2 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 16.66667%; }
  .xl-push-2 {
    margin-left: 16.66667%; }
  .xl-pull-2 {
    margin-left: -16.66667%; }
  .xl-alpha {
    padding-left: 0; }
  .xl-omega {
    padding-right: 0; }
  .xl-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xl-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xl-no-push,
  .xl-no-pull {
    margin-left: 0; }
  .xl-col-3 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 25%; }
  .xl-push-3 {
    margin-left: 25%; }
  .xl-pull-3 {
    margin-left: -25%; }
  .xl-alpha {
    padding-left: 0; }
  .xl-omega {
    padding-right: 0; }
  .xl-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xl-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xl-no-push,
  .xl-no-pull {
    margin-left: 0; }
  .xl-col-4 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 33.33333%; }
  .xl-push-4 {
    margin-left: 33.33333%; }
  .xl-pull-4 {
    margin-left: -33.33333%; }
  .xl-alpha {
    padding-left: 0; }
  .xl-omega {
    padding-right: 0; }
  .xl-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xl-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xl-no-push,
  .xl-no-pull {
    margin-left: 0; }
  .xl-col-5 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 41.66667%; }
  .xl-push-5 {
    margin-left: 41.66667%; }
  .xl-pull-5 {
    margin-left: -41.66667%; }
  .xl-alpha {
    padding-left: 0; }
  .xl-omega {
    padding-right: 0; }
  .xl-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xl-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xl-no-push,
  .xl-no-pull {
    margin-left: 0; }
  .xl-col-6 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 50%; }
  .xl-push-6 {
    margin-left: 50%; }
  .xl-pull-6 {
    margin-left: -50%; }
  .xl-alpha {
    padding-left: 0; }
  .xl-omega {
    padding-right: 0; }
  .xl-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xl-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xl-no-push,
  .xl-no-pull {
    margin-left: 0; }
  .xl-col-7 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 58.33333%; }
  .xl-push-7 {
    margin-left: 58.33333%; }
  .xl-pull-7 {
    margin-left: -58.33333%; }
  .xl-alpha {
    padding-left: 0; }
  .xl-omega {
    padding-right: 0; }
  .xl-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xl-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xl-no-push,
  .xl-no-pull {
    margin-left: 0; }
  .xl-col-8 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 66.66667%; }
  .xl-push-8 {
    margin-left: 66.66667%; }
  .xl-pull-8 {
    margin-left: -66.66667%; }
  .xl-alpha {
    padding-left: 0; }
  .xl-omega {
    padding-right: 0; }
  .xl-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xl-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xl-no-push,
  .xl-no-pull {
    margin-left: 0; }
  .xl-col-9 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 75%; }
  .xl-push-9 {
    margin-left: 75%; }
  .xl-pull-9 {
    margin-left: -75%; }
  .xl-alpha {
    padding-left: 0; }
  .xl-omega {
    padding-right: 0; }
  .xl-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xl-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xl-no-push,
  .xl-no-pull {
    margin-left: 0; }
  .xl-col-10 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 83.33333%; }
  .xl-push-10 {
    margin-left: 83.33333%; }
  .xl-pull-10 {
    margin-left: -83.33333%; }
  .xl-alpha {
    padding-left: 0; }
  .xl-omega {
    padding-right: 0; }
  .xl-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xl-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xl-no-push,
  .xl-no-pull {
    margin-left: 0; }
  .xl-col-11 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 91.66667%; }
  .xl-push-11 {
    margin-left: 91.66667%; }
  .xl-pull-11 {
    margin-left: -91.66667%; }
  .xl-alpha {
    padding-left: 0; }
  .xl-omega {
    padding-right: 0; }
  .xl-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xl-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xl-no-push,
  .xl-no-pull {
    margin-left: 0; }
  .xl-col-12 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 100%; }
  .xl-push-12 {
    margin-left: 100%; }
  .xl-pull-12 {
    margin-left: -100%; }
  .xl-alpha {
    padding-left: 0; }
  .xl-omega {
    padding-right: 0; }
  .xl-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xl-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xl-no-push,
  .xl-no-pull {
    margin-left: 0; } }

@media screen and (max-width: 1000px) {
  .l-col-1 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 8.33333%; }
  .l-push-1 {
    margin-left: 8.33333%; }
  .l-pull-1 {
    margin-left: -8.33333%; }
  .l-alpha {
    padding-left: 0; }
  .l-omega {
    padding-right: 0; }
  .l-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .l-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .l-no-push,
  .l-no-pull {
    margin-left: 0; }
  .l-col-2 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 16.66667%; }
  .l-push-2 {
    margin-left: 16.66667%; }
  .l-pull-2 {
    margin-left: -16.66667%; }
  .l-alpha {
    padding-left: 0; }
  .l-omega {
    padding-right: 0; }
  .l-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .l-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .l-no-push,
  .l-no-pull {
    margin-left: 0; }
  .l-col-3 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 25%; }
  .l-push-3 {
    margin-left: 25%; }
  .l-pull-3 {
    margin-left: -25%; }
  .l-alpha {
    padding-left: 0; }
  .l-omega {
    padding-right: 0; }
  .l-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .l-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .l-no-push,
  .l-no-pull {
    margin-left: 0; }
  .l-col-4 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 33.33333%; }
  .l-push-4 {
    margin-left: 33.33333%; }
  .l-pull-4 {
    margin-left: -33.33333%; }
  .l-alpha {
    padding-left: 0; }
  .l-omega {
    padding-right: 0; }
  .l-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .l-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .l-no-push,
  .l-no-pull {
    margin-left: 0; }
  .l-col-5 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 41.66667%; }
  .l-push-5 {
    margin-left: 41.66667%; }
  .l-pull-5 {
    margin-left: -41.66667%; }
  .l-alpha {
    padding-left: 0; }
  .l-omega {
    padding-right: 0; }
  .l-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .l-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .l-no-push,
  .l-no-pull {
    margin-left: 0; }
  .l-col-6 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 50%; }
  .l-push-6 {
    margin-left: 50%; }
  .l-pull-6 {
    margin-left: -50%; }
  .l-alpha {
    padding-left: 0; }
  .l-omega {
    padding-right: 0; }
  .l-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .l-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .l-no-push,
  .l-no-pull {
    margin-left: 0; }
  .l-col-7 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 58.33333%; }
  .l-push-7 {
    margin-left: 58.33333%; }
  .l-pull-7 {
    margin-left: -58.33333%; }
  .l-alpha {
    padding-left: 0; }
  .l-omega {
    padding-right: 0; }
  .l-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .l-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .l-no-push,
  .l-no-pull {
    margin-left: 0; }
  .l-col-8 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 66.66667%; }
  .l-push-8 {
    margin-left: 66.66667%; }
  .l-pull-8 {
    margin-left: -66.66667%; }
  .l-alpha {
    padding-left: 0; }
  .l-omega {
    padding-right: 0; }
  .l-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .l-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .l-no-push,
  .l-no-pull {
    margin-left: 0; }
  .l-col-9 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 75%; }
  .l-push-9 {
    margin-left: 75%; }
  .l-pull-9 {
    margin-left: -75%; }
  .l-alpha {
    padding-left: 0; }
  .l-omega {
    padding-right: 0; }
  .l-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .l-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .l-no-push,
  .l-no-pull {
    margin-left: 0; }
  .l-col-10 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 83.33333%; }
  .l-push-10 {
    margin-left: 83.33333%; }
  .l-pull-10 {
    margin-left: -83.33333%; }
  .l-alpha {
    padding-left: 0; }
  .l-omega {
    padding-right: 0; }
  .l-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .l-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .l-no-push,
  .l-no-pull {
    margin-left: 0; }
  .l-col-11 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 91.66667%; }
  .l-push-11 {
    margin-left: 91.66667%; }
  .l-pull-11 {
    margin-left: -91.66667%; }
  .l-alpha {
    padding-left: 0; }
  .l-omega {
    padding-right: 0; }
  .l-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .l-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .l-no-push,
  .l-no-pull {
    margin-left: 0; }
  .l-col-12 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 100%; }
  .l-push-12 {
    margin-left: 100%; }
  .l-pull-12 {
    margin-left: -100%; }
  .l-alpha {
    padding-left: 0; }
  .l-omega {
    padding-right: 0; }
  .l-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .l-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .l-no-push,
  .l-no-pull {
    margin-left: 0; } }

@media screen and (max-width: 800px) {
  .m-col-1 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 8.33333%; }
  .m-push-1 {
    margin-left: 8.33333%; }
  .m-pull-1 {
    margin-left: -8.33333%; }
  .m-alpha {
    padding-left: 0; }
  .m-omega {
    padding-right: 0; }
  .m-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .m-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .m-no-push,
  .m-no-pull {
    margin-left: 0; }
  .m-col-2 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 16.66667%; }
  .m-push-2 {
    margin-left: 16.66667%; }
  .m-pull-2 {
    margin-left: -16.66667%; }
  .m-alpha {
    padding-left: 0; }
  .m-omega {
    padding-right: 0; }
  .m-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .m-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .m-no-push,
  .m-no-pull {
    margin-left: 0; }
  .m-col-3 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 25%; }
  .m-push-3 {
    margin-left: 25%; }
  .m-pull-3 {
    margin-left: -25%; }
  .m-alpha {
    padding-left: 0; }
  .m-omega {
    padding-right: 0; }
  .m-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .m-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .m-no-push,
  .m-no-pull {
    margin-left: 0; }
  .m-col-4 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 33.33333%; }
  .m-push-4 {
    margin-left: 33.33333%; }
  .m-pull-4 {
    margin-left: -33.33333%; }
  .m-alpha {
    padding-left: 0; }
  .m-omega {
    padding-right: 0; }
  .m-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .m-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .m-no-push,
  .m-no-pull {
    margin-left: 0; }
  .m-col-5 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 41.66667%; }
  .m-push-5 {
    margin-left: 41.66667%; }
  .m-pull-5 {
    margin-left: -41.66667%; }
  .m-alpha {
    padding-left: 0; }
  .m-omega {
    padding-right: 0; }
  .m-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .m-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .m-no-push,
  .m-no-pull {
    margin-left: 0; }
  .m-col-6 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 50%; }
  .m-push-6 {
    margin-left: 50%; }
  .m-pull-6 {
    margin-left: -50%; }
  .m-alpha {
    padding-left: 0; }
  .m-omega {
    padding-right: 0; }
  .m-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .m-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .m-no-push,
  .m-no-pull {
    margin-left: 0; }
  .m-col-7 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 58.33333%; }
  .m-push-7 {
    margin-left: 58.33333%; }
  .m-pull-7 {
    margin-left: -58.33333%; }
  .m-alpha {
    padding-left: 0; }
  .m-omega {
    padding-right: 0; }
  .m-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .m-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .m-no-push,
  .m-no-pull {
    margin-left: 0; }
  .m-col-8 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 66.66667%; }
  .m-push-8 {
    margin-left: 66.66667%; }
  .m-pull-8 {
    margin-left: -66.66667%; }
  .m-alpha {
    padding-left: 0; }
  .m-omega {
    padding-right: 0; }
  .m-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .m-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .m-no-push,
  .m-no-pull {
    margin-left: 0; }
  .m-col-9 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 75%; }
  .m-push-9 {
    margin-left: 75%; }
  .m-pull-9 {
    margin-left: -75%; }
  .m-alpha {
    padding-left: 0; }
  .m-omega {
    padding-right: 0; }
  .m-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .m-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .m-no-push,
  .m-no-pull {
    margin-left: 0; }
  .m-col-10 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 83.33333%; }
  .m-push-10 {
    margin-left: 83.33333%; }
  .m-pull-10 {
    margin-left: -83.33333%; }
  .m-alpha {
    padding-left: 0; }
  .m-omega {
    padding-right: 0; }
  .m-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .m-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .m-no-push,
  .m-no-pull {
    margin-left: 0; }
  .m-col-11 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 91.66667%; }
  .m-push-11 {
    margin-left: 91.66667%; }
  .m-pull-11 {
    margin-left: -91.66667%; }
  .m-alpha {
    padding-left: 0; }
  .m-omega {
    padding-right: 0; }
  .m-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .m-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .m-no-push,
  .m-no-pull {
    margin-left: 0; }
  .m-col-12 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 100%; }
  .m-push-12 {
    margin-left: 100%; }
  .m-pull-12 {
    margin-left: -100%; }
  .m-alpha {
    padding-left: 0; }
  .m-omega {
    padding-right: 0; }
  .m-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .m-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .m-no-push,
  .m-no-pull {
    margin-left: 0; } }

@media screen and (max-width: 640px) {
  .s-col-1 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 8.33333%; }
  .s-push-1 {
    margin-left: 8.33333%; }
  .s-pull-1 {
    margin-left: -8.33333%; }
  .s-alpha {
    padding-left: 0; }
  .s-omega {
    padding-right: 0; }
  .s-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .s-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .s-no-push,
  .s-no-pull {
    margin-left: 0; }
  .s-col-2 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 16.66667%; }
  .s-push-2 {
    margin-left: 16.66667%; }
  .s-pull-2 {
    margin-left: -16.66667%; }
  .s-alpha {
    padding-left: 0; }
  .s-omega {
    padding-right: 0; }
  .s-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .s-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .s-no-push,
  .s-no-pull {
    margin-left: 0; }
  .s-col-3 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 25%; }
  .s-push-3 {
    margin-left: 25%; }
  .s-pull-3 {
    margin-left: -25%; }
  .s-alpha {
    padding-left: 0; }
  .s-omega {
    padding-right: 0; }
  .s-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .s-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .s-no-push,
  .s-no-pull {
    margin-left: 0; }
  .s-col-4 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 33.33333%; }
  .s-push-4 {
    margin-left: 33.33333%; }
  .s-pull-4 {
    margin-left: -33.33333%; }
  .s-alpha {
    padding-left: 0; }
  .s-omega {
    padding-right: 0; }
  .s-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .s-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .s-no-push,
  .s-no-pull {
    margin-left: 0; }
  .s-col-5 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 41.66667%; }
  .s-push-5 {
    margin-left: 41.66667%; }
  .s-pull-5 {
    margin-left: -41.66667%; }
  .s-alpha {
    padding-left: 0; }
  .s-omega {
    padding-right: 0; }
  .s-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .s-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .s-no-push,
  .s-no-pull {
    margin-left: 0; }
  .s-col-6 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 50%; }
  .s-push-6 {
    margin-left: 50%; }
  .s-pull-6 {
    margin-left: -50%; }
  .s-alpha {
    padding-left: 0; }
  .s-omega {
    padding-right: 0; }
  .s-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .s-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .s-no-push,
  .s-no-pull {
    margin-left: 0; }
  .s-col-7 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 58.33333%; }
  .s-push-7 {
    margin-left: 58.33333%; }
  .s-pull-7 {
    margin-left: -58.33333%; }
  .s-alpha {
    padding-left: 0; }
  .s-omega {
    padding-right: 0; }
  .s-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .s-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .s-no-push,
  .s-no-pull {
    margin-left: 0; }
  .s-col-8 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 66.66667%; }
  .s-push-8 {
    margin-left: 66.66667%; }
  .s-pull-8 {
    margin-left: -66.66667%; }
  .s-alpha {
    padding-left: 0; }
  .s-omega {
    padding-right: 0; }
  .s-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .s-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .s-no-push,
  .s-no-pull {
    margin-left: 0; }
  .s-col-9 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 75%; }
  .s-push-9 {
    margin-left: 75%; }
  .s-pull-9 {
    margin-left: -75%; }
  .s-alpha {
    padding-left: 0; }
  .s-omega {
    padding-right: 0; }
  .s-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .s-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .s-no-push,
  .s-no-pull {
    margin-left: 0; }
  .s-col-10 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 83.33333%; }
  .s-push-10 {
    margin-left: 83.33333%; }
  .s-pull-10 {
    margin-left: -83.33333%; }
  .s-alpha {
    padding-left: 0; }
  .s-omega {
    padding-right: 0; }
  .s-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .s-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .s-no-push,
  .s-no-pull {
    margin-left: 0; }
  .s-col-11 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 91.66667%; }
  .s-push-11 {
    margin-left: 91.66667%; }
  .s-pull-11 {
    margin-left: -91.66667%; }
  .s-alpha {
    padding-left: 0; }
  .s-omega {
    padding-right: 0; }
  .s-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .s-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .s-no-push,
  .s-no-pull {
    margin-left: 0; }
  .s-col-12 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 100%; }
  .s-push-12 {
    margin-left: 100%; }
  .s-pull-12 {
    margin-left: -100%; }
  .s-alpha {
    padding-left: 0; }
  .s-omega {
    padding-right: 0; }
  .s-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .s-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .s-no-push,
  .s-no-pull {
    margin-left: 0; } }

@media screen and (max-width: 480px) {
  .xs-col-1 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 8.33333%; }
  .xs-push-1 {
    margin-left: 8.33333%; }
  .xs-pull-1 {
    margin-left: -8.33333%; }
  .xs-alpha {
    padding-left: 0; }
  .xs-omega {
    padding-right: 0; }
  .xs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xs-no-push,
  .xs-no-pull {
    margin-left: 0; }
  .xs-col-2 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 16.66667%; }
  .xs-push-2 {
    margin-left: 16.66667%; }
  .xs-pull-2 {
    margin-left: -16.66667%; }
  .xs-alpha {
    padding-left: 0; }
  .xs-omega {
    padding-right: 0; }
  .xs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xs-no-push,
  .xs-no-pull {
    margin-left: 0; }
  .xs-col-3 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 25%; }
  .xs-push-3 {
    margin-left: 25%; }
  .xs-pull-3 {
    margin-left: -25%; }
  .xs-alpha {
    padding-left: 0; }
  .xs-omega {
    padding-right: 0; }
  .xs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xs-no-push,
  .xs-no-pull {
    margin-left: 0; }
  .xs-col-4 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 33.33333%; }
  .xs-push-4 {
    margin-left: 33.33333%; }
  .xs-pull-4 {
    margin-left: -33.33333%; }
  .xs-alpha {
    padding-left: 0; }
  .xs-omega {
    padding-right: 0; }
  .xs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xs-no-push,
  .xs-no-pull {
    margin-left: 0; }
  .xs-col-5 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 41.66667%; }
  .xs-push-5 {
    margin-left: 41.66667%; }
  .xs-pull-5 {
    margin-left: -41.66667%; }
  .xs-alpha {
    padding-left: 0; }
  .xs-omega {
    padding-right: 0; }
  .xs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xs-no-push,
  .xs-no-pull {
    margin-left: 0; }
  .xs-col-6 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 50%; }
  .xs-push-6 {
    margin-left: 50%; }
  .xs-pull-6 {
    margin-left: -50%; }
  .xs-alpha {
    padding-left: 0; }
  .xs-omega {
    padding-right: 0; }
  .xs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xs-no-push,
  .xs-no-pull {
    margin-left: 0; }
  .xs-col-7 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 58.33333%; }
  .xs-push-7 {
    margin-left: 58.33333%; }
  .xs-pull-7 {
    margin-left: -58.33333%; }
  .xs-alpha {
    padding-left: 0; }
  .xs-omega {
    padding-right: 0; }
  .xs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xs-no-push,
  .xs-no-pull {
    margin-left: 0; }
  .xs-col-8 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 66.66667%; }
  .xs-push-8 {
    margin-left: 66.66667%; }
  .xs-pull-8 {
    margin-left: -66.66667%; }
  .xs-alpha {
    padding-left: 0; }
  .xs-omega {
    padding-right: 0; }
  .xs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xs-no-push,
  .xs-no-pull {
    margin-left: 0; }
  .xs-col-9 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 75%; }
  .xs-push-9 {
    margin-left: 75%; }
  .xs-pull-9 {
    margin-left: -75%; }
  .xs-alpha {
    padding-left: 0; }
  .xs-omega {
    padding-right: 0; }
  .xs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xs-no-push,
  .xs-no-pull {
    margin-left: 0; }
  .xs-col-10 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 83.33333%; }
  .xs-push-10 {
    margin-left: 83.33333%; }
  .xs-pull-10 {
    margin-left: -83.33333%; }
  .xs-alpha {
    padding-left: 0; }
  .xs-omega {
    padding-right: 0; }
  .xs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xs-no-push,
  .xs-no-pull {
    margin-left: 0; }
  .xs-col-11 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 91.66667%; }
  .xs-push-11 {
    margin-left: 91.66667%; }
  .xs-pull-11 {
    margin-left: -91.66667%; }
  .xs-alpha {
    padding-left: 0; }
  .xs-omega {
    padding-right: 0; }
  .xs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xs-no-push,
  .xs-no-pull {
    margin-left: 0; }
  .xs-col-12 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 100%; }
  .xs-push-12 {
    margin-left: 100%; }
  .xs-pull-12 {
    margin-left: -100%; }
  .xs-alpha {
    padding-left: 0; }
  .xs-omega {
    padding-right: 0; }
  .xs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xs-no-push,
  .xs-no-pull {
    margin-left: 0; } }

@media screen and (max-width: 320px) {
  .xxs-col-1 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 8.33333%; }
  .xxs-push-1 {
    margin-left: 8.33333%; }
  .xxs-pull-1 {
    margin-left: -8.33333%; }
  .xxs-alpha {
    padding-left: 0; }
  .xxs-omega {
    padding-right: 0; }
  .xxs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xxs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xxs-no-push,
  .xxs-no-pull {
    margin-left: 0; }
  .xxs-col-2 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 16.66667%; }
  .xxs-push-2 {
    margin-left: 16.66667%; }
  .xxs-pull-2 {
    margin-left: -16.66667%; }
  .xxs-alpha {
    padding-left: 0; }
  .xxs-omega {
    padding-right: 0; }
  .xxs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xxs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xxs-no-push,
  .xxs-no-pull {
    margin-left: 0; }
  .xxs-col-3 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 25%; }
  .xxs-push-3 {
    margin-left: 25%; }
  .xxs-pull-3 {
    margin-left: -25%; }
  .xxs-alpha {
    padding-left: 0; }
  .xxs-omega {
    padding-right: 0; }
  .xxs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xxs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xxs-no-push,
  .xxs-no-pull {
    margin-left: 0; }
  .xxs-col-4 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 33.33333%; }
  .xxs-push-4 {
    margin-left: 33.33333%; }
  .xxs-pull-4 {
    margin-left: -33.33333%; }
  .xxs-alpha {
    padding-left: 0; }
  .xxs-omega {
    padding-right: 0; }
  .xxs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xxs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xxs-no-push,
  .xxs-no-pull {
    margin-left: 0; }
  .xxs-col-5 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 41.66667%; }
  .xxs-push-5 {
    margin-left: 41.66667%; }
  .xxs-pull-5 {
    margin-left: -41.66667%; }
  .xxs-alpha {
    padding-left: 0; }
  .xxs-omega {
    padding-right: 0; }
  .xxs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xxs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xxs-no-push,
  .xxs-no-pull {
    margin-left: 0; }
  .xxs-col-6 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 50%; }
  .xxs-push-6 {
    margin-left: 50%; }
  .xxs-pull-6 {
    margin-left: -50%; }
  .xxs-alpha {
    padding-left: 0; }
  .xxs-omega {
    padding-right: 0; }
  .xxs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xxs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xxs-no-push,
  .xxs-no-pull {
    margin-left: 0; }
  .xxs-col-7 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 58.33333%; }
  .xxs-push-7 {
    margin-left: 58.33333%; }
  .xxs-pull-7 {
    margin-left: -58.33333%; }
  .xxs-alpha {
    padding-left: 0; }
  .xxs-omega {
    padding-right: 0; }
  .xxs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xxs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xxs-no-push,
  .xxs-no-pull {
    margin-left: 0; }
  .xxs-col-8 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 66.66667%; }
  .xxs-push-8 {
    margin-left: 66.66667%; }
  .xxs-pull-8 {
    margin-left: -66.66667%; }
  .xxs-alpha {
    padding-left: 0; }
  .xxs-omega {
    padding-right: 0; }
  .xxs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xxs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xxs-no-push,
  .xxs-no-pull {
    margin-left: 0; }
  .xxs-col-9 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 75%; }
  .xxs-push-9 {
    margin-left: 75%; }
  .xxs-pull-9 {
    margin-left: -75%; }
  .xxs-alpha {
    padding-left: 0; }
  .xxs-omega {
    padding-right: 0; }
  .xxs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xxs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xxs-no-push,
  .xxs-no-pull {
    margin-left: 0; }
  .xxs-col-10 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 83.33333%; }
  .xxs-push-10 {
    margin-left: 83.33333%; }
  .xxs-pull-10 {
    margin-left: -83.33333%; }
  .xxs-alpha {
    padding-left: 0; }
  .xxs-omega {
    padding-right: 0; }
  .xxs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xxs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xxs-no-push,
  .xxs-no-pull {
    margin-left: 0; }
  .xxs-col-11 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 91.66667%; }
  .xxs-push-11 {
    margin-left: 91.66667%; }
  .xxs-pull-11 {
    margin-left: -91.66667%; }
  .xxs-alpha {
    padding-left: 0; }
  .xxs-omega {
    padding-right: 0; }
  .xxs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xxs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xxs-no-push,
  .xxs-no-pull {
    margin-left: 0; }
  .xxs-col-12 {
    display: block;
    float: left;
    min-height: 1px;
    padding-left: 12px;
    padding-right: 12px;
    width: 100%; }
  .xxs-push-12 {
    margin-left: 100%; }
  .xxs-pull-12 {
    margin-left: -100%; }
  .xxs-alpha {
    padding-left: 0; }
  .xxs-omega {
    padding-right: 0; }
  .xxs-no-pad {
    padding-left: 0;
    padding-right: 0; }
  .xxs-pad {
    padding-left: 12px;
    padding-right: 12px; }
  .xxs-no-push,
  .xxs-no-pull {
    margin-left: 0; } }

.clearfix::after {
  clear: both;
  content: "";
  display: table; }

.clear {
  clear: both; }

.hidden {
  display: none !important;
  visibility: hidden; }

.block {
  display: block; }

.inline-block {
  display: inline-block; }

.float-left {
  float: left; }

.float-right {
  float: right; }

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

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

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

.margin-top-s {
  margin-top: 5px; }

.margin-top {
  margin-top: 10px; }

.margin-top-l {
  margin-top: 15px; }

.margin-top-xl {
  margin-top: 20px; }

.margin-top-xxl {
  margin-top: 35px; }

.margin-right-s {
  margin-right: 5px; }

.margin-right {
  margin-right: 10px; }

.margin-right-l {
  margin-right: 15px; }

.margin-right-xl {
  margin-right: 20px; }

.margin-right-xxl {
  margin-right: 35px; }

.margin-bottom-s {
  margin-bottom: 5px; }

.margin-bottom {
  margin-bottom: 10px; }

.margin-bottom-l {
  margin-bottom: 15px; }

.margin-bottom-xl {
  margin-bottom: 20px; }

.margin-bottom-xxl {
  margin-bottom: 35px; }

.margin-left-s {
  margin-left: 5px; }

.margin-left {
  margin-left: 10px; }

.margin-left-l {
  margin-left: 15px; }

.margin-left-xl {
  margin-left: 20px; }

.margin-left-xxl {
  margin-left: 35px; }

.padding-top-s {
  padding-top: 5px; }

.padding-top {
  padding-top: 10px; }

.padding-top-l {
  padding-top: 15px; }

.padding-top-xl {
  padding-top: 20px; }

.padding-top-xxl {
  padding-top: 25px; }

.padding-right-s {
  padding-right: 5px; }

.padding-right {
  padding-right: 10px; }

.padding-right-l {
  padding-right: 15px; }

.padding-right-xl {
  padding-right: 20px; }

.padding-right-xxl {
  padding-right: 20px; }

.padding-bottom-s {
  padding-bottom: 5px; }

.padding-bottom {
  padding-bottom: 10px; }

.padding-bottom-l {
  padding-bottom: 15px; }

.padding-bottom-xl {
  padding-bottom: 20px; }

.padding-bottom-xxl {
  padding-bottom: 20px; }

.padding-left-s {
  padding-left: 5px; }

.padding-left {
  padding-left: 10px; }

.padding-left-l {
  padding-left: 15px; }

.padding-left-xl {
  padding-left: 20px; }

.padding-left-xxl {
  padding-left: 20px; }

.pixelated {
  -ms-interpolation-mode: nearest-neighbor;
      image-rendering: -webkit-optimize-contrast;
      image-rendering: -moz-crisp-edges;
      image-rendering: -o-pixelated;
      image-rendering: pixelated; }

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

/* Magnific Popup CSS */
.mfp-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  opacity: 0.8; }

.mfp-wrap {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1043;
  position: fixed;
  outline: none !important;
  -webkit-backface-visibility: hidden; }

.mfp-container {
  text-align: center;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 0 8px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

.mfp-container:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.mfp-align-top .mfp-container:before {
  display: none; }

.mfp-content {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin: 0 auto;
  text-align: left;
  z-index: 1045; }

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
  width: 100%;
  cursor: auto; }

.mfp-ajax-cur {
  cursor: progress; }

.mfp-zoom-out-cur,
.mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  cursor: -webkit-zoom-out;
  cursor: zoom-out; }

.mfp-zoom {
  cursor: pointer;
  cursor: -webkit-zoom-in;
  cursor: zoom-in; }

.mfp-auto-cursor .mfp-content {
  cursor: auto; }

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
      user-select: none;
  background-color: transparent; }

.mfp-loading.mfp-figure {
  display: none; }

.mfp-hide {
  display: none !important; }

.mfp-preloader {
  color: #CCC;
  position: absolute;
  top: 50%;
  width: auto;
  text-align: center;
  margin-top: -0.8em;
  left: 8px;
  right: 8px;
  z-index: 1044; }
  .mfp-preloader a {
    color: #CCC; }
    .mfp-preloader a:hover {
      color: #FFF; }

.mfp-s-ready .mfp-preloader {
  display: none; }

.mfp-s-error .mfp-content {
  display: none; }

button.mfp-close,
button.mfp-arrow {
  overflow: visible;
  cursor: pointer;
  border: 0;
  -webkit-appearance: none;
  display: block;
  outline: none;
  padding: 0;
  z-index: 1046;
  -webkit-box-shadow: none;
          box-shadow: none;
  -ms-touch-action: manipulation;
      touch-action: manipulation; }

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

.mfp-close {
  width: 44px;
  height: 44px;
  line-height: 44px;
  position: absolute;
  right: 0;
  top: 0;
  text-decoration: none;
  text-align: center;
  opacity: 0.65;
  padding: 0 0 18px 10px;
  color: #FFF;
  font-style: normal;
  font-size: 28px;
  font-family: Arial, Baskerville, monospace; }
  .mfp-close:hover, .mfp-close:focus {
    opacity: 1; }
  .mfp-close:active {
    top: 1px; }

.mfp-close-btn-in .mfp-close {
  color: #333; }

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
  color: #FFF;
  right: -6px;
  text-align: right;
  padding-right: 6px;
  width: 100%; }

.mfp-counter {
  position: absolute;
  top: 0;
  right: 0;
  color: #CCC;
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap; }

.mfp-arrow {
  position: absolute;
  opacity: 0.65;
  margin: 0;
  top: 50%;
  margin-top: -19px;
  padding: 0;
  width: 22px;
  height: 38px;
  -webkit-tap-highlight-color: transparent; }

.mfp-arrow:active {
  -webkit-transform: scale(0.9);
          transform: scale(0.9); }

.mfp-arrow:hover,
.mfp-arrow:focus {
  opacity: 1; }

.mfp-arrow-left {
  left: 10px;
  background: url("../img/arrow-left-alt-plain.png") top left no-repeat transparent; }

.mfp-arrow-left:after {
  border-right: 17px solid #FFF;
  margin-left: 31px; }

.mfp-arrow-left:before {
  margin-left: 25px;
  border-right: 27px solid #3F3F3F; }

.mfp-arrow-right {
  right: 10px;
  background: url("../img/arrow-right-alt-plain.png") top left no-repeat transparent; }

.mfp-iframe-holder {
  padding-top: 40px;
  padding-bottom: 40px; }
  .mfp-iframe-holder .mfp-content {
    line-height: 0;
    width: 100%;
    max-width: 900px; }
  .mfp-iframe-holder .mfp-close {
    top: -40px; }

.mfp-iframe-scaler {
  width: 100%;
  height: 0;
  overflow: hidden;
  padding-top: 56.25%; }
  .mfp-iframe-scaler iframe {
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
            box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
    background: #000; }

/* Main image in popup */
img.mfp-img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  line-height: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 40px 0 40px;
  margin: 0 auto; }

/* The shadow behind the image */
.mfp-figure {
  line-height: 0; }
  .mfp-figure:after {
    content: '';
    position: absolute;
    left: 0;
    top: 40px;
    bottom: 40px;
    display: block;
    right: 0;
    width: auto;
    height: auto;
    z-index: -1;
    -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
            box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
    background: #444; }
  .mfp-figure small {
    color: #BDBDBD;
    display: block;
    font-size: 12px;
    line-height: 14px; }
  .mfp-figure figure {
    margin: 0; }

.mfp-bottom-bar {
  margin-top: -36px;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  cursor: auto; }

.mfp-title {
  text-align: left;
  line-height: 18px;
  color: #F3F3F3;
  word-wrap: break-word;
  padding-right: 36px; }

.mfp-image-holder .mfp-content {
  max-width: 100%; }

.mfp-gallery .mfp-image-holder .mfp-figure {
  cursor: pointer; }

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
  .mfp-img-mobile .mfp-image-holder {
    padding-left: 0;
    padding-right: 0; }
  .mfp-img-mobile img.mfp-img {
    padding: 0; }
  .mfp-img-mobile .mfp-figure:after {
    top: 0;
    bottom: 0; }
  .mfp-img-mobile .mfp-figure small {
    display: inline;
    margin-left: 5px; }
  .mfp-img-mobile .mfp-bottom-bar {
    background: rgba(0, 0, 0, 0.6);
    bottom: 0;
    margin: 0;
    top: auto;
    padding: 3px 5px;
    position: fixed;
    -webkit-box-sizing: border-box;
            box-sizing: border-box; }
    .mfp-img-mobile .mfp-bottom-bar:empty {
      padding: 0; }
  .mfp-img-mobile .mfp-counter {
    right: 5px;
    top: 3px; }
  .mfp-img-mobile .mfp-close {
    top: 0;
    right: 0;
    width: 35px;
    height: 35px;
    line-height: 35px;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    text-align: center;
    padding: 0; } }

@media all and (max-width: 900px) {
  .mfp-arrow {
    -webkit-transform: scale(0.75);
    transform: scale(0.75); }
  .mfp-arrow-left {
    -webkit-transform-origin: 0;
    transform-origin: 0; }
  .mfp-arrow-right {
    -webkit-transform-origin: 100%;
    transform-origin: 100%; }
  .mfp-container {
    padding-left: 6px;
    padding-right: 6px; } }

.btn, .page-news .news-list .news-list-item .news-list-item-body .read-more {
  display: inline-block;
  color: white;
  vertical-align: middle;
  font-size: 14px;
  height: 32px;
  line-height: 34px;
  border: none;
  background: #49abff;
  text-transform: uppercase;
  text-decoration: none !important;
  font-size: 14px;
  font-family: 'Eczar', serif;
  font-weight: 600;
  -webkit-font-smoothing: antialiased;
  padding: 0 10px;
  border-radius: 3px;
  -webkit-transition: all .18s ease;
  transition: all .18s ease; }
  .btn:hover, .page-news .news-list .news-list-item .news-list-item-body .read-more:hover {
    background: #7cc3ff;
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
    -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.7);
            box-shadow: 0 1px 5px rgba(0, 0, 0, 0.7); }
  .btn.yellow, .page-news .news-list .news-list-item .news-list-item-body .read-more {
    background: #ffb20c;
    color: #553a87; }
    .btn.yellow:hover, .page-news .news-list .news-list-item .news-list-item-body .read-more:hover {
      background: #ffca59; }
    .btn.yellow.border, .page-news .news-list .news-list-item .news-list-item-body .read-more {
      border-color: #ffb20c;
      color: #ffb20c; }
      .btn.yellow.border:hover, .page-news .news-list .news-list-item .news-list-item-body .read-more:hover {
        background: #ffb20c;
        color: #553a87; }
  .btn.s, .page-news .news-list .news-list-item .news-list-item-body .s.read-more {
    height: 24px;
    line-height: 26px;
    font-size: 12px; }
    .btn.s.border, .page-news .news-list .news-list-item .news-list-item-body .s.read-more {
      border-width: 1px;
      line-height: 24px; }
  .btn.l, .page-news .news-list .news-list-item .news-list-item-body .l.read-more {
    height: 50px;
    line-height: 52px;
    font-size: 16px;
    padding-left: 25px;
    padding-right: 25px; }
    .btn.l.border, .page-news .news-list .news-list-item .news-list-item-body .l.read-more {
      line-height: 50px; }
  .btn.border, .page-news .news-list .news-list-item .news-list-item-body .read-more {
    background: transparent;
    border: solid 2px #49abff;
    line-height: 28px;
    color: #49abff; }
    .btn.border:hover, .page-news .news-list .news-list-item .news-list-item-body .read-more:hover {
      background: #49abff;
      color: white;
      text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); }

.header {
  background: -webkit-gradient(linear, left top, left bottom, from(#53478d), to(#393f7c));
  background: linear-gradient(#53478d, #393f7c);
  padding: 0;
  border-bottom: 1px solid #ffb20c;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  -webkit-box-shadow: 0 3px 20px rgba(0, 0, 0, 0.3);
          box-shadow: 0 3px 20px rgba(0, 0, 0, 0.3);
  height: 68px;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }
  .header:after {
    clear: both;
    content: "";
    display: table; }
  .header > .container {
    width: 100%;
    position: relative; }
  .header nav {
    float: left; }
    .header nav .burguer-icon {
      display: none; }
      .header nav .burguer-icon:before {
        content: "☰";
        display: block; }
      @media screen and (max-width: 850px) {
        .header nav .burguer-icon {
          text-shadow: 0 1px 3px black;
          overflow: hidden;
          display: block;
          width: 70px;
          height: 67px;
          line-height: 68px;
          text-align: center;
          font-weight: 900;
          font-size: 28px;
          border-right: solid 1px rgba(255, 255, 255, 0.1); } }
      .header nav .burguer-icon.open {
        background-color: #2e2343; }
    @media screen and (max-width: 850px) {
      .header nav {
        position: relative;
        width: 100%; } }
    .header nav ul {
      list-style: none;
      display: inline-block;
      padding: 0;
      margin: 0; }
      @media screen and (max-width: 850px) {
        .header nav ul {
          display: none;
          position: absolute;
          top: 69px;
          left: 0;
          right: 0;
          background: #2e2343;
          z-index: 1005; }
          .header nav ul.open {
            display: block; } }
      .header nav ul li {
        padding: 0;
        float: left;
        font-size: 20px;
        font-weight: 600;
        display: block; }
        @media screen and (max-width: 850px) {
          .header nav ul li {
            float: none;
            border-bottom: solid 1px black;
            border-top: solid 1px rgba(255, 255, 255, 0.1); } }
      .header nav ul a {
        display: block;
        line-height: 70px;
        padding: 0 13px;
        -webkit-transition: all .15s ease;
        transition: all .15s ease;
        text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7); }
        .header nav ul a:hover {
          color: white; }
        @media screen and (max-width: 850px) {
          .header nav ul a {
            padding-left: 20px; } }
  .header.fixed .logo:before {
    height: 71px;
    width: 200px;
    top: 0; }
  .header.fixed .logo img {
    width: 140px; }

.logo {
  position: absolute;
  top: -5px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  -webkit-transition: all .25s ease;
  transition: all .25s ease; }
  @media screen and (max-width: 620px) {
    .logo {
      width: 150px; } }
  .logo:before {
    content: "";
    display: block;
    position: absolute;
    height: 50px;
    width: 200px;
    background: red;
    top: 21px;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    background: radial-gradient(ellipse farthest-side at 100px 70px, rgba(133, 115, 220, 0.55) 0, rgba(133, 115, 220, 0.55) 65%, rgba(133, 115, 220, 0));
    -webkit-transition: all .25s;
    transition: all .25s; }
  .logo img {
    width: 320px;
    -webkit-transition: all .25s ease;
    transition: all .25s ease;
    position: relative;
    z-index: 1002; }
  .logo:hover {
    top: 0px;
    -webkit-transform: translateX(-50%) scale(1.02);
            transform: translateX(-50%) scale(1.02); }
  .twitch-integration-page .logo:before {
    height: 71px;
    width: 200px;
    top: 0; }
  .twitch-integration-page .logo img {
    width: 140px; }

.social {
  float: right;
  list-style: none;
  display: inline-block;
  padding: 0;
  margin: 0; }
  @media screen and (max-width: 850px) {
    .social {
      position: absolute;
      right: 0;
      top: 0; } }
  .social li {
    padding: 0;
    float: left;
    font-size: 1.1em;
    display: inline-block; }
    .social li.header-store-icon {
      overflow: hidden;
      text-indent: -9999px;
      vertical-align: middle;
      display: none;
      -webkit-transition: all .15s ease;
      transition: all .15s ease; }
      .social li.header-store-icon:hover {
        -webkit-transform: scale(1.3);
                transform: scale(1.3); }
      .social li.header-store-icon:active {
        -webkit-transition: all 0s;
        transition: all 0s;
        -webkit-transform: scale(0.9);
                transform: scale(0.9); }
      @media screen and (max-width: 850px) {
        .social li.header-store-icon {
          display: none !important; } }
      .social li.header-store-icon a:hover {
        -webkit-transform: none !important;
                transform: none !important; }
    @media screen and (max-width: 850px) {
      .social li.social-facebook, .social li.social-tumblr {
        display: none !important; } }
    @media screen and (max-width: 850px) {
      .social li.social-reddit {
        margin-right: 15px; } }
    .social li.header-store-icon-steam a {
      margin-right: 12px;
      width: 92px;
      height: 68px;
      background: url("../img/nav-icon-steam.png") center no-repeat; }
      @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
        .social li.header-store-icon-steam a {
          background: url("../img/nav-icon-steam@2x.png") center no-repeat;
          background-size: 92px 68px; } }
      @media screen and (max-width: 1140px) {
        .social li.header-store-icon-steam a {
          width: 34px;
          background: url("../img/nav-icon-steam-s.png") center no-repeat; } }
  @media screen and (max-width: 1140px) and (-webkit-min-device-pixel-ratio: 2), screen and (max-width: 1140px) and (min-resolution: 192dpi) {
    .social li.header-store-icon-steam a {
      background: url("../img/nav-icon-steam-s@2x.png") center no-repeat;
      background-size: 34px auto; } }
    .social li.header-store-icon-ps4 a {
      margin-right: 12px;
      width: 114px;
      height: 68px;
      background: url("../img/nav-icon-ps4.png") center no-repeat; }
      @media screen and (max-width: 1140px) {
        .social li.header-store-icon-ps4 a {
          width: 37px;
          background: url("../img/nav-icon-ps4-s.png") center no-repeat; } }
  .social a {
    display: block;
    line-height: 67px;
    padding: 0 4px;
    -webkit-transition: all .15s ease;
    transition: all .15s ease;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7); }
    .social a:hover {
      color: white;
      -webkit-transform: scale(1.3) !important;
              transform: scale(1.3) !important; }
    @media screen and (max-width: 850px) {
      .social a {
        padding: 0 1px; } }
  .social img {
    display: inline-block;
    vertical-align: middle; }

.reviews {
  background: rgba(11, 0, 38, 0.6);
  position: relative;
  color: #e7e4d5; }
  .reviews:before {
    content: '';
    height: 28px;
    width: 100%;
    top: -28px;
    left: 0;
    position: absolute;
    background: url("../img/diagonal-pattern-top.png");
    z-index: 1000; }
  .reviews:after {
    content: '';
    height: 38px;
    width: 100%;
    bottom: -38px;
    left: 0;
    position: absolute;
    background: url("../img/diagonal-pattern-bot.png");
    z-index: 1000; }

* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-font-smoothing: antialiased; }

body {
  font-family: 'Eczar', serif;
  background: url("../img/bg.jpg") top center no-repeat #2e2343;
  margin: 0;
  font-size: 16px;
  line-height: 1.3em;
  color: #ccc3de; }

a {
  color: #ffb20c;
  text-decoration: none;
  outline: none !important; }
  a:hover {
    color: lighen(#ffb20c, 20%); }
  a:active {
    color: #e5a10c; }

img {
  max-width: 100%;
  height: auto; }

video {
  max-width: 100%;
  height: auto;
  display: block; }

h1 {
  font-size: 42px; }

h2 {
  font-style: 52px; }

h3 {
  font-style: 32px; }

h4 {
  font-size: px; }

ul {
  padding: 0; }

.heading .heading-title {
  display: inline-block;
  vertical-align: middle;
  font-size: 52px;
  color: #ffb20c;
  -webkit-text-fill-color: #ffb20c;
  -webkit-text-stroke-width: 2px;
  -webkit-text-stroke-color: black; }

.heading .heading-subtitle {
  padding-left: 15px;
  color: #ccc3de;
  font-size: 16px;
  vertical-align: middle; }

.heading a {
  -webkit-transition: all .15s ease;
  transition: all .15s ease; }
  .heading a:hover {
    color: white; }

.section-intro {
  color: #ccc3de;
  font-size: 16px; }
  .section-intro a {
    -webkit-transition: all .15s ease;
    transition: all .15s ease; }
    .section-intro a:hover {
      color: white; }

.container {
  max-width: 1200px;
  margin: 0 auto; }

.join-beta {
  display: block;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50px;
  line-height: 50px;
  text-align: center;
  background: #ffb20c;
  color: #553a87;
  font-weight: bold;
  z-index: 101;
  -webkit-transition: all .2s ease;
  transition: all .2s ease; }
  .join-beta:hover {
    text-decoration: underline;
    background: #ffca59; }

.home-intro {
  padding-top: 195px;
  position: relative;
  margin-bottom: -65px;
  overflow: hidden; }
  .home-intro:before {
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    height: 900px;
    top: 0;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(40%, rgba(46, 35, 67, 0.8)), color-stop(80%, rgba(46, 35, 67, 0.6)), to(rgba(46, 35, 67, 0)));
    background: linear-gradient(-180deg, rgba(46, 35, 67, 0.8) 40%, rgba(46, 35, 67, 0.6) 80%, rgba(46, 35, 67, 0));
    z-index: -1; }

.trailer-container {
  position: relative; }
  .trailer-container video {
    max-width: 100%;
    height: auto; }
  .trailer-container iframe {
    -webkit-box-shadow: 0 10px 60px rgba(0, 0, 0, 0.95);
            box-shadow: 0 10px 60px rgba(0, 0, 0, 0.95);
    max-width: 100%;
    margin: 0;
    padding: 0; }

.pitch-phrase {
  color: #ffb20c;
  font-family: 'Eczar', serif;
  font-weight: 800;
  -webkit-font-smoothing: antialiased;
  font-size: 36px;
  line-height: 1.2em;
  display: block;
  padding: 20px 60px;
  position: relative;
  background: radial-gradient(ellipse closest-side at center, rgba(20, 12, 34, 0.75) 0, rgba(20, 12, 34, 0.75) 65%, rgba(20, 12, 34, 0));
  -webkit-text-fill-color: #ffb20c;
  -webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: black;
  text-shadow: 0 2px 5px rgba(0, 0, 0, 0.75); }
  @media screen and (max-width: 640px) {
    .pitch-phrase {
      font-size: 32px;
      line-height: 1em;
      padding: 20px 40px; } }
  @media screen and (max-width: 580px) {
    .pitch-phrase {
      font-size: 26px; } }
  @media screen and (max-width: 480px) {
    .pitch-phrase {
      font-size: 26px; } }
  .pitch-phrase:before, .pitch-phrase:after {
    display: block;
    content: '';
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    width: 63px;
    height: 51px; }
    @media screen and (max-width: 580px) {
      .pitch-phrase:before, .pitch-phrase:after {
        width: 32px;
        height: 25px;
        background-size: 100% !important; } }
  .pitch-phrase:before {
    left: 0;
    background: url("../img/flourish-left.png") top left no-repeat; }
  .pitch-phrase:after {
    right: 0;
    background: url("../img/flourish-right.png") top left no-repeat; }

.get-it-now-title {
  font-size: 22px;
  text-shadow: 0 1px 1px black;
  background: url("../img/get-it-now-dash-line.png") top center no-repeat transparent;
  margin-bottom: 12px; }

.coming-soon-title {
  font-size: 22px;
  text-shadow: 0 1px 1px black;
  background: url("../img/get-it-now-dash-line-xl.png") top center no-repeat transparent;
  margin-bottom: 12px;
  height: 36px;
  line-height: 36px; }

.btn-steam-containter {
  text-align: right;
  padding-bottom: 8px; }

.btn-ps4-containter {
  text-align: left;
  padding-bottom: 8px; }

.btn-store {
  display: inline-block;
  border-radius: 4px;
  border: solid 1px black;
  height: 80px;
  width: 220px;
  line-height: 78px;
  text-align: center;
  -webkit-transition: all .15s ease;
  transition: all .15s ease;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }
  .btn-store:hover {
    -webkit-transform: scale(1.08);
            transform: scale(1.08);
    z-index: 500; }
  @media screen and (max-width: 640px) {
    .btn-store {
      width: 140px;
      height: 50px;
      line-height: 46px; }
      .btn-store img {
        max-width: 110px;
        padding-top: 0 !important;
        vertical-align: middle; } }

.btn-store-extra {
  width: 100%;
  max-width: 220px;
  text-align: center;
  display: inline-block;
  padding-top: 5px;
  font-size: 13px;
  font-family: Helvetica, Arial, sans-serif;
  -webkit-transition: all .15s;
  transition: all .15s; }
  .btn-store-extra:hover {
    color: white; }
  @media screen and (max-width: 640px) {
    .btn-store-extra {
      max-width: 140px; } }

.btn-store-steam {
  background: -webkit-gradient(linear, left bottom, left top, from(#171a21), to(#1b2838));
  background: linear-gradient(to top, #171a21, #1b2838); }
  .btn-store-steam img {
    display: inline-block;
    padding-top: 12px; }

.btn-store-ps4 {
  background: -webkit-gradient(linear, left top, left bottom, from(#00569b), to(#001e54));
  background: linear-gradient(#00569b, #001e54);
  border: solid 1px #1f1f47; }
  .btn-store-ps4 img {
    display: inline-block;
    padding-top: 20px; }

.btn-store-note {
  font-size: 14px;
  padding: 0;
  margin: 0;
  text-align: center; }

.image-frame {
  margin: 0 auto;
  display: inline-block; }

.awards {
  margin-top: 55px;
  margin-bottom: 80px; }
  @media screen and (max-width: 480px) {
    .awards {
      margin-top: 25px;
      margin-bottom: 40px; } }

.awards-list {
  margin: 0;
  padding: 0;
  list-style-type: none;
  text-align: center; }
  .awards-list li {
    display: inline-block;
    margin: 0 5px; }
  @media screen and (max-width: 480px) {
    .awards-list img {
      max-width: 140px; } }

.game {
  padding-top: 60px;
  padding-bottom: 60px;
  background-color: #2e2343;
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.2), transparent 30px), linear-gradient(to top, rgba(0, 0, 0, 0.2), transparent 200px), url("../img/divider-game-top.png"), url("../img/strikers-edge-logo-bg.png"), url("../img/game-bg-logo.jpg");
  background-repeat: no-repeat;
  background-position: top center, top, top, center, top 50px center; }
  .game .heading-title {
    text-align: center;
    display: block; }

.game-section {
  margin-bottom: 40px; }
  .game-section h3 {
    font-size: 32px;
    color: #49abff;
    font-weight: 600;
    text-shadow: 0 1px 3px black;
    line-height: 1em; }
  .game-section p {
    color: #ccc3de; }
  .game-section .game-illust {
    position: relative; }
    .game-section .game-illust:after {
      content: "";
      display: block;
      position: absolute;
      height: 4px;
      bottom: -4px;
      left: 18px;
      right: 18px;
      background: black; }
    .game-section .game-illust img {
      display: block; }
  .game-section .game-text {
    padding-top: 85px; }
    @media screen and (max-width: 1000px) {
      .game-section .game-text {
        padding-top: 40px; } }
    @media screen and (max-width: 800px) {
      .game-section .game-text {
        padding-top: 20px; } }
    @media screen and (max-width: 640px) {
      .game-section .game-text {
        padding-top: 0; } }
  .game-section.rtl *[class^="col-"] {
    float: right; }
    @media screen and (max-width: 640px) {
      .game-section.rtl *[class^="col-"] {
        float: left; } }
  .game-section.rtl .game-text {
    text-align: right; }
    @media screen and (max-width: 640px) {
      .game-section.rtl .game-text {
        text-align: left; } }

.game-intro {
  padding-bottom: 25px;
  background-image: url(../img/game-bg-left.jpg), url(../img/game-bg-right.jpg);
  background-position: top left, top right;
  background-repeat: no-repeat;
  background-color: transparent;
  background-size: 300px; }
  @media screen and (max-width: 800px) {
    .game-intro {
      background-size: 200px; } }
  @media screen and (max-width: 640px) {
    .game-intro {
      background-size: 150px; } }
  @media screen and (max-width: 480px) {
    .game-intro {
      background-size: 100px; } }
  .game-intro .game-intro-logo {
    display: block;
    float: left;
    margin-right: 20px; }
  .game-intro h2 {
    color: #ffb20c;
    font-size: 32px;
    font-weight: 600;
    line-height: 1.2em;
    margin-top: 0;
    text-align: center; }
  .game-intro .game-intro-extended {
    text-align: center; }

.twitch {
  background: #4b367c; }
  .twitch h2 {
    text-align: center;
    margin-top: -40px; }
  .twitch h3 {
    color: #ffb20c;
    font-size: 32px;
    text-align: center;
    text-shadow: 0 2px 2px black;
    line-height: 1.2em; }

.twitch-text {
  font-size: 18px;
  line-height: 1.3em; }
  .twitch-text a {
    color: #ffb20c;
    text-decoration: underline; }
  .twitch-text small {
    font-size: 12px; }

@media screen and (max-width: 640px) {
  .twitch-illustration {
    text-align: center; } }

.live-streams {
  padding-top: 20px;
  margin-bottom: -30px; }
  .live-streams .live-stream img {
    -webkit-box-shadow: 0 3px 10px black;
            box-shadow: 0 3px 10px black; }

.twitch-integration-page {
  position: relative;
  background-position: top -400px center; }
  .twitch-integration-page .twitch-integration-page-container {
    padding-top: 68px;
    padding-bottom: 20px;
    border-bottom: solid 2px #231a32;
    background: rgba(46, 35, 67, 0.8); }
  .twitch-integration-page .heading-hero {
    height: 460px;
    background-image: url(../img/twitch-integration-hero-background.jpg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-bottom: solid 1px rgba(255, 255, 255, 0.25); }
  .twitch-integration-page .heading-hero-content {
    position: relative;
    height: 460px;
    margin-bottom: 75px; }
    .twitch-integration-page .heading-hero-content .twitch-face-cam {
      -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5);
              box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5);
      position: absolute;
      left: 0;
      bottom: -40px; }
      .twitch-integration-page .heading-hero-content .twitch-face-cam img {
        display: block; }
    .twitch-integration-page .heading-hero-content .twitch-chat {
      -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5);
              box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5);
      position: absolute;
      right: 0;
      bottom: -40px; }
      .twitch-integration-page .heading-hero-content .twitch-chat img {
        display: block; }
    .twitch-integration-page .heading-hero-content .twitch-integration-logo {
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translateX(-50%) translateY(-50%);
              transform: translateX(-50%) translateY(-50%); }
  .twitch-integration-page .heading .heading-title {
    display: block !important;
    text-align: center !important; }
  .twitch-integration-page .twitch-intro {
    font-size: 20px;
    line-height: 1.35em;
    text-align: center;
    text-shadow: 0 1px 3px black; }
  .twitch-integration-page .twitch-persona {
    text-align: center;
    font-size: 22px;
    text-transform: uppercase; }
  .twitch-integration-page .twitch-persona-selector {
    list-style: none;
    text-align: center;
    position: relative; }
    .twitch-integration-page .twitch-persona-selector .or {
      display: block;
      font-size: 14px;
      text-transform: uppercase;
      position: absolute;
      top: 115px;
      left: 50%;
      -webkit-transform: translateX(-50%);
              transform: translateX(-50%);
      z-index: 1;
      background: #ffb20c;
      border: solid 3px black;
      color: black;
      padding: 2px 6px 0 6px;
      font-weight: 600; }
    .twitch-integration-page .twitch-persona-selector li {
      display: inline-block;
      width: 340px;
      height: 231px;
      font-size: 18px;
      margin-left: 20px;
      margin-right: 20px;
      position: relative;
      -webkit-transform: scale(0.9);
              transform: scale(0.9);
      -webkit-transition: -webkit-transform .2s ease;
      transition: -webkit-transform .2s ease;
      transition: transform .2s ease;
      transition: transform .2s ease, -webkit-transform .2s ease; }
      .twitch-integration-page .twitch-persona-selector li a {
        display: block; }
      .twitch-integration-page .twitch-persona-selector li img {
        visibility: hidden; }
      .twitch-integration-page .twitch-persona-selector li span {
        position: absolute;
        bottom: 43px;
        left: 0;
        right: 0;
        text-transform: uppercase;
        text-shadow: 0 2px 10px black;
        font-weight: 700;
        font-size: 20px;
        -webkit-text-fill-color: #ffb20c;
        -webkit-text-stroke-width: 1px;
        -webkit-text-stroke-color: #2e2343; }
    .twitch-integration-page .twitch-persona-selector .twitch-persona-streamers,
    .twitch-integration-page .twitch-persona-selector .twitch-persona-viewers {
      background-repeat: no-repeat;
      background-position: left; }
      .twitch-integration-page .twitch-persona-selector .twitch-persona-streamers:hover,
      .twitch-integration-page .twitch-persona-selector .twitch-persona-viewers:hover {
        background-position: center;
        -webkit-transform: scale(0.95);
                transform: scale(0.95); }
      .twitch-integration-page .twitch-persona-selector .twitch-persona-streamers.active,
      .twitch-integration-page .twitch-persona-selector .twitch-persona-viewers.active {
        background-position: right;
        -webkit-transform: scale(1.1);
                transform: scale(1.1); }
    .twitch-integration-page .twitch-persona-selector .twitch-persona-streamers {
      background-image: url(../img/twitch-integration-streamers-spritesheet.png); }
    .twitch-integration-page .twitch-persona-selector .twitch-persona-viewers {
      background-image: url(../img/twitch-integration-viewers-spritesheet.png); }
  .twitch-integration-page aside {
    font-size: 18px; }
    .twitch-integration-page aside ul {
      list-style: none;
      font-weight: 600; }
      .twitch-integration-page aside ul li {
        margin-bottom: 5px; }
    .twitch-integration-page aside a {
      -webkit-transition: all .15s;
      transition: all .15s; }
      .twitch-integration-page aside a:hover {
        color: white; }
  .twitch-integration-page h2 {
    color: #49abff;
    font-size: 28px;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.75); }
  .twitch-integration-page h3 {
    font-size: 24px; }
  .twitch-integration-page .for-streamers,
  .twitch-integration-page .for-viewers,
  .twitch-integration-page .game-modifiers,
  .twitch-integration-page .faq,
  .twitch-integration-page .chat-commands,
  .twitch-integration-page .contact {
    padding-top: 56px; }
    .twitch-integration-page .for-streamers h2,
    .twitch-integration-page .for-viewers h2,
    .twitch-integration-page .game-modifiers h2,
    .twitch-integration-page .faq h2,
    .twitch-integration-page .chat-commands h2,
    .twitch-integration-page .contact h2 {
      font-size: 42px;
      text-align: center; }
      .twitch-integration-page .for-streamers h2:before, .twitch-integration-page .for-streamers h2:after,
      .twitch-integration-page .for-viewers h2:before,
      .twitch-integration-page .for-viewers h2:after,
      .twitch-integration-page .game-modifiers h2:before,
      .twitch-integration-page .game-modifiers h2:after,
      .twitch-integration-page .faq h2:before,
      .twitch-integration-page .faq h2:after,
      .twitch-integration-page .chat-commands h2:before,
      .twitch-integration-page .chat-commands h2:after,
      .twitch-integration-page .contact h2:before,
      .twitch-integration-page .contact h2:after {
        content: "";
        display: inline-block;
        height: 5px;
        background: #49abff;
        width: 20px;
        -webkit-box-shadow: 0 2px black;
                box-shadow: 0 2px black;
        margin-bottom: 8px; }
      .twitch-integration-page .for-streamers h2:before,
      .twitch-integration-page .for-viewers h2:before,
      .twitch-integration-page .game-modifiers h2:before,
      .twitch-integration-page .faq h2:before,
      .twitch-integration-page .chat-commands h2:before,
      .twitch-integration-page .contact h2:before {
        margin-right: 15px;
        -webkit-transform: skewX(45deg);
                transform: skewX(45deg); }
      .twitch-integration-page .for-streamers h2:after,
      .twitch-integration-page .for-viewers h2:after,
      .twitch-integration-page .game-modifiers h2:after,
      .twitch-integration-page .faq h2:after,
      .twitch-integration-page .chat-commands h2:after,
      .twitch-integration-page .contact h2:after {
        margin-left: 15px;
        -webkit-transform: skewX(-45deg);
                transform: skewX(-45deg); }
  .twitch-integration-page .for-streamers {
    display: none; }
    .twitch-integration-page .for-streamers ul {
      padding-left: 50px; }
  .twitch-integration-page .for-viewers {
    padding-top: 50px;
    display: none; }
    .twitch-integration-page .for-viewers h2 {
      font-size: 42px;
      text-align: center; }
  .twitch-integration-page .game-modifiers {
    padding-top: 50px; }
    .twitch-integration-page .game-modifiers h2 {
      font-size: 42px;
      text-align: center; }
  .twitch-integration-page .twitch-mod-list {
    list-style-type: none; }
    .twitch-integration-page .twitch-mod-list li {
      text-align: center;
      min-height: 300px; }
      .twitch-integration-page .twitch-mod-list li h3 {
        color: #49abff;
        text-transform: uppercase;
        margin-bottom: 5px; }
      .twitch-integration-page .twitch-mod-list li p {
        margin-top: 0;
        font-size: 14px;
        color: #ccc3de; }
  .twitch-integration-page .faq ul {
    list-style: none; }
  .twitch-integration-page .faq .qa {
    padding-left: 0;
    margin-bottom: 25px; }
    .twitch-integration-page .faq .qa .q {
      margin-bottom: 0;
      color: white; }
    .twitch-integration-page .faq .qa .a {
      margin-top: 3px; }
  .twitch-integration-page .chat-commands ul {
    padding-left: 40px; }
    .twitch-integration-page .chat-commands ul li {
      margin-bottom: 15px; }
    .twitch-integration-page .chat-commands ul b {
      font-size: 18px;
      color: white; }
    .twitch-integration-page .chat-commands ul p {
      margin-top: 0;
      font-size: 13px; }
  .twitch-integration-page .twitch-nav {
    font-size: 16px;
    background: black;
    margin-top: 35px;
    margin-bottom: 50px; }
    .twitch-integration-page .twitch-nav ul {
      list-style: none;
      margin: 0;
      display: block;
      font-weight: 600;
      border: solid 3px #ffb20c; }
      .twitch-integration-page .twitch-nav ul li {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        float: left;
        width: 20%;
        text-align: center; }
        .twitch-integration-page .twitch-nav ul li a {
          display: block;
          line-height: 60px;
          -webkit-transition: all .15s ease;
          transition: all .15s ease; }
          .twitch-integration-page .twitch-nav ul li a:hover {
            background: #ffb20c;
            color: black; }

.arenas {
  background: url("../img/divider-arenas-bottom.png") center bottom no-repeat #2c1d36;
  padding-top: 60px;
  padding-bottom: 70px; }
  .arenas .heading-title {
    margin-bottom: 10px; }
  .arenas .heading-subtitle {
    display: block;
    margin-bottom: 25px;
    padding-left: 0; }
  .arenas .heading-intro {
    font-size: 16px;
    line-height: 1.3em; }
  .arenas .arena-details {
    text-align: center; }
    .arenas .arena-details img {
      display: block;
      margin-bottom: 15px;
      -ms-interpolation-mode: nearest-neighbor;
          image-rendering: -webkit-optimize-contrast;
          image-rendering: -moz-crisp-edges;
          image-rendering: -o-pixelated;
          image-rendering: pixelated;
      width: 100%; }
    .arenas .arena-details p {
      margin: 0;
      font-size: 14px;
      line-height: 1.4em; }
  .arenas .arena-title {
    font-size: 24px;
    color: #49abff;
    margin: 0 0 10px 0;
    padding: 0; }

.arena-list {
  margin: 0;
  padding-left: 54px; }
  @media screen and (max-width: 800px) {
    .arena-list {
      padding-left: 10px;
      padding-top: 25px; } }
  .arena-list ul {
    margin: 0;
    list-style: none; }
  .arena-list li {
    margin-bottom: 8px;
    position: relative; }
    @media screen and (max-width: 800px) {
      .arena-list li {
        width: 24%;
        float: left;
        margin: 0 .5%; } }
    .arena-list li:before {
      content: "";
      display: block;
      position: absolute;
      bottom: -4px;
      height: 4px;
      left: 4px;
      right: 4px;
      background: black; }
    .arena-list li a {
      display: block;
      position: relative;
      -webkit-transition: all .18s ease;
      transition: all .18s ease; }
      .arena-list li a:hover {
        -webkit-transform: scale(1.05);
                transform: scale(1.05); }
    .arena-list li img {
      display: block; }
    .arena-list li .filter {
      position: absolute;
      display: block;
      top: 0;
      bottom: 0;
      right: 0;
      left: 0;
      background: rgba(85, 58, 135, 0.8);
      -webkit-transition: all .2s ease;
      transition: all .2s ease; }
      .arena-list li .filter .title {
        font-size: 18px;
        height: 34px;
        line-height: 34px;
        position: absolute;
        top: 50%;
        -webkit-transform: translateY(-50%);
                transform: translateY(-50%);
        text-align: center;
        width: 100%; }
        @media screen and (max-width: 1000px) {
          .arena-list li .filter .title {
            font-size: 14px; } }
        @media screen and (max-width: 640px) {
          .arena-list li .filter .title {
            font-size: 12px; } }
        @media screen and (max-width: 480px) {
          .arena-list li .filter .title {
            font-size: 10px; } }
        @media screen and (max-width: 440px) {
          .arena-list li .filter .title {
            display: none; } }
        .arena-list li .filter .title span {
          display: inline-block;
          height: 34px;
          line-height: 34px;
          vertical-align: middle;
          background: url("../img/arena-select-flourish.png") center no-repeat; }
    .arena-list li.active .filter {
      background: rgba(255, 178, 12, 0.6); }
      .arena-list li.active .filter .title span {
        color: white;
        background: url("../img/arena-select-flourish-white.png") center no-repeat; }

.media {
  padding-top: 60px;
  padding-bottom: 40px; }
  .media h3 {
    font-size: 20px;
    color: #49abff; }

.media-dl-all {
  margin-top: 35px; }

.image-list {
  list-style: none;
  margin: 0;
  padding: 0; }
  .image-list li {
    margin-bottom: 8px;
    position: relative;
    margin-bottom: 20px; }
    .image-list li a {
      display: block;
      position: relative;
      -webkit-transition: all .18s ease;
      transition: all .18s ease; }
      .image-list li a:hover {
        -webkit-transform: scale(1.1);
                transform: scale(1.1); }
      .image-list li a:before {
        content: "";
        display: block;
        position: absolute;
        bottom: -4px;
        height: 4px;
        left: 4px;
        right: 4px;
        background: black; }
    .image-list li img {
      display: inline-block;
      vertical-align: top;
      max-height: 95px; }
  .image-list.gif-list {
    padding-left: 9px !important; }
    @media screen and (max-width: 800px) {
      .image-list.gif-list {
        padding-left: 0 !important; } }

.news {
  padding-top: 60px;
  padding-bottom: 50px;
  background: url("../img/divider-news-bottom.png") bottom center no-repeat, url("../img/divider-news-top.png") top center no-repeat #32375f; }

.news-list {
  list-style-type: none; }

@media screen and (max-width: 640px) {
  .news-item-preview {
    margin-bottom: 25px; } }

.news-item-preview figure {
  display: block;
  position: relative;
  -webkit-transition: all .2s ease;
  transition: all .2s ease; }
  .news-item-preview figure:hover {
    -webkit-transform: scale(1.05);
            transform: scale(1.05); }
  .news-item-preview figure a {
    display: block; }
  .news-item-preview figure img {
    display: block; }
  .news-item-preview figure:after {
    content: "";
    display: block;
    position: absolute;
    background: black;
    height: 4px;
    left: 4px;
    right: 4px;
    bottom: -4px; }

.news-item-preview .title {
  font-size: 24px;
  font-weight: 600;
  text-shadow: 0 2px 3px black;
  margin-bottom: 4px;
  margin-top: 14px;
  line-height: 1.2em; }
  .news-item-preview .title a {
    -webkit-transition: all .2s ease;
    transition: all .2s ease; }
    .news-item-preview .title a:hover {
      color: white; }

.news-item-preview .date {
  font-size: 14px;
  color: #49abff;
  font-weight: 600;
  display: block;
  position: relative; }
  .news-item-preview .date span {
    background: #32375f;
    display: inline-block;
    position: relative;
    padding-right: 8px; }
  .news-item-preview .date:before {
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    height: 1px;
    background: rgba(204, 195, 222, 0.2);
    top: 11px; }

.news-item-preview .kicker {
  font-size: 14px;
  line-height: 1.35em; }

.newsletter {
  padding: 20px 0 35px 0;
  text-align: center; }
  .page-news .newsletter,
  .twitch-integration-page .newsletter {
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(46, 35, 67, 0.8)), to(#2e2343));
    background: linear-gradient(to bottom, rgba(46, 35, 67, 0.8), #2e2343); }
  .newsletter h2 {
    color: #49abff;
    font-size: 24px;
    margin-bottom: 0;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8); }
  .newsletter p {
    margin-top: 5px;
    font-size: 14px; }
  .newsletter input[type="submit"],
  .newsletter input[type="email"],
  .newsletter input[type="text"] {
    border: none;
    border-radius: 3px;
    height: 44px;
    line-height: 44px;
    margin: 0 2px;
    vertical-align: top;
    font-size: 16px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box; }
  .newsletter input[type="email"],
  .newsletter input[type="text"] {
    background: #ccc3de;
    color: #2e2343;
    padding: 0 8px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 100%;
    font-family: 'Eczar', serif;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -webkit-transition: all .15s ease;
    transition: all .15s ease; }
    .newsletter input[type="email"]:placeholder,
    .newsletter input[type="text"]:placeholder {
      color: blue-darker; }
    .newsletter input[type="email"]:hover, .newsletter input[type="email"]:focus,
    .newsletter input[type="text"]:hover,
    .newsletter input[type="text"]:focus {
      background: white; }
    @media screen and (max-width: 320px) {
      .newsletter input[type="email"],
      .newsletter input[type="text"] {
        margin-bottom: 10px; } }
  .newsletter input[type="submit"] {
    font-size: 16px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    height: 44px;
    background: #49abff;
    color: white;
    text-shadow: 0 1px 1px #32375f;
    font-family: 'Eczar', serif;
    font-weight: 600;
    -webkit-font-smoothing: antialiased;
    text-transform: uppercase;
    padding: 0 10px;
    width: 100%;
    -webkit-transition: all .15s ease;
    transition: all .15s ease; }
    .newsletter input[type="submit"]:hover {
      background: #63b7ff;
      outline: none;
      -webkit-transform: scale(1.05);
              transform: scale(1.05); }
    .newsletter input[type="submit"]:active {
      background: #4590d0;
      outline: none; }
  .newsletter .signup-feedback {
    font-size: 12px; }

#mc_embed_signup {
  background: transparent;
  clear: left;
  font-family: 'Eczar', serif;
  font-weight: normal;
  font-size: 14px; }
  #mc_embed_signup label {
    font-weight: normal; }
  #mc_embed_signup #mc_embed_signup_scroll label {
    font-size: 16px;
    font-family: 'Eczar', serif;
    font-weight: 400;
    -webkit-font-smoothing: antialiased; }
  #mc_embed_signup #mc_embed_signup_scroll input.email {
    border: none;
    border-radius: 3px;
    height: 32px;
    line-height: 32px;
    margin: 0 2px;
    vertical-align: top;
    font-size: 16px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background: #ccc3de;
    color: #2e2343;
    padding: 0 8px;
    box-sizing: border-box;
    font-family: 'Eczar', serif;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -webkit-transition: all .15s ease;
    transition: all .15s ease; }
    #mc_embed_signup #mc_embed_signup_scroll input.email:placeholder {
      color: blue-darker; }
    #mc_embed_signup #mc_embed_signup_scroll input.email:hover, #mc_embed_signup #mc_embed_signup_scroll input.email:focus {
      background: white; }
    @media screen and (max-width: 320px) {
      #mc_embed_signup #mc_embed_signup_scroll input.email {
        margin-bottom: 10px; } }
  #mc_embed_signup input.button {
    border: none;
    border-radius: 3px;
    line-height: 30px;
    margin: 0 2px;
    vertical-align: top;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    font-size: 14px;
    box-sizing: border-box;
    height: 32px;
    background: #49abff;
    color: white;
    text-shadow: 0 1px 1px #32375f;
    font-family: 'Eczar', serif;
    font-weight: 600;
    -webkit-font-smoothing: antialiased;
    text-transform: uppercase;
    padding: 0 10px;
    width: 100%;
    -webkit-transition: all .15s ease;
    transition: all .15s ease; }
    #mc_embed_signup input.button:hover {
      background: #63b7ff;
      outline: none;
      -webkit-transform: scale(1.05);
              transform: scale(1.05); }
    #mc_embed_signup input.button:active {
      background: #4590d0;
      outline: none; }

.strikers {
  background: url("../img/divider-strikers-top.png") center top no-repeat #31345a;
  position: relative; }
  .strikers:before {
    content: "";
    display: block;
    position: absolute;
    height: 20px;
    top: -20px;
    left: 0;
    right: 0;
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(46, 35, 67, 0)), to(#2e2343));
    background: linear-gradient(to bottom, rgba(46, 35, 67, 0), #2e2343);
    z-index: -1; }
  .strikers .heading {
    padding-top: 0; }
    .strikers .heading h2 {
      margin-top: 0px;
      margin-bottom: 20px; }
    .strikers .heading p {
      margin-bottom: 40px; }

.strikers-gallery {
  position: relative; }

.slick-slider {
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text; }

.slick-list.draggable {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.slide {
  padding: 30px 50px 0 50px;
  outline: none !important; }
  @media screen and (max-width: 640px) {
    .slide {
      padding: 25px 40px 0 40px; } }
  .slide .striker-pic {
    text-align: center;
    min-height: 400px;
    position: relative;
    background-position: center top;
    background-repeat: no-repeat;
    background-size: auto; }
    .slide .striker-pic:before {
      content: "";
      display: block;
      position: absolute;
      width: 220px;
      height: 220px;
      background: red;
      top: 30%;
      left: 50%;
      -webkit-transform: translateX(-50%);
              transform: translateX(-50%);
      background: radial-gradient(ellipse closest-side at center, rgba(49, 52, 90, 0.7) 0, rgba(49, 52, 90, 0.7) 65%, rgba(49, 52, 90, 0)); }
    .slide .striker-pic img {
      -ms-interpolation-mode: nearest-neighbor;
          image-rendering: -webkit-optimize-contrast;
          image-rendering: -moz-crisp-edges;
          image-rendering: -o-pixelated;
          image-rendering: pixelated;
      display: inline-block;
      height: auto;
      -webkit-transform: scale(4.5);
              transform: scale(4.5);
      -webkit-transform-origin: top center;
              transform-origin: top center; }
    .slide .striker-pic:after {
      content: "";
      display: block;
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 100px;
      background: -webkit-gradient(linear, left top, left bottom, from(rgba(49, 52, 90, 0)), to(#31345a));
      background: linear-gradient(180deg, rgba(49, 52, 90, 0), #31345a);
      z-index: 2; }
  .slide .striker-class {
    font-size: 20px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    margin: 0 0 15px 0;
    padding: 0; }
    .slide .striker-class img {
      display: inline-block;
      vertical-align: middle; }
  .slide .striker-name {
    font-size: 42px;
    color: #ffb20c;
    -webkit-text-fill-color: #ffb20c;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: black;
    text-shadow: 0 2px 5px black;
    margin: 0;
    padding: 0; }
  .slide .striker-description {
    font-size: 13px;
    color: #a292c3;
    font-weight: 300;
    line-height: 1.4em;
    max-height: 230px;
    display: block;
    position: relative;
    margin-bottom: 20px;
    padding-bottom: 20px;
    overflow: hidden;
    -webkit-transition: all .5s ease;
    transition: all .5s ease; }
    @media screen and (max-width: 640px) {
      .slide .striker-description {
        max-height: 150px; } }
    .slide .striker-description:after {
      content: "";
      display: block;
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 60px;
      background: linear-gradient(to top, #31345a 15px, rgba(49, 52, 90, 0)); }
    .slide .striker-description.expanded {
      max-height: 2000px; }
      .slide .striker-description.expanded:after {
        display: none; }
    .slide .striker-description .striker-read-more {
      display: block;
      position: absolute;
      left: 50%;
      width: 100px;
      text-align: center;
      -webkit-transform: translateX(-50%);
              transform: translateX(-50%);
      border: solid 1px #49abff;
      z-index: 1;
      border-radius: 2px;
      padding: 0 5px;
      color: #49abff;
      bottom: 0; }
      .slide .striker-description .striker-read-more:hover {
        background: #49abff;
        color: #e7e4d5; }
  .slide .striker-style {
    padding: 20px 0;
    font-size: 16px;
    color: #ccc3de; }
  .slide .striker-class-desc b {
    text-shadow: 0 1px 1px black; }
    .slide .striker-class-desc b.atk {
      color: #ee2b16; }
    .slide .striker-class-desc b.def {
      color: #49abff; }
    .slide .striker-class-desc b.utl {
      color: #55b519; }
  .slide .striker-weapon h4,
  .slide .striker-difficulty h4 {
    font-size: 16px;
    color: #49abff;
    font-weight: 700;
    margin: 0;
    padding: 0; }
  .slide .striker-weapon p,
  .slide .striker-difficulty p {
    font-size: 24px;
    margin: 0;
    padding: 0; }
  .slide .striker-difficulty img {
    width: 27px;
    -ms-interpolation-mode: nearest-neighbor;
        image-rendering: -webkit-optimize-contrast;
        image-rendering: -moz-crisp-edges;
        image-rendering: -o-pixelated;
        image-rendering: pixelated;
    display: inline-block; }
  .slide .striker-skills {
    margin-top: 30px;
    margin-bottom: 40px; }
  .slide .striker-skill a {
    display: block;
    position: relative;
    -webkit-transition: all .15s ease;
    transition: all .15s ease; }
    .slide .striker-skill a:hover {
      -webkit-transform: scale(1.1);
              transform: scale(1.1); }
    .slide .striker-skill a:active {
      -webkit-transform: scale(0.9);
              transform: scale(0.9);
      -webkit-transition: all 0s;
      transition: all 0s; }
    .slide .striker-skill a img {
      display: block; }
    .slide .striker-skill a:after {
      content: "";
      display: block;
      height: 4px;
      position: absolute;
      bottom: -4px;
      left: 4px;
      right: 4px;
      background: black; }
  .slide .striker-skill-type {
    padding-top: 10px;
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    text-shadow: 0 1px black; }

.slick-arrow {
  display: block;
  position: absolute;
  top: 50%;
  width: 39px;
  height: 63px;
  border: none;
  z-index: 1;
  overflow: hidden;
  text-indent: -9999px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  outline: none !important;
  -webkit-transition: all .15s ease;
  transition: all .15s ease;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }
  .slick-arrow:hover {
    -webkit-transform: translateY(-50%) scale(1.15);
            transform: translateY(-50%) scale(1.15); }
  .slick-arrow:active {
    -webkit-transition: all 0s;
    transition: all 0s;
    -webkit-transform: translateY(-50%) scale(0.9);
            transform: translateY(-50%) scale(0.9); }

.slick-prev {
  left: 5px;
  background: url("../img/arrow-left-alt.png") top left no-repeat transparent; }
  @media screen and (max-width: 640px) {
    .slick-prev {
      width: 26px;
      height: 42px;
      background-size: 26px auto;
      left: 5px; } }

.slick-next {
  right: 5px;
  background: url("../img/arrow-right-alt.png") top left no-repeat transparent; }
  @media screen and (max-width: 640px) {
    .slick-next {
      width: 26px;
      height: 42px;
      background-size: 26px auto;
      right: 5px; } }

.striker-details {
  position: relative; }

.slick-dots {
  width: 100%;
  font-size: 0;
  text-align: center; }
  .slick-dots li {
    width: 10.75%;
    display: inline-block;
    margin: 0 1%; }
    @media screen and (max-width: 640px) {
      .slick-dots li {
        margin: 0 2px; } }
    @media screen and (max-width: 480px) {
      .slick-dots li {
        width: 22%;
        margin: 0 3px; } }
    .slick-dots li:first-child {
      margin-left: 0; }
    .slick-dots li:last-child {
      margin-right: 0; }
    .slick-dots li a {
      display: block;
      max-width: 120px;
      position: relative;
      text-align: center;
      cursor: pointer;
      -webkit-transition: all .15s ease;
      transition: all .15s ease;
      -webkit-transform-style: preserve-3d;
              transform-style: preserve-3d; }
      .slick-dots li a:before {
        content: '';
        display: block;
        width: 100%;
        height: 100%;
        top: 0;
        left: 50%;
        -webkit-transform: translateX(-50%);
                transform: translateX(-50%);
        background: url("../img/chars/frame-normal.png") no-repeat;
        background-size: cover;
        position: absolute;
        z-index: 10; }
      .slick-dots li a:hover:before, .slick-dots li a:focus:before, .slick-dots li a:active:before {
        background-image: url("../img/chars/frame-hover.png"); }
      .slick-dots li a:hover, .slick-dots li a:focus {
        -webkit-transform: scale(1.15);
                transform: scale(1.15);
        z-index: 1; }
      .slick-dots li a:active {
        -webkit-transition: all 0s;
        transition: all 0s;
        -webkit-transform: scale(0.9);
                transform: scale(0.9); }
    .slick-dots li img {
      display: block;
      margin: 0;
      padding: 0;
      -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
              box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
      -webkit-transition: all .2s ease;
      transition: all .2s ease; }
    .slick-dots li.slick-active a {
      -webkit-transform: scale(1.15);
              transform: scale(1.15); }
      .slick-dots li.slick-active a:before {
        background-image: url("../img/chars/frame-selected.png"); }
    .slick-dots li.slick-active img {
      -webkit-box-shadow: 0 5px 20px rgba(255, 178, 12, 0.2);
              box-shadow: 0 5px 20px rgba(255, 178, 12, 0.2); }

.testimonials .testimonials-top {
  height: 29px;
  background: url("../img/get-it-now-bg-top.png") bottom center no-repeat transparent; }

.testimonials .testimonials-mid {
  background: rgba(11, 0, 38, 0.6);
  padding: 80px 0 25px 0; }

.testimonials .testimonials-bot {
  height: 38px;
  background: url("../img/get-it-now-bg-bot.png") bottom center no-repeat transparent; }

.testimonials .review {
  text-align: center; }
  .testimonials .review blockquote {
    font-weight: 700;
    color: #e7e4d5;
    text-shadow: 0 3px black;
    margin: 0 0 10px 0;
    padding: 0; }
  .testimonials .review p {
    font-size: 26px;
    line-height: 1.3em;
    margin: 0;
    padding: 0;
    font-style: italic;
    margin-bottom: 4px; }
  .testimonials .review b {
    text-shadow: 0 3px black;
    color: #49abff;
    font-size: 28px;
    display: block;
    padding: 5px 0; }
  .testimonials .review cite {
    font-size: 16px;
    color: #ffb20c;
    font-weight: 400;
    font-style: normal; }

.page-news {
  position: relative;
  background-position: top -400px center; }
  .page-news .news-list {
    padding-top: 240px;
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: solid 2px #231a32;
    background: rgba(46, 35, 67, 0.8); }
    .page-news .news-list h1 {
      font-size: 48px;
      text-transform: uppercase;
      color: #ffb20c;
      text-shadow: 0 2px 5px black; }
    .page-news .news-list .news-list-list {
      list-style: none;
      margin: 0;
      padding: 0; }
    .page-news .news-list .news-list-item {
      margin-bottom: 25px; }
      .page-news .news-list .news-list-item figure a {
        display: block;
        position: relative;
        -webkit-transition: all .15s ease;
        transition: all .15s ease; }
        .page-news .news-list .news-list-item figure a:after {
          content: "";
          position: absolute;
          bottom: 1px;
          left: 4px;
          right: 4px;
          height: 4px;
          background: black; }
        .page-news .news-list .news-list-item figure a:hover {
          -webkit-transform: scale(1.08);
                  transform: scale(1.08); }
      .page-news .news-list .news-list-item .news-list-item-body h2 {
        font-size: 24px;
        text-shadow: 0 2px 2px rgba(0, 0, 0, 0.5);
        margin: 7px 0; }
        .page-news .news-list .news-list-item .news-list-item-body h2 a {
          -webkit-transition: all .15s;
          transition: all .15s; }
          .page-news .news-list .news-list-item .news-list-item-body h2 a:hover {
            color: white; }
      .page-news .news-list .news-list-item .news-list-item-body .kicker {
        font-size: 16px;
        margin-bottom: 20px; }
      .page-news .news-list .news-list-item.news-list-item-featured figure {
        float: left;
        width: 40%; }
      .page-news .news-list .news-list-item.news-list-item-featured .news-list-item-body {
        float: left;
        width: 60%;
        padding-left: 15px; }
        .page-news .news-list .news-list-item.news-list-item-featured .news-list-item-body h2 {
          font-size: 32px;
          margin-top: 15px;
          margin-bottom: 20px; }
        .page-news .news-list .news-list-item.news-list-item-featured .news-list-item-body .kicker {
          font-size: 18px; }

.main-footer {
  color: #ccc3de;
  background: url("../img/divider-footer-top.png") center top no-repeat #0a071f;
  padding: 80px 0 25px 0;
  font-size: 16px; }

.footer-cta {
  text-align: center;
  border-bottom: solid 1px #ffb20c;
  padding-bottom: 40px; }

@media screen and (max-width: 640px) {
  .footer-stores > p {
    display: block; } }

.footer-stores .footer-store-item {
  display: inline-block;
  border: solid 1px white;
  border-radius: 3px;
  height: 60px;
  vertical-align: middle;
  padding: 10px 20px;
  margin-left: 7px;
  margin-right: 7px;
  -webkit-transition: all .18s ease;
  transition: all .18s ease; }
  @media screen and (max-width: 1000px) {
    .footer-stores .footer-store-item {
      height: 50px;
      padding: 10px; } }
  @media screen and (max-width: 640px) {
    .footer-stores .footer-store-item {
      margin-left: 5px;
      margin-right: 5px; } }
  .footer-stores .footer-store-item:hover {
    background-color: rgba(255, 178, 12, 0.2) !important;
    -webkit-transform: scale(1.1);
            transform: scale(1.1); }
  .footer-stores .footer-store-item img {
    display: inline;
    max-height: 35px; }
    @media screen and (max-width: 1000px) {
      .footer-stores .footer-store-item img {
        max-height: 25px; } }
  .footer-stores .footer-store-item.footer-store-item-steam {
    background: -webkit-gradient(linear, left top, left bottom, from(#1b2838), to(#171a21));
    background: linear-gradient(top, #1b2838, #171a21); }
  .footer-stores .footer-store-item.footer-store-item-ps4 {
    background: -webkit-gradient(linear, left top, left bottom, from(#00569b), to(#001e54));
    background: linear-gradient(#00569b, #001e54); }

.footer-press {
  font-size: 24px;
  font-weight: 600;
  padding-top: 5px; }
  @media screen and (max-width: 1000px) {
    .footer-press {
      font-size: 16px; } }
  @media screen and (max-width: 640px) {
    .footer-press {
      margin-top: 20px;
      border-top: solid 2px rgba(204, 195, 222, 0.2); } }
  .footer-press a {
    -webkit-transition: all .18s ease;
    transition: all .18s ease; }
    .footer-press a:hover {
      color: white; }
  .footer-press ul {
    list-style: none;
    text-align: center;
    display: block; }
  .footer-press li {
    display: inline-block;
    padding: 0 15px; }
    @media screen and (max-width: 640px) {
      .footer-press li {
        padding: 0 8px; } }

.footer-links {
  padding-top: 30px; }
  .footer-links ul {
    list-style: none;
    vertical-align: middle; }
    .footer-links ul img {
      vertical-align: middle;
      margin-top: -3px; }
  .footer-links .title {
    font-size: 20px;
    font-weight: 600;
    padding-bottom: 5px; }
  .footer-links a {
    -webkit-transition: all .18s ease;
    transition: all .18s ease; }
    .footer-links a:hover {
      color: white; }

.footer-logos {
  text-align: right;
  padding-top: 25px; }
  .footer-logos img {
    -webkit-transition: all .15s ease;
    transition: all .15s ease;
    vertical-align: middle; }
    .footer-logos img:hover {
      -webkit-transform: scale(1.1);
              transform: scale(1.1); }
  @media screen and (max-width: 1000px) {
    .footer-logos {
      text-align: center; } }
  .footer-logos a {
    margin: 0 15px; }
    @media screen and (max-width: 480px) {
      .footer-logos a {
        margin: 0 8px; }
        .footer-logos a img {
          max-height: 34px;
          max-width: 120px; } }

.footer-copyright {
  text-align: right;
  line-height: 1.35em;
  font-size: 12px;
  padding-top: 25px; }
  @media screen and (max-width: 1000px) {
    .footer-copyright {
      text-align: center; } }
  .footer-copyright small {
    font-family: sans-serif;
    color: #553a87;
    font-size: 10px; }
    .footer-copyright small a {
      color: #a38cce; }
      .footer-copyright small a:hover {
        color: #ccc3de; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsInZlbmRvcnMvX25vcm1hbGl6ZS5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24uc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fYXNzaWduLWlucHV0cy5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWlucy1mYWxzeS5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1sZW5ndGguc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbnVtYmVyLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLXNpemUuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3NoYWRlLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RpbnQuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hbmltYXRpb24uc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY2FsYy5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY29sdW1ucy5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmlsdGVyLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mbGV4LWJveC5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mYWNlLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oeXBoZW5zLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2tleWZyYW1lcy5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190ZXh0LWRlY29yYXRpb24uc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLWNvbG9yLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXN0eWxlLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci13aWR0aC5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19idXR0b25zLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19tYXJnaW4uc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wb3NpdGlvbi5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wcmVmaXhlci5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsInZlbmRvcnMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fc2l6ZS5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190ZXh0LWlucHV0cy5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLCJ2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwidmVuZG9ycy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIiwidXRpbHMvX3ZhcmlhYmxlcy5zY3NzIiwidXRpbHMvX21peGlucy5zY3NzIiwiX2dyaWQuc2NzcyIsInV0aWxzL19oZWxwZXJzLnNjc3MiLCJ2ZW5kb3JzL3NsaWNrL3NsaWNrLnNjc3MiLCJ2ZW5kb3JzL21hZ25pZmljLXBvcHVwL19tYWduaWZpYy1wb3B1cC5zY3NzIiwiZWxlbWVudHMvX2J1dHRvbnMuc2NzcyIsImxheW91dC9faGVhZGVyLnNjc3MiLCJsYXlvdXQvX3Jldmlldy5zY3NzIiwibGF5b3V0L19nYW1lLnNjc3MiLCJsYXlvdXQvX3R3aXRjaC5zY3NzIiwibGF5b3V0L19hcmVuYXMuc2NzcyIsImxheW91dC9fbWVkaWEuc2NzcyIsImxheW91dC9fbmV3cy5zY3NzIiwibGF5b3V0L19uZXdzbGV0dGVyLnNjc3MiLCJsYXlvdXQvX3N0cmlrZXJzLnNjc3MiLCJsYXlvdXQvX3Rlc3RpbW9uaWFscy5zY3NzIiwibGF5b3V0L19uZXdzLXBhZ2Uuc2NzcyIsImxheW91dC9fZm9vdGVyLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgJ1VURi04JztcclxuXHJcbi8vIE5vcm1hbGl6ZS5jc3NcclxuQGltcG9ydCAndmVuZG9ycy9ub3JtYWxpemUnO1xyXG5cclxuLy8gMS4gQ29uZmlndXJhdGlvbiBhbmQgaGVscGVyc1xyXG5AaW1wb3J0ICd2ZW5kb3JzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib3VyYm9uJyxcclxuJ3V0aWxzL3ZhcmlhYmxlcycsXHJcbid1dGlscy9taXhpbnMnLFxyXG4nZ3JpZCcsXHJcbid1dGlscy9oZWxwZXJzJyxcclxuJ3ZlbmRvcnMvc2xpY2svc2xpY2snLFxyXG4ndmVuZG9ycy9tYWduaWZpYy1wb3B1cC9tYWduaWZpYy1wb3B1cCc7XHJcblxyXG4vLyAyLiBVSSBFbGVtZW50c1xyXG5AaW1wb3J0ICdlbGVtZW50cy9idXR0b25zJztcclxuXHJcbi8vIDMuIGxheW91dFxyXG5AaW1wb3J0XHJcbidsYXlvdXQvaGVhZGVyJyxcclxuJ2xheW91dC9yZXZpZXcnO1xyXG5cclxuKiB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgZm9udC1mYW1pbHk6ICdFY3phcicsIHNlcmlmO1xyXG4gIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2JnLmpwZycpIHRvcCBjZW50ZXIgbm8tcmVwZWF0ICRzaXRlLWJnO1xyXG4gIG1hcmdpbjogMDtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuM2VtO1xyXG4gIGNvbG9yOiAkcHVycGxlLWxpZ2h0O1xyXG59XHJcblxyXG5hIHtcclxuICBjb2xvcjogJG1haW4tY29sb3I7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBjb2xvcjogbGlnaGVuKHNhdHVyYXRlKCRtYWluLWNvbG9yLCAxMCUpLCAyMCUpO1xyXG4gIH1cclxuICAmOmFjdGl2ZSB7XHJcbiAgICBjb2xvcjogZGFya2VuKGRlc2F0dXJhdGUoJG1haW4tY29sb3IsIDEwJSksIDUlKTtcclxuICB9XHJcbn1cclxuXHJcbmltZyB7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogYXV0bztcclxufVxyXG5cclxudmlkZW8ge1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IGF1dG87XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi8vIEhFQURJTkdTXHJcbmgxe1xyXG4gIGZvbnQtc2l6ZTogNDJweDtcclxufVxyXG5oMiB7XHJcbiAgZm9udC1zdHlsZTogNTJweDtcclxufVxyXG5oMyB7XHJcbiAgZm9udC1zdHlsZTogMzJweDtcclxufVxyXG5oNCB7XHJcbiAgZm9udC1zaXplOiBweDtcclxufVxyXG5cclxudWwge1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcblxyXG4uaGVhZGluZyB7XHJcbiAgLy8gcGFkZGluZy10b3A6IDYwcHg7XHJcblxyXG4gIC5oZWFkaW5nLXRpdGxlIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICBmb250LXNpemU6IDUycHg7XHJcbiAgICBjb2xvcjogJHllbGxvdztcclxuICAgIC8vIEBpbmNsdWRlIHRleHQtc3Ryb2tlKDJweCwgYmxhY2spO1xyXG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICR5ZWxsb3c7XHJcbiAgICAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAycHg7XHJcbiAgICAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiBibGFjaztcclxuICAgIC8vIHRleHQtc3Ryb2tlOiAycHggYmxhY2s7XHJcbiAgICAvLyB0ZXh0LXNoYWRvdzogMCAxcHggM3B4IGJsYWNrO1xyXG4gIH1cclxuICAuaGVhZGluZy1zdWJ0aXRsZSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbiAgICBjb2xvcjogJHB1cnBsZS1saWdodDtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIHRyYW5zaXRpb246IGFsbCAuMTVzIGVhc2U7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnNlY3Rpb24taW50cm8ge1xyXG4gIGNvbG9yOiAkcHVycGxlLWxpZ2h0O1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuXHJcbiAgYSB7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjE1cyBlYXNlO1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5jb250YWluZXIge1xyXG4gIG1heC13aWR0aDogMTIwMHB4O1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4uam9pbi1iZXRhIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiA1MHB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiAkeWVsbG93O1xyXG4gIC8vIGJvcmRlci10b3A6IHNvbGlkIDJweCAkcHVycGxlO1xyXG4gIGNvbG9yOiAkcHVycGxlO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHotaW5kZXg6IDEwMTtcclxuICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKHNhdHVyYXRlKCR5ZWxsb3csIDEwJSksIDE1JSk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgICAgICAgICAgICAgICAgICAgSU5UUk9cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4uaG9tZS1pbnRybyB7XHJcbiAgLy8gaGVpZ2h0OiA4NTBweDtcclxuICAvLyBtYXJnaW4tdG9wOiA2N3B4O1xyXG4gIC8vIHBhZGRpbmctdG9wOiAxMDBweDtcclxuICAvLyBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gIHBhZGRpbmctdG9wOiAxOTVweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luLWJvdHRvbTogLTY1cHg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDkwMHB4O1xyXG4gICAgdG9wOiAwO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC0xODBkZWcsIHJnYmEoJHB1cnBsZS1kYXJrLCAuOCkgNDAlLCByZ2JhKCRwdXJwbGUtZGFyaywgLjYpIDgwJSwgcmdiYSgkcHVycGxlLWRhcmssIDApICk7XHJcbiAgICB6LWluZGV4OiAtMTtcclxuICB9XHJcbn1cclxuXHJcbi50cmFpbGVyLWNvbnRhaW5lciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICB2aWRlbyB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgfVxyXG5cclxuICBpZnJhbWUge1xyXG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDYwcHggYmxhY2soLjk1KTtcclxuICAgIC8vIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcbn1cclxuXHJcbi5waXRjaC1waHJhc2Uge1xyXG4gIGNvbG9yOiAkeWVsbG93O1xyXG4gIEBpbmNsdWRlIGVjemFyKDgwMCk7XHJcbiAgZm9udC1zaXplOiAzNnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwYWRkaW5nOiAyMHB4IDYwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQ6XHJcbiAgICByYWRpYWwtZ3JhZGllbnQoXHJcbiAgICAgIGVsbGlwc2UgY2xvc2VzdC1zaWRlIGF0IGNlbnRlcixcclxuICAgICAgcmdiYSgjMTQwYzIyLCAuNzUpIDAsXHJcbiAgICAgIHJnYmEoIzE0MGMyMiwgLjc1KSA2NSUsXHJcbiAgICAgIHJnYmEoIzE0MGMyMiwgMClcclxuICAgICk7XHJcblxyXG4gIC8vIEBpbmNsdWRlIHRleHQtc3Ryb2tlKDJweCwgYmxhY2spO1xyXG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAkeWVsbG93O1xyXG4gIC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDFweDtcclxuICAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiBibGFjaztcclxuICAvLyB0ZXh0LXN0cm9rZTogMnB4IGJsYWNrO1xyXG4gIHRleHQtc2hhZG93OiAwIDJweCA1cHggYmxhY2soLjc1KTtcclxuXHJcbiAgQGluY2x1ZGUgcyB7XHJcbiAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICBsaW5lLWhlaWdodDogMWVtO1xyXG4gICAgcGFkZGluZzogMjBweCA0MHB4O1xyXG4gIH1cclxuICBAaW5jbHVkZSBiZWxvdyg1ODBweCkge1xyXG4gICAgZm9udC1zaXplOiAyNnB4O1xyXG4gIH1cclxuICBAaW5jbHVkZSB4cyB7XHJcbiAgICBmb250LXNpemU6IDI2cHg7XHJcbiAgfVxyXG5cclxuICAmOmJlZm9yZSxcclxuICAmOmFmdGVyIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgIHdpZHRoOiA2M3B4O1xyXG4gICAgaGVpZ2h0OiA1MXB4O1xyXG5cclxuICAgIEBpbmNsdWRlIGJlbG93KDU4MHB4KSB7XHJcbiAgICAgIHdpZHRoOiAzMnB4O1xyXG4gICAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgbGVmdDogMDtcclxuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2Zsb3VyaXNoLWxlZnQucG5nJykgdG9wIGxlZnQgbm8tcmVwZWF0O1xyXG4gIH1cclxuXHJcbiAgJjphZnRlciB7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2Zsb3VyaXNoLXJpZ2h0LnBuZycpIHRvcCBsZWZ0IG5vLXJlcGVhdDtcclxuICB9XHJcblxyXG59XHJcblxyXG4vLyBHRVQgSVQgTk9XID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLmdldC1pdC1ub3cge1xyXG5cclxufVxyXG5cclxuLmdldC1pdC1ub3ctdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMjJweDtcclxuICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IGJsYWNrO1xyXG4gIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2dldC1pdC1ub3ctZGFzaC1saW5lLnBuZycpIHRvcCBjZW50ZXIgbm8tcmVwZWF0IHRyYW5zcGFyZW50O1xyXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XHJcbn1cclxuXHJcbi5jb21pbmctc29vbi10aXRsZSB7XHJcbiAgZm9udC1zaXplOiAyMnB4O1xyXG4gIHRleHQtc2hhZG93OiAwIDFweCAxcHggYmxhY2s7XHJcbiAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvZ2V0LWl0LW5vdy1kYXNoLWxpbmUteGwucG5nJykgdG9wIGNlbnRlciBuby1yZXBlYXQgdHJhbnNwYXJlbnQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcclxuICBoZWlnaHQ6IDM2cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuXHJcbi5idG4tc3RlYW0tY29udGFpbnRlciB7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgcGFkZGluZy1ib3R0b206IDhweDtcclxuXHJcbiAgLy8gQGluY2x1ZGUgcyB7XHJcbiAgLy8gICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgLy8gICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIC8vIH1cclxufVxyXG4uYnRuLXBzNC1jb250YWludGVyIHtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XHJcblxyXG4gIC8vIEBpbmNsdWRlIHMge1xyXG4gIC8vICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIC8vIH1cclxufVxyXG5cclxuLmJ0bi1zdG9yZSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIC8vIGJhY2tncm91bmQ6IGJsYWNrO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAvLyBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcclxuICBib3JkZXI6IHNvbGlkIDFweCBibGFjaztcclxuICBoZWlnaHQ6IDgwcHg7XHJcbiAgd2lkdGg6IDIyMHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiA3OHB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0cmFuc2l0aW9uOiBhbGwgLjE1cyBlYXNlO1xyXG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KTtcclxuICAgIHotaW5kZXg6IDUwMDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIHMge1xyXG4gICAgd2lkdGg6IDE0MHB4O1xyXG4gICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDQ2cHg7XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgbWF4LXdpZHRoOiAxMTBweDtcclxuICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5idG4tc3RvcmUtZXh0cmEge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogMjIwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxuICB0cmFuc2l0aW9uOiBhbGwgLjE1cztcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgfVxyXG5cclxuXHJcbiAgQGluY2x1ZGUgcyB7XHJcbiAgICBtYXgtd2lkdGg6IDE0MHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmJ0bi1zdG9yZS1zdGVhbSB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzE3MWEyMSwgIzFiMjgzOCk7XHJcbiAgaW1nIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xyXG4gIH1cclxufVxyXG4uYnRuLXN0b3JlLXBzNCB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCBkYXJrZW4oIzAwNzJjZSwgMTAlKSwgZGFya2VuKCMwMDMwODcsIDEwJSkpO1xyXG4gIGJvcmRlcjogc29saWQgMXB4IGRlc2F0dXJhdGUoZGFya2VuKGJsdWUsIDMwJSksIDYwJSk7XHJcblxyXG4gIGltZyB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcclxuICB9XHJcbn1cclxuXHJcbi5idG4tc3RvcmUtbm90ZSB7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmltYWdlLWZyYW1lIHtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgICAgICAgICAgICAgICAgQVdBUkRTXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLmF3YXJkcyB7XHJcbiAgbWFyZ2luLXRvcDogNTVweDtcclxuICBtYXJnaW4tYm90dG9tOiA4MHB4O1xyXG5cclxuICBAaW5jbHVkZSB4cyB7XHJcbiAgICBtYXJnaW4tdG9wOiAyNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICB9XHJcbn1cclxuLmF3YXJkcy1saXN0IHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICBsaSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gIH1cclxuXHJcbiAgaW1nIHtcclxuICAgIEBpbmNsdWRlIHhzIHtcclxuICAgICAgbWF4LXdpZHRoOiAxNDBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBpbXBvcnRcclxuJ2xheW91dC9nYW1lJyxcclxuJ2xheW91dC90d2l0Y2gnLFxyXG4nbGF5b3V0L2FyZW5hcycsXHJcbidsYXlvdXQvbWVkaWEnLFxyXG4nbGF5b3V0L25ld3MnLFxyXG4nbGF5b3V0L25ld3NsZXR0ZXInLFxyXG4nbGF5b3V0L3N0cmlrZXJzJyxcclxuJ2xheW91dC90ZXN0aW1vbmlhbHMnLFxyXG4nbGF5b3V0L25ld3MtcGFnZSc7XHJcblxyXG5cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICAgICAgICAgICAgICAgIEZPT1RFUlxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkBpbXBvcnQgJ2xheW91dC9mb290ZXInO1xyXG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2MS4xLjAgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA2LzcvOC85IGFuZCBGaXJlZm94IDMuXHJcbiAqL1xyXG5cclxuYXJ0aWNsZSxcclxuYXNpZGUsXHJcbmRldGFpbHMsXHJcbmZpZ2NhcHRpb24sXHJcbmZpZ3VyZSxcclxuZm9vdGVyLFxyXG5oZWFkZXIsXHJcbmhncm91cCxcclxubWFpbixcclxubmF2LFxyXG5zZWN0aW9uLFxyXG5zdW1tYXJ5IHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDYvNy84LzkgYW5kIEZpcmVmb3ggMy5cclxuICovXHJcblxyXG5hdWRpbyxcclxuY2FudmFzLFxyXG52aWRlbyB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAqZGlzcGxheTogaW5saW5lO1xyXG4gICAgKnpvb206IDE7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxyXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxyXG4gKi9cclxuXHJcbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDcvOC85LCBGaXJlZm94IDMsIGFuZCBTYWZhcmkgNC5cclxuICogS25vd24gaXNzdWU6IG5vIElFIDYgc3VwcG9ydC5cclxuICovXHJcblxyXG5baGlkZGVuXSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBCYXNlXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0ZXh0IHJlc2l6aW5nIG9kZGx5IGluIElFIDYvNyB3aGVuIGJvZHkgYGZvbnQtc2l6ZWAgaXMgc2V0IHVzaW5nXHJcbiAqICAgIGBlbWAgdW5pdHMuXHJcbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xyXG4gKiAgICB1c2VyIHpvb20uXHJcbiAqL1xyXG5cclxuaHRtbCB7XHJcbiAgICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cclxuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xyXG4gICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgYGZvbnQtZmFtaWx5YCBpbmNvbnNpc3RlbmN5IGJldHdlZW4gYHRleHRhcmVhYCBhbmQgb3RoZXIgZm9ybVxyXG4gKiBlbGVtZW50cy5cclxuICovXHJcblxyXG5odG1sLFxyXG5idXR0b24sXHJcbmlucHV0LFxyXG5zZWxlY3QsXHJcbnRleHRhcmVhIHtcclxuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBtYXJnaW5zIGhhbmRsZWQgaW5jb3JyZWN0bHkgaW4gSUUgNi83LlxyXG4gKi9cclxuXHJcbmJvZHkge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBMaW5rc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgYG91dGxpbmVgIGluY29uc2lzdGVuY3kgYmV0d2VlbiBDaHJvbWUgYW5kIG90aGVyIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbmE6Zm9jdXMge1xyXG4gICAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5hOmFjdGl2ZSxcclxuYTpob3ZlciB7XHJcbiAgICBvdXRsaW5lOiAwO1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBUeXBvZ3JhcGh5XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogQWRkcmVzcyBmb250IHNpemVzIGFuZCBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBJRSA2LzcuXHJcbiAqIEFkZHJlc3MgZm9udCBzaXplcyB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWAgaW4gRmlyZWZveCA0KywgU2FmYXJpIDUsXHJcbiAqIGFuZCBDaHJvbWUuXHJcbiAqL1xyXG5cclxuaDEge1xyXG4gICAgZm9udC1zaXplOiAyZW07XHJcbiAgICBtYXJnaW46IDAuNjdlbSAwO1xyXG59XHJcblxyXG5oMiB7XHJcbiAgICBmb250LXNpemU6IDEuNWVtO1xyXG4gICAgbWFyZ2luOiAwLjgzZW0gMDtcclxufVxyXG5cclxuaDMge1xyXG4gICAgZm9udC1zaXplOiAxLjE3ZW07XHJcbiAgICBtYXJnaW46IDFlbSAwO1xyXG59XHJcblxyXG5oNCB7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIG1hcmdpbjogMS4zM2VtIDA7XHJcbn1cclxuXHJcbmg1IHtcclxuICAgIGZvbnQtc2l6ZTogMC44M2VtO1xyXG4gICAgbWFyZ2luOiAxLjY3ZW0gMDtcclxufVxyXG5cclxuaDYge1xyXG4gICAgZm9udC1zaXplOiAwLjY3ZW07XHJcbiAgICBtYXJnaW46IDIuMzNlbSAwO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDcvOC85LCBTYWZhcmkgNSwgYW5kIENocm9tZS5cclxuICovXHJcblxyXG5hYmJyW3RpdGxlXSB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCAzKywgU2FmYXJpIDQvNSwgYW5kIENocm9tZS5cclxuICovXHJcblxyXG5iLFxyXG5zdHJvbmcge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbmJsb2NrcXVvdGUge1xyXG4gICAgbWFyZ2luOiAxZW0gNDBweDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxyXG4gKi9cclxuXHJcbmRmbiB7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXHJcbiAqIEtub3duIGlzc3VlOiBubyBJRSA2Lzcgbm9ybWFsaXphdGlvbi5cclxuICovXHJcblxyXG5ociB7XHJcbiAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgNi83LzgvOS5cclxuICovXHJcblxyXG5tYXJrIHtcclxuICAgIGJhY2tncm91bmQ6ICNmZjA7XHJcbiAgICBjb2xvcjogIzAwMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gSUUgNi83LlxyXG4gKi9cclxuXHJcbnAsXHJcbnByZSB7XHJcbiAgICBtYXJnaW46IDFlbSAwO1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCBmb250IGZhbWlseSBzZXQgb2RkbHkgaW4gSUUgNiwgU2FmYXJpIDQvNSwgYW5kIENocm9tZS5cclxuICovXHJcblxyXG5jb2RlLFxyXG5rYmQsXHJcbnByZSxcclxuc2FtcCB7XHJcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBzZXJpZjtcclxuICAgIF9mb250LWZhbWlseTogJ2NvdXJpZXIgbmV3JywgbW9ub3NwYWNlO1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIHByZS1mb3JtYXR0ZWQgdGV4dCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxucHJlIHtcclxuICAgIHdoaXRlLXNwYWNlOiBwcmU7XHJcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XHJcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIENTUyBxdW90ZXMgbm90IHN1cHBvcnRlZCBpbiBJRSA2LzcuXHJcbiAqL1xyXG5cclxucSB7XHJcbiAgICBxdW90ZXM6IG5vbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIGBxdW90ZXNgIHByb3BlcnR5IG5vdCBzdXBwb3J0ZWQgaW4gU2FmYXJpIDQuXHJcbiAqL1xyXG5cclxucTpiZWZvcmUsXHJcbnE6YWZ0ZXIge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBjb250ZW50OiBub25lO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuc21hbGwge1xyXG4gICAgZm9udC1zaXplOiA4MCU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuc3ViLFxyXG5zdXAge1xyXG4gICAgZm9udC1zaXplOiA3NSU7XHJcbiAgICBsaW5lLWhlaWdodDogMDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxufVxyXG5cclxuc3VwIHtcclxuICAgIHRvcDogLTAuNWVtO1xyXG59XHJcblxyXG5zdWIge1xyXG4gICAgYm90dG9tOiAtMC4yNWVtO1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBMaXN0c1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gSUUgNi83LlxyXG4gKi9cclxuXHJcbmRsLFxyXG5tZW51LFxyXG5vbCxcclxudWwge1xyXG4gICAgbWFyZ2luOiAxZW0gMDtcclxufVxyXG5cclxuZGQge1xyXG4gICAgbWFyZ2luOiAwIDAgMCA0MHB4O1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBwYWRkaW5ncyBzZXQgZGlmZmVyZW50bHkgaW4gSUUgNi83LlxyXG4gKi9cclxuXHJcbm1lbnUsXHJcbm9sLFxyXG51bCB7XHJcbiAgICBwYWRkaW5nOiAwIDAgMCA0MHB4O1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCBsaXN0IGltYWdlcyBoYW5kbGVkIGluY29ycmVjdGx5IGluIElFIDcuXHJcbiAqL1xyXG5cclxubmF2IHVsLFxyXG5uYXYgb2wge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IG5vbmU7XHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEVtYmVkZGVkIGNvbnRlbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiAxLiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDYvNy84LzkgYW5kIEZpcmVmb3ggMy5cclxuICogMi4gSW1wcm92ZSBpbWFnZSBxdWFsaXR5IHdoZW4gc2NhbGVkIGluIElFIDcuXHJcbiAqL1xyXG5cclxuaW1nIHtcclxuICAgIGJvcmRlcjogMDsgLyogMSAqL1xyXG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYzsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCBvdmVyZmxvdyBkaXNwbGF5ZWQgb2RkbHkgaW4gSUUgOS5cclxuICovXHJcblxyXG5zdmc6bm90KDpyb290KSB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBGaWd1cmVzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgNi83LzgvOSwgU2FmYXJpIDUsIGFuZCBPcGVyYSAxMS5cclxuICovXHJcblxyXG5maWd1cmUge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBGb3Jtc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIENvcnJlY3QgbWFyZ2luIGRpc3BsYXllZCBvZGRseSBpbiBJRSA2LzcuXHJcbiAqL1xyXG5cclxuZm9ybSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXHJcbiAqL1xyXG5cclxuZmllbGRzZXQge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcclxuICAgIG1hcmdpbjogMCAycHg7XHJcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgNi83LzgvOS5cclxuICogMi4gQ29ycmVjdCB0ZXh0IG5vdCB3cmFwcGluZyBpbiBGaXJlZm94IDMuXHJcbiAqIDMuIENvcnJlY3QgYWxpZ25tZW50IGRpc3BsYXllZCBvZGRseSBpbiBJRSA2LzcuXHJcbiAqL1xyXG5cclxubGVnZW5kIHtcclxuICAgIGJvcmRlcjogMDsgLyogMSAqL1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDIgKi9cclxuICAgICptYXJnaW4tbGVmdDogLTdweDsgLyogMyAqL1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCBmb250IHNpemUgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqIDIuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gSUUgNi83LCBGaXJlZm94IDMrLCBTYWZhcmkgNSxcclxuICogICAgYW5kIENocm9tZS5cclxuICogMy4gSW1wcm92ZSBhcHBlYXJhbmNlIGFuZCBjb25zaXN0ZW5jeSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5pbnB1dCxcclxuc2VsZWN0LFxyXG50ZXh0YXJlYSB7XHJcbiAgICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cclxuICAgIG1hcmdpbjogMDsgLyogMiAqL1xyXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAzICovXHJcbiAgICAqdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogMyAqL1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBGaXJlZm94IDMrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxyXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cclxuICovXHJcblxyXG5idXR0b24sXHJcbmlucHV0IHtcclxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXHJcbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXHJcbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gQ2hyb21lLCBTYWZhcmkgNSssIGFuZCBJRSA2Ky5cclxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94IDQrIGFuZCBPcGVyYS5cclxuICovXHJcblxyXG5idXR0b24sXHJcbnNlbGVjdCB7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXHJcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxyXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXHJcbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXHJcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cclxuICogNC4gUmVtb3ZlIGlubmVyIHNwYWNpbmcgaW4gSUUgNyB3aXRob3V0IGFmZmVjdGluZyBub3JtYWwgdGV4dCBpbnB1dHMuXHJcbiAqICAgIEtub3duIGlzc3VlOiBpbm5lciBzcGFjaW5nIHJlbWFpbnMgaW4gSUUgNi5cclxuICovXHJcblxyXG5idXR0b24sXHJcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xyXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXHJcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cclxuICAgIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xyXG4gICAgKm92ZXJmbG93OiB2aXNpYmxlOyAgLyogNCAqL1xyXG59XHJcblxyXG4vKipcclxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cclxuICovXHJcblxyXG5idXR0b25bZGlzYWJsZWRdLFxyXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XHJcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGNvbnRlbnQtYm94IGluIElFIDgvOS5cclxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS5cclxuICogMy4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDcuXHJcbiAqICAgIEtub3duIGlzc3VlOiBleGNlc3MgcGFkZGluZyByZW1haW5zIGluIElFIDYuXHJcbiAqL1xyXG5cclxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxyXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xyXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xyXG4gICAgKmhlaWdodDogMTNweDsgLyogMyAqL1xyXG4gICAgKndpZHRoOiAxM3B4OyAvKiAzICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxyXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcclxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXHJcbiAqL1xyXG5cclxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xyXG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcclxuICAgIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cclxuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcclxuICogb24gT1MgWC5cclxuICovXHJcblxyXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxyXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCAzKy5cclxuICovXHJcblxyXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXHJcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgNi83LzgvOS5cclxuICogMi4gSW1wcm92ZSByZWFkYWJpbGl0eSBhbmQgYWxpZ25tZW50IGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG50ZXh0YXJlYSB7XHJcbiAgICBvdmVyZmxvdzogYXV0bzsgLyogMSAqL1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgLyogMiAqL1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBUYWJsZXNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXHJcbiAqL1xyXG5cclxudGFibGUge1xyXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xyXG59XHJcbiIsIi8vIEJvdXJib24gNC4yLjZcclxuLy8gaHR0cDovL2JvdXJib24uaW9cclxuLy8gQ29weXJpZ2h0IDIwMTEtMjAxNSB0aG91Z2h0Ym90LCBpbmMuXHJcbi8vIE1JVCBMaWNlbnNlXHJcblxyXG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcclxuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XHJcbkBpbXBvcnQgXCJzZXR0aW5ncy9hc3NldC1waXBlbGluZVwiO1xyXG5cclxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnNcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWlucy1mYWxzeVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxpZ2h0XCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbnVtYmVyXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLWVtXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tcmVtXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpcC11bml0c1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RpbnRcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy91bnBhY2tcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XHJcblxyXG5AaW1wb3J0IFwiaGVscGVycy9jb252ZXJ0LXVuaXRzXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbmFsLXZhbHVlc1wiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItcG9zaXRpb25zLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9zaGFwZS1zaXplLXN0cmlwcGVyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcclxuXHJcbkBpbXBvcnQgXCJjc3MzL2FuaW1hdGlvblwiO1xyXG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcclxuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9jYWxjXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcclxuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZsZXgtYm94XCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcclxuQGltcG9ydCBcImNzczMvaGlkcGktbWVkaWEtcXVlcnlcIjtcclxuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcclxuQGltcG9ydCBcImNzczMva2V5ZnJhbWVzXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9wbGFjZWhvbGRlclwiO1xyXG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcclxuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3RleHQtZGVjb3JhdGlvblwiO1xyXG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcclxuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xyXG5AaW1wb3J0IFwiY3NzMy91c2VyLXNlbGVjdFwiO1xyXG5cclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItcmFkaXVzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXN0eWxlXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvYnV0dG9uc1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcclxuQGltcG9ydCBcImFkZG9ucy9mb250LXN0YWNrc1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3BhZGRpbmdcIjtcclxuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcmV0aW5hLWltYWdlXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvdGltaW5nLWZ1bmN0aW9uc1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XHJcblxyXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nXCI7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xyXG5cclxuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XHJcbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXHJcbi8vL1xyXG4vLy8gQHR5cGUgQm9vbFxyXG5cclxuJGFzc2V0LXBpcGVsaW5lOiBmYWxzZSAhZGVmYXVsdDtcclxuIiwiQGZ1bmN0aW9uIGFzc2lnbi1pbnB1dHMoJGlucHV0cywgJHBzZXVkbzogbnVsbCkge1xyXG4gICRsaXN0OiAoKTtcclxuXHJcbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xyXG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XHJcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcclxuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbGlzdDtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3RcclxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWx1ZXNcclxuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICBjb250YWlucygkbGlzdCwgJHZhbHVlKVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2x9XHJcblxyXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcclxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XHJcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XHJcbiAgICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuIHRydWU7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbnMgYSB2YWx1ZS5cclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XHJcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbH1cclxuXHJcbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xyXG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcclxuICAgIEBpZiBub3QgJGl0ZW0ge1xyXG4gICAgICBAcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuIGZhbHNlO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIGxlbmd0aC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXHJcblxyXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXHJcbiAgICAgICBvciBpbmRleChhdXRvIGluaGVyaXQgaW5pdGlhbCAwLCAkdmFsdWUpXHJcbiAgICAgICBvciAodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIgYW5kIG5vdCh1bml0bGVzcygkdmFsdWUpKSkpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cclxuLy8vXHJcbi8vLyBAbGluayBodHRwOi8vcm9ib3RzLnRob3VnaHRib3QuY29tL2Nsb3Nlci1sb29rLWNvbG9yLWxpZ2h0bmVzc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3IgKEhleCl9ICRjb2xvclxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICBpcy1saWdodCgkY29sb3IpXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbH1cclxuXHJcbkBmdW5jdGlvbiBpcy1saWdodCgkaGV4LWNvbG9yKSB7XHJcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcclxuICAkLWxvY2FsLWdyZWVuOiBncmVlbihyZ2JhKCRoZXgtY29sb3IsIDEpKTtcclxuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxKSk7XHJcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xyXG5cclxuICBAcmV0dXJuICQtbG9jYWwtbGlnaHRuZXNzID4gMC42O1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWVcclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXHJcblxyXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gY29udGFpbnMoXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCIgMCAxIDIgMyA0IDUgNiA3IDggOSwgJHZhbHVlKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxyXG5cclxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XHJcbiAgQHJldHVybiBpcy1sZW5ndGgoJHZhbHVlKVxyXG4gICAgICAgICAgb3IgY29udGFpbnMoXCJmaWxsXCIgXCJmaXQtY29udGVudFwiIFwibWluLWNvbnRlbnRcIiBcIm1heC1jb250ZW50XCIsICR2YWx1ZSk7XHJcbn1cclxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXHJcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XHJcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXHJcblxyXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcclxuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xyXG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xyXG4gIH1cclxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XHJcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xyXG4gIH1cclxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XHJcbn1cclxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xyXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcclxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxyXG5cclxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcclxuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xyXG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xyXG4gIH1cclxuXHJcbiAgJGJhc2U6ICRlbS1iYXNlO1xyXG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcclxuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XHJcbiAgfVxyXG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCBibGFjay5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XHJcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjZmZiYjUyLCA2MCUpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0NvbG9yfVxyXG5cclxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpIHtcclxuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gU3RyaXBzIHRoZSB1bml0IGZyb20gYSBudW1iZXIuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgICRkaW1lbnNpb246IDEwO1xyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlciAoVW5pdGxlc3MpfVxyXG5cclxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxyXG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0NvbG9yfVxyXG5cclxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCkge1xyXG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xyXG59XHJcbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcclxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xyXG4gICRuZXctcHJvcHM6ICgpO1xyXG5cclxuICBAZWFjaCAkcHJvcCBpbiAkcHJvcHMge1xyXG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcclxufVxyXG5cclxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcclxuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcclxuICBAaWYgJHZlbmRvciBhbmQgJHByb3AgPT0gdHJhbnNmb3JtIHtcclxuICAgIEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAcmV0dXJuICRwcm9wO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ29udmVydHMgc2hvcnRoYW5kIHRvIHRoZSA0LXZhbHVlIHN5bnRheC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG1hcmdpbjogdW5wYWNrKDFlbSAyZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XHJcbi8vLyAgIH1cclxuXHJcbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xyXG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XHJcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKTtcclxuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcclxuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpO1xyXG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xyXG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuICRzaG9ydGhhbmQ7XHJcbiAgfVxyXG59XHJcbiIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXHJcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcclxuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xyXG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XHJcbiRtaW5vci10aGlyZDogICAgICAxLjI7XHJcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xyXG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XHJcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcclxuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcclxuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcclxuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xyXG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XHJcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcclxuJG9jdGF2ZTogICAgICAgICAgIDI7XHJcbiRtYWpvci10ZW50aDogICAgICAyLjU7XHJcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcclxuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XHJcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xyXG5cclxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcclxuJG1vZHVsYXItc2NhbGUtYmFzZTogZW0oJGVtLWJhc2UpICFkZWZhdWx0O1xyXG5cclxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XHJcbiAgJHYxOiBudGgoJHZhbHVlLCAxKTtcclxuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcclxuICAkdmFsdWU6ICR2MTtcclxuXHJcbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXHJcbiAgQHdoaWxlICR2MiA+ICR2MSB7XHJcbiAgICAkdjI6ICgkdjIgLyAkcmF0aW8pOyAvLyB3aWxsIGJlIG9mZi1ieS0xXHJcbiAgfVxyXG4gIEB3aGlsZSAkdjIgPCAkdjEge1xyXG4gICAgJHYyOiAoJHYyICogJHJhdGlvKTsgLy8gd2lsbCBmaXggb2ZmLWJ5LTFcclxuICB9XHJcblxyXG4gIC8vIGNoZWNrIEFGVEVSIHNjYWxpbmcgJHYyIHRvIHByZXZlbnQgZG91YmxlLWNvdW50aW5nIGNvcm5lci1jYXNlXHJcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xyXG5cclxuICBAaWYgJGluY3JlbWVudCA+IDAge1xyXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcclxuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcclxuICAgICAgICAkdmFsdWU6ICR2MjtcclxuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkdjE6ICgkdjEgKiAkcmF0aW8pO1xyXG4gICAgICAgICR2YWx1ZTogJHYxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJGluY3JlbWVudCA8IDAge1xyXG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxyXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xyXG4gICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xyXG4gICAgfVxyXG5cclxuICAgIEBmb3IgJGkgZnJvbSAkaW5jcmVtZW50IHRocm91Z2ggLTEge1xyXG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xyXG4gICAgICAgICR2YWx1ZTogJHYyO1xyXG4gICAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XHJcbiAgICAgICAgJHZhbHVlOiAkdjE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHZhbHVlO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxyXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XHJcbiAgJHN0cmluZ3M6IFwicHhcIiwgXCJjbVwiLCBcIm1tXCIsIFwiJVwiLCBcImNoXCIsIFwicGljYVwiLCBcImluXCIsIFwiZW1cIiwgXCJyZW1cIiwgXCJwdFwiLCBcInBjXCIsIFwiZXhcIiwgXCJ2d1wiLCBcInZoXCIsIFwidm1pblwiLCBcInZtYXhcIiwgXCJkZWdcIiwgXCJyYWRcIiwgXCJncmFkXCIsIFwidHVyblwiO1xyXG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcclxuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XHJcblxyXG4gIEBpZiBub3QgJGluZGV4IHtcclxuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgIT0gXCJudW1iZXJcIiB7XHJcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcclxuICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBEaXJlY3Rpb25hbC1wcm9wZXJ0eSBtaXhpbnMgYXJlIHNob3J0aGFuZHMgZm9yIHdyaXRpbmcgcHJvcGVydGllcyBsaWtlIHRoZSBmb2xsb3dpbmdcclxuLy8vXHJcbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZG90dGVkIG51bGwpO1xyXG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xyXG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0xpc3R9XHJcblxyXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XHJcbiAgJG91dHB1dDogbnVsbDtcclxuXHJcbiAgJGE6IG50aCgkdmFscywgMSk7XHJcbiAgJGI6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCAyKSk7XHJcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XHJcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcclxuXHJcbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxyXG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cclxuICBAaWYgJGMgPT0gMCB7ICRjOiAwOyB9XHJcbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxyXG5cclxuICBAaWYgJGEgPT0gJGIgYW5kICRhID09ICRjIGFuZCAkYSA9PSAkZCB7ICRvdXRwdXQ6ICRhOyAgICAgICAgICB9XHJcbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxyXG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cclxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjICRkOyB9XHJcblxyXG4gIEByZXR1cm4gJG91dHB1dDtcclxufVxyXG5cclxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcmVcclxuLy8vICAgUHJlZml4IHRvIHVzZVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcclxuLy8vICAgU3VmZml4IHRvIHVzZVxyXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XHJcblxyXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcclxuICAvLyBQcm9wZXJ0eSBOYW1lc1xyXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcblxyXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xyXG5cclxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcclxuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxyXG5cclxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cclxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxyXG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cclxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAjeyRhbGx9OiAkdmFscztcclxuICB9XHJcbn1cclxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2VcclxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxyXG5cclxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xyXG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XHJcbiAgICBAcmV0dXJuIGZvbnQtdXJsO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiB1cmw7XHJcbiAgfVxyXG59XHJcblxyXG5AZnVuY3Rpb24gZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXHJcbiAgJGZvbnQtZmFtaWx5LFxyXG4gICRmaWxlLXBhdGgsXHJcbiAgJGFzc2V0LXBpcGVsaW5lLFxyXG4gICRmaWxlLWZvcm1hdHMsXHJcbiAgJGZvbnQtdXJsKSB7XHJcblxyXG4gICRzcmM6ICgpO1xyXG5cclxuICAkZm9ybWF0cy1tYXA6IChcclxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxyXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxyXG4gICAgd29mZjogIFwiI3skZmlsZS1wYXRofS53b2ZmXCIgZm9ybWF0KFwid29mZlwiKSxcclxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXHJcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcclxuICApO1xyXG5cclxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XHJcbiAgICBAaWYgY29udGFpbnMoJGZpbGUtZm9ybWF0cywgJGtleSkge1xyXG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XHJcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xyXG5cclxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcclxuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHNyYztcclxufVxyXG4iLCJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcclxuICBAaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xyXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxyXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xyXG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXHJcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpXHJcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XHJcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XHJcbiAgfVxyXG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcclxufVxyXG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXHJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcclxuICAkb2Zmc2V0OiBudWxsO1xyXG4gICR1bml0LXNob3J0OiAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAyLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcblxyXG4gIEBpZiAoJHVuaXQtbG9uZyA9PSBcImdyYWRcIikgb3JcclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcclxuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxyXG4gICAgICAgICAgICgkdW5pdC1zaG9ydCA9PSBcInJhZFwiKSB7XHJcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRvZmZzZXQge1xyXG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XHJcblxyXG4gICAgQHJldHVybiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xyXG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xyXG4gICRncmFkaWVudHM6ICgpO1xyXG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xyXG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcclxuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XHJcblxyXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XHJcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcclxuXHJcbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xyXG4gICRoYXMtc2luZ2xlLXBvc2l0aW9uOiB1bnF1b3RlKF9wb3NpdGlvbi1mbGlwcGVyKCRmaXJzdC12YWwpICsgXCJcIik7XHJcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAxKSk7XHJcblxyXG4gIEBpZiAkaGFzLW11bHRpcGxlLXZhbHMge1xyXG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XHJcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XHJcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcclxuICAgICRncmFkaWVudHM6IF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSB7XHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGdyYWRpZW50cztcclxufVxyXG4iLCJAZnVuY3Rpb24gX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpIHtcclxuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xyXG4gICRzcGVjOiBudWxsO1xyXG4gICRkZWdyZWU6IG51bGw7XHJcbiAgJHNpZGU6IG51bGw7XHJcbiAgJGNvcm5lcjogbnVsbDtcclxuICAkbGVuZ3RoOiBsZW5ndGgoJHBvcyk7XHJcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xyXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcclxuICAgIEBpZiBudGgoJHBvcywgMSkgPT0gXCJ0b1wiIHsgLy8gTmV3ZXIgc3ludGF4XHJcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XHJcblxyXG4gICAgICBAaWYgJGxlbmd0aCA9PSAyIHsgLy8gZWcuIHRvIHRvcFxyXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XHJcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcclxuICAgICAgfVxyXG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcclxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxyXG4gICAgICAkc2lkZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDEpKTtcclxuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcclxuICAgIH1cclxuXHJcbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMSB7XHJcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxyXG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XHJcbiAgICAgICRkZWdyZWU6ICRwb3M7XHJcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcclxuICAgICAgJHNwZWM6ICRwb3M7XHJcbiAgICB9XHJcbiAgfVxyXG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcclxuICAkc3BlYzogICB1bnF1b3RlKCRzcGVjICsgXCIsXCIpO1xyXG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcclxufVxyXG5cclxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcclxuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXHJcbiAgICAgICAgIGlmKCRwb3MgPT0gcmlnaHQsIGxlZnQsIG51bGwpXHJcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXHJcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xyXG59XHJcbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XHJcbiAgJHZhbC0xOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGhhcy1tdWx0aXBsZS12YWxzIC0gMSk7XHJcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcbiAgJHZhbC0zOiBudWxsO1xyXG4gICRoYXMtdmFsLTM6IHN0ci1pbmRleCgkdmFsLTIsIFwiIFwiKTtcclxuXHJcbiAgQGlmICRoYXMtdmFsLTMge1xyXG4gICAgJHZhbC0zOiBzdHItc2xpY2UoJHZhbC0yLCAkaGFzLXZhbC0zICsgMSwgc3RyLWxlbmd0aCgkdmFsLTIpKTtcclxuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMSwgJGhhcy12YWwtMyAtIDEpO1xyXG4gIH1cclxuXHJcbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XHJcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XHJcblxyXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XHJcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xyXG4gICAgQHJldHVybiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIEJyaW5nIHRoZSBjb2RlIHVwIHRvIHNwZWNcclxuICBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcclxuICBAZWFjaCAkdmFsdWUgaW4gJGcxLCAkZzIge1xyXG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XHJcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xyXG4gICAgJHNwZWMtYXQtaW5kZXg6IG51bGw7XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxyXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcclxuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgQGlmICRzcGVjLWF0LWluZGV4IHtcclxuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XHJcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XHJcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHNoYXBlLXNpemUgbnRoKCR2YWx1ZSwgJGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2UgaWYgJHNwZWMtYXQtaW5kZXggPT0gMSB7XHJcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xyXG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICRnMTogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcclxuICAgIEBlbHNlIHtcclxuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xyXG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNlbnRlclwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiYm90dG9tXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcclxuXHJcbiAgICAgICAgICAkcG9zOiAkdmFsdWU7XHJcblxyXG4gICAgICAgICAgQGlmICRwb3MgPT0gJGcxIHtcclxuICAgICAgICAgICAgJGcxOiBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGVsc2UgaWZcclxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNpcmNsZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3Qtc2lkZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb3ZlclwiKSB7XHJcblxyXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcclxuXHJcbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XHJcbiAgICAgICAgICAgICRnMTogbnVsbDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJGcyIHtcclxuICAgICAgICAgICAgJGcyOiBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAcmV0dXJuICRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZTtcclxufVxyXG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcclxuICAkc2hhcGUtc2l6ZTogbnRoKCRncmFkaWVudC1wb3MsIDEpO1xyXG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XHJcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xyXG5cclxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXHJcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XHJcbiAgJHBvcy1zcGVjOiBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XHJcblxyXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XHJcblxyXG4gIC8vIEFkZCBjb21tYVxyXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XHJcbiAgICAkc3BlYzogXCIjeyRzcGVjfSxcIjtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHByZS1zcGVjICRzcGVjO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcclxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcclxuICAkZ3JhZGllbnRzOiAoKTtcclxuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcclxuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XHJcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xyXG5cclxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xyXG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XHJcblxyXG4gICRpcy1zcGVjLXN5bnRheDogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiYXRcIik7XHJcblxyXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xyXG4gICAgJGtleXdvcmQ6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaXMtc3BlYy1zeW50YXggLSAyKTtcclxuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xyXG5cclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xyXG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG5cclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xyXG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xyXG5cclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSB7XHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGdyYWRpZW50cztcclxufVxyXG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcclxuXHJcbkBmdW5jdGlvbiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnRzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcjogZmFsc2UpIHtcclxuICAkcHJlLXNwZWM6IG51bGw7XHJcbiAgJHNwZWM6IG51bGw7XHJcbiAgJHZlbmRvci1ncmFkaWVudHM6IG51bGw7XHJcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XHJcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XHJcbiAgICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xyXG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcclxuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xyXG4gICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XHJcbiAgfVxyXG5cclxuICBAaWYgJHZlbmRvciB7XHJcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkdmVuZG9yID09IGZhbHNlIHtcclxuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XHJcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XHJcbiAgfVxyXG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKSB7XHJcbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcclxuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xyXG4gICAgQGlmICgkdmFsdWUgPT0gXCJjb3ZlclwiKSBvciAoJHZhbHVlID09IFwiY29udGFpblwiKSB7XHJcbiAgICAgICR2YWx1ZTogbnVsbDtcclxuICAgIH1cclxuICAgICRzaGFwZS1zaXplLXNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyR2YWx1ZX1cIjtcclxuICB9XHJcbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXHJcbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xyXG4gIC8vIE1hdHJpY2VzXHJcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xyXG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcclxuXHJcbiAgLy8gUmVzdWx0XHJcbiAgJHJlc3VsdDogMDtcclxuICAkZGl2aWRlcjogMDtcclxuICAkbWludXM6IGZhbHNlO1xyXG5cclxuICAvLyBMb29waW5nIHRocm91Z2ggYWxsIGNoYXJhY3RlcnNcclxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xyXG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XHJcbiAgICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcclxuXHJcbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XHJcbiAgICAgICRtaW51czogdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcclxuICAgICAgJGRpdmlkZXI6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAaWYgbm90ICRpbmRleCB7XHJcbiAgICAgICAgJHJlc3VsdDogaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xyXG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcclxuXHJcbiAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcclxuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxyXG4gICAgICAgICRkaXZpZGVyOiAkZGl2aWRlciAqIDEwO1xyXG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xyXG59XHJcbiIsIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxyXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxyXG5cclxuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9ucy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xyXG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XHJcbiAgLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XHJcbiAgLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSgkc3RhdGVzLi4uKSB7XHJcbiAgLy8gcnVubmluZyB8IHBhdXNlZFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSgkbW9kZXMuLi4pIHtcclxuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcclxuLy8gbm90YXRpb24uXHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuXHJcbkBtaXhpbiBiYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kcy4uLikge1xyXG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xyXG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcclxuXHJcbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcclxuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XHJcbiAgICAkc3BlYy1iYWNrZ3JvdW5kOiAoKTtcclxuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xyXG5cclxuICAgIEBpZiAkYmFja2dyb3VuZC10eXBlID09IHN0cmluZyBvciAkYmFja2dyb3VuZC10eXBlID09IGxpc3Qge1xyXG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xyXG5cclxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDMpO1xyXG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgNik7XHJcblxyXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XHJcbiAgICB9XHJcblxyXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xyXG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcclxuICBiYWNrZ3JvdW5kOiAkc3BlYy1iYWNrZ3JvdW5kcztcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXHJcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuXHJcbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcclxuICAkd2Via2l0LWltYWdlczogKCk7XHJcbiAgJHNwZWMtaW1hZ2VzOiAoKTtcclxuXHJcbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xyXG4gICAgJHdlYmtpdC1pbWFnZTogKCk7XHJcbiAgICAkc3BlYy1pbWFnZTogKCk7XHJcblxyXG4gICAgQGlmICh0eXBlLW9mKCRpbWFnZSkgPT0gc3RyaW5nKSB7XHJcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAxLCAzKTtcclxuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDEsIDYpO1xyXG5cclxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xyXG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcclxuICAgICAgICAkc3BlYy1pbWFnZTogICAkaW1hZ2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XHJcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1pbWFnZTogICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcclxuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcclxuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6ICRzcGVjLWltYWdlcztcclxufVxyXG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XHJcbiAgJHdlYmtpdC1ib3JkZXJzOiAoKTtcclxuICAkc3BlYy1ib3JkZXJzOiAoKTtcclxuXHJcbiAgQGVhY2ggJGJvcmRlciBpbiAkYm9yZGVycyB7XHJcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XHJcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xyXG4gICAgJGJvcmRlci10eXBlOiB0eXBlLW9mKCRib3JkZXIpO1xyXG5cclxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xyXG4gICAgICAkYm9yZGVyLXN0cjogaWYoJGJvcmRlci10eXBlID09IGxpc3QsIG50aCgkYm9yZGVyLCAxKSwgJGJvcmRlcik7XHJcblxyXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCAzKTtcclxuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgNik7XHJcblxyXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcclxuICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJHdlYmtpdC1ib3JkZXJzOiBhcHBlbmQoJHdlYmtpdC1ib3JkZXJzLCAkd2Via2l0LWJvcmRlciwgY29tbWEpO1xyXG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcclxuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcclxuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbn1cclxuXHJcbi8vRXhhbXBsZXM6XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHJhZGlhbC1ncmFkaWVudCh0b3AsIGNvdmVyLCBvcmFuZ2UsIHllbGxvdywgb3JhbmdlKSk7XHJcbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XHJcbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcclxuICAjeyRwcm9wZXJ0eX06IGNhbGMoI3skdmFsdWV9KTtcclxufVxyXG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XHJcbiAgLy8gPGNvbHVtbi1jb3VudD4gfHwgPGNvbHVtbi13aWR0aD5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcclxuICAvLyBhdXRvIHx8IGludGVnZXJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xyXG4gIC8vIG5vcm1hbCB8fCBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xyXG4gIC8vIGF1dG8gfHwgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XHJcbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUtY29sb3IoJGNvbG9yKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xyXG4gIC8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZS13aWR0aCAoJHdpZHRoOiBub25lKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcclxuICAvLyBub25lIHx8IGFsbFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcclxuICAvLyBhdXRvIHx8IGxlbmd0aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xyXG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcclxufVxyXG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcclxuXHJcbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcclxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcclxuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcclxuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xyXG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcclxuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcclxufVxyXG5cclxuQG1peGluIGRpc3BsYXktYm94IHtcclxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICBkaXNwbGF5OiAtbW96LWJveDtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcclxuICBkaXNwbGF5OiBib3g7XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XHJcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xyXG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XHJcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xyXG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcclxuLy8gc2luZ2xlfG11bHRpcGxlXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xyXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxyXG5cclxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXHJcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXHJcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXHJcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xyXG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcclxuICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcclxuICAgIC8vIDIwMDlcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gICAgZGlzcGxheTogLW1vei1ib3g7XHJcbiAgICBkaXNwbGF5OiBib3g7XHJcblxyXG4gICAgLy8gMjAxMlxyXG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xyXG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xyXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xyXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xyXG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcclxuXHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xyXG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcclxuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgZGlzcGxheTogJHZhbHVlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxyXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXHJcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXHJcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xyXG5cclxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXHJcbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcclxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXHJcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcclxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxyXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcclxuXHJcbiAgLy8gQWx0IHZhbHVlcy5cclxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xyXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XHJcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xyXG5cclxuICBAaWYgJHZhbHVlID09IHJvdyB7XHJcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xyXG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XHJcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XHJcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcclxuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcclxuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XHJcbiAgfVxyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcclxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcclxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcclxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xyXG4gIC8vIEFsdCB2YWx1ZXNcclxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XHJcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xyXG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xyXG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG5cclxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxyXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXHJcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcclxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxyXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcclxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxyXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1vcmRlcjogJGludDtcclxufVxyXG5cclxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxyXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XHJcbn1cclxuXHJcbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxyXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xyXG59XHJcblxyXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxyXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXHJcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcclxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcclxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcclxuXHJcbiAgLy8gQWx0IHZhbHVlcy5cclxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJGFsdC12YWx1ZTogZW5kO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcclxuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcclxuXHJcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xyXG5cclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XHJcbiAgfVxyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcclxufVxyXG5cclxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XHJcblxyXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBlbmQ7XHJcbiAgfVxyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcclxufVxyXG5cclxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcclxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxyXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcclxuXHJcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XHJcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcclxufVxyXG4iLCJAbWl4aW4gZm9udC1mYWNlKFxyXG4gICRmb250LWZhbWlseSxcclxuICAkZmlsZS1wYXRoLFxyXG4gICR3ZWlnaHQ6IG5vcm1hbCxcclxuICAkc3R5bGU6IG5vcm1hbCxcclxuICAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSxcclxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYgc3ZnKSB7XHJcblxyXG4gICRmb250LXVybC1wcmVmaXg6IGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSk7XHJcblxyXG4gIEBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcclxuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xyXG5cclxuICAgIHNyYzogZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXHJcbiAgICAgICRmb250LWZhbWlseSxcclxuICAgICAgJGZpbGUtcGF0aCxcclxuICAgICAgJGFzc2V0LXBpcGVsaW5lLFxyXG4gICAgICAkZmlsZS1mb3JtYXRzLFxyXG4gICAgICAkZm9udC11cmwtcHJlZml4XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xyXG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZm9udC1mZWF0dXJlLXNldHRpbmdzLCAkc2V0dGluZ3MsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuIiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxyXG5AbWl4aW4gaGlkcGkoJHJhdGlvOiAxLjMpIHtcclxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXHJcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXHJcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXHJcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAkcmF0aW8gKiAxZHBweCkge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xyXG4gIC8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcclxuXHJcbiAgQGlmICgkbW9kZSA9PSBjcmlzcC1lZGdlcykge1xyXG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtby1jcmlzcC1lZGdlcztcclxuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcclxuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XHJcbiAgfVxyXG5cclxuICBAZWxzZSB7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6ICRtb2RlO1xyXG4gIH1cclxufVxyXG4iLCIvLyBBZGRzIGtleWZyYW1lcyBibG9ja3MgZm9yIHN1cHBvcnRlZCBwcmVmaXhlcywgcmVtb3ZpbmcgcmVkdW5kYW50IHByZWZpeGVzIGluIHRoZSBibG9jaydzIGNvbnRlbnRcclxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE6ICAgJHByZWZpeC1mb3ItbW96aWxsYTtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM6ICAgICAgJHByZWZpeC1mb3Itc3BlYztcclxuXHJcbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XHJcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XHJcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcclxuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xyXG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xyXG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZSAhZ2xvYmFsO1xyXG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCAgICAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhICAgICAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XHJcblxyXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjIHtcclxuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkZzEsICRnMjogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XHJcbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xyXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xyXG4gICRwb3Mtc3BlYzogbnVsbDtcclxuICAkcG9zLWRlZ3JlZTogbnVsbDtcclxuXHJcbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXHJcbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xyXG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcclxuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XHJcbiAgICAkcG9zOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgQGlmICRwb3Mge1xyXG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xyXG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcclxuICAgICRwb3Mtc3BlYzogICBudGgoJHBvc2l0aW9ucywgMik7XHJcbiAgfVxyXG5cclxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcclxuXHJcbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxyXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRnMSwgMSk7XHJcblxyXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxyXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xyXG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCgjeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XHJcbn1cclxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xyXG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcclxuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XHJcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xyXG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gUmVxdWlyZXMgU2FzcyAzLjErXHJcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XHJcblxyXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKTtcclxuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xyXG4gICRnMjogIG50aCgkZGF0YSwgMik7XHJcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcclxuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcclxuXHJcbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XHJcblxyXG4gIC8vIFN0cmlwIGRlcHJlY2F0ZWQgY292ZXIvY29udGFpbiBmb3Igc3BlY1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcclxuXHJcbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxyXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xyXG5cclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcclxuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xyXG4gIH1cclxuXHJcbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXHJcbiAgJHNoYXBlLXNpemU6IGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LCBcIiwgbnVsbCk7XHJcbiAgJHBvczogICAgICAgIGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpO1xyXG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XHJcbiAgJHNoYXBlLXNpemUtc3BlYzogaWYoKCRzaGFwZS1zaXplLXNwZWMgIT0gXCIgXCIpIGFuZCAoJHBvcyA9PSBudWxsKSwgXCIjeyRzaGFwZS1zaXplLXNwZWN9LCBcIiwgXCIjeyRzaGFwZS1zaXplLXNwZWN9IFwiKTtcclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCh1bnF1b3RlKCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KSk7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcInJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xyXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xyXG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XHJcbn1cclxuXHJcbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xyXG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XHJcbn1cclxuXHJcbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xyXG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xyXG59XHJcblxyXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XHJcbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XHJcbn1cclxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcclxuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XHJcbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcclxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxyXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcbn1cclxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXHJcbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XHJcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xyXG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xyXG5cclxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcclxuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XHJcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcclxuICAkd2Via2l0OiAoKTtcclxuICAkbW96OiAoKTtcclxuICAkc3BlYzogKCk7XHJcblxyXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxyXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcclxuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xyXG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XHJcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XHJcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XHJcbiAgICAgICRsaXN0MzogKCk7XHJcblxyXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcclxuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcclxuXHJcbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XHJcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcclxuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XHJcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xyXG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcclxuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XHJcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XHJcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XHJcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XHJcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcclxuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xyXG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XHJcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xyXG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5YztcclxuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcclxuXHJcbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGlpXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50LW9uZSB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQtdHdvIHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQtb25lIHtcclxuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQtdHdvIHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcclxuXHJcbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XHJcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcclxuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxyXG5cclxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcclxuXHJcbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxyXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIGJ1dHRvbixcclxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBidXR0b246Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcclxuLy8vICAgYnV0dG9uOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGJ1dHRvbjphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcbi8vL1xyXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxyXG5cclxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcclxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcclxuXHJcbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XHJcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcclxuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XHJcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xyXG5cclxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XHJcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XHJcbi8vLyAgICAgY2xlYXI6IGJvdGg7XHJcbi8vLyAgICAgY29udGVudDogXCJcIjtcclxuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIGNsZWFyZml4IHtcclxuICAmOjphZnRlciB7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxyXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1heC13aWR0aDogJHdpZHRoO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB3b3JkLXdyYXA6IG5vcm1hbDtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XHJcblxyXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XHJcblxyXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcclxuXHJcbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XHJcblxyXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcclxuIiwiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XHJcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXHJcblxyXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtaW5kZW50OiAxMDElO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gIEBpZiAkaGVpZ2h0IHtcclxuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XHJcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XHJcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYG1hcmdpbmBcclxuXHJcbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xyXG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXHJcblxyXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cclxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cclxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBsZWZ0OiAxMGVtO1xyXG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8vICAgICB0b3A6IDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcclxuXHJcbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcclxuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xyXG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XHJcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcclxuXHJcbiAgJG9mZnNldHM6IChcclxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXHJcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxyXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcclxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcclxuICApO1xyXG5cclxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xyXG5cclxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xyXG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcclxuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcclxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XHJcbi8vL1xyXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcclxuLy8vICAgVmFsdWUgdG8gdXNlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcclxuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXHJcblxyXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xyXG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcclxuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xyXG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XHJcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XHJcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XHJcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xyXG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlICB7XHJcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XHJcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcclxufVxyXG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xyXG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGhpZHBpIHtcclxuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xyXG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcclxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cclxuLy8vXHJcbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xyXG4vLy8gICAgIHdpZHRoOiAyZW07XHJcbi8vLyAgICAgaGVpZ2h0OiAyZW07XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XHJcbi8vLyAgICAgd2lkdGg6IGF1dG87XHJcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XHJcblxyXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcclxuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xyXG4gICRoZWlnaHQ6ICR3aWR0aDtcclxuXHJcbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XHJcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcclxuICB9XHJcblxyXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcclxuICAgIGhlaWdodDogJGhlaWdodDtcclxuICB9IEBlbHNlIHtcclxuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcclxuICB9XHJcblxyXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xyXG4gICAgd2lkdGg6ICR3aWR0aDtcclxuICB9IEBlbHNlIHtcclxuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30sXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcclxuLy8vICAgdGV4dGFyZWEge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxyXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXHJcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxyXG4vLy8gICB0ZXh0YXJlYTphY3RpdmUge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxyXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcclxuXHJcbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcclxuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcclxuLy8vXHJcbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXHJcbi8vL1xyXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXHJcblxyXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xyXG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xyXG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xyXG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xyXG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xyXG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xyXG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xyXG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xyXG5cclxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcclxuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcclxuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcclxuXHJcbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XHJcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XHJcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XHJcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XHJcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XHJcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XHJcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xyXG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XHJcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xyXG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xyXG4gIGhlaWdodDogMDtcclxuICB3aWR0aDogMDtcclxuXHJcbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xyXG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xyXG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xyXG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxyXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLndyYXBwZXIge1xyXG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLndyYXBwZXIge1xyXG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XHJcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xyXG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xyXG4gIHdvcmQtd3JhcDogJHdyYXA7XHJcblxyXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuICB9IEBlbHNlIHtcclxuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xyXG4gIH1cclxufVxyXG4iLCIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXHJcblxyXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcclxuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xyXG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XHJcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XHJcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xyXG4gICAgJHN0eWxlOiBzaW1wbGU7XHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xyXG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XHJcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcclxuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XHJcbiAgICAkc3R5bGU6IHNpbXBsZTtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XHJcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XHJcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XHJcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcclxuICAgICRzdHlsZTogc2ltcGxlO1xyXG5cclxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcclxuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcclxuICB9XHJcblxyXG4gICY6ZGlzYWJsZWQge1xyXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgIG9wYWNpdHk6IDAuNTtcclxuICB9XHJcblxyXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxyXG5AbWl4aW4gYnV0dG9uc3R5bGUoJHR5cGUsICRiLWNvbG9yLCAkdC1zaXplLCAkcGFkKSB7XHJcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxyXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdHlwZSA9PSBzaGlueSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29sb3JlZCBidXR0b25cclxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcclxuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xyXG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICR0eXBlID09IHBpbGwge1xyXG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XHJcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBTaW1wbGUgQnV0dG9uXHJcbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xyXG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcclxuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XHJcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xyXG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcclxuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xyXG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xyXG4gIH1cclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkdGV4dC1zaGFkb3c7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcclxuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOCUsICRsaWdodG5lc3M6IC0xNCUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcclxuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xyXG5cclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gU2hpbnkgQnV0dG9uXHJcbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcclxuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xyXG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xyXG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XHJcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcclxuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xyXG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xyXG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XHJcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcclxuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcclxuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XHJcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XHJcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XHJcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcclxuICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNjYsICRncmVlbjogLTYyLCAkYmx1ZTogLTUxKTtcclxuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcclxuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xyXG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xyXG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XHJcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gUGlsbCBCdXR0b25cclxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtMTElLCAkbGlnaHRuZXNzOiAtMjYlKTtcclxuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xyXG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XHJcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMSUsICAkbGlnaHRuZXNzOiAgNyUpO1xyXG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XHJcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuXHJcbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XHJcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xyXG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcclxuICB9XHJcblxyXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xyXG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XHJcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xyXG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XHJcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XHJcbiAgfVxyXG5cclxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcclxuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XHJcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XHJcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XHJcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XHJcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XHJcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcclxuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xyXG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcclxuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XHJcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xyXG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XHJcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxyXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xyXG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDYsICAkc2F0dXJhdGlvbjogLTIuNSUsICRsaWdodG5lc3M6IC0zMCUpO1xyXG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XHJcbiAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNSwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTIxLjUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBncmF5c2NhbGUoJGFjdGl2ZS1jb2xvcik7XHJcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcclxuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b20tYWN0aXZlO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gRmxhdCBCdXR0b25cclxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBib3JkZXI6IDA7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcblxyXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZsZXhpYmxlIGdyaWRcclxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcclxuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3JpZCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbi8vIEZsZXhpYmxlIGd1dHRlclxyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcclxuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcclxuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xyXG5cclxuICBAd2FybiBcIlRoZSBmbGV4LWd1dHRlciBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XHJcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGdyaWQtd2lkdGggZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZ29sZGVuLXJhdGlvKCR2YWx1ZSwgJGluY3JlbWVudCkge1xyXG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGdvbGRlbi1yYXRpbyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBQbGVhc2UgdXNlIHRoZSBtb2R1bGFyLXNjYWxlIGZ1bmN0aW9uLCBpbnN0ZWFkLlwiO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LXNpemluZygkYm94KSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgQHdhcm4gXCJUaGUgYm94LXNpemluZyBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBUaGlzIHByb3BlcnR5IGNhbiBub3cgYmUgdXNlZCB1bi1wcmVmaXhlZC5cIjtcclxufVxyXG4iLCIkbWFpbi1jb2xvcjogI2ZmYjIwYztcclxuJHNlY29uZGFyeS1jb2xvcjogIzQ5YWJmZjtcclxuJHdoaXRlOiAjZTdlNGQ1O1xyXG4kc2l0ZS1iZzogIzJlMjM0MztcclxuXHJcbiR5ZWxsb3c6ICRtYWluLWNvbG9yO1xyXG4kYmx1ZTogJHNlY29uZGFyeS1jb2xvcjtcclxuJGJsdWUtZGFyazogIzMyMzc1ZjtcclxuJGJsdWUtZGFya2VyOiAjMGEwNzFmO1xyXG4kcHVycGxlOiAjNTUzYTg3O1xyXG4kcHVycGxlLWRhcms6ICRzaXRlLWJnO1xyXG4kcHVycGxlLWxpZ2h0OiAjY2NjM2RlO1xyXG5cclxuJHJldmlldzogIzBiMDAyNjtcclxuXHJcblxyXG4vLyBTT0NJQUwgTUVESUEgQ09MT1JTXHJcbiR0dyAgOiAjNTVBQ0VFOyAgLy8gVFdJVFRFUlxyXG4kZmIgIDogIzNCNTk5ODsgIC8vIEZBQ0VCT09LXHJcbiRncCAgOiAjREQ0QjM5OyAgLy8gR09PR0xFK1xyXG4keXQgIDogI0ZGMzMzMzsgIC8vIFlPVVRVQkVcclxuJHBpbiA6ICNDQjIwMjc7ICAvLyBQSU5URVJFU1RcclxuJGlnICA6ICM1MTdmYTQ7ICAvLyBJTlNUQUdSQU1cclxuJGxpICA6ICMwMDdiYjY7ICAvLyBMSU5LRURJTlxyXG4kdm0gIDogIzFhYjdlYTsgIC8vIFZJTUVPXHJcbiRmbCAgOiAjZmYwMDg0OyAgLy8gRkxJQ0tSXHJcbiR0d3QgOiAjNGIzNjdjO1xyXG4iLCIvLyBHRU5FUkFMIEFORCBQUk9KRUNUIFNQRUNJRklDIE1JWElOU1xyXG5cclxuLy8gV2Via2l0IG9ubHlcclxuLy8gUmVjb21tZW5kZWQgb25seSBvbiBzaXR1YXRpb25zIHdoZXJlIHRoZXJlJ3MgaGlnaCBjb250cmFzdCBiZXR3ZWVuIHRleHQgYW5kIGJhY2tncm91bmRcclxuQG1peGluIGZvbnQtc21vb3RoIHtcclxuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxufVxyXG5cclxuLy8gT3B0aW1pemUga2VybmluZyBhbmQgdHVybiBvbiB0eXBlIGxpZ2F0dXJlc1xyXG4vLyBVc2UgY2FyZWZ1bHkgLSBpdCBjYW4gbmVnYXRpdmVseSBpbXBhY3QgcGFnZSBsb2FkIHdoZW4gYXBwbGllZCB0byBsYXJnZSBibG9ja3Mgb2YgdGV4dFxyXG4vLyBNb3JlIG9uIHRoaXMgaGVyZTogaHR0cDovL2Flc3RoZXRpY2FsbHlsb3lhbC5jb20vcHVibGljL29wdGltaXplLWxlZ2liaWxpdHlcclxuQG1peGluIG9wdGltaXplTGVnaWJpbGl0eSB7XHJcblx0dGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcclxufVxyXG5cclxuLy8gSGlkaW5nIHRleHQgbWV0aG9kLCBieSBQYXVsIElyaXNoIGFuZCBvdGhlciBjb21tdW5pdHkgbGVhZGVyc1xyXG5AbWl4aW4gaGlkZS10ZXh0IHtcclxuXHRmb250OiAwLzAgc2VyaWY7XHJcblx0dGV4dC1zaGFkb3c6IG5vbmU7XHJcblx0Y29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4vLyBPcGFjaXR5IGNvbXBhdGlibGUgd2l0aCBJRSA+PSA4XHJcbkBtaXhpbiBvcGFjaXR5KCRvcGFjaXR5KSB7XHJcbiAgb3BhY2l0eTogJG9wYWNpdHk7XHJcbiAgJG9wYWNpdHktaWU6ICRvcGFjaXR5ICogMTAwO1xyXG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0kb3BhY2l0eS1pZSk7XHJcbn1cclxuXHJcbi8vIFF1aWNrIHRyYW5zcGFyZW50IGJsYWNrL3doaXRlIGNvbG9yc1xyXG5AZnVuY3Rpb24gYmxhY2soJG9wYWNpdHk6IDEpe1xyXG5cdEByZXR1cm4gcmdiYSgwLCAwLCAwLCAkb3BhY2l0eSk7XHJcbn1cclxuQGZ1bmN0aW9uIHdoaXRlKCRvcGFjaXR5OiAxKXtcclxuXHRAcmV0dXJuIHJnYmEoMjU1LCAyNTUsIDI1NSwgJG9wYWNpdHkpO1xyXG59XHJcblxyXG4vLyBRdWlja2x5IGNvbnZlcnQgcGl4ZWxzIGRvIGVtc1xyXG4kYnJvd3Nlci1jb250ZXh0OiAxNjtcclxuQGZ1bmN0aW9uIGVtKCRwaXhlbHMsICRjb250ZXh0OiAkYnJvd3Nlci1jb250ZXh0KSB7XHJcblx0QHJldHVybiAjeyRwaXhlbHMvJGNvbnRleHR9ZW07XHJcbn1cclxuXHJcbi8vIENoYW5nZSBib3ggbW9kZWwgdG8gYm9yZGVyLWJveFxyXG5AbWl4aW4gYm9yZGVyLWJveCB7XHJcblx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG4vLyBWZXJ0aWNhbGx5IGNlbnRlciBhbnkgb2JqZWN0IHdpdGhpbiBpdHMgY29udGFpbmVyLiBXb3JrcyBpbiBJRTkgYW5kIHVwLlxyXG4vLyBGcm9tIGNob3BzdGlja3MgYm9pbGVycGxhdGVcclxuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdHRvcDogNTAlO1xyXG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG59XHJcblxyXG4vLyBFYXNpbHkgdHJ1bmNhdGUgdGV4dCB3aXRoIGFuIGVsbGlwc2lzIHdpdGggYSBzaW5nbGUgbWl4aW4uXHJcbi8vIFJlcXVpcmVzIGVsZW1lbnQgdG8gYmUgYmxvY2sgb3IgaW5saW5lLWJsb2NrIGxldmVsLlxyXG4vLyBGcm9tIEJvb3RzdHJhcFxyXG5AbWl4aW4gdGV4dC1vdmVyZmxvdyB7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyICgkc2lkZSwgJHNpemU6IDFweCwgJGNvbG9yOiAjMDAwMDAwLCAkdHlwZTogc29saWQpIHtcclxuXHQjeyRzaWRlfTogJHNpemUgJHR5cGUgJGNvbG9yO1xyXG59XHJcblxyXG5AbWl4aW4gYmcoJHR5cGUsICRzcmMsICRleHQ6ICdwbmcnKSB7XHJcblx0QGlmICR0eXBlID09IFwiaW1hZ2VcIiB7XHJcblx0ICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvI3skc3JjfS4jeyRleHR9Jyk7XHJcblx0fSBAZWxzZSBpZiAkdHlwZSA9PSBcImNvbG9yXCIge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNyYztcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBvcGFjaXR5KCRvcGFjaXR5KSB7XHJcbiAgb3BhY2l0eTogJG9wYWNpdHk7XHJcbiAgLy8gSUU4IGZpbHRlclxyXG4gICRvcGFjaXR5LWllOiAoJG9wYWNpdHkgKiAxMDApO1xyXG4gIGZpbHRlcjogI3thbHBoYShvcGFjaXR5PSRvcGFjaXR5LWllKX07XHJcbn1cclxuXHJcbkBtaXhpbiBob3ZlciB7XHJcblx0Jjpob3ZlciwgJjpmb2N1cyB7XHJcblx0XHRAY29udGVudDtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgJjphZnRlciB7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiB0ZXh0LXN0cm9rZSgkd2VpZ2h0OiAxcHgsICRjb2xvcjogIzAwMCkge1xyXG4gIHRleHQtc2hhZG93OlxyXG4gICAgLSN7JHdlaWdodH0gLSN7JHdlaWdodH0gMCAkY29sb3IsXHJcbiAgICAwIC0jeyR3ZWlnaHR9IDAgJGNvbG9yLFxyXG4gICAgJHdlaWdodCAtI3skd2VpZ2h0fSAwICRjb2xvcixcclxuICAgICR3ZWlnaHQgMCAwICRjb2xvcixcclxuICAgICR3ZWlnaHQgJHdlaWdodCAwICRjb2xvcixcclxuICAgIDAgJHdlaWdodCAwICRjb2xvcixcclxuICAgICR3ZWlnaHQgLSN7JHdlaWdodH0gMCAkY29sb3IsXHJcbiAgICAwIC0jeyR3ZWlnaHR9IDAgJGNvbG9yO1xyXG59XHJcblxyXG5AbWl4aW4gcmV0aW5hKCl7XHJcblx0QG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSkge1xyXG5cdCAgICBAY29udGVudDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEVDWkFSXHJcbi8vIFdlaWdodHM6XHJcbi8vIHJlZ3VsYXIgICAtIDQwMFxyXG4vLyBzZW1pYm9sZCAgLSA2MDBcclxuLy8gYm9sZCAgICAgIC0gNzAwXHJcbi8vIGV4dHJhYm9sZCAtIDgwMFxyXG5cclxuQG1peGluIGVjemFyKCR3ZWlnaHQ6IHJlZ3VsYXIpIHtcclxuICBmb250LWZhbWlseTogJ0VjemFyJywgc2VyaWY7XHJcbiAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XHJcbiAgQGluY2x1ZGUgZm9udC1zbW9vdGg7XHJcbn1cclxuXHJcbi8vICR4eGwtc2l6ZTogMTI4MHB4O1xyXG4vLyAkeGwtc2l6ZTogMTAyNHB4O1xyXG4vLyAkbC1zaXplOiA5OTJweDtcclxuLy8gJG0tc2l6ZTogNzY4cHg7XHJcbi8vICRzLXNpemU6IDYwMHB4O1xyXG4vLyAkeHMtc2l6ZTogNDgwcHg7XHJcbi8vXHJcbi8vIEBtaXhpbiBzIHtcclxuLy8gICBAbWVkaWEgKG1heC13aWR0aDogI3skcy1zaXplfSkge1xyXG4vLyAgICAgQGNvbnRlbnQ7XHJcbi8vICAgfVxyXG4vLyB9XHJcbi8vXHJcbi8vIEBtaXhpbiB4cyB7XHJcbi8vICAgQG1lZGlhIChtYXgtd2lkdGg6ICN7JHhzLXNpemV9KSB7XHJcbi8vICAgICBAY29udGVudDtcclxuLy8gICB9XHJcbi8vIH1cclxuLy9cclxuLy8gQG1peGluIG0ge1xyXG4vLyAgIEBtZWRpYSAobWF4LXdpZHRoOiAjeyRtLXNpemV9KSB7XHJcbi8vICAgICBAY29udGVudDtcclxuLy8gICB9XHJcbi8vIH1cclxuLy9cclxuLy8gQG1peGluIGwge1xyXG4vLyAgIEBtZWRpYSAobWF4LXdpZHRoOiAjeyRsLXNpemV9KSB7XHJcbi8vICAgICBAY29udGVudDtcclxuLy8gICB9XHJcbi8vIH1cclxuLy9cclxuLy8gQG1peGluIHhsIHtcclxuLy8gICBAbWVkaWEgKG1heC13aWR0aDogI3skeGwtc2l6ZX0pIHtcclxuLy8gICAgIEBjb250ZW50O1xyXG4vLyAgIH1cclxuLy8gfVxyXG4vL1xyXG4vLyBAbWl4aW4geHhsIHtcclxuLy8gICBAbWVkaWEgKG1heC13aWR0aDogI3skeHhsLXNpemV9KSB7XHJcbi8vICAgICBAY29udGVudDtcclxuLy8gICB9XHJcbi8vIH1cclxuLy9cclxuLy9cclxuLy8gQG1peGluIGNsZWFyZml4KCkge1xyXG4vLyAgICY6OmFmdGVyIHtcclxuLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4vLyAgICAgY29udGVudDogXCJcIjtcclxuLy8gICAgIGNsZWFyOiBib3RoO1xyXG4vLyAgIH1cclxuLy8gfVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEF1dGhvcjogVGlhZ28gRnJhbmNvXHJcbi8vIFdlYnNpdGU6IGh0dHA6Ly90aWFnb2ZyYW5jby5jb21cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBHUklEIFZBUklBQkxFU1xyXG4vLyBDb3N0dW1pemUgeW91cnMsIGJhc2VkIG9uIHlvdXIgcHJvamVjdHMgbmVlZHNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4kY29scyA6IDEyO1xyXG4kZ2FwICA6IDEycHg7XHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEJSRUFLUE9JTlRTXHJcbi8vIENvc3R1bWl6ZSB5b3Vyc1xyXG4vLyBJIGxpa2UgdG8gYWJzdHJhY3QgXCJtb2JpbGVcIiwgXCJtb2JpbGUgbGFuZHNjYXBlXCIsIFwidGFibGV0XCIsIGV0YywgaW50byB4eHMsIHhzLCBzLCBtLi4uXHJcbi8vIEFzIG1vcmUgYW5kIG1vcmUgZGV2aWNlcyBhbmQgZm9ybS1mYWN0b3JzIGpvaW4gdGhlIG1hcmtldCBkZWZpbmluZyBzb21ldGhpbmcgd2l0aCBhIHNpbXBsaXN0aWMgYmVjb21lc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4vLyBjb25zaWRlciBhIHh4bCBzaXplIGJyZWFrcG9pbnRcclxuLy8gJHh4bCA6IDEyMDBweDtcclxuJHhsICAgOiAxMjAwcHg7XHJcbiRsICAgIDogMTAwMHB4O1xyXG4kbSAgICA6IDgwMHB4O1xyXG4kcyAgICA6IDY0MHB4O1xyXG4keHMgICA6IDQ4MHB4O1xyXG4keHhzICA6IDMyMHB4O1xyXG5cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBOT1cgSU5TSURFIEFOIEFSUkFZL01BUFxyXG4vLyBGb3IgaXR0ZXJhdGlvbiwgbGF0ZXIgb25cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4kYnJlYWtwb2ludHM6IChcclxuXHQvLyB4eGwgOiAkeHhsLFxyXG5cdHhsICAgOiAkeGwsXHJcblx0bCAgICA6ICRsLFxyXG5cdG0gICAgOiAkbSxcclxuXHRzICAgIDogJHMsXHJcblx0eHMgICA6ICR4cyxcclxuXHR4eHMgIDogJHh4c1xyXG4pO1xyXG5cclxuLnJvdyB7XHJcblx0QGluY2x1ZGUgY2xlYXJmaXg7XHJcblx0bWF4LXdpZHRoOiBtYXAtZ2V0KCRicmVha3BvaW50cywgeGwpO1xyXG5cdG1hcmdpbjogMCBhdXRvO1xyXG5cclxuXHQmLmZ1bGwtd2lkdGgge1xyXG5cdFx0bWF4LXdpZHRoOiBub25lO1xyXG5cdH1cclxuXHJcblx0Ly9SZXZlcnNlIGdyaWQgZmxvYXRpbmcgZGlyZWN0aW9uXHJcblx0Ji5yZXZlcnNlIHtcclxuXHRcdCpbY2xhc3MqPVwiY29sLVwiXSB7XHJcblx0XHRcdGZsb2F0OiByaWdodDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuQG1peGluIGNvbCB7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0ZmxvYXQ6IGxlZnQ7XHJcblx0bWluLWhlaWdodDogMXB4O1xyXG5cdHBhZGRpbmctbGVmdDogJGdhcDtcclxuXHRwYWRkaW5nLXJpZ2h0OiAkZ2FwO1xyXG59XHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEdFTkVSQUwsIFZJRVdQT1JUIFdJRFRIIElOREVQRU5ERU5UXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29scyB7XHJcblx0LmNvbC0jeyRpfSB7XHJcblx0XHRAaW5jbHVkZSBjb2w7XHJcblx0XHR3aWR0aDogKDEwMCUvJGNvbHMqJGkpO1xyXG5cdH1cclxuXHQucHVzaC0jeyRpfSB7XHJcblx0XHRtYXJnaW4tbGVmdDogKDEwMCUvJGNvbHMqJGkpO1xyXG5cdH1cclxuXHQucHVsbC0jeyRpfSB7XHJcblx0XHRtYXJnaW4tbGVmdDogLSgxMDAlLyRjb2xzKiRpKTtcclxuXHR9XHJcbn1cclxuXHJcbi5hbHBoYSB7XHJcblx0cGFkZGluZy1sZWZ0OiAwO1xyXG59XHJcbi5vbWVnYSB7XHJcblx0cGFkZGluZy1yaWdodDogMDtcclxufVxyXG4ubm8tcGFkIHtcclxuXHRwYWRkaW5nLWxlZnQ6IDA7XHJcblx0cGFkZGluZy1yaWdodDogMDtcclxufVxyXG5cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBHRU5FUkFURSBCUkVBS1BPSU5UUywgUFVTSEVTIEFORCBQVUxMU1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbkBlYWNoICRwb2ludCwgJHJlc29sdXRpb24gaW4gJGJyZWFrcG9pbnRzIHtcclxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRyZXNvbHV0aW9ufSl7XHJcblx0XHRAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2xzIHtcclxuXHRcdFx0LiN7JHBvaW50fS1jb2wtI3skaX0ge1xyXG5cdFx0XHRcdEBpbmNsdWRlIGNvbDtcclxuXHRcdFx0XHR3aWR0aDogKDEwMCUvJGNvbHMqJGkpO1xyXG5cdFx0XHR9XHJcblx0XHRcdC4jeyRwb2ludH0tcHVzaC0jeyRpfSB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6ICgxMDAlLyRjb2xzKiRpKTtcclxuXHRcdFx0fVxyXG5cdFx0XHQuI3skcG9pbnR9LXB1bGwtI3skaX0ge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAtKDEwMCUvJGNvbHMqJGkpO1xyXG5cdFx0XHR9XHJcblx0XHRcdC4jeyRwb2ludH0tYWxwaGEge1xyXG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcclxuXHRcdFx0fVxyXG5cdFx0XHQuI3skcG9pbnR9LW9tZWdhIHtcclxuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xyXG5cdFx0XHR9XHJcblx0XHRcdC4jeyRwb2ludH0tbm8tcGFkIHtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcclxuXHRcdFx0fVxyXG5cdFx0XHQuI3skcG9pbnR9LXBhZCB7XHJcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAkZ2FwO1xyXG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6ICRnYXA7XHJcblx0XHRcdH1cclxuXHRcdFx0LiN7JHBvaW50fS1uby1wdXNoLFxyXG5cdFx0XHQuI3skcG9pbnR9LW5vLXB1bGwge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gbWVkaWEtcXVlcnkgKCAkcG9pbnQgKXtcclxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkcG9pbnQpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxufVxyXG5cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBHRU5FUkFURSBCUkVBS1BPSU5UIE1JWElOU1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIEBtaXhpbiB4eGwge1xyXG4vLyBcdEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR4eGwpIHtcclxuLy8gXHRcdEBjb250ZW50O1xyXG4vLyBcdH1cclxuLy8gfVxyXG5AbWl4aW4geGwge1xyXG5cdEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR4bCkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fVxyXG59XHJcbkBtaXhpbiBsIHtcclxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbCkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fVxyXG59XHJcbkBtaXhpbiBtIHtcclxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbSkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fVxyXG59XHJcbkBtaXhpbiBzIHtcclxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkcykge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fVxyXG59XHJcbkBtaXhpbiB4cyB7XHJcblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHhzKSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9XHJcbn1cclxuQG1peGluIHh4cyB7XHJcblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHh4cykge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fVxyXG59XHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gQ1VTVE9NIEJSRUFLUE9JTlQgTUlYSU5TXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5AbWl4aW4gYmVsb3coJHBvaW50KSB7XHJcblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHBvaW50KSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9XHJcbn1cclxuQG1peGluIG92ZXIoJHBvaW50KSB7XHJcblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHBvaW50KSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9XHJcbn1cclxuIiwiLmNsZWFyZml4OjphZnRlciB7XHJcbiAgY2xlYXI6IGJvdGg7XHJcbiAgY29udGVudDogXCJcIjtcclxuICBkaXNwbGF5OiB0YWJsZTtcclxufVxyXG4uY2xlYXIge1xyXG4gIGNsZWFyOiBib3RoO1xyXG59XHJcblxyXG4uaGlkZGVuIHtcclxuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xyXG59XHJcblxyXG4uYmxvY2sge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcbi5pbmxpbmUtYmxvY2sge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLmZsb2F0LWxlZnQgIHsgZmxvYXQ6IGxlZnQ7IH1cclxuLmZsb2F0LXJpZ2h0IHsgZmxvYXQ6IHJpZ2h0O31cclxuXHJcbi50ZXh0LWxlZnQgICB7IHRleHQtYWxpZ246IGxlZnQ7IH1cclxuLnRleHQtY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XHJcbi50ZXh0LXJpZ2h0ICB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XHJcblxyXG4vLyBNQVJHSU4gSEVMUEVSUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi5tYXJnaW4tdG9wLXMgeyBtYXJnaW4tdG9wOiA1cHg7IH1cclxuLm1hcmdpbi10b3AgeyBtYXJnaW4tdG9wOiAxMHB4OyB9XHJcbi5tYXJnaW4tdG9wLWwgeyBtYXJnaW4tdG9wOiAxNXB4OyB9XHJcbi5tYXJnaW4tdG9wLXhsIHsgbWFyZ2luLXRvcDogMjBweDsgfVxyXG4ubWFyZ2luLXRvcC14eGwgeyBtYXJnaW4tdG9wOiAzNXB4OyB9XHJcblxyXG4ubWFyZ2luLXJpZ2h0LXMgeyBtYXJnaW4tcmlnaHQ6IDVweDsgfVxyXG4ubWFyZ2luLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XHJcbi5tYXJnaW4tcmlnaHQtbCB7IG1hcmdpbi1yaWdodDogMTVweDsgfVxyXG4ubWFyZ2luLXJpZ2h0LXhsIHsgbWFyZ2luLXJpZ2h0OiAyMHB4OyB9XHJcbi5tYXJnaW4tcmlnaHQteHhsIHsgbWFyZ2luLXJpZ2h0OiAzNXB4OyB9XHJcblxyXG4ubWFyZ2luLWJvdHRvbS1zIHsgbWFyZ2luLWJvdHRvbTogNXB4OyB9XHJcbi5tYXJnaW4tYm90dG9tIHsgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxyXG4ubWFyZ2luLWJvdHRvbS1sIHsgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxyXG4ubWFyZ2luLWJvdHRvbS14bCB7IG1hcmdpbi1ib3R0b206IDIwcHg7IH1cclxuLm1hcmdpbi1ib3R0b20teHhsIHsgbWFyZ2luLWJvdHRvbTogMzVweDsgfVxyXG5cclxuLm1hcmdpbi1sZWZ0LXMgeyBtYXJnaW4tbGVmdDogNXB4OyB9XHJcbi5tYXJnaW4tbGVmdCB7IG1hcmdpbi1sZWZ0OiAxMHB4OyB9XHJcbi5tYXJnaW4tbGVmdC1sIHsgbWFyZ2luLWxlZnQ6IDE1cHg7IH1cclxuLm1hcmdpbi1sZWZ0LXhsIHsgbWFyZ2luLWxlZnQ6IDIwcHg7IH1cclxuLm1hcmdpbi1sZWZ0LXh4bCB7IG1hcmdpbi1sZWZ0OiAzNXB4OyB9XHJcblxyXG4vLyBQQURESU5HIEhFTFBFUlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4ucGFkZGluZy10b3AtcyB7IHBhZGRpbmctdG9wOiA1cHg7IH1cclxuLnBhZGRpbmctdG9wIHsgcGFkZGluZy10b3A6IDEwcHg7IH1cclxuLnBhZGRpbmctdG9wLWwgeyBwYWRkaW5nLXRvcDogMTVweDsgfVxyXG4ucGFkZGluZy10b3AteGwgeyBwYWRkaW5nLXRvcDogMjBweDsgfVxyXG4ucGFkZGluZy10b3AteHhsIHsgcGFkZGluZy10b3A6IDI1cHg7IH1cclxuXHJcbi5wYWRkaW5nLXJpZ2h0LXMgeyBwYWRkaW5nLXJpZ2h0OiA1cHg7IH1cclxuLnBhZGRpbmctcmlnaHQgeyBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XHJcbi5wYWRkaW5nLXJpZ2h0LWwgeyBwYWRkaW5nLXJpZ2h0OiAxNXB4OyB9XHJcbi5wYWRkaW5nLXJpZ2h0LXhsIHsgcGFkZGluZy1yaWdodDogMjBweDsgfVxyXG4ucGFkZGluZy1yaWdodC14eGwgeyBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9XHJcblxyXG4ucGFkZGluZy1ib3R0b20tcyB7IHBhZGRpbmctYm90dG9tOiA1cHg7IH1cclxuLnBhZGRpbmctYm90dG9tIHsgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cclxuLnBhZGRpbmctYm90dG9tLWwgeyBwYWRkaW5nLWJvdHRvbTogMTVweDsgfVxyXG4ucGFkZGluZy1ib3R0b20teGwgeyBwYWRkaW5nLWJvdHRvbTogMjBweDsgfVxyXG4ucGFkZGluZy1ib3R0b20teHhsIHsgcGFkZGluZy1ib3R0b206IDIwcHg7IH1cclxuXHJcbi5wYWRkaW5nLWxlZnQtcyB7IHBhZGRpbmctbGVmdDogNXB4OyB9XHJcbi5wYWRkaW5nLWxlZnQgeyBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cclxuLnBhZGRpbmctbGVmdC1sIHsgcGFkZGluZy1sZWZ0OiAxNXB4OyB9XHJcbi5wYWRkaW5nLWxlZnQteGwgeyBwYWRkaW5nLWxlZnQ6IDIwcHg7IH1cclxuLnBhZGRpbmctbGVmdC14eGwgeyBwYWRkaW5nLWxlZnQ6IDIwcHg7IH1cclxuXHJcbkBmdW5jdGlvbiBibGFjaygkb3BhY2l0eSkge1xyXG4gIEByZXR1cm4gcmdiYSgwLDAsMCwkb3BhY2l0eSk7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB3aGl0ZSgkb3BhY2l0eSkge1xyXG4gIEByZXR1cm4gcmdiYSgyNTUsMjU1LDI1NSwkb3BhY2l0eSk7XHJcbn1cclxuXHJcbkBtaXhpbiBwaXhlbGF0ZWQge1xyXG4gIGltYWdlLXJlbmRlcmluZzogcGl4ZWxhdGVkO1xyXG59XHJcblxyXG4ucGl4ZWxhdGVkIHtcclxuICBAaW5jbHVkZSBwaXhlbGF0ZWQ7XHJcbn1cclxuIiwiLyogU2xpZGVyICovXHJcblxyXG4uc2xpY2stc2xpZGVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcclxuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XHJcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcbi5zbGljay1saXN0IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAmLmRyYWdnaW5nIHtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgY3Vyc29yOiBoYW5kO1xyXG4gICAgfVxyXG59XHJcbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxyXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbn1cclxuXHJcbi5zbGljay10cmFjayB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICAgJjpiZWZvcmUsXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgfVxyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG5cclxuICAgIC5zbGljay1sb2FkaW5nICYge1xyXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxufVxyXG4uc2xpY2stc2xpZGUge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBtaW4taGVpZ2h0OiAxcHg7XHJcbiAgICBbZGlyPVwicnRsXCJdICYge1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgIH1cclxuICAgIGltZyB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgICAmLnNsaWNrLWxvYWRpbmcgaW1nIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgJi5kcmFnZ2luZyBpbWcge1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAuc2xpY2stbG9hZGluZyAmIHtcclxuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICB9XHJcblxyXG4gICAgLnNsaWNrLXZlcnRpY2FsICYge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIH1cclxufVxyXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuIiwiLyogTWFnbmlmaWMgUG9wdXAgQ1NTICovXHJcbi5tZnAtYmcge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiAxMDQyO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGJhY2tncm91bmQ6ICMwYjBiMGI7XHJcbiAgb3BhY2l0eTogMC44O1xyXG59XHJcblxyXG4ubWZwLXdyYXAge1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiAxMDQzO1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbn1cclxuXHJcbi5tZnAtY29udGFpbmVyIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMDtcclxuICBwYWRkaW5nOiAwIDhweDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG4ubWZwLWNvbnRhaW5lcjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuLm1mcC1hbGlnbi10b3AgLm1mcC1jb250YWluZXI6YmVmb3JlIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4ubWZwLWNvbnRlbnQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIHotaW5kZXg6IDEwNDU7XHJcbn1cclxuXHJcbi5tZnAtaW5saW5lLWhvbGRlciAubWZwLWNvbnRlbnQsXHJcbi5tZnAtYWpheC1ob2xkZXIgLm1mcC1jb250ZW50IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBjdXJzb3I6IGF1dG87XHJcbn1cclxuXHJcbi5tZnAtYWpheC1jdXIge1xyXG4gIGN1cnNvcjogcHJvZ3Jlc3M7XHJcbn1cclxuXHJcbi5tZnAtem9vbS1vdXQtY3VyLFxyXG4ubWZwLXpvb20tb3V0LWN1ciAubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlIHtcclxuICBjdXJzb3I6IC1tb3otem9vbS1vdXQ7XHJcbiAgY3Vyc29yOiAtd2Via2l0LXpvb20tb3V0O1xyXG4gIGN1cnNvcjogem9vbS1vdXQ7XHJcbn1cclxuXHJcbi5tZnAtem9vbSB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xyXG4gIGN1cnNvcjogLW1vei16b29tLWluO1xyXG4gIGN1cnNvcjogem9vbS1pbjtcclxufVxyXG5cclxuLm1mcC1hdXRvLWN1cnNvciAubWZwLWNvbnRlbnQge1xyXG4gIGN1cnNvcjogYXV0bztcclxufVxyXG5cclxuLm1mcC1jbG9zZSxcclxuLm1mcC1hcnJvdyxcclxuLm1mcC1wcmVsb2FkZXIsXHJcbi5tZnAtY291bnRlciB7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4ubWZwLWxvYWRpbmcubWZwLWZpZ3VyZSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLm1mcC1oaWRlIHtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tZnAtcHJlbG9hZGVyIHtcclxuICBjb2xvcjogI0NDQztcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1hcmdpbi10b3A6IC0wLjhlbTtcclxuICBsZWZ0OiA4cHg7XHJcbiAgcmlnaHQ6IDhweDtcclxuICB6LWluZGV4OiAxMDQ0O1xyXG5cclxuICBhIHtcclxuICAgIGNvbG9yOiAjQ0NDO1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAjRkZGO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLm1mcC1zLXJlYWR5IC5tZnAtcHJlbG9hZGVyIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4ubWZwLXMtZXJyb3IgLm1mcC1jb250ZW50IHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG5idXR0b24ubWZwLWNsb3NlLFxyXG5idXR0b24ubWZwLWFycm93IHtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgLy8gYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgei1pbmRleDogMTA0NjtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xyXG59XHJcblxyXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYm9yZGVyOiAwO1xyXG59XHJcblxyXG4ubWZwLWNsb3NlIHtcclxuICB3aWR0aDogNDRweDtcclxuICBoZWlnaHQ6IDQ0cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDQ0cHg7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRvcDogMDtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG9wYWNpdHk6IDAuNjU7XHJcbiAgcGFkZGluZzogMCAwIDE4cHggMTBweDtcclxuICBjb2xvcjogI0ZGRjtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1zaXplOiAyOHB4O1xyXG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgQmFza2VydmlsbGUsIG1vbm9zcGFjZTtcclxuXHJcbiAgJjpob3ZlcixcclxuICAmOmZvY3VzIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG4gICY6YWN0aXZlIHtcclxuICAgIHRvcDogMXB4O1xyXG4gIH1cclxufVxyXG5cclxuLm1mcC1jbG9zZS1idG4taW4gLm1mcC1jbG9zZSB7XHJcbiAgY29sb3I6ICMzMzM7XHJcbn1cclxuXHJcbi5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY2xvc2UsXHJcbi5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNsb3NlIHtcclxuICBjb2xvcjogI0ZGRjtcclxuICByaWdodDogLTZweDtcclxuICB0ZXh0LWFsaWduOiByaWdodDtcclxuICBwYWRkaW5nLXJpZ2h0OiA2cHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5tZnAtY291bnRlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICBjb2xvcjogI0NDQztcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuLm1mcC1hcnJvdyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIG9wYWNpdHk6IDAuNjU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHRvcDogNTAlO1xyXG4gIG1hcmdpbi10b3A6IC0xOXB4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgLy8gd2lkdGg6IDkwcHg7XHJcbiAgd2lkdGg6IDIycHg7XHJcbiAgLy8gaGVpZ2h0OiAxMTBweDtcclxuICBoZWlnaHQ6IDM4cHg7XHJcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG4gIC5tZnAtYXJyb3c6YWN0aXZlIHtcclxuICAgIC8vIG1hcmdpbi10b3A6IC01NHB4O1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSguOSk7XHJcbiAgfVxyXG4gIC5tZnAtYXJyb3c6aG92ZXIsXHJcbiAgLm1mcC1hcnJvdzpmb2N1cyB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxuICAvLyAubWZwLWFycm93OmJlZm9yZSxcclxuICAvLyAubWZwLWFycm93OmFmdGVyIHtcclxuICAvLyAgIGNvbnRlbnQ6ICcnO1xyXG4gIC8vICAgZGlzcGxheTogYmxvY2s7XHJcbiAgLy8gICB3aWR0aDogMDtcclxuICAvLyAgIGhlaWdodDogMDtcclxuICAvLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAvLyAgIGxlZnQ6IDA7XHJcbiAgLy8gICB0b3A6IDA7XHJcbiAgLy8gICBtYXJnaW4tdG9wOiAzNXB4O1xyXG4gIC8vICAgbWFyZ2luLWxlZnQ6IDM1cHg7XHJcbiAgLy8gICBib3JkZXI6IG1lZGl1bSBpbnNldCB0cmFuc3BhcmVudDtcclxuICAvLyB9XHJcbiAgLy8gLm1mcC1hcnJvdzphZnRlciB7XHJcbiAgLy8gICBib3JkZXItdG9wLXdpZHRoOiAxM3B4O1xyXG4gIC8vICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTNweDtcclxuICAvLyAgIHRvcDogOHB4O1xyXG4gIC8vIH1cclxuICAvLyAubWZwLWFycm93OmJlZm9yZSB7XHJcbiAgLy8gICBib3JkZXItdG9wLXdpZHRoOiAyMXB4O1xyXG4gIC8vICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjFweDtcclxuICAvLyAgIG9wYWNpdHk6IDAuNztcclxuICAvLyB9XHJcblxyXG4ubWZwLWFycm93LWxlZnQge1xyXG4gIGxlZnQ6IDEwcHg7XHJcbiAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvYXJyb3ctbGVmdC1hbHQtcGxhaW4ucG5nJykgdG9wIGxlZnQgbm8tcmVwZWF0IHRyYW5zcGFyZW50O1xyXG59XHJcbiAgLm1mcC1hcnJvdy1sZWZ0OmFmdGVyIHtcclxuICAgIGJvcmRlci1yaWdodDogMTdweCBzb2xpZCAjRkZGO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDMxcHg7XHJcbiAgfVxyXG4gIC5tZnAtYXJyb3ctbGVmdDpiZWZvcmUge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDI1cHg7XHJcbiAgICBib3JkZXItcmlnaHQ6IDI3cHggc29saWQgIzNGM0YzRjtcclxuICB9XHJcblxyXG4ubWZwLWFycm93LXJpZ2h0IHtcclxuICByaWdodDogMTBweDtcclxuICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9hcnJvdy1yaWdodC1hbHQtcGxhaW4ucG5nJykgdG9wIGxlZnQgbm8tcmVwZWF0IHRyYW5zcGFyZW50O1xyXG5cclxuICAvLyAmOmFmdGVyIHtcclxuICAvLyAgIGJvcmRlci1sZWZ0OiAxN3B4IHNvbGlkICNGRkY7XHJcbiAgLy8gICBtYXJnaW4tbGVmdDogMzlweDtcclxuICAvLyB9XHJcbiAgLy8gJjpiZWZvcmUge1xyXG4gIC8vICAgYm9yZGVyLWxlZnQ6IDI3cHggc29saWQgIzNGM0YzRjtcclxuICAvLyB9XHJcblxyXG59XHJcblxyXG4ubWZwLWlmcmFtZS1ob2xkZXIge1xyXG4gIHBhZGRpbmctdG9wOiA0MHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiA0MHB4O1xyXG5cclxuICAubWZwLWNvbnRlbnQge1xyXG4gICAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogOTAwcHg7XHJcbiAgfVxyXG4gIC5tZnAtY2xvc2Uge1xyXG4gICAgdG9wOiAtNDBweDtcclxuICB9XHJcbn1cclxuXHJcbi5tZnAtaWZyYW1lLXNjYWxlciB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcGFkZGluZy10b3A6IDU2LjI1JTtcclxuXHJcbiAgaWZyYW1lIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XHJcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xyXG4gIH1cclxufVxyXG5cclxuLyogTWFpbiBpbWFnZSBpbiBwb3B1cCAqL1xyXG5pbWcubWZwLWltZyB7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogYXV0bztcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBsaW5lLWhlaWdodDogMDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHBhZGRpbmc6IDQwcHggMCA0MHB4O1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4vKiBUaGUgc2hhZG93IGJlaGluZCB0aGUgaW1hZ2UgKi9cclxuLm1mcC1maWd1cmUge1xyXG4gIGxpbmUtaGVpZ2h0OiAwO1xyXG5cclxuICAmOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogNDBweDtcclxuICAgIGJvdHRvbTogNDBweDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XHJcbiAgICBiYWNrZ3JvdW5kOiAjNDQ0O1xyXG4gIH1cclxuICBzbWFsbCB7XHJcbiAgICBjb2xvcjogI0JEQkRCRDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XHJcbiAgfVxyXG4gIGZpZ3VyZSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG59XHJcblxyXG4ubWZwLWJvdHRvbS1iYXIge1xyXG4gIG1hcmdpbi10b3A6IC0zNnB4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDEwMCU7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBjdXJzb3I6IGF1dG87XHJcbn1cclxuXHJcbi5tZnAtdGl0bGUge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XHJcbiAgY29sb3I6ICNGM0YzRjM7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDM2cHg7XHJcbn1cclxuXHJcbi5tZnAtaW1hZ2UtaG9sZGVyIC5tZnAtY29udGVudCB7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ubWZwLWdhbGxlcnkgLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1maWd1cmUge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAwcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSksXHJcbiAgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogMzAwcHgpIHtcclxuXHJcbiAgLy8gUmVtb3ZlIGFsbCBwYWRkaW5ncyBhcm91bmQgdGhlIGltYWdlIG9uIHNtYWxsIHNjcmVlblxyXG5cclxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1pbWFnZS1ob2xkZXIge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuICB9XHJcbiAgLm1mcC1pbWctbW9iaWxlIGltZy5tZnAtaW1nIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWZpZ3VyZTphZnRlciB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgfVxyXG4gIC5tZnAtaW1nLW1vYmlsZSAubWZwLWZpZ3VyZSBzbWFsbCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gIH1cclxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1ib3R0b20tYmFyIHtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHRvcDogYXV0bztcclxuICAgIHBhZGRpbmc6IDNweCA1cHg7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cclxuICAgICY6ZW1wdHkge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICAubWZwLWltZy1tb2JpbGUgLm1mcC1jb3VudGVyIHtcclxuICAgIHJpZ2h0OiA1cHg7XHJcbiAgICB0b3A6IDNweDtcclxuICB9XHJcbiAgLm1mcC1pbWctbW9iaWxlIC5tZnAtY2xvc2Uge1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB3aWR0aDogMzVweDtcclxuICAgIGhlaWdodDogMzVweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XHJcbiAgLm1mcC1hcnJvdyB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43NSk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xyXG4gIH1cclxuICAubWZwLWFycm93LWxlZnQge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMDtcclxuICB9XHJcbiAgLm1mcC1hcnJvdy1yaWdodCB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCU7XHJcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlO1xyXG4gIH1cclxuICAubWZwLWNvbnRhaW5lciB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDZweDtcclxuICB9XHJcbn1cclxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyAgICAgICAgICAgICAgICAgICAgQlVUVE9OU1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4uYnRuIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIGhlaWdodDogMzJweDtcclxuICBsaW5lLWhlaWdodDogMzRweDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgYmFja2dyb3VuZDogJGJsdWU7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgQGluY2x1ZGUgZWN6YXIoNjAwKTtcclxuICBwYWRkaW5nOiAwIDEwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gIHRyYW5zaXRpb246IGFsbCAuMThzIGVhc2U7XHJcblxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6IHNhdHVyYXRlKGxpZ2h0ZW4oJGJsdWUsIDEwJSksIDUwJSk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xyXG4gICAgYm94LXNoYWRvdzogMCAxcHggNXB4IGJsYWNrKC43KTtcclxuICB9XHJcblxyXG5cclxuICAvLyBZRUxMT1cgVkVSU0lPTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgJi55ZWxsb3cge1xyXG4gICAgYmFja2dyb3VuZDogJHllbGxvdztcclxuICAgIGNvbG9yOiAkcHVycGxlO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCR5ZWxsb3csIDE1JSk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5ib3JkZXIge1xyXG4gICAgICBib3JkZXItY29sb3I6ICR5ZWxsb3c7XHJcbiAgICAgIGNvbG9yOiAkeWVsbG93O1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHllbGxvdztcclxuICAgICAgICBjb2xvcjogJHB1cnBsZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gU01BTEwgVkVSU0lPTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgJi5zIHtcclxuICAgIGhlaWdodDogMjRweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgJi5ib3JkZXIge1xyXG4gICAgICBib3JkZXItd2lkdGg6IDFweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLy8gTEFSR0UgVkVSU0lPTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgJi5sIHtcclxuICAgIGhlaWdodDogNTBweDtcclxuICAgIGxpbmUtaGVpZ2h0OiA1MnB4O1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogMjVweDtcclxuXHJcbiAgICAmLmJvcmRlciB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQk9SREVSRUQgVkVSU0lPTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgJi5ib3JkZXIge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXI6IHNvbGlkIDJweCAkYmx1ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xyXG4gICAgY29sb3I6ICRibHVlO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcclxuICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4IGJsYWNrKC4yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuIiwiLmhlYWRlciB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCM1MzQ3OGQsICMzOTNmN2MpO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtYWluLWNvbG9yO1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICB6LWluZGV4OiAxMDAwO1xyXG4gIGJveC1zaGFkb3c6IDAgM3B4IDIwcHggYmxhY2soLjMpO1xyXG4gIGhlaWdodDogNjhweDtcclxuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xyXG5cclxuICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuXHJcbiAgJiA+IC5jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgfVxyXG5cclxuICBuYXYge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcblxyXG4gICAgLmJ1cmd1ZXItaWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogXCLimLBcIjtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG5cclxuICAgICAgQGluY2x1ZGUgYmVsb3coODUwcHgpIHtcclxuICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4IGJsYWNrO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDcwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiA2N3B4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA2OHB4O1xyXG4gICAgICAgIC8vIGJhY2tncm91bmQ6IGJsdWU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4IHdoaXRlKC4xKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5vcGVuIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlLWRhcms7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYmVsb3coODUwcHgpIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICB1bCB7XHJcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAvLyB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG5cclxuICAgICAgQGluY2x1ZGUgYmVsb3coODUwcHgpIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDY5cHg7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLWRhcms7XHJcbiAgICAgICAgei1pbmRleDogMTAwNTtcclxuXHJcbiAgICAgICAgJi5vcGVuIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcblxyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBAaW5jbHVkZSBiZWxvdyg4NTBweCkge1xyXG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggYmxhY2s7XHJcbiAgICAgICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggd2hpdGUoLjEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBhIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBsaW5lLWhlaWdodDogNzBweDtcclxuICAgICAgICBwYWRkaW5nOiAwIDEzcHg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4xNXMgZWFzZTtcclxuICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4IGJsYWNrKC43KTtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaW5jbHVkZSBiZWxvdyg4NTBweCkge1xyXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5maXhlZCB7XHJcbiAgICAubG9nbyB7XHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBoZWlnaHQ6IDcxcHg7XHJcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICAvLyBsZWZ0OiAtMzVweDtcclxuICAgICAgfVxyXG4gICAgICBpbWcge1xyXG4gICAgICAgIHdpZHRoOiAxNDBweDtcclxuICAgICAgICAvLyBoZWlnaHQ6IDExMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuXHJcbi5sb2dvIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAtNXB4O1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZTtcclxuXHJcbiAgQGluY2x1ZGUgYmVsb3coNjIwcHgpIHtcclxuICAgIHdpZHRoOiAxNTBweDtcclxuICB9XHJcblxyXG4gICY6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGhlaWdodDogNTBweDtcclxuICAgIHdpZHRoOiAyMDBweDtcclxuICAgIGJhY2tncm91bmQ6IHJlZDtcclxuICAgIHRvcDogMjFweDtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChcclxuICAgICAgZWxsaXBzZSBmYXJ0aGVzdC1zaWRlIGF0IDEwMHB4IDcwcHgsXHJcbiAgICAgIHJnYmEoIzg1NzNkYywgLjU1KSAwLFxyXG4gICAgICByZ2JhKCM4NTczZGMsIC41NSkgNjUlLFxyXG4gICAgICByZ2JhKCM4NTczZGMsIDApXHJcbiAgICApO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIC4yNXM7XHJcbiAgfVxyXG5cclxuICBpbWcge1xyXG4gICAgd2lkdGg6IDMyMHB4O1xyXG4gICAgLy8gaGVpZ2h0OiAyODBweDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2U7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB6LWluZGV4OiAxMDAyO1xyXG4gIH1cclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICB0b3A6IDBweDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgxLjAyKTtcclxuICB9XHJcblxyXG4gIC50d2l0Y2gtaW50ZWdyYXRpb24tcGFnZSAmIHtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgaGVpZ2h0OiA3MXB4O1xyXG4gICAgICB3aWR0aDogMjAwcHg7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgLy8gbGVmdDogLTM1cHg7XHJcbiAgICB9XHJcbiAgICBpbWcge1xyXG4gICAgICB3aWR0aDogMTQwcHg7XHJcbiAgICAgIC8vIGhlaWdodDogMTEwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uc29jaWFsIHtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcGFkZGluZzogMDtcclxuICBtYXJnaW46IDA7XHJcblxyXG4gIEBpbmNsdWRlIGJlbG93KDg1MHB4KSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMDtcclxuICAgIHRvcDogMDtcclxuICB9XHJcblxyXG4gIGxpIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIGZvbnQtc2l6ZTogZW0oMjIsMjApO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICAgICYuaGVhZGVyLXN0b3JlLWljb24ge1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgdHJhbnNpdGlvbjogYWxsIC4xNXMgZWFzZTtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwcztcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC45KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGluY2x1ZGUgYmVsb3coODUwcHgpIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5zb2NpYWwtZmFjZWJvb2ssXHJcbiAgICAmLnNvY2lhbC10dW1ibHIge1xyXG4gICAgICBAaW5jbHVkZSBiZWxvdyg4NTBweCkge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5zb2NpYWwtcmVkZGl0IHtcclxuICAgICAgQGluY2x1ZGUgYmVsb3coODUwcHgpIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmhlYWRlci1zdG9yZS1pY29uLXN0ZWFtIHtcclxuICAgICAgYSB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xyXG4gICAgICAgIHdpZHRoOiA5MnB4O1xyXG4gICAgICAgIGhlaWdodDogNjhweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9uYXYtaWNvbi1zdGVhbS5wbmcnKSBjZW50ZXIgbm8tcmVwZWF0O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSByZXRpbmEge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvbmF2LWljb24tc3RlYW1AMngucG5nJykgY2VudGVyIG5vLXJlcGVhdDtcclxuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogOTJweCA2OHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgYmVsb3coMTE0MHB4KSB7XHJcbiAgICAgICAgICB3aWR0aDogMzRweDtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL25hdi1pY29uLXN0ZWFtLXMucG5nJykgY2VudGVyIG5vLXJlcGVhdDtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSByZXRpbmEge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9uYXYtaWNvbi1zdGVhbS1zQDJ4LnBuZycpIGNlbnRlciBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzRweCBhdXRvO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuaGVhZGVyLXN0b3JlLWljb24tcHM0IHtcclxuICAgICAgYSB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xyXG4gICAgICAgIHdpZHRoOiAxMTRweDtcclxuICAgICAgICBoZWlnaHQ6IDY4cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvbmF2LWljb24tcHM0LnBuZycpIGNlbnRlciBuby1yZXBlYXQ7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIGJlbG93KDExNDBweCkge1xyXG4gICAgICAgICAgd2lkdGg6IDM3cHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9uYXYtaWNvbi1wczQtcy5wbmcnKSBjZW50ZXIgbm8tcmVwZWF0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgYSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGxpbmUtaGVpZ2h0OiA2N3B4O1xyXG4gICAgcGFkZGluZzogMCA0cHg7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjE1cyBlYXNlO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCBibGFjayguNyk7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpICFpbXBvcnRhbnQ7XHJcbiAgICAgIC8vIGJhY2tncm91bmQtc2l6ZTogMTMwJSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJlbG93KDg1MHB4KSB7XHJcbiAgICAgIHBhZGRpbmc6IDAgMXB4O1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgaW1nIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG59XHJcbiIsIi5yZXZpZXdzIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKCRyZXZpZXcsIC42KTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxuXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBoZWlnaHQ6IDI4cHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRvcDogLTI4cHg7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvZGlhZ29uYWwtcGF0dGVybi10b3AucG5nJyk7XHJcbiAgICB6LWluZGV4OiAxMDAwO1xyXG4gIH1cclxuICAmOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgaGVpZ2h0OiAzOHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBib3R0b206IC0zOHB4O1xyXG4gICAgbGVmdDogMDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2RpYWdvbmFsLXBhdHRlcm4tYm90LnBuZycpO1xyXG4gICAgei1pbmRleDogMTAwMDtcclxuICB9XHJcbn1cclxuIiwiLmdhbWUge1xyXG4gIHBhZGRpbmctdG9wOiA2MHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiA2MHB4O1xyXG4gIC8vIGJhY2tncm91bmQ6XHJcbiAgLy8gICBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZWQsIGJsdWUgMjBweCksXHJcbiAgLy8gICBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjMjcxZTM5LCAjMmUyMzQzIDM1MHB4KSxcclxuICAvLyAgIHVybCgnLi4vaW1nL2RpdmlkZXItZ2FtZS10b3AucG5nJykgdG9wIGNlbnRlciBuby1yZXBlYXRcclxuICAvLyA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJlMjM0MztcclxuICBiYWNrZ3JvdW5kLWltYWdlOlxyXG4gICAgbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgYmxhY2soMC4yKSwgYmxhY2soMCkgMzBweCksXHJcbiAgICBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCBibGFjaygwLjIpLCBibGFjaygwKSAyMDBweCksXHJcbiAgICB1cmwoJy4uL2ltZy9kaXZpZGVyLWdhbWUtdG9wLnBuZycpLFxyXG4gICAgdXJsKCcuLi9pbWcvc3RyaWtlcnMtZWRnZS1sb2dvLWJnLnBuZycpLFxyXG4gICAgdXJsKCcuLi9pbWcvZ2FtZS1iZy1sb2dvLmpwZycpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjpcclxuICAgIHRvcCBjZW50ZXIsXHJcbiAgICB0b3AsXHJcbiAgICB0b3AsXHJcbiAgICBjZW50ZXIsXHJcbiAgICB0b3AgNTBweCBjZW50ZXI7XHJcblxyXG4gIC5oZWFkaW5nLXRpdGxlIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcblxyXG59XHJcblxyXG4uZ2FtZS1zZWN0aW9uIHtcclxuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG5cclxuICBoMyB7XHJcbiAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICBjb2xvcjogJGJsdWU7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCBibGFjaztcclxuICAgIGxpbmUtaGVpZ2h0OiAxZW07XHJcbiAgfVxyXG4gIHAge1xyXG4gICAgY29sb3I6ICRwdXJwbGUtbGlnaHQ7XHJcbiAgfVxyXG5cclxuICAuZ2FtZS1pbGx1c3Qge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGhlaWdodDogNHB4O1xyXG4gICAgICBib3R0b206IC00cHg7XHJcbiAgICAgIGxlZnQ6IDE4cHg7XHJcbiAgICAgIHJpZ2h0OiAxOHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kOiBibGFjaztcclxuICAgIH1cclxuXHJcbiAgICBpbWcge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAuZ2FtZS10ZXh0IHtcclxuICAgIHBhZGRpbmctdG9wOiA4NXB4O1xyXG5cclxuICAgIEBpbmNsdWRlIGwge1xyXG4gICAgICBwYWRkaW5nLXRvcDogNDBweDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG0ge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMjBweDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIHMge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYucnRsIHtcclxuICAgICpbY2xhc3NePVwiY29sLVwiXSB7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHMge1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuZ2FtZS10ZXh0IHtcclxuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcblxyXG4gICAgICBAaW5jbHVkZSBzIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4uZ2FtZS1pbnRybyB7XHJcbiAgcGFkZGluZy1ib3R0b206IDI1cHg7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTpcclxuICAgIHVybCguLi9pbWcvZ2FtZS1iZy1sZWZ0LmpwZyksXHJcbiAgICB1cmwoLi4vaW1nL2dhbWUtYmctcmlnaHQuanBnKTtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOlxyXG4gICAgdG9wIGxlZnQsXHJcbiAgICB0b3AgcmlnaHQ7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDMwMHB4O1xyXG5cclxuICBAaW5jbHVkZSBtIHtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwcHg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIHMge1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAxNTBweDtcclxuICB9XHJcbiAgQGluY2x1ZGUgeHMge1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDBweDtcclxuICB9XHJcblxyXG4gIC5nYW1lLWludHJvLWxvZ28ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIG1hcmdpbi1yaWdodDogMjBweDtcclxuICB9XHJcbiAgaDIge1xyXG4gICAgY29sb3I6ICR5ZWxsb3c7XHJcbiAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC5nYW1lLWludHJvLWV4dGVuZGVkIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi5nYW1lLWRvZGdlYnJhd2wge1xyXG5cclxufVxyXG4uZ2FtZS1naXQtZ3VkIHt9XHJcbi5nYW1lLW9ubGluZS1sb2NhbCB7fVxyXG4uZ2FtZS1waWNrLXVwIHt9XHJcbiIsIi50d2l0Y2gge1xyXG4gIGJhY2tncm91bmQ6ICR0d3Q7XHJcblxyXG4gIGgyIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1hcmdpbi10b3A6IC00MHB4O1xyXG4gIH1cclxuXHJcbiAgaDMge1xyXG4gICAgY29sb3I6ICR5ZWxsb3c7XHJcbiAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAycHggMnB4IGJsYWNrO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xyXG4gIH1cclxufVxyXG4udHdpdGNoLXRleHQge1xyXG4gIGZvbnQtc2l6ZTogMThweDtcclxuICBsaW5lLWhlaWdodDogMS4zZW07XHJcblxyXG4gIGEge1xyXG4gICAgY29sb3I6ICR5ZWxsb3c7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICB9XHJcblxyXG4gIHNtYWxsIHtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICB9XHJcbiAgXHJcbn1cclxuXHJcbi50d2l0Y2gtaWxsdXN0cmF0aW9uIHtcclxuICBAaW5jbHVkZSBzIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcbn1cclxuXHJcbi5saXZlLXN0cmVhbXMge1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IC0zMHB4O1xyXG5cclxuICAubGl2ZS1zdHJlYW0ge1xyXG4gICAgaW1nIHtcclxuICAgICAgYm94LXNoYWRvdzogMCAzcHggMTBweCBibGFjaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gICAgICAgICAgICAgVFdJVENIIElOVEVHUkFUSU9OXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi50d2l0Y2gtaW50ZWdyYXRpb24tcGFnZSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCAtNDAwcHggY2VudGVyO1xyXG5cclxuICAudHdpdGNoLWludGVncmF0aW9uLXBhZ2UtY29udGFpbmVyIHtcclxuICAgIC8vIHBhZGRpbmctdG9wOiAyNDBweDtcclxuICAgIHBhZGRpbmctdG9wOiA2OHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcbiAgICAvLyBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMnB4IGRhcmtlbigkcHVycGxlLWRhcmssIDUlKTtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoJHB1cnBsZS1kYXJrLCAuOCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLmhlYWRpbmctaGVybyB7XHJcbiAgICAvLyB3aWR0aDpcclxuICAgIGhlaWdodDogNDYwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL3R3aXRjaC1pbnRlZ3JhdGlvbi1oZXJvLWJhY2tncm91bmQuanBnKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHdoaXRlKC4yNSk7XHJcbiAgfVxyXG5cclxuICAuaGVhZGluZy1oZXJvLWNvbnRlbnQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgaGVpZ2h0OiA0NjBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDc1cHg7XHJcblxyXG4gICAgLnR3aXRjaC1mYWNlLWNhbSB7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IGJsYWNrKC41KTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBib3R0b206IC00MHB4O1xyXG5cclxuICAgICAgaW1nIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50d2l0Y2gtY2hhdCB7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IGJsYWNrKC41KTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgYm90dG9tOiAtNDBweDtcclxuXHJcbiAgICAgIGltZyB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudHdpdGNoLWludGVncmF0aW9uLWxvZ28ge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogNTAlO1xyXG4gICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIC5oZWFkaW5nIHtcclxuICAgIC5oZWFkaW5nLXRpdGxlIHtcclxuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLnR3aXRjaC1pbnRybyB7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zNWVtO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCBibGFjaztcclxuICB9XHJcblxyXG5cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgLy8gICAgICAgICAgICAgUEVSU09OQSBTV0lUQ0hFUlxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgLnR3aXRjaC1wZXJzb25hIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgfVxyXG5cclxuICAudHdpdGNoLXBlcnNvbmEtc2VsZWN0b3Ige1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAub3Ige1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIC8vIGJhY2tncm91bmQ6IHJlZDtcclxuICAgICAgdG9wOiAxMTVweDtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgIGJhY2tncm91bmQ6ICR5ZWxsb3c7XHJcbiAgICAgIGJvcmRlcjogc29saWQgM3B4IGJsYWNrO1xyXG4gICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICAgIHBhZGRpbmc6IDJweCA2cHggMCA2cHg7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB9XHJcblxyXG4gICAgbGkge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHdpZHRoOiAzNDBweDtcclxuICAgICAgaGVpZ2h0OiAyMzFweDtcclxuICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAvLyBiYWNrZ3JvdW5kOiByZWQ7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xyXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2U7XHJcblxyXG4gICAgICBhIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgICBpbWcge1xyXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIC8vIGJhY2tncm91bmQ6IGJsYWNrKC41KTtcclxuICAgICAgICBib3R0b206IDQzcHg7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIHRleHQtc2hhZG93OiAwIDJweCAxMHB4IGJsYWNrO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAkeWVsbG93O1xyXG4gICAgICAgIC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDFweDtcclxuICAgICAgICAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiAkcHVycGxlLWRhcms7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAudHdpdGNoLXBlcnNvbmEtc3RyZWFtZXJzLFxyXG4gICAgLnR3aXRjaC1wZXJzb25hLXZpZXdlcnMge1xyXG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0O1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XHJcbiAgICAgIH1cclxuICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0O1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50d2l0Y2gtcGVyc29uYS1zdHJlYW1lcnMge1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL3R3aXRjaC1pbnRlZ3JhdGlvbi1zdHJlYW1lcnMtc3ByaXRlc2hlZXQucG5nKTtcclxuICAgIH1cclxuICAgIC50d2l0Y2gtcGVyc29uYS12aWV3ZXJzIHtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy90d2l0Y2gtaW50ZWdyYXRpb24tdmlld2Vycy1zcHJpdGVzaGVldC5wbmcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXNpZGUge1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG5cclxuICAgIHVsIHtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuXHJcbiAgICAgIGxpIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhIHtcclxuICAgICAgdHJhbnNpdGlvbjogYWxsIC4xNXM7XHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaDIge1xyXG4gICAgY29sb3I6ICRibHVlO1xyXG4gICAgZm9udC1zaXplOiAyOHB4O1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCBibGFjayguNzUpO1xyXG4gIH1cclxuXHJcbiAgaDMge1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG5cclxuICB9XHJcblxyXG4gIC5mb3Itc3RyZWFtZXJzLFxyXG4gIC5mb3Itdmlld2VycyxcclxuICAuZ2FtZS1tb2RpZmllcnMsXHJcbiAgLmZhcSxcclxuICAuY2hhdC1jb21tYW5kcyxcclxuICAuY29udGFjdCB7XHJcbiAgICBwYWRkaW5nLXRvcDogNTZweDtcclxuXHJcbiAgICBoMiB7XHJcbiAgICAgIGZvbnQtc2l6ZTogNDJweDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICAgJjpiZWZvcmUsXHJcbiAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGhlaWdodDogNXB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRibHVlO1xyXG4gICAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IGJsYWNrO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcclxuICAgICAgfVxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2tld1goNDVkZWcpO1xyXG4gICAgICB9XHJcbiAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2tld1goLTQ1ZGVnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmZvci1zdHJlYW1lcnMge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHVsIHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiA1MHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmZvci12aWV3ZXJzIHtcclxuICAgIHBhZGRpbmctdG9wOiA1MHB4O1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICBoMiB7XHJcbiAgICAgIGZvbnQtc2l6ZTogNDJweDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmdhbWUtbW9kaWZpZXJzIHtcclxuICAgIHBhZGRpbmctdG9wOiA1MHB4O1xyXG5cclxuICAgIGgyIHtcclxuICAgICAgZm9udC1zaXplOiA0MnB4O1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudHdpdGNoLW1vZC1saXN0IHtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgIC8vIG1hcmdpbjogMDtcclxuICAgIC8vIHBhZGRpbmc6IDA7XHJcblxyXG4gICAgbGkge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xyXG5cclxuICAgICAgaDMge1xyXG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgICAgfVxyXG4gICAgICBwIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICBjb2xvcjogJHB1cnBsZS1saWdodDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmZhcSB7XHJcblxyXG4gICAgdWwge1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgfVxyXG4gICAgLnFhIHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gICAgICAucSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgIH1cclxuICAgICAgLmEge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDNweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNoYXQtY29tbWFuZHMge1xyXG4gICAgdWwge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XHJcbiAgICAgIGxpIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgICB9XHJcbiAgICAgIGIge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgIH1cclxuICAgICAgcCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jb250YWN0IHtcclxuXHJcbiAgfVxyXG5cclxuICAudHdpdGNoLW5hdiB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiBibGFjaztcclxuICAgIG1hcmdpbi10b3A6IDM1cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG5cclxuICAgIHVsIHtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgYm9yZGVyOiBzb2xpZCAzcHggJHllbGxvdztcclxuXHJcbiAgICAgIGxpIHtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIHdpZHRoOiAyMCU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7XHJcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjE1cyBlYXNlO1xyXG5cclxuICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkeWVsbG93O1xyXG4gICAgICAgICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi5hcmVuYXMge1xyXG4gIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2RpdmlkZXItYXJlbmFzLWJvdHRvbS5wbmcnKSBjZW50ZXIgYm90dG9tIG5vLXJlcGVhdCAjMmMxZDM2O1xyXG4gIHBhZGRpbmctdG9wOiA2MHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiA3MHB4O1xyXG5cclxuICAuaGVhZGluZy10aXRsZSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgLmhlYWRpbmctc3VidGl0bGUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gIH1cclxuICAuaGVhZGluZy1pbnRybyB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zZW07XHJcbiAgfVxyXG5cclxuICAuYXJlbmEtZGV0YWlscy1jb250YWluZXIge1xyXG5cclxuICB9XHJcblxyXG4gIC5hcmVuYS1kZXRhaWxzIHtcclxuICAgIGltZyB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgICBAaW5jbHVkZSBwaXhlbGF0ZWQ7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gICAgcCB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMS40ZW07XHJcbiAgICB9XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAuYXJlbmEtdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgY29sb3I6ICRibHVlO1xyXG4gICAgbWFyZ2luOiAwIDAgMTBweCAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG59XHJcblxyXG4uYXJlbmEtbGlzdCB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmctbGVmdDogNTRweDtcclxuXHJcbiAgQGluY2x1ZGUgbSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBwYWRkaW5nLXRvcDogMjVweDtcclxuICB9XHJcblxyXG4gIHVsIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBsaSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAvLyBib3gtc2hhZG93OiAwIDRweCBibGFjaztcclxuXHJcbiAgICBAaW5jbHVkZSBtIHtcclxuICAgICAgd2lkdGg6IDI0JTtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIG1hcmdpbjogMCAuNSU7XHJcbiAgICB9XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IC00cHg7XHJcbiAgICAgIGhlaWdodDogNHB4O1xyXG4gICAgICBsZWZ0OiA0cHg7XHJcbiAgICAgIHJpZ2h0OiA0cHg7XHJcbiAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xyXG4gICAgfVxyXG5cclxuICAgIGEge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjE4cyBlYXNlO1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaW1nIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgICAuZmlsdGVyIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICAvLyB3aWR0aDogMTAwJTtcclxuICAgICAgLy8gaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRwdXJwbGUsIC44KTtcclxuICAgICAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlO1xyXG5cclxuICAgICAgLnRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgaGVpZ2h0OiAzNHB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzNHB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBsIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGluY2x1ZGUgcyB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpbmNsdWRlIHhzIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGluY2x1ZGUgYmVsb3coNDQwcHgpIHtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgIGhlaWdodDogMzRweDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNHB4O1xyXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2FyZW5hLXNlbGVjdC1mbG91cmlzaC5wbmcnKSBjZW50ZXIgbm8tcmVwZWF0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgICYuYWN0aXZlIHtcclxuICAgICAgLmZpbHRlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkeWVsbG93LCAuNik7XHJcbiAgICAgICAgLnRpdGxlIHtcclxuICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2FyZW5hLXNlbGVjdC1mbG91cmlzaC13aGl0ZS5wbmcnKSBjZW50ZXIgbm8tcmVwZWF0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIubWVkaWEge1xyXG4gIHBhZGRpbmctdG9wOiA2MHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiA0MHB4O1xyXG5cclxuICBoMyB7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBjb2xvcjogJGJsdWU7XHJcbiAgfVxyXG59XHJcblxyXG4ubWVkaWEtZGwtYWxsIHtcclxuICBtYXJnaW4tdG9wOiAzNXB4O1xyXG59XHJcblxyXG4uaW1hZ2UtbGlzdCB7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuXHJcbiAgbGkge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHJcbiAgICBhIHtcclxuICAgICAgZGlzcGxheTpibG9jaztcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjE4cyBlYXNlO1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgYm90dG9tOiAtNHB4O1xyXG4gICAgICAgIGhlaWdodDogNHB4O1xyXG4gICAgICAgIGxlZnQ6IDRweDtcclxuICAgICAgICByaWdodDogNHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICBtYXgtaGVpZ2h0OiA5NXB4OyAvLyBmb3JjZSBpbWFnZSBoZWlnaHQgdG8gYmUgdGhlIHNhbWUgYW5kIGtlZXAgaW1hZ2UgZ2FsbGVyeSBpbiBhIGdyaWRcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuZ2lmLWxpc3Qge1xyXG4gICAgcGFkZGluZy1sZWZ0OiA5cHggIWltcG9ydGFudDtcclxuXHJcbiAgICBAaW5jbHVkZSBtIHtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi5uZXdzIHtcclxuICBwYWRkaW5nLXRvcDogNjBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNTBweDtcclxuICBiYWNrZ3JvdW5kOlxyXG4gICAgdXJsKCcuLi9pbWcvZGl2aWRlci1uZXdzLWJvdHRvbS5wbmcnKSBib3R0b20gY2VudGVyIG5vLXJlcGVhdCxcclxuICAgIHVybCgnLi4vaW1nL2RpdmlkZXItbmV3cy10b3AucG5nJykgdG9wIGNlbnRlciBuby1yZXBlYXQgJGJsdWUtZGFyaztcclxufVxyXG5cclxuLm5ld3MtbGlzdCB7XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG59XHJcblxyXG4ubmV3cy1pdGVtLXByZXZpZXcge1xyXG4gIEBpbmNsdWRlIHMge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICB9XHJcblxyXG4gIGZpZ3VyZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICAgIGltZyB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xyXG4gICAgICBoZWlnaHQ6IDRweDtcclxuICAgICAgbGVmdDogNHB4O1xyXG4gICAgICByaWdodDogNHB4O1xyXG4gICAgICBib3R0b206IC00cHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC50aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgMnB4IDNweCBibGFjaztcclxuICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuICAgIG1hcmdpbi10b3A6IDE0cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMS4yZW07XHJcblxyXG4gICAgYSB7XHJcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAuZGF0ZSB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogJGJsdWU7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRibHVlLWRhcms7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxcHg7XHJcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHB1cnBsZS1saWdodCwgLjIpO1xyXG4gICAgICB0b3A6IDExcHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5raWNrZXIge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMzVlbTtcclxuICB9XHJcbn1cclxuIiwiLm5ld3NsZXR0ZXIge1xyXG4gIHBhZGRpbmc6IDIwcHggMCAzNXB4IDA7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAucGFnZS1uZXdzICYsXHJcbiAgLnR3aXRjaC1pbnRlZ3JhdGlvbi1wYWdlICYge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgkcHVycGxlLWRhcmssIC44KSwgJHB1cnBsZS1kYXJrKTtcclxuICB9XHJcblxyXG5cclxuICBoMiB7XHJcbiAgICBjb2xvcjogJGJsdWU7XHJcbiAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCBibGFjayguOCk7XHJcbiAgfVxyXG4gIHAge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gIH1cclxuICBpbnB1dFt0eXBlPVwic3VibWl0XCJdLFxyXG4gIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcclxuICBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICBoZWlnaHQ6IDQ0cHg7XHJcbiAgICBsaW5lLWhlaWdodDogNDRweDtcclxuICAgIG1hcmdpbjogMCAycHg7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICB9XHJcblxyXG4gIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcclxuICBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLWxpZ2h0O1xyXG4gICAgY29sb3I6ICRwdXJwbGUtZGFyaztcclxuICAgIHBhZGRpbmc6IDAgOHB4O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgQGluY2x1ZGUgZWN6YXIoNDAwKTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAuMTVzIGVhc2U7XHJcblxyXG4gICAgJjpwbGFjZWhvbGRlciB7XHJcbiAgICAgIGNvbG9yOiBibHVlLWRhcmtlcjtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgeHhzIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGhlaWdodDogNDRweDtcclxuICAgIGJhY2tncm91bmQ6ICRibHVlO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCAkYmx1ZS1kYXJrO1xyXG4gICAgQGluY2x1ZGUgZWN6YXIoNjAwKTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBwYWRkaW5nOiAwIDEwcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAuMTVzIGVhc2U7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHNhdHVyYXRlKGxpZ2h0ZW4oJGJsdWUsIDUlKSwgNDAlKTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcclxuICAgIH1cclxuXHJcbiAgICAmOmFjdGl2ZSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IGRlc2F0dXJhdGUoZGFya2VuKCRibHVlLCAxMCUpLCA0MCUpO1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIC5zaWdudXAtZmVlZGJhY2sge1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gIH1cclxufVxyXG5cclxuI21jX2VtYmVkX3NpZ251cCB7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgY2xlYXI6IGxlZnQ7XHJcbiAgZm9udC1mYW1pbHk6ICdFY3phcicsIHNlcmlmO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIC8vIHdpZHRoOiAxMDAlO1xyXG5cclxuICBsYWJlbCB7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIH1cclxuXHJcbiAgI21jX2VtYmVkX3NpZ251cF9zY3JvbGwge1xyXG4gICAgbGFiZWwge1xyXG4gICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgIEBpbmNsdWRlIGVjemFyKDQwMCk7XHJcbiAgICB9XHJcbiAgICBpbnB1dC5lbWFpbCB7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gICAgICBoZWlnaHQ6IDMycHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xyXG4gICAgICBtYXJnaW46IDAgMnB4O1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtbGlnaHQ7XHJcbiAgICAgIGNvbG9yOiAkcHVycGxlLWRhcms7XHJcbiAgICAgIHBhZGRpbmc6IDAgOHB4O1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAvLyB3aWR0aDogMTAwJTtcclxuICAgICAgQGluY2x1ZGUgZWN6YXIoNDAwKTtcclxuICAgICAgdHJhbnNpdGlvbjogYWxsIC4xNXMgZWFzZTtcclxuXHJcbiAgICAgICY6cGxhY2Vob2xkZXIge1xyXG4gICAgICAgIGNvbG9yOiBibHVlLWRhcmtlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpbmNsdWRlIHh4cyB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5wdXQuYnV0dG9uIHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICAgIC8vIGhlaWdodDogMzJweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xyXG4gICAgbWFyZ2luOiAwIDJweDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAvLyBmb250LXNpemU6IDE0cHg7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGhlaWdodDogMzJweDtcclxuICAgIGJhY2tncm91bmQ6ICRibHVlO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCAkYmx1ZS1kYXJrO1xyXG4gICAgQGluY2x1ZGUgZWN6YXIoNjAwKTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBwYWRkaW5nOiAwIDEwcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAuMTVzIGVhc2U7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHNhdHVyYXRlKGxpZ2h0ZW4oJGJsdWUsIDUlKSwgNDAlKTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcclxuICAgIH1cclxuXHJcbiAgICAmOmFjdGl2ZSB7XHJcbiAgICAgIGJhY2tncm91bmQ6IGRlc2F0dXJhdGUoZGFya2VuKCRibHVlLCAxMCUpLCA0MCUpO1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuc3RyaWtlcnMge1xyXG4gIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2RpdmlkZXItc3RyaWtlcnMtdG9wLnBuZycpIGNlbnRlciB0b3Agbm8tcmVwZWF0ICMzMTM0NWE7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAmOmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICB0b3A6IC0yMHB4O1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgkcHVycGxlLWRhcmssIDApLCAkcHVycGxlLWRhcmspO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgfVxyXG5cclxuXHJcbiAgLmhlYWRpbmcge1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcblxyXG4gICAgaDIge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwcHg7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICB9XHJcbiAgICBwIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zdHJpa2Vycy1nYWxsZXJ5IHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5zbGljay1zbGlkZXIge1xyXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7XHJcbiAgLWtodG1sLXVzZXItc2VsZWN0OiB0ZXh0O1xyXG4gIC1tb3otdXNlci1zZWxlY3Q6IHRleHQ7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiB0ZXh0O1xyXG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xyXG59XHJcbi5zbGljay1saXN0LmRyYWdnYWJsZSB7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbn1cclxuXHJcbi5zbGlkZSB7XHJcbiAgcGFkZGluZzogMzBweCA1MHB4IDAgNTBweDtcclxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XHJcblxyXG4gIEBpbmNsdWRlIHMge1xyXG4gICAgcGFkZGluZzogMjVweCA0MHB4IDAgNDBweDtcclxuICB9XHJcblxyXG4gIC5zdHJpa2VyLXBpYyB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogYXV0bztcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHdpZHRoOiAyMjBweDtcclxuICAgICAgaGVpZ2h0OiAyMjBweDtcclxuICAgICAgYmFja2dyb3VuZDogcmVkO1xyXG4gICAgICB0b3A6IDMwJTtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChcclxuICAgICAgICBlbGxpcHNlIGNsb3Nlc3Qtc2lkZSBhdCBjZW50ZXIsXHJcbiAgICAgICAgcmdiYSgjMzEzNDVhLCAuNykgMCxcclxuICAgICAgICByZ2JhKCMzMTM0NWEsIC43KSA2NSUsXHJcbiAgICAgICAgcmdiYSgjMzEzNDVhLCAwKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIC8vIG1hcmdpbi10b3A6IHB4O1xyXG4gICAgICBAaW5jbHVkZSBwaXhlbGF0ZWQ7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgLy8gd2lkdGg6IDQwJTtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDQuNSk7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoIzMxMzQ1YSwgMCksIHJnYmEoIzMxMzQ1YSwgMSkpO1xyXG4gICAgICB6LWluZGV4OiAyO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIC5zdHJpa2VyLWNsYXNzIHtcclxuICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgIHRleHQtc2hhZG93OiAwIDFweCAycHggYmxhY2soLjIpO1xyXG4gICAgbWFyZ2luOiAwIDAgMTVweCAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuXHJcbiAgICBpbWcge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnN0cmlrZXItbmFtZSB7XHJcbiAgICBmb250LXNpemU6IDQycHg7XHJcbiAgICBjb2xvcjogJHllbGxvdztcclxuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAkeWVsbG93O1xyXG4gICAgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMXB4O1xyXG4gICAgLXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcjogYmxhY2s7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAycHggNXB4IGJsYWNrO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcbiAgLnN0cmlrZXItZGVzY3JpcHRpb24ge1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgY29sb3I6IGRhcmtlbigkcHVycGxlLWxpZ2h0LCAxNSUpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcclxuICAgIG1heC1oZWlnaHQ6IDIzMHB4O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIC41cyBlYXNlO1xyXG5cclxuICAgIEBpbmNsdWRlIHMge1xyXG4gICAgICBtYXgtaGVpZ2h0OiAxNTBweFxyXG4gICAgfVxyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBoZWlnaHQ6IDYwcHg7XHJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICMzMTM0NWEgMTVweCwgcmdiYSgjMzEzNDVhLDApKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmV4cGFuZGVkIHtcclxuICAgICAgbWF4LWhlaWdodDogMjAwMHB4O1xyXG5cclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zdHJpa2VyLXJlYWQtbW9yZSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgd2lkdGg6IDEwMHB4O1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgICAgYm9yZGVyOiBzb2xpZCAxcHggJGJsdWU7XHJcbiAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICAgICAgcGFkZGluZzogMCA1cHg7XHJcbiAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgYm90dG9tOiAwO1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGJsdWU7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnN0cmlrZXItc3R5bGUge1xyXG4gICAgcGFkZGluZzogMjBweCAwO1xyXG4gICAgLy8gbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIGNvbG9yOiAkcHVycGxlLWxpZ2h0O1xyXG4gIH1cclxuXHJcbiAgLnN0cmlrZXItY2xhc3MtZGVzYyB7XHJcbiAgICBiIHtcclxuICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDFweCBibGFjaztcclxuICAgICAgJi5hdGsge1xyXG4gICAgICAgIGNvbG9yOiAjZWUyYjE2O1xyXG4gICAgICB9XHJcbiAgICAgICYuZGVmIHtcclxuICAgICAgICBjb2xvcjogJGJsdWVcclxuICAgICAgfVxyXG4gICAgICAmLnV0bCB7XHJcbiAgICAgICAgY29sb3I6ICM1NWI1MTk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zdHJpa2VyLXdlYXBvbixcclxuICAuc3RyaWtlci1kaWZmaWN1bHR5IHtcclxuICAgIGg0IHtcclxuICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICBjb2xvcjogJGJsdWU7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICAgIHAge1xyXG4gICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICB9XHJcbiAgLnN0cmlrZXItZGlmZmljdWx0eSB7XHJcbiAgICBpbWcge1xyXG4gICAgICB3aWR0aDogKDlweCozKTtcclxuICAgICAgQGluY2x1ZGUgcGl4ZWxhdGVkO1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc3RyaWtlci1za2lsbHMge1xyXG4gICAgbWFyZ2luLXRvcDogMzBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgfVxyXG4gIC5zdHJpa2VyLXNraWxsIHtcclxuICAgIGEge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjE1cyBlYXNlO1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xyXG4gICAgICB9XHJcbiAgICAgICY6YWN0aXZlIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDBzO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpbWcge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGhlaWdodDogNHB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBib3R0b206IC00cHg7XHJcbiAgICAgICAgbGVmdDogNHB4O1xyXG4gICAgICAgIHJpZ2h0OiA0cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLnN0cmlrZXItc2tpbGwtdHlwZSB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggYmxhY2s7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLnNsaWNrLWFycm93IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgLy8gd2lkdGg6IDYwcHg7XHJcbiAgLy8gaGVpZ2h0OiA1MXB4O1xyXG4gIHdpZHRoOiAzOXB4O1xyXG4gIGhlaWdodDogNjNweDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgei1pbmRleDogMTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgdHJhbnNpdGlvbjogYWxsIC4xNXMgZWFzZTtcclxuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxLjE1KTtcclxuICB9XHJcbiAgJjphY3RpdmUge1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDBzO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKC45KTtcclxuICB9XHJcbn1cclxuXHJcbi5zbGljay1wcmV2IHtcclxuICBsZWZ0OiA1cHg7XHJcbiAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvYXJyb3ctbGVmdC1hbHQucG5nJykgdG9wIGxlZnQgbm8tcmVwZWF0IHRyYW5zcGFyZW50O1xyXG5cclxuICBAaW5jbHVkZSBzIHtcclxuICAgIHdpZHRoOiAyNnB4O1xyXG4gICAgaGVpZ2h0OiA0MnB4O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAyNnB4IGF1dG87XHJcbiAgICBsZWZ0OiA1cHg7XHJcbiAgfVxyXG59XHJcbi5zbGljay1uZXh0IHtcclxuICByaWdodDogNXB4O1xyXG4gIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2Fycm93LXJpZ2h0LWFsdC5wbmcnKSB0b3AgbGVmdCBuby1yZXBlYXQgdHJhbnNwYXJlbnQ7XHJcblxyXG4gIEBpbmNsdWRlIHMge1xyXG4gICAgd2lkdGg6IDI2cHg7XHJcbiAgICBoZWlnaHQ6IDQycHg7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDI2cHggYXV0bztcclxuICAgIHJpZ2h0OiA1cHg7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLnN0cmlrZXItZGV0YWlscyB7XHJcbiAgLy8gbWFyZ2luLXRvcDogMTUwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uc2xpY2stZG90cyB7XHJcbiAgLy8gcG9zaXRpb246IGFic29sdXRlO1xyXG4gIC8vIHRvcDogLTE1MHB4O1xyXG4gIC8vIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZm9udC1zaXplOiAwO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgbGkge1xyXG4gICAgd2lkdGg6IDEwLjc1JTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbjogMCAxJTtcclxuXHJcbiAgICBAaW5jbHVkZSBzIHtcclxuICAgICAgbWFyZ2luOiAwIDJweDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIHhzIHtcclxuICAgICAgd2lkdGg6IDIyJTtcclxuICAgICAgbWFyZ2luOiAwIDNweDtcclxuICAgIH1cclxuXHJcbiAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGF7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXgtd2lkdGg6IDEyMHB4O1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjE1cyBlYXNlO1xyXG4gICAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIC8vIHdpZHRoOiAxMjBweDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvY2hhcnMvZnJhbWUtbm9ybWFsLnBuZycpIG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB6LWluZGV4OiAxMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpob3ZlcixcclxuICAgICAgJjpmb2N1cyxcclxuICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2NoYXJzL2ZyYW1lLWhvdmVyLnBuZycpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJjpob3ZlcixcclxuICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcclxuICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDBzO1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gJjphZnRlciB7XHJcbiAgICAgIC8vICAgY29udGVudDogJyc7XHJcbiAgICAgIC8vICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIC8vICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIC8vICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAvLyAgIHRvcDogMDtcclxuICAgICAgLy8gICBsZWZ0OiAwO1xyXG4gICAgICAvLyAgIGJhY2tncm91bmQ6ICNlN2U0ZDU7XHJcbiAgICAgIC8vICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAvLyAgIG9wYWNpdHk6IDAuMjtcclxuICAgICAgLy8gICB6LWluZGV4OiA5O1xyXG4gICAgICAvLyB9XHJcblxyXG4gICAgICBpbWd7XHJcbiAgICAgICAgLy8gdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGltZ3tcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgYm94LXNoYWRvdzogMCAzcHggMTBweCBibGFjayguMyk7XHJcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcclxuICAgIH1cclxuXHJcbiAgICAmLnNsaWNrLWFjdGl2ZSB7XHJcbiAgICAgIGEge1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XHJcblxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2NoYXJzL2ZyYW1lLXNlbGVjdGVkLnBuZycpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpbWcge1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgkeWVsbG93LC4yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICAgICAgICAgICAgICAgICAgVEVTVElNT05JQUxTXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLnRlc3RpbW9uaWFscyB7XHJcblxyXG4gIC50ZXN0aW1vbmlhbHMtdG9wIHtcclxuICAgIGhlaWdodDogMjlweDtcclxuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2dldC1pdC1ub3ctYmctdG9wLnBuZycpYm90dG9tIGNlbnRlciBuby1yZXBlYXQgdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG4gIC50ZXN0aW1vbmlhbHMtbWlkIHtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoIzBiMDAyNiwgLjYpO1xyXG4gICAgcGFkZGluZzogODBweCAwIDI1cHggMDtcclxuICB9XHJcbiAgLnRlc3RpbW9uaWFscy1ib3Qge1xyXG4gICAgaGVpZ2h0OiAzOHB4O1xyXG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvZ2V0LWl0LW5vdy1iZy1ib3QucG5nJylib3R0b20gY2VudGVyIG5vLXJlcGVhdCB0cmFuc3BhcmVudDtcclxuICB9XHJcblxyXG4gIC5yZXZpZXcge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgIGJsb2NrcXVvdGUge1xyXG5cclxuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgdGV4dC1zaGFkb3c6IDAgM3B4IGJsYWNrO1xyXG4gICAgICBtYXJnaW46IDAgMCAxMHB4IDA7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuM2VtO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gICAgfVxyXG4gICAgYiB7XHJcbiAgICAgIHRleHQtc2hhZG93OiAwIDNweCBibGFjaztcclxuICAgICAgY29sb3I6ICRibHVlO1xyXG4gICAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwYWRkaW5nOiA1cHggMDtcclxuICAgIH1cclxuICAgIGNpdGUge1xyXG4gICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgIGNvbG9yOiAkeWVsbG93O1xyXG4gICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCIvLyBQQUdFIE5FV1NcclxuLnBhZ2UtbmV3cyB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCAtNDAwcHggY2VudGVyO1xyXG5cclxuICAubmV3cy1saXN0IHtcclxuICAgIHBhZGRpbmctdG9wOiAyNDBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCBkYXJrZW4oJHB1cnBsZS1kYXJrLCA1JSk7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRwdXJwbGUtZGFyaywgLjgpO1xyXG5cclxuICAgIGgxIHtcclxuICAgICAgZm9udC1zaXplOiA0OHB4O1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAvLyB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIGNvbG9yOiAkeWVsbG93O1xyXG4gICAgICB0ZXh0LXNoYWRvdzogMCAycHggNXB4IGJsYWNrO1xyXG4gICAgfVxyXG5cclxuICAgIC5uZXdzLWxpc3QtbGlzdCB7XHJcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuXHJcbiAgICAubmV3cy1saXN0LWl0ZW0ge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG5cclxuICAgICAgZmlndXJlIHtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4xNXMgZWFzZTtcclxuXHJcbiAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICBib3R0b206IDFweDtcclxuICAgICAgICAgICAgbGVmdDogNHB4O1xyXG4gICAgICAgICAgICByaWdodDogNHB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDRweDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wOCk7XHJcblxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5uZXdzLWxpc3QtaXRlbS1ib2R5IHtcclxuICAgICAgICBoMiB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAycHggMnB4IGJsYWNrKC41KTtcclxuICAgICAgICAgIG1hcmdpbjogN3B4IDA7XHJcblxyXG4gICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuMTVzO1xyXG5cclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5raWNrZXIge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnJlYWQtbW9yZSB7XHJcbiAgICAgICAgICBAZXh0ZW5kIC5idG47XHJcbiAgICAgICAgICBAZXh0ZW5kIC55ZWxsb3c7XHJcbiAgICAgICAgICAvLyBAZXh0ZW5kIC5zO1xyXG4gICAgICAgICAgQGV4dGVuZCAuYm9yZGVyO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgICAmLm5ld3MtbGlzdC1pdGVtLWZlYXR1cmVkIHtcclxuICAgICAgICBmaWd1cmUge1xyXG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICB3aWR0aDogNDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAubmV3cy1saXN0LWl0ZW0tYm9keSB7XHJcbiAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgIHdpZHRoOiA2MCU7XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcblxyXG4gICAgICAgICAgaDIge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDMycHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAua2lja2VyIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIFxyXG59XHJcbiIsIi5tYWluLWZvb3RlciB7XHJcbiAgY29sb3I6ICRwdXJwbGUtbGlnaHQ7XHJcbiAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvZGl2aWRlci1mb290ZXItdG9wLnBuZycpIGNlbnRlciB0b3Agbm8tcmVwZWF0ICRibHVlLWRhcmtlcjtcclxuICBwYWRkaW5nOiA4MHB4IDAgMjVweCAwO1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxufVxyXG5cclxuLmZvb3Rlci1jdGEge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJHllbGxvdztcclxuICBwYWRkaW5nLWJvdHRvbTogNDBweDtcclxufVxyXG5cclxuLmZvb3Rlci1zdG9yZXMge1xyXG4gICYgPiBwIHtcclxuICAgIEBpbmNsdWRlIHMge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5mb290ZXItc3RvcmUtaXRlbSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICAgIGhlaWdodDogNjBweDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogN3B4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA3cHg7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjE4cyBlYXNlO1xyXG5cclxuICAgIEBpbmNsdWRlIGwge1xyXG4gICAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgcyB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCR5ZWxsb3csIC4yKSAhaW1wb3J0YW50O1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICBtYXgtaGVpZ2h0OiAzNXB4O1xyXG5cclxuICAgICAgQGluY2x1ZGUgbCB7XHJcbiAgICAgICAgbWF4LWhlaWdodDogMjVweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuZm9vdGVyLXN0b3JlLWl0ZW0tc3RlYW0ge1xyXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG9wLCAjMWIyODM4LCAjMTcxYTIxKTtcclxuICAgIH1cclxuICAgICYuZm9vdGVyLXN0b3JlLWl0ZW0tcHM0IHtcclxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCBkYXJrZW4oIzAwNzJjZSwgMTAlKSwgZGFya2VuKCMwMDMwODcsIDEwJSkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZvb3Rlci1wcmVzcyB7XHJcbiAgZm9udC1zaXplOiAyNHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgLy8gcGFkZGluZy10b3A6IDQ1cHg7XHJcbiAgcGFkZGluZy10b3A6IDVweDtcclxuXHJcbiAgQGluY2x1ZGUgbCB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBzIHtcclxuICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICBib3JkZXItdG9wOiBzb2xpZCAycHggcmdiYSgkcHVycGxlLWxpZ2h0LCAuMik7XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIHRyYW5zaXRpb246IGFsbCAuMThzIGVhc2U7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHVsIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbiAgbGkge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogMCAxNXB4O1xyXG5cclxuICAgIEBpbmNsdWRlIHMge1xyXG4gICAgICBwYWRkaW5nOiAwIDhweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5mb290ZXItbGlua3Mge1xyXG4gIHBhZGRpbmctdG9wOiAzMHB4O1xyXG5cclxuICB1bCB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgICBpbWcge1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICBtYXJnaW4tdG9wOiAtM3B4O1xyXG4gICAgfVxyXG4gIH1cclxuICAudGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgfVxyXG4gIGEge1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIC4xOHMgZWFzZTtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICAvLyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgLy8gY29sb3I6IGxpZ2h0ZW4oJHllbGxvdywgMzAlKTtcclxuICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZvb3Rlci1sb2dvcyB7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgcGFkZGluZy10b3A6IDI1cHg7XHJcbiAgLy8gdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgaW1nIHtcclxuICAgIHRyYW5zaXRpb246IGFsbCAuMTVzIGVhc2U7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBsIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIHhzIHt9XHJcblxyXG4gIGEge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbiAgICBAaW5jbHVkZSB4cyB7XHJcbiAgICAgIG1hcmdpbjogMCA4cHg7XHJcblxyXG4gICAgICBpbWcge1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDM0cHg7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMjBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmZvb3Rlci1jb3B5cmlnaHQge1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjM1ZW07XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIHBhZGRpbmctdG9wOiAyNXB4O1xyXG5cclxuICBAaW5jbHVkZSBsIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIHNtYWxsIHtcclxuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xyXG4gICAgY29sb3I6ICRwdXJwbGU7XHJcbiAgICBmb250LXNpemU6IDEwcHg7XHJcblxyXG4gICAgYSB7XHJcbiAgICAgIGNvbG9yOiBsaWdodGVuKCRwdXJwbGUsIDMwJSk7XHJcbiAgICAgIC8vIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICRwdXJwbGUtbGlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUNBQSw0REFBNEQ7QUFFNUQ7O2dGQUVnRjtBQUVoRjs7R0FFRztBQUVILEFBQUEsT0FBTztBQUNQLEFBQUEsS0FBSztBQUNMLEFBQUEsT0FBTztBQUNQLEFBQUEsVUFBVTtBQUNWLEFBQUEsTUFBTTtBQUNOLEFBQUEsTUFBTTtBQUNOLEFBQUEsTUFBTTtBQUNOLEFBQUEsTUFBTTtBQUNOLEFBQUEsSUFBSTtBQUNKLEFBQUEsR0FBRztBQUNILEFBQUEsT0FBTztBQUNQLEFBQUEsT0FBTyxDQUFDO0VBQ0osT0FBTyxFQUFFLEtBQUssR0FDakI7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLEtBQUs7QUFDTCxBQUFBLE1BQU07QUFDTixBQUFBLEtBQUssQ0FBQztFQUNGLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLFFBQVEsRUFBRSxNQUFNO0VBQ2hCLEtBQUssRUFBRSxDQUFDLEdBQ1g7O0FBRUQ7OztHQUdHO0FBRUgsQUFBQSxLQUFLLEFBQUEsSUFBSyxFQUFBLEFBQUEsQUFBQSxRQUFDLEFBQUEsR0FBVztFQUNsQixPQUFPLEVBQUUsSUFBSTtFQUNiLE1BQU0sRUFBRSxDQUFDLEdBQ1o7O0FBRUQ7OztHQUdHO0NBRUgsQUFBQSxBQUFBLE1BQUMsQUFBQSxFQUFRO0VBQ0wsT0FBTyxFQUFFLElBQUksR0FDaEI7O0FBRUQ7O2dGQUVnRjtBQUVoRjs7Ozs7R0FLRztBQUVILEFBQUEsSUFBSSxDQUFDO0VBQ0QsU0FBUyxFQUFFLElBQUk7RUFBRyxPQUFPO0VBQ3pCLHdCQUF3QixFQUFFLElBQUk7RUFBRyxPQUFPO0VBQ3hDLG9CQUFvQixFQUFFLElBQUk7RUFBRyxPQUFPLEVBQ3ZDOztBQUVEOzs7R0FHRztBQUVILEFBQUEsSUFBSTtBQUNKLEFBQUEsTUFBTTtBQUNOLEFBQUEsS0FBSztBQUNMLEFBQUEsTUFBTTtBQUNOLEFBQUEsUUFBUSxDQUFDO0VBQ0wsV0FBVyxFQUFFLFVBQVUsR0FDMUI7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLElBQUksQ0FBQztFQUNELE1BQU0sRUFBRSxDQUFDLEdBQ1o7O0FBRUQ7O2dGQUVnRjtBQUVoRjs7R0FFRztBQUVILEFBQUEsQ0FBQyxBQUFBLE1BQU0sQ0FBQztFQUNKLE9BQU8sRUFBRSxXQUFXLEdBQ3ZCOztBQUVEOztHQUVHO0FBRUgsQUFBQSxDQUFDLEFBQUEsT0FBTztBQUNSLEFBQUEsQ0FBQyxBQUFBLE1BQU0sQ0FBQztFQUNKLE9BQU8sRUFBRSxDQUFDLEdBQ2I7O0FBRUQ7O2dGQUVnRjtBQUVoRjs7OztHQUlHO0FBRUgsQUFBQSxFQUFFLENBQUM7RUFDQyxTQUFTLEVBQUUsR0FBRztFQUNkLE1BQU0sRUFBRSxRQUFRLEdBQ25COztBQUVELEFBQUEsRUFBRSxDQUFDO0VBQ0MsU0FBUyxFQUFFLEtBQUs7RUFDaEIsTUFBTSxFQUFFLFFBQVEsR0FDbkI7O0FBRUQsQUFBQSxFQUFFLENBQUM7RUFDQyxTQUFTLEVBQUUsTUFBTTtFQUNqQixNQUFNLEVBQUUsS0FBSyxHQUNoQjs7QUFFRCxBQUFBLEVBQUUsQ0FBQztFQUNDLFNBQVMsRUFBRSxHQUFHO0VBQ2QsTUFBTSxFQUFFLFFBQVEsR0FDbkI7O0FBRUQsQUFBQSxFQUFFLENBQUM7RUFDQyxTQUFTLEVBQUUsTUFBTTtFQUNqQixNQUFNLEVBQUUsUUFBUSxHQUNuQjs7QUFFRCxBQUFBLEVBQUUsQ0FBQztFQUNDLFNBQVMsRUFBRSxNQUFNO0VBQ2pCLE1BQU0sRUFBRSxRQUFRLEdBQ25COztBQUVEOztHQUVHO0FBRUgsQUFBQSxJQUFJLENBQUEsQUFBQSxLQUFDLEFBQUEsRUFBTztFQUNSLGFBQWEsRUFBRSxVQUFVLEdBQzVCOztBQUVEOztHQUVHO0FBRUgsQUFBQSxDQUFDO0FBQ0QsQUFBQSxNQUFNLENBQUM7RUFDSCxXQUFXLEVBQUUsSUFBSSxHQUNwQjs7QUFFRCxBQUFBLFVBQVUsQ0FBQztFQUNQLE1BQU0sRUFBRSxRQUFRLEdBQ25COztBQUVEOztHQUVHO0FBRUgsQUFBQSxHQUFHLENBQUM7RUFDQSxVQUFVLEVBQUUsTUFBTSxHQUNyQjs7QUFFRDs7O0dBR0c7QUFFSCxBQUFBLEVBQUUsQ0FBQztFQUNDLGVBQWUsRUFBRSxXQUFXO0VBQzVCLFVBQVUsRUFBRSxXQUFXO0VBQ3ZCLE1BQU0sRUFBRSxDQUFDLEdBQ1o7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLElBQUksQ0FBQztFQUNELFVBQVUsRUFBRSxJQUFJO0VBQ2hCLEtBQUssRUFBRSxJQUFJLEdBQ2Q7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLENBQUM7QUFDRCxBQUFBLEdBQUcsQ0FBQztFQUNBLE1BQU0sRUFBRSxLQUFLLEdBQ2hCOztBQUVEOztHQUVHO0FBRUgsQUFBQSxJQUFJO0FBQ0osQUFBQSxHQUFHO0FBQ0gsQUFBQSxHQUFHO0FBQ0gsQUFBQSxJQUFJLENBQUM7RUFDRCxXQUFXLEVBQUUsZ0JBQWdCO0VBQzdCLFlBQVksRUFBRSx3QkFBd0I7RUFDdEMsU0FBUyxFQUFFLEdBQUcsR0FDakI7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLEdBQUcsQ0FBQztFQUNBLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFdBQVcsRUFBRSxRQUFRO0VBQ3JCLFNBQVMsRUFBRSxVQUFVLEdBQ3hCOztBQUVEOztHQUVHO0FBRUgsQUFBQSxDQUFDLENBQUM7RUFDRSxNQUFNLEVBQUUsSUFBSSxHQUNmOztBQUVEOztHQUVHO0FBRUgsQUFBQSxDQUFDLEFBQUEsT0FBTztBQUNSLEFBQUEsQ0FBQyxBQUFBLE1BQU0sQ0FBQztFQUNKLE9BQU8sRUFBRSxFQUFFO0VBQ1gsT0FBTyxFQUFFLElBQUksR0FDaEI7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLEtBQUssQ0FBQztFQUNGLFNBQVMsRUFBRSxHQUFHLEdBQ2pCOztBQUVEOztHQUVHO0FBRUgsQUFBQSxHQUFHO0FBQ0gsQUFBQSxHQUFHLENBQUM7RUFDQSxTQUFTLEVBQUUsR0FBRztFQUNkLFdBQVcsRUFBRSxDQUFDO0VBQ2QsUUFBUSxFQUFFLFFBQVE7RUFDbEIsY0FBYyxFQUFFLFFBQVEsR0FDM0I7O0FBRUQsQUFBQSxHQUFHLENBQUM7RUFDQSxHQUFHLEVBQUUsTUFBTSxHQUNkOztBQUVELEFBQUEsR0FBRyxDQUFDO0VBQ0EsTUFBTSxFQUFFLE9BQU8sR0FDbEI7O0FBRUQ7O2dGQUVnRjtBQUVoRjs7R0FFRztBQUVILEFBQUEsRUFBRTtBQUNGLEFBQUEsSUFBSTtBQUNKLEFBQUEsRUFBRTtBQUNGLEFBQUEsRUFBRSxDQUFDO0VBQ0MsTUFBTSxFQUFFLEtBQUssR0FDaEI7O0FBRUQsQUFBQSxFQUFFLENBQUM7RUFDQyxNQUFNLEVBQUUsVUFBVSxHQUNyQjs7QUFFRDs7R0FFRztBQUVILEFBQUEsSUFBSTtBQUNKLEFBQUEsRUFBRTtBQUNGLEFBQUEsRUFBRSxDQUFDO0VBQ0MsT0FBTyxFQUFFLFVBQVUsR0FDdEI7O0FBRUQ7O0dBRUc7QUFFSCxBQUFJLEdBQUQsQ0FBQyxFQUFFO0FBQ04sQUFBSSxHQUFELENBQUMsRUFBRSxDQUFDO0VBQ0gsVUFBVSxFQUFFLElBQUk7RUFDaEIsZ0JBQWdCLEVBQUUsSUFBSSxHQUN6Qjs7QUFFRDs7Z0ZBRWdGO0FBRWhGOzs7R0FHRztBQUVILEFBQUEsR0FBRyxDQUFDO0VBQ0EsTUFBTSxFQUFFLENBQUM7RUFBRyxPQUFPO0VBQ25CLHNCQUFzQixFQUFFLE9BQU87RUFBRyxPQUFPLEVBQzVDOztBQUVEOztHQUVHO0FBRUgsQUFBQSxHQUFHLEFBQUEsSUFBSyxDQUFBLEFBQUEsS0FBSyxFQUFFO0VBQ1gsUUFBUSxFQUFFLE1BQU0sR0FDbkI7O0FBRUQ7O2dGQUVnRjtBQUVoRjs7R0FFRztBQUVILEFBQUEsTUFBTSxDQUFDO0VBQ0gsTUFBTSxFQUFFLENBQUMsR0FDWjs7QUFFRDs7Z0ZBRWdGO0FBRWhGOztHQUVHO0FBRUgsQUFBQSxJQUFJLENBQUM7RUFDRCxNQUFNLEVBQUUsQ0FBQyxHQUNaOztBQUVEOztHQUVHO0FBRUgsQUFBQSxRQUFRLENBQUM7RUFDTCxNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLE1BQU0sRUFBRSxLQUFLO0VBQ2IsT0FBTyxFQUFFLHFCQUFxQixHQUNqQzs7QUFFRDs7OztHQUlHO0FBRUgsQUFBQSxNQUFNLENBQUM7RUFDSCxNQUFNLEVBQUUsQ0FBQztFQUFHLE9BQU87RUFDbkIsT0FBTyxFQUFFLENBQUM7RUFDVixXQUFXLEVBQUUsTUFBTTtFQUFHLE9BQU87RUFDN0IsWUFBWSxFQUFFLElBQUk7RUFBRyxPQUFPLEVBQy9COztBQUVEOzs7OztHQUtHO0FBRUgsQUFBQSxNQUFNO0FBQ04sQUFBQSxLQUFLO0FBQ0wsQUFBQSxNQUFNO0FBQ04sQUFBQSxRQUFRLENBQUM7RUFDTCxTQUFTLEVBQUUsSUFBSTtFQUFHLE9BQU87RUFDekIsTUFBTSxFQUFFLENBQUM7RUFBRyxPQUFPO0VBQ25CLGNBQWMsRUFBRSxRQUFRO0VBQUcsT0FBTztFQUNsQyxlQUFlLEVBQUUsTUFBTTtFQUFHLE9BQU8sRUFDcEM7O0FBRUQ7OztHQUdHO0FBRUgsQUFBQSxNQUFNO0FBQ04sQUFBQSxLQUFLLENBQUM7RUFDRixXQUFXLEVBQUUsTUFBTSxHQUN0Qjs7QUFFRDs7Ozs7R0FLRztBQUVILEFBQUEsTUFBTTtBQUNOLEFBQUEsTUFBTSxDQUFDO0VBQ0gsY0FBYyxFQUFFLElBQUksR0FDdkI7O0FBRUQ7Ozs7Ozs7O0dBUUc7QUFFSCxBQUFBLE1BQU07QUFDTixBQUFLLElBQUQsQ0FBQyxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiO0FBQ1gsQUFBQSxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssT0FBTyxBQUFaO0FBQ04sQUFBQSxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiLEVBQWU7RUFDakIsa0JBQWtCLEVBQUUsTUFBTTtFQUFHLE9BQU87RUFDcEMsTUFBTSxFQUFFLE9BQU87RUFBRyxPQUFPO0VBQ3pCLFNBQVMsRUFBRSxPQUFPO0VBQUksT0FBTyxFQUNoQzs7QUFFRDs7R0FFRztBQUVILEFBQUEsTUFBTSxDQUFBLEFBQUEsUUFBQyxBQUFBO0FBQ1AsQUFBSyxJQUFELENBQUMsS0FBSyxDQUFBLEFBQUEsUUFBQyxBQUFBLEVBQVU7RUFDakIsTUFBTSxFQUFFLE9BQU8sR0FDbEI7O0FBRUQ7Ozs7O0dBS0c7QUFFSCxBQUFBLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxVQUFVLEFBQWY7QUFDTixBQUFBLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxPQUFPLEFBQVosRUFBYztFQUNoQixVQUFVLEVBQUUsVUFBVTtFQUFHLE9BQU87RUFDaEMsT0FBTyxFQUFFLENBQUM7RUFBRyxPQUFPO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBQUcsT0FBTztFQUN2QixNQUFNLEVBQUUsSUFBSTtFQUFHLE9BQU8sRUFDekI7O0FBRUQ7Ozs7R0FJRztBQUVILEFBQUEsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixFQUFlO0VBQ2pCLGtCQUFrQixFQUFFLFNBQVM7RUFBRyxPQUFPO0VBQ3ZDLGVBQWUsRUFBRSxXQUFXO0VBQzVCLGtCQUFrQixFQUFFLFdBQVc7RUFBRyxPQUFPO0VBQ3pDLFVBQVUsRUFBRSxXQUFXLEdBQzFCOztBQUVEOzs7R0FHRztBQUVILEFBQUEsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixDQUFjLDhCQUE4QjtBQUNsRCxBQUFBLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsQ0FBYywyQkFBMkIsQ0FBQztFQUM1QyxrQkFBa0IsRUFBRSxJQUFJLEdBQzNCOztBQUVEOztHQUVHO0FBRUgsQUFBQSxNQUFNLEFBQUEsa0JBQWtCO0FBQ3hCLEFBQUEsS0FBSyxBQUFBLGtCQUFrQixDQUFDO0VBQ3BCLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUMsR0FDYjs7QUFFRDs7O0dBR0c7QUFFSCxBQUFBLFFBQVEsQ0FBQztFQUNMLFFBQVEsRUFBRSxJQUFJO0VBQUcsT0FBTztFQUN4QixjQUFjLEVBQUUsR0FBRztFQUFHLE9BQU8sRUFDaEM7O0FBRUQ7O2dGQUVnRjtBQUVoRjs7R0FFRztBQUVILEFBQUEsS0FBSyxDQUFDO0VBQ0YsZUFBZSxFQUFFLFFBQVE7RUFDekIsY0FBYyxFQUFFLENBQUMsR0FDcEI7O0FpRnBlRCxBQUFBLElBQUksQ0FBQztFQUVKLFNBQVMsRUF2QkYsTUFBTTtFQXdCYixNQUFNLEVBQUUsTUFBTSxHQVlkO0VBZkQsQURxREUsSUNyREUsQURxREgsTUFBUSxDQUFDO0lBQ04sS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RUN6REgsQUFLQyxJQUxHLEFBS0gsV0FBWSxDQUFDO0lBQ1osU0FBUyxFQUFFLElBQUksR0FDZjtFQVBGLEFBV0UsSUFYRSxBQVVILFFBQVMsQ0FDUixDQUFDLENBQUEsQUFBQSxLQUFDLEVBQU8sTUFBTSxBQUFiLEVBQWU7SUFDaEIsS0FBSyxFQUFFLEtBQUssR0FDWjs7QUFlRixBQUFBLE1BQU0sQ0FBSztFQVhYLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLElBQUk7RUFDWCxVQUFVLEVBQUUsR0FBRztFQUNmLFlBQVksRUFwREwsSUFBSTtFQXFEWCxhQUFhLEVBckROLElBQUk7RUE4RFYsS0FBSyxFQUFFLFFBQWUsR0FDdEI7O0FBQ0QsQUFBQSxPQUFPLENBQUs7RUFDWCxXQUFXLEVBQUUsUUFBZSxHQUM1Qjs7QUFDRCxBQUFBLE9BQU8sQ0FBSztFQUNYLFdBQVcsRUFBSSxTQUFhLEdBQzVCOztBQVRELEFBQUEsTUFBTSxDQUFLO0VBWFgsT0FBTyxFQUFFLEtBQUs7RUFDZCxLQUFLLEVBQUUsSUFBSTtFQUNYLFVBQVUsRUFBRSxHQUFHO0VBQ2YsWUFBWSxFQXBETCxJQUFJO0VBcURYLGFBQWEsRUFyRE4sSUFBSTtFQThEVixLQUFLLEVBQUUsU0FBZSxHQUN0Qjs7QUFDRCxBQUFBLE9BQU8sQ0FBSztFQUNYLFdBQVcsRUFBRSxTQUFlLEdBQzVCOztBQUNELEFBQUEsT0FBTyxDQUFLO0VBQ1gsV0FBVyxFQUFJLFVBQWEsR0FDNUI7O0FBVEQsQUFBQSxNQUFNLENBQUs7RUFYWCxPQUFPLEVBQUUsS0FBSztFQUNkLEtBQUssRUFBRSxJQUFJO0VBQ1gsVUFBVSxFQUFFLEdBQUc7RUFDZixZQUFZLEVBcERMLElBQUk7RUFxRFgsYUFBYSxFQXJETixJQUFJO0VBOERWLEtBQUssRUFBRSxHQUFlLEdBQ3RCOztBQUNELEFBQUEsT0FBTyxDQUFLO0VBQ1gsV0FBVyxFQUFFLEdBQWUsR0FDNUI7O0FBQ0QsQUFBQSxPQUFPLENBQUs7RUFDWCxXQUFXLEVBQUksSUFBYSxHQUM1Qjs7QUFURCxBQUFBLE1BQU0sQ0FBSztFQVhYLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLElBQUk7RUFDWCxVQUFVLEVBQUUsR0FBRztFQUNmLFlBQVksRUFwREwsSUFBSTtFQXFEWCxhQUFhLEVBckROLElBQUk7RUE4RFYsS0FBSyxFQUFFLFNBQWUsR0FDdEI7O0FBQ0QsQUFBQSxPQUFPLENBQUs7RUFDWCxXQUFXLEVBQUUsU0FBZSxHQUM1Qjs7QUFDRCxBQUFBLE9BQU8sQ0FBSztFQUNYLFdBQVcsRUFBSSxVQUFhLEdBQzVCOztBQVRELEFBQUEsTUFBTSxDQUFLO0VBWFgsT0FBTyxFQUFFLEtBQUs7RUFDZCxLQUFLLEVBQUUsSUFBSTtFQUNYLFVBQVUsRUFBRSxHQUFHO0VBQ2YsWUFBWSxFQXBETCxJQUFJO0VBcURYLGFBQWEsRUFyRE4sSUFBSTtFQThEVixLQUFLLEVBQUUsU0FBZSxHQUN0Qjs7QUFDRCxBQUFBLE9BQU8sQ0FBSztFQUNYLFdBQVcsRUFBRSxTQUFlLEdBQzVCOztBQUNELEFBQUEsT0FBTyxDQUFLO0VBQ1gsV0FBVyxFQUFJLFVBQWEsR0FDNUI7O0FBVEQsQUFBQSxNQUFNLENBQUs7RUFYWCxPQUFPLEVBQUUsS0FBSztFQUNkLEtBQUssRUFBRSxJQUFJO0VBQ1gsVUFBVSxFQUFFLEdBQUc7RUFDZixZQUFZLEVBcERMLElBQUk7RUFxRFgsYUFBYSxFQXJETixJQUFJO0VBOERWLEtBQUssRUFBRSxHQUFlLEdBQ3RCOztBQUNELEFBQUEsT0FBTyxDQUFLO0VBQ1gsV0FBVyxFQUFFLEdBQWUsR0FDNUI7O0FBQ0QsQUFBQSxPQUFPLENBQUs7RUFDWCxXQUFXLEVBQUksSUFBYSxHQUM1Qjs7QUFURCxBQUFBLE1BQU0sQ0FBSztFQVhYLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLElBQUk7RUFDWCxVQUFVLEVBQUUsR0FBRztFQUNmLFlBQVksRUFwREwsSUFBSTtFQXFEWCxhQUFhLEVBckROLElBQUk7RUE4RFYsS0FBSyxFQUFFLFNBQWUsR0FDdEI7O0FBQ0QsQUFBQSxPQUFPLENBQUs7RUFDWCxXQUFXLEVBQUUsU0FBZSxHQUM1Qjs7QUFDRCxBQUFBLE9BQU8sQ0FBSztFQUNYLFdBQVcsRUFBSSxVQUFhLEdBQzVCOztBQVRELEFBQUEsTUFBTSxDQUFLO0VBWFgsT0FBTyxFQUFFLEtBQUs7RUFDZCxLQUFLLEVBQUUsSUFBSTtFQUNYLFVBQVUsRUFBRSxHQUFHO0VBQ2YsWUFBWSxFQXBETCxJQUFJO0VBcURYLGFBQWEsRUFyRE4sSUFBSTtFQThEVixLQUFLLEVBQUUsU0FBZSxHQUN0Qjs7QUFDRCxBQUFBLE9BQU8sQ0FBSztFQUNYLFdBQVcsRUFBRSxTQUFlLEdBQzVCOztBQUNELEFBQUEsT0FBTyxDQUFLO0VBQ1gsV0FBVyxFQUFJLFVBQWEsR0FDNUI7O0FBVEQsQUFBQSxNQUFNLENBQUs7RUFYWCxPQUFPLEVBQUUsS0FBSztFQUNkLEtBQUssRUFBRSxJQUFJO0VBQ1gsVUFBVSxFQUFFLEdBQUc7RUFDZixZQUFZLEVBcERMLElBQUk7RUFxRFgsYUFBYSxFQXJETixJQUFJO0VBOERWLEtBQUssRUFBRSxHQUFlLEdBQ3RCOztBQUNELEFBQUEsT0FBTyxDQUFLO0VBQ1gsV0FBVyxFQUFFLEdBQWUsR0FDNUI7O0FBQ0QsQUFBQSxPQUFPLENBQUs7RUFDWCxXQUFXLEVBQUksSUFBYSxHQUM1Qjs7QUFURCxBQUFBLE9BQU8sQ0FBSTtFQVhYLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLElBQUk7RUFDWCxVQUFVLEVBQUUsR0FBRztFQUNmLFlBQVksRUFwREwsSUFBSTtFQXFEWCxhQUFhLEVBckROLElBQUk7RUE4RFYsS0FBSyxFQUFFLFNBQWUsR0FDdEI7O0FBQ0QsQUFBQSxRQUFRLENBQUk7RUFDWCxXQUFXLEVBQUUsU0FBZSxHQUM1Qjs7QUFDRCxBQUFBLFFBQVEsQ0FBSTtFQUNYLFdBQVcsRUFBSSxVQUFhLEdBQzVCOztBQVRELEFBQUEsT0FBTyxDQUFJO0VBWFgsT0FBTyxFQUFFLEtBQUs7RUFDZCxLQUFLLEVBQUUsSUFBSTtFQUNYLFVBQVUsRUFBRSxHQUFHO0VBQ2YsWUFBWSxFQXBETCxJQUFJO0VBcURYLGFBQWEsRUFyRE4sSUFBSTtFQThEVixLQUFLLEVBQUUsU0FBZSxHQUN0Qjs7QUFDRCxBQUFBLFFBQVEsQ0FBSTtFQUNYLFdBQVcsRUFBRSxTQUFlLEdBQzVCOztBQUNELEFBQUEsUUFBUSxDQUFJO0VBQ1gsV0FBVyxFQUFJLFVBQWEsR0FDNUI7O0FBVEQsQUFBQSxPQUFPLENBQUk7RUFYWCxPQUFPLEVBQUUsS0FBSztFQUNkLEtBQUssRUFBRSxJQUFJO0VBQ1gsVUFBVSxFQUFFLEdBQUc7RUFDZixZQUFZLEVBcERMLElBQUk7RUFxRFgsYUFBYSxFQXJETixJQUFJO0VBOERWLEtBQUssRUFBRSxJQUFlLEdBQ3RCOztBQUNELEFBQUEsUUFBUSxDQUFJO0VBQ1gsV0FBVyxFQUFFLElBQWUsR0FDNUI7O0FBQ0QsQUFBQSxRQUFRLENBQUk7RUFDWCxXQUFXLEVBQUksS0FBYSxHQUM1Qjs7QUFHRixBQUFBLE1BQU0sQ0FBQztFQUNOLFlBQVksRUFBRSxDQUFDLEdBQ2Y7O0FBQ0QsQUFBQSxNQUFNLENBQUM7RUFDTixhQUFhLEVBQUUsQ0FBQyxHQUNoQjs7QUFDRCxBQUFBLE9BQU8sQ0FBQztFQUNQLFlBQVksRUFBRSxDQUFDO0VBQ2YsYUFBYSxFQUFFLENBQUMsR0FDaEI7O0FBTUEsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsTUFBTTtFQUVsQyxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsUUFBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxRQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFNBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsSUFBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxJQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLEtBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDs7QUE3QkgsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsTUFBTTtFQUVsQyxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsUUFBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxRQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFNBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsSUFBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxJQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLEtBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDs7QUE3QkgsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFQUVqQyxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsUUFBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxRQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFNBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsSUFBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxJQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLEtBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDs7QUE3QkgsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFQUVqQyxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsUUFBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxRQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFNBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFFBQVEsQ0FBYTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsU0FBUyxDQUFhO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxTQUFTLENBQWE7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsSUFBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxJQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLEtBQWEsR0FDNUI7RUFDRCxBQUFBLFFBQVEsQ0FBUztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxRQUFRLENBQVM7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFNBQVMsQ0FBUztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxNQUFNLENBQVM7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxVQUFVO0VBQ1YsQUFBQSxVQUFVLENBQVM7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDs7QUE3QkgsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFQUVqQyxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsUUFBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxRQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFNBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFNBQVMsQ0FBWTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsVUFBVSxDQUFZO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxVQUFVLENBQVk7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsSUFBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxJQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLEtBQWEsR0FDNUI7RUFDRCxBQUFBLFNBQVMsQ0FBUTtJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxTQUFTLENBQVE7SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFVBQVUsQ0FBUTtJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxPQUFPLENBQVE7SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxXQUFXO0VBQ1gsQUFBQSxXQUFXLENBQVE7SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDs7QUE3QkgsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFQUVqQyxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsUUFBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxRQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLFNBQWEsR0FDNUI7RUFDRCxBQUFBLFVBQVUsQ0FBTztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxVQUFVLENBQU87SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFdBQVcsQ0FBTztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxRQUFRLENBQU87SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxZQUFZO0VBQ1osQUFBQSxZQUFZLENBQU87SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFVBQVUsQ0FBTztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxVQUFVLENBQU87SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFdBQVcsQ0FBTztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxRQUFRLENBQU87SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxZQUFZO0VBQ1osQUFBQSxZQUFZLENBQU87SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFVBQVUsQ0FBTztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxVQUFVLENBQU87SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFdBQVcsQ0FBTztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxRQUFRLENBQU87SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxZQUFZO0VBQ1osQUFBQSxZQUFZLENBQU87SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFVBQVUsQ0FBTztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxVQUFVLENBQU87SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFdBQVcsQ0FBTztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxRQUFRLENBQU87SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxZQUFZO0VBQ1osQUFBQSxZQUFZLENBQU87SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFVBQVUsQ0FBTztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxVQUFVLENBQU87SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFdBQVcsQ0FBTztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxRQUFRLENBQU87SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxZQUFZO0VBQ1osQUFBQSxZQUFZLENBQU87SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFVBQVUsQ0FBTztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxVQUFVLENBQU87SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFdBQVcsQ0FBTztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxRQUFRLENBQU87SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxZQUFZO0VBQ1osQUFBQSxZQUFZLENBQU87SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFVBQVUsQ0FBTztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxVQUFVLENBQU87SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFdBQVcsQ0FBTztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxRQUFRLENBQU87SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxZQUFZO0VBQ1osQUFBQSxZQUFZLENBQU87SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFVBQVUsQ0FBTztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxVQUFVLENBQU87SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFdBQVcsQ0FBTztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxRQUFRLENBQU87SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxZQUFZO0VBQ1osQUFBQSxZQUFZLENBQU87SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFVBQVUsQ0FBVztJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsR0FBZSxHQUN0QjtFQUNELEFBQUEsV0FBVyxDQUFXO0lBQ3JCLFdBQVcsRUFBRSxHQUFlLEdBQzVCO0VBQ0QsQUFBQSxXQUFXLENBQVc7SUFDckIsV0FBVyxFQUFJLElBQWEsR0FDNUI7RUFDRCxBQUFBLFVBQVUsQ0FBTztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxVQUFVLENBQU87SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFdBQVcsQ0FBTztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxRQUFRLENBQU87SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxZQUFZO0VBQ1osQUFBQSxZQUFZLENBQU87SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFdBQVcsQ0FBVTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsWUFBWSxDQUFVO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxZQUFZLENBQVU7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFVBQVUsQ0FBTztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxVQUFVLENBQU87SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFdBQVcsQ0FBTztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxRQUFRLENBQU87SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxZQUFZO0VBQ1osQUFBQSxZQUFZLENBQU87SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFdBQVcsQ0FBVTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsU0FBZSxHQUN0QjtFQUNELEFBQUEsWUFBWSxDQUFVO0lBQ3JCLFdBQVcsRUFBRSxTQUFlLEdBQzVCO0VBQ0QsQUFBQSxZQUFZLENBQVU7SUFDckIsV0FBVyxFQUFJLFVBQWEsR0FDNUI7RUFDRCxBQUFBLFVBQVUsQ0FBTztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxVQUFVLENBQU87SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFdBQVcsQ0FBTztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxRQUFRLENBQU87SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxZQUFZO0VBQ1osQUFBQSxZQUFZLENBQU87SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDtFQTNCRCxBQUFBLFdBQVcsQ0FBVTtJQXhDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxHQUFHO0lBQ2YsWUFBWSxFQXBETCxJQUFJO0lBcURYLGFBQWEsRUFyRE4sSUFBSTtJQTJGUixLQUFLLEVBQUUsSUFBZSxHQUN0QjtFQUNELEFBQUEsWUFBWSxDQUFVO0lBQ3JCLFdBQVcsRUFBRSxJQUFlLEdBQzVCO0VBQ0QsQUFBQSxZQUFZLENBQVU7SUFDckIsV0FBVyxFQUFJLEtBQWEsR0FDNUI7RUFDRCxBQUFBLFVBQVUsQ0FBTztJQUNoQixZQUFZLEVBQUUsQ0FBQyxHQUNmO0VBQ0QsQUFBQSxVQUFVLENBQU87SUFDaEIsYUFBYSxFQUFFLENBQUMsR0FDaEI7RUFDRCxBQUFBLFdBQVcsQ0FBTztJQUNqQixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO0VBQ0QsQUFBQSxRQUFRLENBQU87SUFDZCxZQUFZLEVBOUdSLElBQUk7SUErR1IsYUFBYSxFQS9HVCxJQUFJLEdBZ0hSO0VBQ0QsQUFBQSxZQUFZO0VBQ1osQUFBQSxZQUFZLENBQU87SUFDbEIsV0FBVyxFQUFFLENBQUMsR0FDZDs7QUM5SEosQUFBQSxTQUFTLEFBQUEsT0FBTyxDQUFDO0VBQ2YsS0FBSyxFQUFFLElBQUk7RUFDWCxPQUFPLEVBQUUsRUFBRTtFQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7O0FBQ0QsQUFBQSxNQUFNLENBQUM7RUFDTCxLQUFLLEVBQUUsSUFBSSxHQUNaOztBQUVELEFBQUEsT0FBTyxDQUFDO0VBQ1AsT0FBTyxFQUFFLGVBQWU7RUFDeEIsVUFBVSxFQUFFLE1BQU0sR0FDbEI7O0FBRUQsQUFBQSxNQUFNLENBQUM7RUFDTCxPQUFPLEVBQUUsS0FBSyxHQUNmOztBQUNELEFBQUEsYUFBYSxDQUFDO0VBQ1osT0FBTyxFQUFFLFlBQVksR0FDdEI7O0FBRUQsQUFBQSxXQUFXLENBQUU7RUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFLOztBQUMvQixBQUFBLFlBQVksQ0FBQztFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUk7O0FBRS9CLEFBQUEsVUFBVSxDQUFHO0VBQUUsVUFBVSxFQUFFLElBQUksR0FBSzs7QUFDcEMsQUFBQSxZQUFZLENBQUM7RUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFLOztBQUN0QyxBQUFBLFdBQVcsQ0FBRTtFQUFFLFVBQVUsRUFBRSxLQUFLLEdBQUs7O0FBR3JDLEFBQUEsYUFBYSxDQUFDO0VBQUUsVUFBVSxFQUFFLEdBQUcsR0FBSzs7QUFDcEMsQUFBQSxXQUFXLENBQUM7RUFBRSxVQUFVLEVBQUUsSUFBSSxHQUFLOztBQUNuQyxBQUFBLGFBQWEsQ0FBQztFQUFFLFVBQVUsRUFBRSxJQUFJLEdBQUs7O0FBQ3JDLEFBQUEsY0FBYyxDQUFDO0VBQUUsVUFBVSxFQUFFLElBQUksR0FBSzs7QUFDdEMsQUFBQSxlQUFlLENBQUM7RUFBRSxVQUFVLEVBQUUsSUFBSSxHQUFLOztBQUV2QyxBQUFBLGVBQWUsQ0FBQztFQUFFLFlBQVksRUFBRSxHQUFHLEdBQUs7O0FBQ3hDLEFBQUEsYUFBYSxDQUFDO0VBQUUsWUFBWSxFQUFFLElBQUksR0FBSzs7QUFDdkMsQUFBQSxlQUFlLENBQUM7RUFBRSxZQUFZLEVBQUUsSUFBSSxHQUFLOztBQUN6QyxBQUFBLGdCQUFnQixDQUFDO0VBQUUsWUFBWSxFQUFFLElBQUksR0FBSzs7QUFDMUMsQUFBQSxpQkFBaUIsQ0FBQztFQUFFLFlBQVksRUFBRSxJQUFJLEdBQUs7O0FBRTNDLEFBQUEsZ0JBQWdCLENBQUM7RUFBRSxhQUFhLEVBQUUsR0FBRyxHQUFLOztBQUMxQyxBQUFBLGNBQWMsQ0FBQztFQUFFLGFBQWEsRUFBRSxJQUFJLEdBQUs7O0FBQ3pDLEFBQUEsZ0JBQWdCLENBQUM7RUFBRSxhQUFhLEVBQUUsSUFBSSxHQUFLOztBQUMzQyxBQUFBLGlCQUFpQixDQUFDO0VBQUUsYUFBYSxFQUFFLElBQUksR0FBSzs7QUFDNUMsQUFBQSxrQkFBa0IsQ0FBQztFQUFFLGFBQWEsRUFBRSxJQUFJLEdBQUs7O0FBRTdDLEFBQUEsY0FBYyxDQUFDO0VBQUUsV0FBVyxFQUFFLEdBQUcsR0FBSzs7QUFDdEMsQUFBQSxZQUFZLENBQUM7RUFBRSxXQUFXLEVBQUUsSUFBSSxHQUFLOztBQUNyQyxBQUFBLGNBQWMsQ0FBQztFQUFFLFdBQVcsRUFBRSxJQUFJLEdBQUs7O0FBQ3ZDLEFBQUEsZUFBZSxDQUFDO0VBQUUsV0FBVyxFQUFFLElBQUksR0FBSzs7QUFDeEMsQUFBQSxnQkFBZ0IsQ0FBQztFQUFFLFdBQVcsRUFBRSxJQUFJLEdBQUs7O0FBR3pDLEFBQUEsY0FBYyxDQUFDO0VBQUUsV0FBVyxFQUFFLEdBQUcsR0FBSzs7QUFDdEMsQUFBQSxZQUFZLENBQUM7RUFBRSxXQUFXLEVBQUUsSUFBSSxHQUFLOztBQUNyQyxBQUFBLGNBQWMsQ0FBQztFQUFFLFdBQVcsRUFBRSxJQUFJLEdBQUs7O0FBQ3ZDLEFBQUEsZUFBZSxDQUFDO0VBQUUsV0FBVyxFQUFFLElBQUksR0FBSzs7QUFDeEMsQUFBQSxnQkFBZ0IsQ0FBQztFQUFFLFdBQVcsRUFBRSxJQUFJLEdBQUs7O0FBRXpDLEFBQUEsZ0JBQWdCLENBQUM7RUFBRSxhQUFhLEVBQUUsR0FBRyxHQUFLOztBQUMxQyxBQUFBLGNBQWMsQ0FBQztFQUFFLGFBQWEsRUFBRSxJQUFJLEdBQUs7O0FBQ3pDLEFBQUEsZ0JBQWdCLENBQUM7RUFBRSxhQUFhLEVBQUUsSUFBSSxHQUFLOztBQUMzQyxBQUFBLGlCQUFpQixDQUFDO0VBQUUsYUFBYSxFQUFFLElBQUksR0FBSzs7QUFDNUMsQUFBQSxrQkFBa0IsQ0FBQztFQUFFLGFBQWEsRUFBRSxJQUFJLEdBQUs7O0FBRTdDLEFBQUEsaUJBQWlCLENBQUM7RUFBRSxjQUFjLEVBQUUsR0FBRyxHQUFLOztBQUM1QyxBQUFBLGVBQWUsQ0FBQztFQUFFLGNBQWMsRUFBRSxJQUFJLEdBQUs7O0FBQzNDLEFBQUEsaUJBQWlCLENBQUM7RUFBRSxjQUFjLEVBQUUsSUFBSSxHQUFLOztBQUM3QyxBQUFBLGtCQUFrQixDQUFDO0VBQUUsY0FBYyxFQUFFLElBQUksR0FBSzs7QUFDOUMsQUFBQSxtQkFBbUIsQ0FBQztFQUFFLGNBQWMsRUFBRSxJQUFJLEdBQUs7O0FBRS9DLEFBQUEsZUFBZSxDQUFDO0VBQUUsWUFBWSxFQUFFLEdBQUcsR0FBSzs7QUFDeEMsQUFBQSxhQUFhLENBQUM7RUFBRSxZQUFZLEVBQUUsSUFBSSxHQUFLOztBQUN2QyxBQUFBLGVBQWUsQ0FBQztFQUFFLFlBQVksRUFBRSxJQUFJLEdBQUs7O0FBQ3pDLEFBQUEsZ0JBQWdCLENBQUM7RUFBRSxZQUFZLEVBQUUsSUFBSSxHQUFLOztBQUMxQyxBQUFBLGlCQUFpQixDQUFDO0VBQUUsWUFBWSxFQUFFLElBQUksR0FBSzs7QUFjM0MsQUFBQSxVQUFVLENBQUM7RUFIVCxlQUFlLEVBQUUsU0FBUyxHQUszQjs7QUM1RkQsWUFBWTtBQUVaLEFBQUEsYUFBYSxDQUFDO0VBQ1YsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEtBQUs7RUFDZCxVQUFVLEVBQUUsVUFBVTtFQUN0QixxQkFBcUIsRUFBRSxJQUFJO0VBQzNCLG1CQUFtQixFQUFFLElBQUk7RUFDekIsa0JBQWtCLEVBQUUsSUFBSTtFQUN4QixnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLGdCQUFnQixFQUFFLEtBQUs7RUFDdkIsWUFBWSxFQUFFLEtBQUs7RUFDbkIsMkJBQTJCLEVBQUUsV0FBVyxHQUMzQzs7QUFDRCxBQUFBLFdBQVcsQ0FBQztFQUNSLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFFBQVEsRUFBRSxNQUFNO0VBQ2hCLE9BQU8sRUFBRSxLQUFLO0VBQ2QsTUFBTSxFQUFFLENBQUM7RUFDVCxPQUFPLEVBQUUsQ0FBQyxHQVViO0VBZkQsQUFPSSxXQVBPLEFBT1AsTUFBTyxDQUFDO0lBQ0osT0FBTyxFQUFFLElBQUksR0FDaEI7RUFUTCxBQVdJLFdBWE8sQUFXUCxTQUFVLENBQUM7SUFDUCxNQUFNLEVBQUUsT0FBTztJQUNmLE1BQU0sRUFBRSxJQUFJLEdBQ2Y7O0FBRUwsQUFBYyxhQUFELENBQUMsWUFBWTtBQUMxQixBQUFjLGFBQUQsQ0FBQyxXQUFXLENBQUM7RUFDdEIsaUJBQWlCLEVBQUUsb0JBQW9CO0VBQ3ZDLGNBQWMsRUFBRSxvQkFBb0I7RUFDcEMsYUFBYSxFQUFFLG9CQUFvQjtFQUNuQyxZQUFZLEVBQUUsb0JBQW9CO0VBQ2xDLFNBQVMsRUFBRSxvQkFBb0IsR0FDbEM7O0FBRUQsQUFBQSxZQUFZLENBQUM7RUFDVCxRQUFRLEVBQUUsUUFBUTtFQUNsQixJQUFJLEVBQUUsQ0FBQztFQUNQLEdBQUcsRUFBRSxDQUFDO0VBQ04sT0FBTyxFQUFFLEtBQUssR0FlakI7RUFuQkQsQUFNSSxZQU5RLEFBTVIsT0FBUSxFQU5aLEFBT0ksWUFQUSxBQU9SLE1BQU8sQ0FBQztJQUNKLE9BQU8sRUFBRSxFQUFFO0lBQ1gsT0FBTyxFQUFFLEtBQUssR0FDakI7RUFWTCxBQVlJLFlBWlEsQUFZUixNQUFPLENBQUM7SUFDSixLQUFLLEVBQUUsSUFBSSxHQUNkO0VBRUQsQUFBZSxjQUFELENBaEJsQixZQUFZLENBZ0JTO0lBQ2IsVUFBVSxFQUFFLE1BQU0sR0FDckI7O0FBRUwsQUFBQSxZQUFZLENBQUM7RUFDVCxLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLEdBQUc7RUFXZixPQUFPLEVBQUUsSUFBSSxHQW1CaEI7R0E3QkcsQUFBQSxBQUFZLEdBQVgsQ0FBSSxLQUFLLEFBQVQsRUFKTCxZQUFZLENBSU07SUFDVixLQUFLLEVBQUUsS0FBSyxHQUNmO0VBTkwsQUFPSSxZQVBRLENBT1IsR0FBRyxDQUFDO0lBQ0EsT0FBTyxFQUFFLEtBQUssR0FDakI7RUFUTCxBQVVvQixZQVZSLEFBVVIsY0FBZSxDQUFDLEdBQUcsQ0FBQztJQUNoQixPQUFPLEVBQUUsSUFBSSxHQUNoQjtFQVpMLEFBZ0JlLFlBaEJILEFBZ0JSLFNBQVUsQ0FBQyxHQUFHLENBQUM7SUFDWCxjQUFjLEVBQUUsSUFBSSxHQUN2QjtFQUVELEFBQW1CLGtCQUFELENBcEJ0QixZQUFZLENBb0JhO0lBQ2pCLE9BQU8sRUFBRSxLQUFLLEdBQ2pCO0VBRUQsQUFBZSxjQUFELENBeEJsQixZQUFZLENBd0JTO0lBQ2IsVUFBVSxFQUFFLE1BQU0sR0FDckI7RUFFRCxBQUFnQixlQUFELENBNUJuQixZQUFZLENBNEJVO0lBQ2QsT0FBTyxFQUFFLEtBQUs7SUFDZCxNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxxQkFBcUIsR0FDaEM7O0FBRUwsQUFBQSxZQUFZLEFBQUEsYUFBYSxDQUFDO0VBQ3RCLE9BQU8sRUFBRSxJQUFJLEdBQ2hCOztBQ2pHRCx3QkFBd0I7QUFDeEIsQUFBQSxPQUFPLENBQUM7RUFDTixHQUFHLEVBQUUsQ0FBQztFQUNOLElBQUksRUFBRSxDQUFDO0VBQ1AsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLE9BQU8sRUFBRSxJQUFJO0VBQ2IsUUFBUSxFQUFFLE1BQU07RUFDaEIsUUFBUSxFQUFFLEtBQUs7RUFDZixVQUFVLEVBQUUsT0FBTztFQUNuQixPQUFPLEVBQUUsR0FBRyxHQUNiOztBQUVELEFBQUEsU0FBUyxDQUFDO0VBQ1IsR0FBRyxFQUFFLENBQUM7RUFDTixJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixPQUFPLEVBQUUsSUFBSTtFQUNiLFFBQVEsRUFBRSxLQUFLO0VBQ2YsT0FBTyxFQUFFLGVBQWU7RUFDeEIsMkJBQTJCLEVBQUUsTUFBTSxHQUNwQzs7QUFFRCxBQUFBLGNBQWMsQ0FBQztFQUNiLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixJQUFJLEVBQUUsQ0FBQztFQUNQLEdBQUcsRUFBRSxDQUFDO0VBQ04sT0FBTyxFQUFFLEtBQUs7RUFDZCxVQUFVLEVBQUUsVUFBVSxHQUN2Qjs7QUFFRCxBQUFBLGNBQWMsQUFBQSxPQUFPLENBQUM7RUFDcEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxPQUFPLEVBQUUsWUFBWTtFQUNyQixNQUFNLEVBQUUsSUFBSTtFQUNaLGNBQWMsRUFBRSxNQUFNLEdBQ3ZCOztBQUVELEFBQWUsY0FBRCxDQUFDLGNBQWMsQUFBQSxPQUFPLENBQUM7RUFDbkMsT0FBTyxFQUFFLElBQUksR0FDZDs7QUFFRCxBQUFBLFlBQVksQ0FBQztFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLE1BQU0sRUFBRSxNQUFNO0VBQ2QsVUFBVSxFQUFFLElBQUk7RUFDaEIsT0FBTyxFQUFFLElBQUksR0FDZDs7QUFFRCxBQUFtQixrQkFBRCxDQUFDLFlBQVk7QUFDL0IsQUFBaUIsZ0JBQUQsQ0FBQyxZQUFZLENBQUM7RUFDNUIsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSSxHQUNiOztBQUVELEFBQUEsYUFBYSxDQUFDO0VBQ1osTUFBTSxFQUFFLFFBQVEsR0FDakI7O0FBRUQsQUFBQSxpQkFBaUI7QUFDakIsQUFBb0MsaUJBQW5CLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDO0VBQzdDLE1BQU0sRUFBRSxhQUFhO0VBQ3JCLE1BQU0sRUFBRSxnQkFBZ0I7RUFDeEIsTUFBTSxFQUFFLFFBQVEsR0FDakI7O0FBRUQsQUFBQSxTQUFTLENBQUM7RUFDUixNQUFNLEVBQUUsT0FBTztFQUNmLE1BQU0sRUFBRSxlQUFlO0VBQ3ZCLE1BQU0sRUFBRSxZQUFZO0VBQ3BCLE1BQU0sRUFBRSxPQUFPLEdBQ2hCOztBQUVELEFBQWlCLGdCQUFELENBQUMsWUFBWSxDQUFDO0VBQzVCLE1BQU0sRUFBRSxJQUFJLEdBQ2I7O0FBRUQsQUFBQSxVQUFVO0FBQ1YsQUFBQSxVQUFVO0FBQ1YsQUFBQSxjQUFjO0FBQ2QsQUFBQSxZQUFZLENBQUM7RUFDWCxtQkFBbUIsRUFBRSxJQUFJO0VBQ3pCLGdCQUFnQixFQUFFLElBQUk7RUFDdEIsV0FBVyxFQUFFLElBQUk7RUFDakIsZ0JBQWdCLEVBQUUsV0FBVyxHQUM5Qjs7QUFFRCxBQUFBLFlBQVksQUFBQSxXQUFXLENBQUM7RUFDdEIsT0FBTyxFQUFFLElBQUksR0FDZDs7QUFFRCxBQUFBLFNBQVMsQ0FBQztFQUNSLE9BQU8sRUFBRSxlQUFlLEdBQ3pCOztBQUVELEFBQUEsY0FBYyxDQUFDO0VBQ2IsS0FBSyxFQUFFLElBQUk7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsR0FBRztFQUNSLEtBQUssRUFBRSxJQUFJO0VBQ1gsVUFBVSxFQUFFLE1BQU07RUFDbEIsVUFBVSxFQUFFLE1BQU07RUFDbEIsSUFBSSxFQUFFLEdBQUc7RUFDVCxLQUFLLEVBQUUsR0FBRztFQUNWLE9BQU8sRUFBRSxJQUFJLEdBUWQ7RUFqQkQsQUFXRSxjQVhZLENBV1osQ0FBQyxDQUFDO0lBQ0EsS0FBSyxFQUFFLElBQUksR0FJWjtJQWhCSCxBQVdFLGNBWFksQ0FXWixDQUFDLEFBRUMsTUFBTyxDQUFDO01BQ04sS0FBSyxFQUFFLElBQUksR0FDWjs7QUFJTCxBQUFhLFlBQUQsQ0FBQyxjQUFjLENBQUM7RUFDMUIsT0FBTyxFQUFFLElBQUksR0FDZDs7QUFFRCxBQUFhLFlBQUQsQ0FBQyxZQUFZLENBQUM7RUFDeEIsT0FBTyxFQUFFLElBQUksR0FDZDs7QUFFRCxBQUFBLE1BQU0sQUFBQSxVQUFVO0FBQ2hCLEFBQUEsTUFBTSxBQUFBLFVBQVUsQ0FBQztFQUNmLFFBQVEsRUFBRSxPQUFPO0VBQ2pCLE1BQU0sRUFBRSxPQUFPO0VBRWYsTUFBTSxFQUFFLENBQUM7RUFDVCxrQkFBa0IsRUFBRSxJQUFJO0VBQ3hCLE9BQU8sRUFBRSxLQUFLO0VBQ2QsT0FBTyxFQUFFLElBQUk7RUFDYixPQUFPLEVBQUUsQ0FBQztFQUNWLE9BQU8sRUFBRSxJQUFJO0VBQ2IsVUFBVSxFQUFFLElBQUk7RUFDaEIsWUFBWSxFQUFFLFlBQVksR0FDM0I7O0FBRUQsQUFBQSxNQUFNLEFBQUEsa0JBQWtCLENBQUM7RUFDdkIsT0FBTyxFQUFFLENBQUM7RUFDVixNQUFNLEVBQUUsQ0FBQyxHQUNWOztBQUVELEFBQUEsVUFBVSxDQUFDO0VBQ1QsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFBRSxDQUFDO0VBQ1IsR0FBRyxFQUFFLENBQUM7RUFDTixlQUFlLEVBQUUsSUFBSTtFQUNyQixVQUFVLEVBQUUsTUFBTTtFQUNsQixPQUFPLEVBQUUsSUFBSTtFQUNiLE9BQU8sRUFBRSxhQUFhO0VBQ3RCLEtBQUssRUFBRSxJQUFJO0VBQ1gsVUFBVSxFQUFFLE1BQU07RUFDbEIsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsNkJBQTZCLEdBUzNDO0VBdkJELEFBZ0JFLFVBaEJRLEFBZ0JSLE1BQU8sRUFoQlQsQUFpQkUsVUFqQlEsQUFpQlIsTUFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLENBQUMsR0FDWDtFQW5CSCxBQW9CRSxVQXBCUSxBQW9CUixPQUFRLENBQUM7SUFDUCxHQUFHLEVBQUUsR0FBRyxHQUNUOztBQUdILEFBQWtCLGlCQUFELENBQUMsVUFBVSxDQUFDO0VBQzNCLEtBQUssRUFBRSxJQUFJLEdBQ1o7O0FBRUQsQUFBa0IsaUJBQUQsQ0FBQyxVQUFVO0FBQzVCLEFBQW1CLGtCQUFELENBQUMsVUFBVSxDQUFDO0VBQzVCLEtBQUssRUFBRSxJQUFJO0VBQ1gsS0FBSyxFQUFFLElBQUk7RUFDWCxVQUFVLEVBQUUsS0FBSztFQUNqQixhQUFhLEVBQUUsR0FBRztFQUNsQixLQUFLLEVBQUUsSUFBSSxHQUNaOztBQUVELEFBQUEsWUFBWSxDQUFDO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLENBQUM7RUFDTixLQUFLLEVBQUUsQ0FBQztFQUNSLEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsSUFBSTtFQUNqQixXQUFXLEVBQUUsTUFBTSxHQUNwQjs7QUFFRCxBQUFBLFVBQVUsQ0FBQztFQUNULFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxJQUFJO0VBQ2IsTUFBTSxFQUFFLENBQUM7RUFDVCxHQUFHLEVBQUUsR0FBRztFQUNSLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLE9BQU8sRUFBRSxDQUFDO0VBRVYsS0FBSyxFQUFFLElBQUk7RUFFWCxNQUFNLEVBQUUsSUFBSTtFQUNaLDJCQUEyQixFQUFFLFdBQVcsR0FDekM7O0FBQ0MsQUFBQSxVQUFVLEFBQUEsT0FBTyxDQUFDO0VBRWhCLFNBQVMsRUFBRSxVQUFTLEdBQ3JCOztBQUNELEFBQUEsVUFBVSxBQUFBLE1BQU07QUFDaEIsQUFBQSxVQUFVLEFBQUEsTUFBTSxDQUFDO0VBQ2YsT0FBTyxFQUFFLENBQUMsR0FDWDs7QUF5QkgsQUFBQSxlQUFlLENBQUM7RUFDZCxJQUFJLEVBQUUsSUFBSTtFQUNWLFVBQVUsRUFBRSxzQ0FBc0MsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQ2xGOztBQUNDLEFBQUEsZUFBZSxBQUFBLE1BQU0sQ0FBQztFQUNwQixZQUFZLEVBQUUsZUFBZTtFQUM3QixXQUFXLEVBQUUsSUFBSSxHQUNsQjs7QUFDRCxBQUFBLGVBQWUsQUFBQSxPQUFPLENBQUM7RUFDckIsV0FBVyxFQUFFLElBQUk7RUFDakIsWUFBWSxFQUFFLGtCQUFrQixHQUNqQzs7QUFFSCxBQUFBLGdCQUFnQixDQUFDO0VBQ2YsS0FBSyxFQUFFLElBQUk7RUFDWCxVQUFVLEVBQUUsdUNBQXVDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxHQVVuRjs7QUFFRCxBQUFBLGtCQUFrQixDQUFDO0VBQ2pCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLGNBQWMsRUFBRSxJQUFJLEdBVXJCO0VBWkQsQUFJRSxrQkFKZ0IsQ0FJaEIsWUFBWSxDQUFDO0lBQ1gsV0FBVyxFQUFFLENBQUM7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFNBQVMsRUFBRSxLQUFLLEdBQ2pCO0VBUkgsQUFTRSxrQkFUZ0IsQ0FTaEIsVUFBVSxDQUFDO0lBQ1QsR0FBRyxFQUFFLEtBQUssR0FDWDs7QUFHSCxBQUFBLGtCQUFrQixDQUFDO0VBQ2pCLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLENBQUM7RUFDVCxRQUFRLEVBQUUsTUFBTTtFQUNoQixXQUFXLEVBQUUsTUFBTSxHQVlwQjtFQWhCRCxBQU1FLGtCQU5nQixDQU1oQixNQUFNLENBQUM7SUFDTCxRQUFRLEVBQUUsUUFBUTtJQUNsQixPQUFPLEVBQUUsS0FBSztJQUNkLEdBQUcsRUFBRSxDQUFDO0lBQ04sSUFBSSxFQUFFLENBQUM7SUFDUCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGtCQUFrQjtJQUN0QyxVQUFVLEVBQUUsSUFBSSxHQUNqQjs7QUFHSCx5QkFBeUI7QUFDekIsQUFBQSxHQUFHLEFBQUEsUUFBUSxDQUFDO0VBQ1YsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsSUFBSTtFQUNmLE1BQU0sRUFBRSxJQUFJO0VBQ1osT0FBTyxFQUFFLEtBQUs7RUFDZCxXQUFXLEVBQUUsQ0FBQztFQUNkLFVBQVUsRUFBRSxVQUFVO0VBQ3RCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE1BQU0sRUFBRSxNQUFNLEdBQ2Y7O0FBRUQsaUNBQWlDO0FBQ2pDLEFBQUEsV0FBVyxDQUFDO0VBQ1YsV0FBVyxFQUFFLENBQUMsR0F5QmY7RUExQkQsQUFHRSxXQUhTLEFBR1QsTUFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsUUFBUTtJQUNsQixJQUFJLEVBQUUsQ0FBQztJQUNQLEdBQUcsRUFBRSxJQUFJO0lBQ1QsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsS0FBSztJQUNkLEtBQUssRUFBRSxDQUFDO0lBQ1IsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxFQUFFO0lBQ1gsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGtCQUFrQjtJQUN0QyxVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQWhCSCxBQWlCRSxXQWpCUyxDQWlCVCxLQUFLLENBQUM7SUFDSixLQUFLLEVBQUUsT0FBTztJQUNkLE9BQU8sRUFBRSxLQUFLO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQXRCSCxBQXVCRSxXQXZCUyxDQXVCVCxNQUFNLENBQUM7SUFDTCxNQUFNLEVBQUUsQ0FBQyxHQUNWOztBQUdILEFBQUEsZUFBZSxDQUFDO0VBQ2QsVUFBVSxFQUFFLEtBQUs7RUFDakIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLElBQUk7RUFDVCxJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUksR0FDYjs7QUFFRCxBQUFBLFVBQVUsQ0FBQztFQUNULFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLEtBQUssRUFBRSxPQUFPO0VBQ2QsU0FBUyxFQUFFLFVBQVU7RUFDckIsYUFBYSxFQUFFLElBQUksR0FDcEI7O0FBRUQsQUFBa0IsaUJBQUQsQ0FBQyxZQUFZLENBQUM7RUFDN0IsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBRUQsQUFBK0IsWUFBbkIsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7RUFDekMsTUFBTSxFQUFFLE9BQU8sR0FDaEI7O0FBRUQsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSyxPQUFPLFdBQVcsRUFBRSxTQUFTLEdBQUcsTUFBTSxNQUFNLFVBQVUsRUFBRSxLQUFLO0VBSzlGLEFBQWdCLGVBQUQsQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDLEdBQ2pCO0VBQ0QsQUFBZ0IsZUFBRCxDQUFDLEdBQUcsQUFBQSxRQUFRLENBQUM7SUFDMUIsT0FBTyxFQUFFLENBQUMsR0FDWDtFQUNELEFBQWdCLGVBQUQsQ0FBQyxXQUFXLEFBQUEsTUFBTSxDQUFDO0lBQ2hDLEdBQUcsRUFBRSxDQUFDO0lBQ04sTUFBTSxFQUFFLENBQUMsR0FDVjtFQUNELEFBQTRCLGVBQWIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2hDLE9BQU8sRUFBRSxNQUFNO0lBQ2YsV0FBVyxFQUFFLEdBQUcsR0FDakI7RUFDRCxBQUFnQixlQUFELENBQUMsZUFBZSxDQUFDO0lBQzlCLFVBQVUsRUFBRSxrQkFBa0I7SUFDOUIsTUFBTSxFQUFFLENBQUM7SUFDVCxNQUFNLEVBQUUsQ0FBQztJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsT0FBTyxFQUFFLE9BQU87SUFDaEIsUUFBUSxFQUFFLEtBQUs7SUFDZixVQUFVLEVBQUUsVUFBVSxHQUt2QjtJQVpELEFBQWdCLGVBQUQsQ0FBQyxlQUFlLEFBUzdCLE1BQU8sQ0FBQztNQUNOLE9BQU8sRUFBRSxDQUFDLEdBQ1g7RUFFSCxBQUFnQixlQUFELENBQUMsWUFBWSxDQUFDO0lBQzNCLEtBQUssRUFBRSxHQUFHO0lBQ1YsR0FBRyxFQUFFLEdBQUcsR0FDVDtFQUNELEFBQWdCLGVBQUQsQ0FBQyxVQUFVLENBQUM7SUFDekIsR0FBRyxFQUFFLENBQUM7SUFDTixLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixXQUFXLEVBQUUsSUFBSTtJQUNqQixVQUFVLEVBQUUsa0JBQWtCO0lBQzlCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLENBQUMsR0FDWDs7QUFHSCxNQUFNLENBQUMsR0FBRyxNQUFNLFNBQVMsRUFBRSxLQUFLO0VBQzlCLEFBQUEsVUFBVSxDQUFDO0lBQ1QsaUJBQWlCLEVBQUUsV0FBVztJQUM5QixTQUFTLEVBQUUsV0FBVyxHQUN2QjtFQUNELEFBQUEsZUFBZSxDQUFDO0lBQ2Qsd0JBQXdCLEVBQUUsQ0FBQztJQUMzQixnQkFBZ0IsRUFBRSxDQUFDLEdBQ3BCO0VBQ0QsQUFBQSxnQkFBZ0IsQ0FBQztJQUNmLHdCQUF3QixFQUFFLElBQUk7SUFDOUIsZ0JBQWdCLEVBQUUsSUFBSSxHQUN2QjtFQUNELEFBQUEsY0FBYyxDQUFDO0lBQ2IsWUFBWSxFQUFFLEdBQUc7SUFDakIsYUFBYSxFQUFFLEdBQUcsR0FDbkI7O0FDNWFILEFBQUEsSUFBSSxFV0hKLEFYR0EsVVdIVSxDQUlSLFVBQVUsQ0FxQlIsZUFBZSxDQTJCYixvQkFBb0IsQ0FrQmxCLFVBQVUsQ1huRWI7RUFDSCxPQUFPLEVBQUUsWUFBWTtFQUNyQixLQUFLLEVBQUUsS0FBSztFQUNaLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLElBQUk7RUFDWixXQUFXLEVBQUUsSUFBSTtFQUNqQixNQUFNLEVBQUUsSUFBSTtFQUNaLFVBQVUsRU5YTSxPQUFPO0VNWXZCLGNBQWMsRUFBRSxTQUFTO0VBQ3pCLGVBQWUsRUFBRSxlQUFlO0VBQ2hDLFNBQVMsRUFBRSxJQUFJO0VMbUhmLFdBQVcsRUFBRSxjQUFjO0VBQzNCLFdBQVcsRUtuSEksR0FBRztFTFhuQixzQkFBc0IsRUFBRSxXQUFXO0VLWWxDLE9BQU8sRUFBRSxNQUFNO0VBQ2YsYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQUFFLGFBQWEsR0FzRTFCO0VBckZELEFBa0JFLElBbEJFLEFBa0JGLE1BQU8sRVdyQlQsQVhHQSxVV0hVLENBSVIsVUFBVSxDQXFCUixlQUFlLENBMkJiLG9CQUFvQixDQWtCbEIsVUFBVSxBWGpEaEIsTUFBTyxDQUFDO0lBQ04sVUFBVSxFQUFFLE9BQWtDO0lBQzlDLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0hzRGYsa0JBQW9CLEdHckQzQjtFQXRCSCxBQTBCRSxJQTFCRSxBQTBCRixPQUFRLEVXN0JWLEFYR0EsVVdIVSxDQUlSLFVBQVUsQ0FxQlIsZUFBZSxDQTJCYixvQkFBb0IsQ0FrQmxCLFVBQVUsQ1h6Q1A7SUFDUCxVQUFVLEVOL0JELE9BQU87SU1nQ2hCLEtBQUssRU52QkEsT0FBTyxHTXNDYjtJQTNDSCxBQThCSSxJQTlCQSxBQTBCRixPQUFRLEFBSU4sTUFBTyxFV2pDWCxBWEdBLFVXSFUsQ0FJUixVQUFVLENBcUJSLGVBQWUsQ0EyQmIsb0JBQW9CLENBa0JsQixVQUFVLEFYckNkLE1BQU8sQ0FBQztNQUNOLFVBQVUsRUFBRSxPQUFxQixHQUNsQztJQWhDTCxBQWtDSSxJQWxDQSxBQTBCRixPQUFRLEFBUU4sT0FBUSxFV3JDWixBWEdBLFVXSFUsQ0FJUixVQUFVLENBcUJSLGVBQWUsQ0EyQmIsb0JBQW9CLENBa0JsQixVQUFVLENYakNMO01BQ1AsWUFBWSxFTnZDTCxPQUFPO01Nd0NkLEtBQUssRU54Q0UsT0FBTyxHTThDZjtNQTFDTCxBQXNDTSxJQXRDRixBQTBCRixPQUFRLEFBUU4sT0FBUSxBQUlOLE1BQU8sRVd6Q2IsQVhHQSxVV0hVLENBSVIsVUFBVSxDQXFCUixlQUFlLENBMkJiLG9CQUFvQixDQWtCbEIsVUFBVSxBWDdCWixNQUFPLENBQUM7UUFDTixVQUFVLEVOM0NMLE9BQU87UU00Q1osS0FBSyxFTm5DSixPQUFPLEdNb0NUO0VBekNQLEFBOENFLElBOUNFLEFBOENGLEVBQUcsRVdqREwsQVhHQSxVV0hVLENBSVIsVUFBVSxDQXFCUixlQUFlLENBMkJiLG9CQUFvQixDWEh4QixFQUFHLEFXcUJHLFVBQVUsQ1hyQlo7SUFDRixNQUFNLEVBQUUsSUFBSTtJQUNaLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFNBQVMsRUFBRSxJQUFJLEdBS2hCO0lBdERILEFBa0RJLElBbERBLEFBOENGLEVBQUcsQUFJRCxPQUFRLEVXckRaLEFYR0EsVVdIVSxDQUlSLFVBQVUsQ0FxQlIsZUFBZSxDQTJCYixvQkFBb0IsQ1hIeEIsRUFBRyxBV3FCRyxVQUFVLENYakJMO01BQ1AsWUFBWSxFQUFFLEdBQUc7TUFDakIsV0FBVyxFQUFFLElBQUksR0FDbEI7RUFyREwsQUF5REUsSUF6REUsQUF5REYsRUFBRyxFVzVETCxBWEdBLFVXSFUsQ0FJUixVQUFVLENBcUJSLGVBQWUsQ0EyQmIsb0JBQW9CLENYUXhCLEVBQUcsQVdVRyxVQUFVLENYVlo7SUFDRixNQUFNLEVBQUUsSUFBSTtJQUNaLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsWUFBWSxFQUFFLElBQUk7SUFDbEIsYUFBYSxFQUFFLElBQUksR0FLcEI7SUFuRUgsQUFnRUksSUFoRUEsQUF5REYsRUFBRyxBQU9ELE9BQVEsRVduRVosQVhHQSxVV0hVLENBSVIsVUFBVSxDQXFCUixlQUFlLENBMkJiLG9CQUFvQixDWFF4QixFQUFHLEFXVUcsVUFBVSxDWEhMO01BQ1AsV0FBVyxFQUFFLElBQUksR0FDbEI7RUFsRUwsQUFzRUUsSUF0RUUsQUFzRUYsT0FBUSxFV3pFVixBWEdBLFVXSFUsQ0FJUixVQUFVLENBcUJSLGVBQWUsQ0EyQmIsb0JBQW9CLENBa0JsQixVQUFVLENYR1A7SUFDUCxVQUFVLEVBQUUsV0FBVztJQUN2QixNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ04zRUgsT0FBTztJTTRFckIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFTjdFUyxPQUFPLEdNb0Z0QjtJQWpGSCxBQTRFSSxJQTVFQSxBQXNFRixPQUFRLEFBTU4sTUFBTyxFVy9FWCxBWEdBLFVXSFUsQ0FJUixVQUFVLENBcUJSLGVBQWUsQ0EyQmIsb0JBQW9CLENBa0JsQixVQUFVLEFYU2QsTUFBTyxDQUFDO01BQ04sVUFBVSxFTmhGRSxPQUFPO01NaUZuQixLQUFLLEVBQUUsS0FBSztNQUNaLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0hKbEIsa0JBQW9CLEdHS3pCOztBQ3BGTCxBQUFBLE9BQU8sQ0FBQztFQUNOLFVBQVUsRUFBRSxpQ0FBaUM7RUFDN0MsT0FBTyxFQUFFLENBQUM7RUFDVixhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQ1BIYixPQUFPO0VPSWxCLFFBQVEsRUFBRSxLQUFLO0VBQ2YsR0FBRyxFQUFFLENBQUM7RUFDTixJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLElBQUk7RUFDYixVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENKc0VkLGtCQUFvQjtFSXJFNUIsTUFBTSxFQUFFLElBQUk7RUFDWixlQUFlLEVBQUUsV0FBVyxHQWlIN0I7RUE1SEQsQU4rRkUsT00vRkssQU4rRk4sTUFBUSxDQUFDO0lBQ04sS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RU1uR0gsQUFlTSxPQWZDLEdBZUQsVUFBVSxDQUFDO0lBQ2IsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsUUFBUSxHQUNuQjtFQWxCSCxBQW9CRSxPQXBCSyxDQW9CTCxHQUFHLENBQUM7SUFDRixLQUFLLEVBQUUsSUFBSSxHQXFGWjtJQTFHSCxBQXVCSSxPQXZCRyxDQW9CTCxHQUFHLENBR0QsYUFBYSxDQUFDO01BQ1osT0FBTyxFQUFFLElBQUksR0F5QmQ7TUFqREwsQUF1QkksT0F2QkcsQ0FvQkwsR0FBRyxDQUdELGFBQWEsQUFHWCxPQUFRLENBQUM7UUFDUCxPQUFPLEVBQUUsS0FBSztRQUNkLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7TUx1Sk4sTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztRS3BMcEMsQUF1QkksT0F2QkcsQ0FvQkwsR0FBRyxDQUdELGFBQWEsQ0FBQztVQVNWLFdBQVcsRUFBRSxlQUFlO1VBQzVCLFFBQVEsRUFBRSxNQUFNO1VBQ2hCLE9BQU8sRUFBRSxLQUFLO1VBQ2QsS0FBSyxFQUFFLElBQUk7VUFDWCxNQUFNLEVBQUUsSUFBSTtVQUNaLFdBQVcsRUFBRSxJQUFJO1VBRWpCLFVBQVUsRUFBRSxNQUFNO1VBQ2xCLFdBQVcsRUFBRSxHQUFHO1VBQ2hCLFNBQVMsRUFBRSxJQUFJO1VBQ2YsWUFBWSxFQUFFLEtBQUssQ0FBQyxHQUFHLENKeUNyQix3QkFBMEIsR0lsQy9CO01BakRMLEFBdUJJLE9BdkJHLENBb0JMLEdBQUcsQ0FHRCxhQUFhLEFBc0JYLEtBQU0sQ0FBQztRQUNMLGdCQUFnQixFUDNDZCxPQUFPLEdPNENWO0lMcUlOLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7TUtwTHBDLEFBb0JFLE9BcEJLLENBb0JMLEdBQUcsQ0FBQztRQWdDQSxRQUFRLEVBQUUsUUFBUTtRQUNsQixLQUFLLEVBQUUsSUFBSSxHQXFEZDtJQTFHSCxBQXdESSxPQXhERyxDQW9CTCxHQUFHLENBb0NELEVBQUUsQ0FBQztNQUNELFVBQVUsRUFBRSxJQUFJO01BQ2hCLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxDQUFDO01BQ1YsTUFBTSxFQUFFLENBQUMsR0E2Q1Y7TUwyRUosTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztRS3BMcEMsQUF3REksT0F4REcsQ0FvQkwsR0FBRyxDQW9DRCxFQUFFLENBQUM7VUFRQyxPQUFPLEVBQUUsSUFBSTtVQUNiLFFBQVEsRUFBRSxRQUFRO1VBQ2xCLEdBQUcsRUFBRSxJQUFJO1VBQ1QsSUFBSSxFQUFFLENBQUM7VUFDUCxLQUFLLEVBQUUsQ0FBQztVQUNSLFVBQVUsRVBsRVIsT0FBTztVT21FVCxPQUFPLEVBQUUsSUFBSSxHQW1DaEI7VUF6R0wsQUF3REksT0F4REcsQ0FvQkwsR0FBRyxDQW9DRCxFQUFFLEFBZ0JFLEtBQU0sQ0FBQztZQUNMLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7TUExRVQsQUE2RU0sT0E3RUMsQ0FvQkwsR0FBRyxDQW9DRCxFQUFFLENBcUJBLEVBQUUsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO1FBQ1YsS0FBSyxFQUFFLElBQUk7UUFDWCxTQUFTLEVBQUUsSUFBSTtRQUNmLFdBQVcsRUFBRSxHQUFHO1FBRWQsT0FBTyxFQUFFLEtBQUssR0FNakI7UUwyRk4sTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztVS3BMcEMsQUE2RU0sT0E3RUMsQ0FvQkwsR0FBRyxDQW9DRCxFQUFFLENBcUJBLEVBQUUsQ0FBQztZQVFDLEtBQUssRUFBRSxJQUFJO1lBQ1gsYUFBYSxFQUFFLGVBQWU7WUFDOUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxHQUFHLENKSnJCLHdCQUEwQixHSU03QjtNQXpGUCxBQTBGTSxPQTFGQyxDQW9CTCxHQUFHLENBb0NELEVBQUUsQ0FrQ0EsQ0FBQyxDQUFDO1FBQ0EsT0FBTyxFQUFFLEtBQUs7UUFDZCxXQUFXLEVBQUUsSUFBSTtRQUNqQixPQUFPLEVBQUUsTUFBTTtRQUNmLFVBQVUsRUFBRSxhQUFhO1FBQ3pCLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0poQnBCLGtCQUFvQixHSXlCdkI7UUF4R1AsQUEwRk0sT0ExRkMsQ0FvQkwsR0FBRyxDQW9DRCxFQUFFLENBa0NBLENBQUMsQUFPQyxNQUFPLENBQUM7VUFDTixLQUFLLEVBQUUsS0FBSyxHQUNiO1FMaUZSLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7VUtwTHBDLEFBMEZNLE9BMUZDLENBb0JMLEdBQUcsQ0FvQ0QsRUFBRSxDQWtDQSxDQUFDLENBQUM7WUFZRSxZQUFZLEVBQUUsSUFBSSxHQUVyQjtFQXhHUCxBQTZHSSxPQTdHRyxBQTRHTCxNQUFPLENBQ0wsS0FBSyxBQUNILE9BQVEsQ0FBQztJQUNQLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFLEtBQUs7SUFDWixHQUFHLEVBQUUsQ0FBQyxHQUVQO0VBbkhQLEFBb0hNLE9BcEhDLEFBNEdMLE1BQU8sQ0FDTCxLQUFLLENBT0gsR0FBRyxDQUFDO0lBQ0YsS0FBSyxFQUFFLEtBQUssR0FFYjs7QUFPUCxBQUFBLEtBQUssQ0FBQztFQUNKLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxJQUFJO0VBQ1QsSUFBSSxFQUFFLEdBQUc7RUFDVCxTQUFTLEVBQUUsZ0JBQWdCO0VBQzNCLFVBQVUsRUFBRSxhQUFhLEdBa0QxQjtFTERBLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7SUt0RHBDLEFBQUEsS0FBSyxDQUFDO01BUUYsS0FBSyxFQUFFLEtBQUssR0ErQ2Y7RUF2REQsQUFXRSxLQVhHLEFBV0gsT0FBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLEVBQUU7SUFDWCxPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFLEtBQUs7SUFDWixVQUFVLEVBQUUsR0FBRztJQUNmLEdBQUcsRUFBRSxJQUFJO0lBQ1QsSUFBSSxFQUFFLEdBQUc7SUFDVCxTQUFTLEVBQUUsZ0JBQWdCO0lBQzNCLFVBQVUsRUFBRSx3SUFLWDtJQUNELFVBQVUsRUFBRSxRQUFRLEdBQ3JCO0VBNUJILEFBOEJFLEtBOUJHLENBOEJILEdBQUcsQ0FBQztJQUNGLEtBQUssRUFBRSxLQUFLO0lBRVosVUFBVSxFQUFFLGFBQWE7SUFDekIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLElBQUksR0FDZDtFQXBDSCxBQXNDRSxLQXRDRyxBQXNDSCxNQUFPLENBQUM7SUFDTixHQUFHLEVBQUUsR0FBRztJQUNSLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXLEdBQ3hDO0VBRUQsQUFBeUIsd0JBQUQsQ0EzQzFCLEtBQUssQUE0Q0QsT0FBUSxDQUFDO0lBQ1AsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsS0FBSztJQUNaLEdBQUcsRUFBRSxDQUFDLEdBRVA7RUFOSCxBQU9FLHdCQVBzQixDQTNDMUIsS0FBSyxDQWtERCxHQUFHLENBQUM7SUFDRixLQUFLLEVBQUUsS0FBSyxHQUViOztBQUlMLEFBQUEsT0FBTyxDQUFDO0VBQ04sS0FBSyxFQUFFLEtBQUs7RUFDWixVQUFVLEVBQUUsSUFBSTtFQUNoQixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsQ0FBQztFQUNWLE1BQU0sRUFBRSxDQUFDLEdBa0hWO0VMMUhBLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7SUtHcEMsQUFBQSxPQUFPLENBQUM7TUFRSixRQUFRLEVBQUUsUUFBUTtNQUNsQixLQUFLLEVBQUUsQ0FBQztNQUNSLEdBQUcsRUFBRSxDQUFDLEdBNkdUO0VBdkhELEFBYUUsT0FiSyxDQWFMLEVBQUUsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1YsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVOL0pKLEtBQXVCO0lNZ0s1QixPQUFPLEVBQUUsWUFBWSxHQStFdEI7SUFoR0gsQUFhRSxPQWJLLENBYUwsRUFBRSxBQU1BLGtCQUFtQixDQUFDO01BQ2xCLFFBQVEsRUFBRSxNQUFNO01BQ2hCLFdBQVcsRUFBRSxPQUFPO01BQ3BCLGNBQWMsRUFBRSxNQUFNO01BQ3RCLE9BQU8sRUFBRSxJQUFJO01BQ2IsVUFBVSxFQUFFLGFBQWEsR0FvQjFCO01BNUNMLEFBYUUsT0FiSyxDQWFMLEVBQUUsQUFNQSxrQkFBbUIsQUFPakIsTUFBTyxDQUFDO1FBQ04sU0FBUyxFQUFFLFVBQVUsR0FDdEI7TUE1QlAsQUFhRSxPQWJLLENBYUwsRUFBRSxBQU1BLGtCQUFtQixBQVdqQixPQUFRLENBQUM7UUFDUCxVQUFVLEVBQUUsTUFBTTtRQUNsQixTQUFTLEVBQUUsVUFBUyxHQUNyQjtNTHBDTixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO1FLR3BDLEFBYUUsT0FiSyxDQWFMLEVBQUUsQUFNQSxrQkFBbUIsQ0FBQztVQWlCaEIsT0FBTyxFQUFFLGVBQWUsR0FRM0I7TUE1Q0wsQUF1Q00sT0F2Q0MsQ0FhTCxFQUFFLEFBTUEsa0JBQW1CLENBb0JqQixDQUFDLEFBQ0MsTUFBTyxDQUFDO1FBQ04sU0FBUyxFQUFFLGVBQWUsR0FDM0I7SUw3Q1IsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztNS0dwQyxBQWFFLE9BYkssQ0FhTCxFQUFFLEFBaUNBLGdCQUFpQixFQTlDckIsQUFhRSxPQWJLLENBYUwsRUFBRSxBQWtDQSxjQUFlLENBQUM7UUFFWixPQUFPLEVBQUUsZUFBZSxHQUUzQjtJTHRESixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO01LR3BDLEFBYUUsT0FiSyxDQWFMLEVBQUUsQUF1Q0EsY0FBZSxDQUFDO1FBRVosWUFBWSxFQUFFLElBQUksR0FFckI7SUF4REwsQUEyRE0sT0EzREMsQ0FhTCxFQUFFLEFBNkNBLHdCQUF5QixDQUN2QixDQUFDLENBQUM7TUFDQSxZQUFZLEVBQUUsSUFBSTtNQUNsQixLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJO01BQ1osVUFBVSxFQUFFLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBZ0I5RDtNTm5KTixNQUFNLEVBQUUsOEJBQThCLEVBQUUsQ0FBQyxJQUFJLGNBQWMsRUFBRSxNQUFNO1FNb0VwRSxBQTJETSxPQTNEQyxDQWFMLEVBQUUsQUE2Q0Esd0JBQXlCLENBQ3ZCLENBQUMsQ0FBQztVQU9FLFVBQVUsRUFBRSxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsU0FBUztVQUNoRSxlQUFlLEVBQUUsU0FBUyxHQVk3QjtNTGxGTixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxNQUFNO1FLR3JDLEFBMkRNLE9BM0RDLENBYUwsRUFBRSxBQTZDQSx3QkFBeUIsQ0FDdkIsQ0FBQyxDQUFDO1VBWUUsS0FBSyxFQUFFLElBQUk7VUFDWCxVQUFVLEVBQUUsa0NBQWtDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FPbEU7RU5uSk4sTUFBTSxDQUFDLE1BQW1DLE1DaUV2QixTQUFTLEVBQUUsTUFBTSxPRGpFNUIsOEJBQThCLEVBQUUsQ0FBQyxHQUFHLE1BQXdCLE1DaUVqRCxTQUFTLEVBQUUsTUFBTSxPRGpFUyxjQUFjLEVBQUUsTUFBTTtJTW9FcEUsQUEyRE0sT0EzREMsQ0FhTCxFQUFFLEFBNkNBLHdCQUF5QixDQUN2QixDQUFDLENBQUM7TUFnQkksVUFBVSxFQUFFLHFDQUFxQyxDQUFDLE1BQU0sQ0FBQyxTQUFTO01BQ2xFLGVBQWUsRUFBRSxTQUFTLEdBRy9CO0lBL0VQLEFBbUZNLE9BbkZDLENBYUwsRUFBRSxBQXFFQSxzQkFBdUIsQ0FDckIsQ0FBQyxDQUFDO01BQ0EsWUFBWSxFQUFFLElBQUk7TUFDbEIsS0FBSyxFQUFFLEtBQUs7TUFDWixNQUFNLEVBQUUsSUFBSTtNQUNaLFVBQVUsRUFBRSw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsU0FBUyxHQU01RDtNTGhHTixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxNQUFNO1FLR3JDLEFBbUZNLE9BbkZDLENBYUwsRUFBRSxBQXFFQSxzQkFBdUIsQ0FDckIsQ0FBQyxDQUFDO1VBT0UsS0FBSyxFQUFFLElBQUk7VUFDWCxVQUFVLEVBQUUsZ0NBQWdDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FFaEU7RUE3RlAsQUFpR0UsT0FqR0ssQ0FpR0wsQ0FBQyxDQUFDO0lBQ0EsT0FBTyxFQUFFLEtBQUs7SUFDZCxXQUFXLEVBQUUsSUFBSTtJQUNqQixPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0o5TWhCLGtCQUFvQixHSTBOM0I7SUFsSEgsQUFpR0UsT0FqR0ssQ0FpR0wsQ0FBQyxBQU9DLE1BQU8sQ0FBQztNQUNOLEtBQUssRUFBRSxLQUFLO01BQ1osU0FBUyxFQUFFLFVBQVUsQ0FBQyxVQUFVLEdBRWpDO0lML0dKLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7TUtHcEMsQUFpR0UsT0FqR0ssQ0FpR0wsQ0FBQyxDQUFDO1FBY0UsT0FBTyxFQUFFLEtBQUssR0FHakI7RUFsSEgsQUFtSEUsT0FuSEssQ0FtSEwsR0FBRyxDQUFDO0lBQ0YsT0FBTyxFQUFFLFlBQVk7SUFDckIsY0FBYyxFQUFFLE1BQU0sR0FDdkI7O0FDN1NILEFBQUEsUUFBUSxDQUFDO0VBQ1AsVUFBVSxFUllILG9CQUFPO0VRWGQsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFUkRDLE9BQU8sR1F1QmQ7RUF6QkQsQUFLRSxRQUxNLEFBS04sT0FBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLEVBQUU7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsR0FBRyxFQUFFLEtBQUs7SUFDVixJQUFJLEVBQUUsQ0FBQztJQUNQLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFVBQVUsRUFBRSxzQ0FBc0M7SUFDbEQsT0FBTyxFQUFFLElBQUksR0FDZDtFQWRILEFBZUUsUUFmTSxBQWVOLE1BQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxFQUFFO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxLQUFLO0lBQ2IsSUFBSSxFQUFFLENBQUM7SUFDUCxRQUFRLEVBQUUsUUFBUTtJQUNsQixVQUFVLEVBQUUsc0NBQXNDO0lBQ2xELE9BQU8sRUFBRSxJQUFJLEdBQ2Q7O0F4RkZILEFBQUEsQ0FBQyxDQUFDO0VBQ0EsVUFBVSxFQUFFLFVBQVU7RUFDdEIsc0JBQXNCLEVBQUUsV0FBVyxHQUNwQzs7QUFFRCxBQUFBLElBQUksQ0FBQztFQUNILFdBQVcsRUFBRSxjQUFjO0VBQzNCLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ2dGMUI3QyxPQUFPO0VoRjJCZixNQUFNLEVBQUUsQ0FBQztFQUNULFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEtBQUs7RUFDbEIsS0FBSyxFZ0Z0QlEsT0FBTyxHaEZ1QnJCOztBQUVELEFBQUEsQ0FBQyxDQUFDO0VBQ0EsS0FBSyxFZ0ZyQ00sT0FBTztFaEZzQ2xCLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLE9BQU8sRUFBRSxlQUFlLEdBUXpCO0VBWEQsQUFLRSxDQUxELEFBS0MsTUFBTyxDQUFDO0lBQ04sS0FBSyxFQUFFLG9CQUF1QyxHQUMvQztFQVBILEFBUUUsQ0FSRCxBQVFDLE9BQVEsQ0FBQztJQUNQLEtBQUssRUFBRSxPQUF3QyxHQUNoRDs7QUFHSCxBQUFBLEdBQUcsQ0FBQztFQUNGLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLElBQUksR0FDYjs7QUFFRCxBQUFBLEtBQUssQ0FBQztFQUNKLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLElBQUk7RUFDWixPQUFPLEVBQUUsS0FBSyxHQUNmOztBQUdELEFBQUEsRUFBRSxDQUFBO0VBQ0EsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBQ0QsQUFBQSxFQUFFLENBQUM7RUFDRCxVQUFVLEVBQUUsSUFBSSxHQUNqQjs7QUFDRCxBQUFBLEVBQUUsQ0FBQztFQUNELFVBQVUsRUFBRSxJQUFJLEdBQ2pCOztBQUNELEFBQUEsRUFBRSxDQUFDO0VBQ0QsU0FBUyxFQUFFLEVBQUUsR0FDZDs7QUFFRCxBQUFBLEVBQUUsQ0FBQztFQUNELE9BQU8sRUFBRSxDQUFDLEdBQ1g7O0FBR0QsQUFHRSxRQUhNLENBR04sY0FBYyxDQUFDO0VBQ2IsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RUFDdEIsU0FBUyxFQUFFLElBQUk7RUFDZixLQUFLLEVnRnRGSSxPQUFPO0VoRndGaEIsdUJBQXVCLEVnRnhGZCxPQUFPO0VoRnlGaEIseUJBQXlCLEVBQUUsR0FBRztFQUM5Qix5QkFBeUIsRUFBRSxLQUFLLEdBR2pDOztBQWRILEFBZUUsUUFmTSxDQWVOLGlCQUFpQixDQUFDO0VBQ2hCLFlBQVksRUFBRSxJQUFJO0VBQ2xCLEtBQUssRWdGckZNLE9BQU87RWhGc0ZsQixTQUFTLEVBQUUsSUFBSTtFQUNmLGNBQWMsRUFBRSxNQUFNLEdBQ3ZCOztBQXBCSCxBQXNCRSxRQXRCTSxDQXNCTixDQUFDLENBQUM7RUFDQSxVQUFVLEVBQUUsYUFBYSxHQUkxQjtFQTNCSCxBQXNCRSxRQXRCTSxDQXNCTixDQUFDLEFBRUMsTUFBTyxDQUFDO0lBQ04sS0FBSyxFQUFFLEtBQUssR0FDYjs7QUFJTCxBQUFBLGNBQWMsQ0FBQztFQUNiLEtBQUssRWdGbkdRLE9BQU87RWhGb0dwQixTQUFTLEVBQUUsSUFBSSxHQVFoQjtFQVZELEFBSUUsY0FKWSxDQUlaLENBQUMsQ0FBQztJQUNBLFVBQVUsRUFBRSxhQUFhLEdBSTFCO0lBVEgsQUFJRSxjQUpZLENBSVosQ0FBQyxBQUVDLE1BQU8sQ0FBQztNQUNOLEtBQUssRUFBRSxLQUFLLEdBQ2I7O0FBSUwsQUFBQSxVQUFVLENBQUM7RUFDVCxTQUFTLEVBQUUsTUFBTTtFQUNqQixNQUFNLEVBQUUsTUFBTSxHQUNmOztBQUVELEFBQUEsVUFBVSxDQUFDO0VBQ1QsT0FBTyxFQUFFLEtBQUs7RUFDZCxRQUFRLEVBQUUsS0FBSztFQUNmLE1BQU0sRUFBRSxDQUFDO0VBQ1QsSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLE1BQU0sRUFBRSxJQUFJO0VBQ1osV0FBVyxFQUFFLElBQUk7RUFDakIsVUFBVSxFQUFFLE1BQU07RUFDbEIsVUFBVSxFZ0Z2SUMsT0FBTztFaEZ5SWxCLEtBQUssRWdGaElFLE9BQU87RWhGaUlkLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLE9BQU8sRUFBRSxHQUFHO0VBQ1osVUFBVSxFQUFFLFlBQVksR0FNekI7RUFwQkQsQUFnQkUsVUFoQlEsQUFnQlIsTUFBTyxDQUFDO0lBQ04sZUFBZSxFQUFFLFNBQVM7SUFDMUIsVUFBVSxFQUFFLE9BQW9DLEdBQ2pEOztBQU1ILEFBQUEsV0FBVyxDQUFDO0VBS1YsV0FBVyxFQUFFLEtBQUs7RUFDbEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsYUFBYSxFQUFFLEtBQUs7RUFDcEIsUUFBUSxFQUFFLE1BQU0sR0FZakI7RUFwQkQsQUFVRSxXQVZTLEFBVVQsT0FBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLEVBQUU7SUFDWCxPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLEtBQUs7SUFDYixHQUFHLEVBQUUsQ0FBQztJQUNOLFVBQVUsRUFBRSxtR0FBd0c7SUFDcEgsT0FBTyxFQUFFLEVBQUUsR0FDWjs7QUFHSCxBQUFBLGtCQUFrQixDQUFDO0VBQ2pCLFFBQVEsRUFBRSxRQUFRLEdBY25CO0VBZkQsQUFHRSxrQkFIZ0IsQ0FHaEIsS0FBSyxDQUFDO0lBQ0osU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsSUFBSSxHQUNiO0VBTkgsQUFRRSxrQkFSZ0IsQ0FRaEIsTUFBTSxDQUFDO0lBQ0wsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDbUZ2R2pCLG1CQUFvQjtJbkZ5RzFCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsTUFBTSxFQUFFLENBQUM7SUFDVCxPQUFPLEVBQUUsQ0FBQyxHQUNYOztBQUdILEFBQUEsYUFBYSxDQUFDO0VBQ1osS0FBSyxFZ0YvTE0sT0FBTztFQ2tJbEIsV0FBVyxFQUFFLGNBQWM7RUFDM0IsV0FBVyxFakY2REksR0FBRztFaUYzTG5CLHNCQUFzQixFQUFFLFdBQVc7RWpGNExsQyxTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxLQUFLO0VBQ2xCLE9BQU8sRUFBRSxLQUFLO0VBQ2QsT0FBTyxFQUFFLFNBQVM7RUFDbEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsVUFBVSxFQUNSLDBIQUtDO0VBR0gsdUJBQXVCLEVnRi9NWixPQUFPO0VoRmdObEIseUJBQXlCLEVBQUUsR0FBRztFQUM5Qix5QkFBeUIsRUFBRSxLQUFLO0VBRWhDLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ21GcElkLG1CQUFvQixHbkY2SzdCO0VrRjNGQSxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0lsRjZCcEMsQUFBQSxhQUFhLENBQUM7TUF3QlYsU0FBUyxFQUFFLElBQUk7TUFDZixXQUFXLEVBQUUsR0FBRztNQUNoQixPQUFPLEVBQUUsU0FBUyxHQW9DckI7RWtGeEVBLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7SWxGVXBDLEFBQUEsYUFBYSxDQUFDO01BNkJWLFNBQVMsRUFBRSxJQUFJLEdBaUNsQjtFa0Z0RkEsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztJbEZ3QnBDLEFBQUEsYUFBYSxDQUFDO01BZ0NWLFNBQVMsRUFBRSxJQUFJLEdBOEJsQjtFQTlERCxBQW1DRSxhQW5DVyxBQW1DWCxPQUFRLEVBbkNWLEFBb0NFLGFBcENXLEFBb0NYLE1BQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxLQUFLO0lBQ2QsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsR0FBRztJQUNSLFNBQVMsRUFBRSxnQkFBZ0I7SUFDM0IsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSSxHQU9iO0lrRjVERixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO01sRlVwQyxBQW1DRSxhQW5DVyxBQW1DWCxPQUFRLEVBbkNWLEFBb0NFLGFBcENXLEFBb0NYLE1BQU8sQ0FBQztRQVVKLEtBQUssRUFBRSxJQUFJO1FBQ1gsTUFBTSxFQUFFLElBQUk7UUFDWixlQUFlLEVBQUUsZUFBZSxHQUVuQztFQWxESCxBQW9ERSxhQXBEVyxBQW9EWCxPQUFRLENBQUM7SUFDUCxJQUFJLEVBQUUsQ0FBQztJQUNQLFVBQVUsRUFBRSwrQkFBK0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FDL0Q7RUF2REgsQUF5REUsYUF6RFcsQUF5RFgsTUFBTyxDQUFDO0lBQ04sS0FBSyxFQUFFLENBQUM7SUFDUixVQUFVLEVBQUUsZ0NBQWdDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQ2hFOztBQVNILEFBQUEsaUJBQWlCLENBQUM7RUFDaEIsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsZUFBZTtFQUM1QixVQUFVLEVBQUUsc0NBQXNDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVztFQUNuRixhQUFhLEVBQUUsSUFBSSxHQUNwQjs7QUFFRCxBQUFBLGtCQUFrQixDQUFDO0VBQ2pCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLGVBQWU7RUFDNUIsVUFBVSxFQUFFLHlDQUF5QyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVc7RUFDdEYsYUFBYSxFQUFFLElBQUk7RUFDbkIsTUFBTSxFQUFFLElBQUk7RUFDWixXQUFXLEVBQUUsSUFBSSxHQUNsQjs7QUFFRCxBQUFBLHFCQUFxQixDQUFDO0VBQ3BCLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLGNBQWMsRUFBRSxHQUFHLEdBTXBCOztBQUNELEFBQUEsbUJBQW1CLENBQUM7RUFDbEIsVUFBVSxFQUFFLElBQUk7RUFDaEIsY0FBYyxFQUFFLEdBQUcsR0FLcEI7O0FBRUQsQUFBQSxVQUFVLENBQUM7RUFDVCxPQUFPLEVBQUUsWUFBWTtFQUVyQixhQUFhLEVBQUUsR0FBRztFQUVsQixNQUFNLEVBQUUsZUFBZTtFQUN2QixNQUFNLEVBQUUsSUFBSTtFQUNaLEtBQUssRUFBRSxLQUFLO0VBQ1osV0FBVyxFQUFFLElBQUk7RUFDakIsVUFBVSxFQUFFLE1BQU07RUFDbEIsVUFBVSxFQUFFLGFBQWE7RUFDekIsZUFBZSxFQUFFLFdBQVcsR0FrQjdCO0VBN0JELEFBYUUsVUFiUSxBQWFSLE1BQU8sQ0FBQztJQUNOLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLE9BQU8sRUFBRSxHQUFHLEdBQ2I7RWtGcEpGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7SWxGb0lwQyxBQUFBLFVBQVUsQ0FBQztNQW1CUCxLQUFLLEVBQUUsS0FBSztNQUNaLE1BQU0sRUFBRSxJQUFJO01BQ1osV0FBVyxFQUFFLElBQUksR0FRcEI7TUE3QkQsQUF1QkksVUF2Qk0sQ0F1Qk4sR0FBRyxDQUFDO1FBQ0YsU0FBUyxFQUFFLEtBQUs7UUFDaEIsV0FBVyxFQUFFLFlBQVk7UUFDekIsY0FBYyxFQUFFLE1BQU0sR0FDdkI7O0FBSUwsQUFBQSxnQkFBZ0IsQ0FBQztFQUNmLEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLEtBQUs7RUFDaEIsVUFBVSxFQUFFLE1BQU07RUFDbEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsV0FBVyxFQUFFLEdBQUc7RUFDaEIsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsNEJBQTRCO0VBQ3pDLFVBQVUsRUFBRSxRQUFRLEdBVXJCO0VBbEJELEFBVUUsZ0JBVmMsQUFVZCxNQUFPLENBQUM7SUFDTixLQUFLLEVBQUUsS0FBSyxHQUNiO0VrRi9LRixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0lsRm1LcEMsQUFBQSxnQkFBZ0IsQ0FBQztNQWdCYixTQUFTLEVBQUUsS0FBSyxHQUVuQjs7QUFFRCxBQUFBLGdCQUFnQixDQUFDO0VBQ2YsVUFBVSxFQUFFLHlDQUF5QyxHQUt0RDtFQU5ELEFBRUUsZ0JBRmMsQ0FFZCxHQUFHLENBQUM7SUFDRixPQUFPLEVBQUUsWUFBWTtJQUNyQixXQUFXLEVBQUUsSUFBSSxHQUNsQjs7QUFFSCxBQUFBLGNBQWMsQ0FBQztFQUNiLFVBQVUsRUFBRSxpQ0FBNEQ7RUFDeEUsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBa0MsR0FNckQ7RUFSRCxBQUlFLGNBSlksQ0FJWixHQUFHLENBQUM7SUFDRixPQUFPLEVBQUUsWUFBWTtJQUNyQixXQUFXLEVBQUUsSUFBSSxHQUNsQjs7QUFHSCxBQUFBLGVBQWUsQ0FBQztFQUNkLFNBQVMsRUFBRSxJQUFJO0VBQ2YsT0FBTyxFQUFFLENBQUM7RUFDVixNQUFNLEVBQUUsQ0FBQztFQUNULFVBQVUsRUFBRSxNQUFNLEdBQ25COztBQUVELEFBQUEsWUFBWSxDQUFDO0VBQ1gsTUFBTSxFQUFFLE1BQU07RUFDZCxPQUFPLEVBQUUsWUFBWSxHQUN0Qjs7QUFNRCxBQUFBLE9BQU8sQ0FBQztFQUNOLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLGFBQWEsRUFBRSxJQUFJLEdBTXBCO0VrRjNOQSxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0lsRm1OcEMsQUFBQSxPQUFPLENBQUM7TUFLSixVQUFVLEVBQUUsSUFBSTtNQUNoQixhQUFhLEVBQUUsSUFBSSxHQUV0Qjs7QUFDRCxBQUFBLFlBQVksQ0FBQztFQUNYLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUM7RUFDVixlQUFlLEVBQUUsSUFBSTtFQUNyQixVQUFVLEVBQUUsTUFBTSxHQVluQjtFQWhCRCxBQU1FLFlBTlUsQ0FNVixFQUFFLENBQUM7SUFDRCxPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUsS0FBSyxHQUNkO0VrRnJPRixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0lsRjROcEMsQUFXRSxZQVhVLENBV1YsR0FBRyxDQUFDO01BRUEsU0FBUyxFQUFFLEtBQUssR0FFbkI7O0F5RmpaSCxBQUFBLEtBQUssQ0FBQztFQUNKLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLGNBQWMsRUFBRSxJQUFJO0VBTXBCLGdCQUFnQixFQUFFLE9BQU87RUFDekIsZ0JBQWdCLEVBQ2QsNkRBQWtELEVBQ2xELDhEQUFtRCxFQUNuRCxrQ0FBa0MsRUFDbEMsdUNBQXVDLEVBQ3ZDLDhCQUE4QjtFQUNoQyxpQkFBaUIsRUFBRSxTQUFTO0VBQzVCLG1CQUFtQixFQUNqQixpREFJZSxHQVFsQjtFQTdCRCxBQXVCRSxLQXZCRyxDQXVCSCxjQUFjLENBQUM7SUFDYixVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsS0FBSyxHQUNmOztBQUtILEFBQUEsYUFBYSxDQUFDO0VBQ1osYUFBYSxFQUFFLElBQUksR0ErRHBCO0VBaEVELEFBR0UsYUFIVyxDQUdYLEVBQUUsQ0FBQztJQUNELFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFVG5DUyxPQUFPO0lTb0NyQixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsZUFBZTtJQUM1QixXQUFXLEVBQUUsR0FBRyxHQUNqQjtFQVRILEFBVUUsYUFWVyxDQVVYLENBQUMsQ0FBQztJQUNBLEtBQUssRVQvQk0sT0FBTyxHU2dDbkI7RUFaSCxBQWNFLGFBZFcsQ0FjWCxZQUFZLENBQUM7SUFDWCxRQUFRLEVBQUUsUUFBUSxHQWdCbkI7SUEvQkgsQUFjRSxhQWRXLENBY1gsWUFBWSxBQUVWLE1BQU8sQ0FBQztNQUNOLE9BQU8sRUFBRSxFQUFFO01BQ1gsT0FBTyxFQUFFLEtBQUs7TUFDZCxRQUFRLEVBQUUsUUFBUTtNQUNsQixNQUFNLEVBQUUsR0FBRztNQUNYLE1BQU0sRUFBRSxJQUFJO01BQ1osSUFBSSxFQUFFLElBQUk7TUFDVixLQUFLLEVBQUUsSUFBSTtNQUNYLFVBQVUsRUFBRSxLQUFLLEdBQ2xCO0lBekJMLEFBMkJJLGFBM0JTLENBY1gsWUFBWSxDQWFWLEdBQUcsQ0FBQztNQUNGLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RUE3QkwsQUFpQ0UsYUFqQ1csQ0FpQ1gsVUFBVSxDQUFDO0lBQ1QsV0FBVyxFQUFFLElBQUksR0FXbEI7SVAyRUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsTUFBTTtNT3hIckMsQUFpQ0UsYUFqQ1csQ0FpQ1gsVUFBVSxDQUFDO1FBSVAsV0FBVyxFQUFFLElBQUksR0FRcEI7SVBnRkYsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztNTzdIcEMsQUFpQ0UsYUFqQ1csQ0FpQ1gsVUFBVSxDQUFDO1FBT1AsV0FBVyxFQUFFLElBQUksR0FLcEI7SVBxRkYsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztNT2xJcEMsQUFpQ0UsYUFqQ1csQ0FpQ1gsVUFBVSxDQUFDO1FBVVAsV0FBVyxFQUFFLENBQUMsR0FFakI7RUE3Q0gsQUFnREksYUFoRFMsQUErQ1gsSUFBSyxDQUNILENBQUMsQ0FBQSxBQUFBLEtBQUMsRUFBTyxNQUFNLEFBQWIsRUFBZTtJQUNmLEtBQUssRUFBRSxLQUFLLEdBS2I7SVA0RUosTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztNT2xJcEMsQUFnREksYUFoRFMsQUErQ1gsSUFBSyxDQUNILENBQUMsQ0FBQSxBQUFBLEtBQUMsRUFBTyxNQUFNLEFBQWIsRUFBZTtRQUliLEtBQUssRUFBRSxJQUFJLEdBRWQ7RUF0REwsQUF1REksYUF2RFMsQUErQ1gsSUFBSyxDQVFILFVBQVUsQ0FBQztJQUNULFVBQVUsRUFBRSxLQUFLLEdBS2xCO0lQcUVKLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7TU9sSXBDLEFBdURJLGFBdkRTLEFBK0NYLElBQUssQ0FRSCxVQUFVLENBQUM7UUFJUCxVQUFVLEVBQUUsSUFBSSxHQUVuQjs7QUFJTCxBQUFBLFdBQVcsQ0FBQztFQUNWLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLGdCQUFnQixFQUNkLDRCQUE0QixFQUM1Qiw2QkFBNkI7RUFDL0IsbUJBQW1CLEVBQ2pCLG9CQUNTO0VBQ1gsaUJBQWlCLEVBQUUsU0FBUztFQUM1QixnQkFBZ0IsRUFBRSxXQUFXO0VBQzdCLGVBQWUsRUFBRSxLQUFLLEdBNkJ2QjtFUHFCQSxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0lPNURwQyxBQUFBLFdBQVcsQ0FBQztNQWFSLGVBQWUsRUFBRSxLQUFLLEdBMEJ6QjtFUDBCQSxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0lPakVwQyxBQUFBLFdBQVcsQ0FBQztNQWdCUixlQUFlLEVBQUUsS0FBSyxHQXVCekI7RVArQkEsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztJT3RFcEMsQUFBQSxXQUFXLENBQUM7TUFtQlIsZUFBZSxFQUFFLEtBQUssR0FvQnpCO0VBdkNELEFBc0JFLFdBdEJTLENBc0JULGdCQUFnQixDQUFDO0lBQ2YsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFlBQVksRUFBRSxJQUFJLEdBQ25CO0VBMUJILEFBMkJFLFdBM0JTLENBMkJULEVBQUUsQ0FBQztJQUNELEtBQUssRVQ1SEksT0FBTztJUzZIaEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsS0FBSztJQUNsQixVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxNQUFNLEdBQ25CO0VBbENILEFBb0NFLFdBcENTLENBb0NULG9CQUFvQixDQUFDO0lBQ25CLFVBQVUsRUFBRSxNQUFNLEdBQ25COztBQ3RJSCxBQUFBLE9BQU8sQ0FBQztFQUNOLFVBQVUsRVZ5QkwsT0FBTyxHVVhiO0VBZkQsQUFHRSxPQUhLLENBR0wsRUFBRSxDQUFDO0lBQ0QsVUFBVSxFQUFFLE1BQU07SUFDbEIsVUFBVSxFQUFFLEtBQUssR0FDbEI7RUFOSCxBQVFFLE9BUkssQ0FRTCxFQUFFLENBQUM7SUFDRCxLQUFLLEVWVEksT0FBTztJVVVoQixTQUFTLEVBQUUsSUFBSTtJQUNmLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFdBQVcsRUFBRSxlQUFlO0lBQzVCLFdBQVcsRUFBRSxLQUFLLEdBQ25COztBQUVILEFBQUEsWUFBWSxDQUFDO0VBQ1gsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsS0FBSyxHQVduQjtFQWJELEFBSUUsWUFKVSxDQUlWLENBQUMsQ0FBQztJQUNBLEtBQUssRVZyQkksT0FBTztJVXNCaEIsZUFBZSxFQUFFLFNBQVMsR0FDM0I7RUFQSCxBQVNFLFlBVFUsQ0FTVixLQUFLLENBQUM7SUFDSixTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QVJzSUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFUWxJcEMsQUFBQSxvQkFBb0IsQ0FBQztJQUVqQixVQUFVLEVBQUUsTUFBTSxHQUVyQjs7QUFFRCxBQUFBLGFBQWEsQ0FBQztFQUNaLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLGFBQWEsRUFBRSxLQUFLLEdBT3JCO0VBVEQsQUFLSSxhQUxTLENBSVgsWUFBWSxDQUNWLEdBQUcsQ0FBQztJQUNGLFVBQVUsRUFBRSxnQkFBZ0IsR0FDN0I7O0FBUUwsQUFBQSx3QkFBd0IsQ0FBQztFQUN2QixRQUFRLEVBQUUsUUFBUTtFQUNsQixtQkFBbUIsRUFBRSxpQkFBaUIsR0EyVnZDO0VBN1ZELEFBSUUsd0JBSnNCLENBSXRCLGtDQUFrQyxDQUFDO0lBRWpDLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxJQUFJO0lBRXBCLGFBQWEsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQXdCO0lBQ2pELFVBQVUsRVYzREoscUJBQU8sR1U0RGQ7RUFYSCxBQWNFLHdCQWRzQixDQWN0QixhQUFhLENBQUM7SUFFWixNQUFNLEVBQUUsS0FBSztJQUNiLGdCQUFnQixFQUFFLGtEQUFrRDtJQUNwRSxlQUFlLEVBQUUsS0FBSztJQUN0QixtQkFBbUIsRUFBRSxNQUFNO0lBQzNCLGlCQUFpQixFQUFFLFNBQVM7SUFDNUIsYUFBYSxFQUFFLEtBQUssQ0FBQyxHQUFHLENQVWxCLHlCQUEwQixHT1RqQztFQXRCSCxBQXdCRSx3QkF4QnNCLENBd0J0QixxQkFBcUIsQ0FBQztJQUNwQixRQUFRLEVBQUUsUUFBUTtJQUNsQixNQUFNLEVBQUUsS0FBSztJQUNiLGFBQWEsRUFBRSxJQUFJLEdBK0JwQjtJQTFESCxBQTZCSSx3QkE3Qm9CLENBd0J0QixxQkFBcUIsQ0FLbkIsZ0JBQWdCLENBQUM7TUFDZixVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENQSG5CLGtCQUFvQjtNT0l4QixRQUFRLEVBQUUsUUFBUTtNQUNsQixJQUFJLEVBQUUsQ0FBQztNQUNQLE1BQU0sRUFBRSxLQUFLLEdBS2Q7TUF0Q0wsQUFtQ00sd0JBbkNrQixDQXdCdEIscUJBQXFCLENBS25CLGdCQUFnQixDQU1kLEdBQUcsQ0FBQztRQUNGLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7SUFyQ1AsQUF3Q0ksd0JBeENvQixDQXdCdEIscUJBQXFCLENBZ0JuQixZQUFZLENBQUM7TUFDWCxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENQZG5CLGtCQUFvQjtNT2V4QixRQUFRLEVBQUUsUUFBUTtNQUNsQixLQUFLLEVBQUUsQ0FBQztNQUNSLE1BQU0sRUFBRSxLQUFLLEdBS2Q7TUFqREwsQUE4Q00sd0JBOUNrQixDQXdCdEIscUJBQXFCLENBZ0JuQixZQUFZLENBTVYsR0FBRyxDQUFDO1FBQ0YsT0FBTyxFQUFFLEtBQUssR0FDZjtJQWhEUCxBQW1ESSx3QkFuRG9CLENBd0J0QixxQkFBcUIsQ0EyQm5CLHdCQUF3QixDQUFDO01BQ3ZCLFFBQVEsRUFBRSxRQUFRO01BQ2xCLEdBQUcsRUFBRSxHQUFHO01BQ1IsSUFBSSxFQUFFLEdBQUc7TUFDVCxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsZ0JBQWdCLEdBQzdDO0VBeERMLEFBNkRJLHdCQTdEb0IsQ0E0RHRCLFFBQVEsQ0FDTixjQUFjLENBQUM7SUFDYixPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLFVBQVUsRUFBRSxpQkFBaUIsR0FDOUI7RUFoRUwsQUFvRUUsd0JBcEVzQixDQW9FdEIsYUFBYSxDQUFDO0lBQ1osU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsTUFBTTtJQUNuQixVQUFVLEVBQUUsTUFBTTtJQUNsQixXQUFXLEVBQUUsZUFBZSxHQUM3QjtFQXpFSCxBQWdGRSx3QkFoRnNCLENBZ0Z0QixlQUFlLENBQUM7SUFDZCxVQUFVLEVBQUUsTUFBTTtJQUNsQixTQUFTLEVBQUUsSUFBSTtJQUNmLGNBQWMsRUFBRSxTQUFTLEdBQzFCO0VBcEZILEFBc0ZFLHdCQXRGc0IsQ0FzRnRCLHdCQUF3QixDQUFDO0lBQ3ZCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFFBQVEsRUFBRSxRQUFRLEdBMkVuQjtJQXBLSCxBQTJGSSx3QkEzRm9CLENBc0Z0Qix3QkFBd0IsQ0FLdEIsR0FBRyxDQUFDO01BQ0YsT0FBTyxFQUFFLEtBQUs7TUFDZCxTQUFTLEVBQUUsSUFBSTtNQUNmLGNBQWMsRUFBRSxTQUFTO01BQ3pCLFFBQVEsRUFBRSxRQUFRO01BRWxCLEdBQUcsRUFBRSxLQUFLO01BQ1YsSUFBSSxFQUFFLEdBQUc7TUFDVCxTQUFTLEVBQUUsZ0JBQWdCO01BQzNCLE9BQU8sRUFBRSxDQUFDO01BQ1YsVUFBVSxFVnpKSCxPQUFPO01VMEpkLE1BQU0sRUFBRSxlQUFlO01BQ3ZCLEtBQUssRUFBRSxLQUFLO01BQ1osT0FBTyxFQUFFLGFBQWE7TUFDdEIsV0FBVyxFQUFFLEdBQUcsR0FDakI7SUExR0wsQUE0R0ksd0JBNUdvQixDQXNGdEIsd0JBQXdCLENBc0J0QixFQUFFLENBQUM7TUFDRCxPQUFPLEVBQUUsWUFBWTtNQUNyQixLQUFLLEVBQUUsS0FBSztNQUNaLE1BQU0sRUFBRSxLQUFLO01BQ2IsU0FBUyxFQUFFLElBQUk7TUFFZixXQUFXLEVBQUUsSUFBSTtNQUNqQixZQUFZLEVBQUUsSUFBSTtNQUNsQixRQUFRLEVBQUUsUUFBUTtNQUNsQixTQUFTLEVBQUUsVUFBVTtNQUNyQixVQUFVLEVBQUUsa0JBQWtCLEdBdUIvQjtNQTdJTCxBQXdITSx3QkF4SGtCLENBc0Z0Qix3QkFBd0IsQ0FzQnRCLEVBQUUsQ0FZQSxDQUFDLENBQUM7UUFDQSxPQUFPLEVBQUUsS0FBSyxHQUNmO01BMUhQLEFBMkhNLHdCQTNIa0IsQ0FzRnRCLHdCQUF3QixDQXNCdEIsRUFBRSxDQWVBLEdBQUcsQ0FBQztRQUNGLFVBQVUsRUFBRSxNQUFNLEdBQ25CO01BN0hQLEFBK0hNLHdCQS9Ia0IsQ0FzRnRCLHdCQUF3QixDQXNCdEIsRUFBRSxDQW1CQSxJQUFJLENBQUM7UUFDSCxRQUFRLEVBQUUsUUFBUTtRQUVsQixNQUFNLEVBQUUsSUFBSTtRQUNaLElBQUksRUFBRSxDQUFDO1FBQ1AsS0FBSyxFQUFFLENBQUM7UUFDUixjQUFjLEVBQUUsU0FBUztRQUN6QixXQUFXLEVBQUUsZ0JBQWdCO1FBQzdCLFdBQVcsRUFBRSxHQUFHO1FBQ2hCLFNBQVMsRUFBRSxJQUFJO1FBQ2YsdUJBQXVCLEVWN0xsQixPQUFPO1FVOExaLHlCQUF5QixFQUFFLEdBQUc7UUFDOUIseUJBQXlCLEVWNUx2QixPQUFPLEdVNkxWO0lBNUlQLEFBK0lJLHdCQS9Jb0IsQ0FzRnRCLHdCQUF3QixDQXlEdEIseUJBQXlCO0lBL0k3QixBQWdKSSx3QkFoSm9CLENBc0Z0Qix3QkFBd0IsQ0EwRHRCLHVCQUF1QixDQUFDO01BQ3RCLGlCQUFpQixFQUFFLFNBQVM7TUFDNUIsbUJBQW1CLEVBQUUsSUFBSSxHQVUxQjtNQTVKTCxBQStJSSx3QkEvSW9CLENBc0Z0Qix3QkFBd0IsQ0F5RHRCLHlCQUF5QixBQUt4QixNQUFRO01BcEpiLEFBZ0pJLHdCQWhKb0IsQ0FzRnRCLHdCQUF3QixDQTBEdEIsdUJBQXVCLEFBSXRCLE1BQVEsQ0FBQztRQUNOLG1CQUFtQixFQUFFLE1BQU07UUFDM0IsU0FBUyxFQUFFLFdBQVcsR0FDdkI7TUF2SlAsQUErSUksd0JBL0lvQixDQXNGdEIsd0JBQXdCLENBeUR0Qix5QkFBeUIsQUFTeEIsT0FBUztNQXhKZCxBQWdKSSx3QkFoSm9CLENBc0Z0Qix3QkFBd0IsQ0EwRHRCLHVCQUF1QixBQVF0QixPQUFTLENBQUM7UUFDUCxtQkFBbUIsRUFBRSxLQUFLO1FBQzFCLFNBQVMsRUFBRSxVQUFVLEdBQ3RCO0lBM0pQLEFBOEpJLHdCQTlKb0IsQ0FzRnRCLHdCQUF3QixDQXdFdEIseUJBQXlCLENBQUM7TUFDeEIsZ0JBQWdCLEVBQUUsd0RBQXdELEdBQzNFO0lBaEtMLEFBaUtJLHdCQWpLb0IsQ0FzRnRCLHdCQUF3QixDQTJFdEIsdUJBQXVCLENBQUM7TUFDdEIsZ0JBQWdCLEVBQUUsc0RBQXNELEdBQ3pFO0VBbktMLEFBc0tFLHdCQXRLc0IsQ0FzS3RCLEtBQUssQ0FBQztJQUNKLFNBQVMsRUFBRSxJQUFJLEdBaUJoQjtJQXhMSCxBQXlLSSx3QkF6S29CLENBc0t0QixLQUFLLENBR0gsRUFBRSxDQUFDO01BQ0QsVUFBVSxFQUFFLElBQUk7TUFDaEIsV0FBVyxFQUFFLEdBQUcsR0FLakI7TUFoTEwsQUE2S00sd0JBN0trQixDQXNLdEIsS0FBSyxDQUdILEVBQUUsQ0FJQSxFQUFFLENBQUM7UUFDRCxhQUFhLEVBQUUsR0FBRyxHQUNuQjtJQS9LUCxBQWtMSSx3QkFsTG9CLENBc0t0QixLQUFLLENBWUgsQ0FBQyxDQUFDO01BQ0EsVUFBVSxFQUFFLFFBQVEsR0FJckI7TUF2TEwsQUFrTEksd0JBbExvQixDQXNLdEIsS0FBSyxDQVlILENBQUMsQUFFQyxNQUFPLENBQUM7UUFDTixLQUFLLEVBQUUsS0FBSyxHQUNiO0VBdExQLEFBMExFLHdCQTFMc0IsQ0EwTHRCLEVBQUUsQ0FBQztJQUNELEtBQUssRVY5T1MsT0FBTztJVStPckIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENQbEtoQixtQkFBb0IsR09tSzNCO0VBOUxILEFBZ01FLHdCQWhNc0IsQ0FnTXRCLEVBQUUsQ0FBQztJQUNELFNBQVMsRUFBRSxJQUFJLEdBRWhCO0VBbk1ILEFBcU1FLHdCQXJNc0IsQ0FxTXRCLGNBQWM7RUFyTWhCLEFBc01FLHdCQXRNc0IsQ0FzTXRCLFlBQVk7RUF0TWQsQUF1TUUsd0JBdk1zQixDQXVNdEIsZUFBZTtFQXZNakIsQUF3TUUsd0JBeE1zQixDQXdNdEIsSUFBSTtFQXhNTixBQXlNRSx3QkF6TXNCLENBeU10QixjQUFjO0VBek1oQixBQTBNRSx3QkExTXNCLENBME10QixRQUFRLENBQUM7SUFDUCxXQUFXLEVBQUUsSUFBSSxHQXlCbEI7SUFwT0gsQUE2TUksd0JBN01vQixDQXFNdEIsY0FBYyxDQVFaLEVBQUU7SUE3TU4sQUE2TUksd0JBN01vQixDQXNNdEIsWUFBWSxDQU9WLEVBQUU7SUE3TU4sQUE2TUksd0JBN01vQixDQXVNdEIsZUFBZSxDQU1iLEVBQUU7SUE3TU4sQUE2TUksd0JBN01vQixDQXdNdEIsSUFBSSxDQUtGLEVBQUU7SUE3TU4sQUE2TUksd0JBN01vQixDQXlNdEIsY0FBYyxDQUlaLEVBQUU7SUE3TU4sQUE2TUksd0JBN01vQixDQTBNdEIsUUFBUSxDQUdOLEVBQUUsQ0FBQztNQUNELFNBQVMsRUFBRSxJQUFJO01BQ2YsVUFBVSxFQUFFLE1BQU0sR0FvQm5CO01Bbk9MLEFBNk1JLHdCQTdNb0IsQ0FxTXRCLGNBQWMsQ0FRWixFQUFFLEFBSUwsT0FBYSxFQWpOZCxBQTZNSSx3QkE3TW9CLENBcU10QixjQUFjLENBUVosRUFBRSxBQUtMLE1BQVk7TUFsTmIsQUE2TUksd0JBN01vQixDQXNNdEIsWUFBWSxDQU9WLEVBQUUsQUFJTCxPQUFhO01Bak5kLEFBNk1JLHdCQTdNb0IsQ0FzTXRCLFlBQVksQ0FPVixFQUFFLEFBS0wsTUFBWTtNQWxOYixBQTZNSSx3QkE3TW9CLENBdU10QixlQUFlLENBTWIsRUFBRSxBQUlMLE9BQWE7TUFqTmQsQUE2TUksd0JBN01vQixDQXVNdEIsZUFBZSxDQU1iLEVBQUUsQUFLTCxNQUFZO01BbE5iLEFBNk1JLHdCQTdNb0IsQ0F3TXRCLElBQUksQ0FLRixFQUFFLEFBSUwsT0FBYTtNQWpOZCxBQTZNSSx3QkE3TW9CLENBd010QixJQUFJLENBS0YsRUFBRSxBQUtMLE1BQVk7TUFsTmIsQUE2TUksd0JBN01vQixDQXlNdEIsY0FBYyxDQUlaLEVBQUUsQUFJTCxPQUFhO01Bak5kLEFBNk1JLHdCQTdNb0IsQ0F5TXRCLGNBQWMsQ0FJWixFQUFFLEFBS0wsTUFBWTtNQWxOYixBQTZNSSx3QkE3TW9CLENBME10QixRQUFRLENBR04sRUFBRSxBQUlMLE9BQWE7TUFqTmQsQUE2TUksd0JBN01vQixDQTBNdEIsUUFBUSxDQUdOLEVBQUUsQUFLTCxNQUFZLENBQUM7UUFDTixPQUFPLEVBQUUsRUFBRTtRQUNYLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE1BQU0sRUFBRSxHQUFHO1FBQ1gsVUFBVSxFVnpRQSxPQUFPO1FVMFFqQixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxXQUFXO1FBQ3ZCLGFBQWEsRUFBRSxHQUFHLEdBQ25CO01BMU5QLEFBNk1JLHdCQTdNb0IsQ0FxTXRCLGNBQWMsQ0FRWixFQUFFLEFBY0wsT0FBYTtNQTNOZCxBQTZNSSx3QkE3TW9CLENBc010QixZQUFZLENBT1YsRUFBRSxBQWNMLE9BQWE7TUEzTmQsQUE2TUksd0JBN01vQixDQXVNdEIsZUFBZSxDQU1iLEVBQUUsQUFjTCxPQUFhO01BM05kLEFBNk1JLHdCQTdNb0IsQ0F3TXRCLElBQUksQ0FLRixFQUFFLEFBY0wsT0FBYTtNQTNOZCxBQTZNSSx3QkE3TW9CLENBeU10QixjQUFjLENBSVosRUFBRSxBQWNMLE9BQWE7TUEzTmQsQUE2TUksd0JBN01vQixDQTBNdEIsUUFBUSxDQUdOLEVBQUUsQUFjTCxPQUFhLENBQUM7UUFDUCxZQUFZLEVBQUUsSUFBSTtRQUNsQixTQUFTLEVBQUUsWUFBWSxHQUN4QjtNQTlOUCxBQTZNSSx3QkE3TW9CLENBcU10QixjQUFjLENBUVosRUFBRSxBQWtCTCxNQUFZO01BL05iLEFBNk1JLHdCQTdNb0IsQ0FzTXRCLFlBQVksQ0FPVixFQUFFLEFBa0JMLE1BQVk7TUEvTmIsQUE2TUksd0JBN01vQixDQXVNdEIsZUFBZSxDQU1iLEVBQUUsQUFrQkwsTUFBWTtNQS9OYixBQTZNSSx3QkE3TW9CLENBd010QixJQUFJLENBS0YsRUFBRSxBQWtCTCxNQUFZO01BL05iLEFBNk1JLHdCQTdNb0IsQ0F5TXRCLGNBQWMsQ0FJWixFQUFFLEFBa0JMLE1BQVk7TUEvTmIsQUE2TUksd0JBN01vQixDQTBNdEIsUUFBUSxDQUdOLEVBQUUsQUFrQkwsTUFBWSxDQUFDO1FBQ04sV0FBVyxFQUFFLElBQUk7UUFDakIsU0FBUyxFQUFFLGFBQWEsR0FDekI7RUFsT1AsQUFzT0Usd0JBdE9zQixDQXNPdEIsY0FBYyxDQUFDO0lBQ2IsT0FBTyxFQUFFLElBQUksR0FJZDtJQTNPSCxBQXdPSSx3QkF4T29CLENBc090QixjQUFjLENBRVosRUFBRSxDQUFDO01BQ0QsWUFBWSxFQUFFLElBQUksR0FDbkI7RUExT0wsQUE2T0Usd0JBN09zQixDQTZPdEIsWUFBWSxDQUFDO0lBQ1gsV0FBVyxFQUFFLElBQUk7SUFDakIsT0FBTyxFQUFFLElBQUksR0FNZDtJQXJQSCxBQWlQSSx3QkFqUG9CLENBNk90QixZQUFZLENBSVYsRUFBRSxDQUFDO01BQ0QsU0FBUyxFQUFFLElBQUk7TUFDZixVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQXBQTCxBQXVQRSx3QkF2UHNCLENBdVB0QixlQUFlLENBQUM7SUFDZCxXQUFXLEVBQUUsSUFBSSxHQU1sQjtJQTlQSCxBQTBQSSx3QkExUG9CLENBdVB0QixlQUFlLENBR2IsRUFBRSxDQUFDO01BQ0QsU0FBUyxFQUFFLElBQUk7TUFDZixVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQTdQTCxBQWdRRSx3QkFoUXNCLENBZ1F0QixnQkFBZ0IsQ0FBQztJQUNmLGVBQWUsRUFBRSxJQUFJLEdBbUJ0QjtJQXBSSCxBQXFRSSx3QkFyUW9CLENBZ1F0QixnQkFBZ0IsQ0FLZCxFQUFFLENBQUM7TUFDRCxVQUFVLEVBQUUsTUFBTTtNQUNsQixVQUFVLEVBQUUsS0FBSyxHQVlsQjtNQW5STCxBQXlRTSx3QkF6UWtCLENBZ1F0QixnQkFBZ0IsQ0FLZCxFQUFFLENBSUEsRUFBRSxDQUFDO1FBQ0QsS0FBSyxFVjdUSyxPQUFPO1FVOFRqQixjQUFjLEVBQUUsU0FBUztRQUN6QixhQUFhLEVBQUUsR0FBRyxHQUNuQjtNQTdRUCxBQThRTSx3QkE5UWtCLENBZ1F0QixnQkFBZ0IsQ0FLZCxFQUFFLENBU0EsQ0FBQyxDQUFDO1FBQ0EsVUFBVSxFQUFFLENBQUM7UUFDYixTQUFTLEVBQUUsSUFBSTtRQUNmLEtBQUssRVYxVEUsT0FBTyxHVTJUZjtFQWxSUCxBQXdSSSx3QkF4Um9CLENBc1J0QixJQUFJLENBRUYsRUFBRSxDQUFDO0lBQ0QsVUFBVSxFQUFFLElBQUksR0FDakI7RUExUkwsQUEyUkksd0JBM1JvQixDQXNSdEIsSUFBSSxDQUtGLEdBQUcsQ0FBQztJQUNGLFlBQVksRUFBRSxDQUFDO0lBQ2YsYUFBYSxFQUFFLElBQUksR0FRcEI7SUFyU0wsQUE4Uk0sd0JBOVJrQixDQXNSdEIsSUFBSSxDQUtGLEdBQUcsQ0FHRCxFQUFFLENBQUM7TUFDRCxhQUFhLEVBQUUsQ0FBQztNQUNoQixLQUFLLEVBQUUsS0FBSyxHQUNiO0lBalNQLEFBa1NNLHdCQWxTa0IsQ0FzUnRCLElBQUksQ0FLRixHQUFHLENBT0QsRUFBRSxDQUFDO01BQ0QsVUFBVSxFQUFFLEdBQUcsR0FDaEI7RUFwU1AsQUF5U0ksd0JBelNvQixDQXdTdEIsY0FBYyxDQUNaLEVBQUUsQ0FBQztJQUNELFlBQVksRUFBRSxJQUFJLEdBWW5CO0lBdFRMLEFBMlNNLHdCQTNTa0IsQ0F3U3RCLGNBQWMsQ0FDWixFQUFFLENBRUEsRUFBRSxDQUFDO01BQ0QsYUFBYSxFQUFFLElBQUksR0FDcEI7SUE3U1AsQUE4U00sd0JBOVNrQixDQXdTdEIsY0FBYyxDQUNaLEVBQUUsQ0FLQSxDQUFDLENBQUM7TUFDQSxTQUFTLEVBQUUsSUFBSTtNQUNmLEtBQUssRUFBRSxLQUFLLEdBQ2I7SUFqVFAsQUFrVE0sd0JBbFRrQixDQXdTdEIsY0FBYyxDQUNaLEVBQUUsQ0FTQSxDQUFDLENBQUM7TUFDQSxVQUFVLEVBQUUsQ0FBQztNQUNiLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBclRQLEFBNlRFLHdCQTdUc0IsQ0E2VHRCLFdBQVcsQ0FBQztJQUNWLFNBQVMsRUFBRSxJQUFJO0lBQ2YsVUFBVSxFQUFFLEtBQUs7SUFDakIsVUFBVSxFQUFFLElBQUk7SUFDaEIsYUFBYSxFQUFFLElBQUksR0EyQnBCO0lBNVZILEFBbVVJLHdCQW5Vb0IsQ0E2VHRCLFdBQVcsQ0FNVCxFQUFFLENBQUM7TUFDRCxVQUFVLEVBQUUsSUFBSTtNQUNoQixNQUFNLEVBQUUsQ0FBQztNQUNULE9BQU8sRUFBRSxLQUFLO01BQ2QsV0FBVyxFQUFFLEdBQUc7TUFDaEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENWNVhWLE9BQU8sR1UrWWY7TUEzVkwsQUEwVU0sd0JBMVVrQixDQTZUdEIsV0FBVyxDQU1ULEVBQUUsQ0FPQSxFQUFFLENBQUM7UUFDRCxVQUFVLEVBQUUsVUFBVTtRQUN0QixLQUFLLEVBQUUsSUFBSTtRQUNYLEtBQUssRUFBRSxHQUFHO1FBQ1YsVUFBVSxFQUFFLE1BQU0sR0FZbkI7UUExVlAsQUFnVlEsd0JBaFZnQixDQTZUdEIsV0FBVyxDQU1ULEVBQUUsQ0FPQSxFQUFFLENBTUEsQ0FBQyxDQUFDO1VBQ0EsT0FBTyxFQUFFLEtBQUs7VUFDZCxXQUFXLEVBQUUsSUFBSTtVQUNqQixVQUFVLEVBQUUsYUFBYSxHQU0xQjtVQXpWVCxBQWdWUSx3QkFoVmdCLENBNlR0QixXQUFXLENBTVQsRUFBRSxDQU9BLEVBQUUsQ0FNQSxDQUFDLEFBS0MsTUFBTyxDQUFDO1lBQ04sVUFBVSxFVjFZVCxPQUFPO1lVMllSLEtBQUssRUFBRSxLQUFLLEdBQ2I7O0FDNVlYLEFBQUEsT0FBTyxDQUFDO0VBQ04sVUFBVSxFQUFFLHVDQUF1QyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU87RUFDbkYsV0FBVyxFQUFFLElBQUk7RUFDakIsY0FBYyxFQUFFLElBQUksR0EwQ3JCO0VBN0NELEFBS0UsT0FMSyxDQUtMLGNBQWMsQ0FBQztJQUNiLGFBQWEsRUFBRSxJQUFJLEdBQ3BCO0VBUEgsQUFTRSxPQVRLLENBU0wsaUJBQWlCLENBQUM7SUFDaEIsT0FBTyxFQUFFLEtBQUs7SUFDZCxhQUFhLEVBQUUsSUFBSTtJQUNuQixZQUFZLEVBQUUsQ0FBQyxHQUNoQjtFQWJILEFBY0UsT0FkSyxDQWNMLGNBQWMsQ0FBQztJQUNiLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEtBQUssR0FDbkI7RUFqQkgsQUF1QkUsT0F2QkssQ0F1QkwsY0FBYyxDQUFDO0lBWWIsVUFBVSxFQUFFLE1BQU0sR0FDbkI7SUFwQ0gsQUF3QkksT0F4QkcsQ0F1QkwsY0FBYyxDQUNaLEdBQUcsQ0FBQztNQUNGLE9BQU8sRUFBRSxLQUFLO01BQ2QsYUFBYSxFQUFFLElBQUk7TVI2RHZCLGVBQWUsRUFBRSxTQUFTO01RM0R0QixLQUFLLEVBQUUsSUFBSSxHQUNaO0lBN0JMLEFBOEJJLE9BOUJHLENBdUJMLGNBQWMsQ0FPWixDQUFDLENBQUM7TUFDQSxNQUFNLEVBQUUsQ0FBQztNQUNULFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLEtBQUssR0FDbkI7RUFsQ0wsQUFzQ0UsT0F0Q0ssQ0FzQ0wsWUFBWSxDQUFDO0lBQ1gsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVYdkNTLE9BQU87SVd3Q3JCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLE9BQU8sRUFBRSxDQUFDLEdBQ1g7O0FBSUgsQUFBQSxXQUFXLENBQUM7RUFDVixNQUFNLEVBQUUsQ0FBQztFQUNULFlBQVksRUFBRSxJQUFJLEdBdUduQjtFVElBLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7SVM3R3BDLEFBQUEsV0FBVyxDQUFDO01BS1IsWUFBWSxFQUFFLElBQUk7TUFDbEIsV0FBVyxFQUFFLElBQUksR0FtR3BCO0VBekdELEFBU0UsV0FUUyxDQVNULEVBQUUsQ0FBQztJQUNELE1BQU0sRUFBRSxDQUFDO0lBQ1QsVUFBVSxFQUFFLElBQUksR0FDakI7RUFaSCxBQWNFLFdBZFMsQ0FjVCxFQUFFLENBQUM7SUFDRCxhQUFhLEVBQUUsR0FBRztJQUNsQixRQUFRLEVBQUUsUUFBUSxHQXdGbkI7SVRLRixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO01TN0dwQyxBQWNFLFdBZFMsQ0FjVCxFQUFFLENBQUM7UUFNQyxLQUFLLEVBQUUsR0FBRztRQUNWLEtBQUssRUFBRSxJQUFJO1FBQ1gsTUFBTSxFQUFFLEtBQUssR0FrRmhCO0lBeEdILEFBY0UsV0FkUyxDQWNULEVBQUUsQUFXQSxPQUFRLENBQUM7TUFDUCxPQUFPLEVBQUUsRUFBRTtNQUNYLE9BQU8sRUFBRSxLQUFLO01BQ2QsUUFBUSxFQUFFLFFBQVE7TUFDbEIsTUFBTSxFQUFFLElBQUk7TUFDWixNQUFNLEVBQUUsR0FBRztNQUNYLElBQUksRUFBRSxHQUFHO01BQ1QsS0FBSyxFQUFFLEdBQUc7TUFDVixVQUFVLEVBQUUsS0FBSyxHQUNsQjtJQWxDTCxBQW9DSSxXQXBDTyxDQWNULEVBQUUsQ0FzQkEsQ0FBQyxDQUFDO01BQ0EsT0FBTyxFQUFFLEtBQUs7TUFDZCxRQUFRLEVBQUUsUUFBUTtNQUNsQixVQUFVLEVBQUUsYUFBYSxHQUsxQjtNQTVDTCxBQW9DSSxXQXBDTyxDQWNULEVBQUUsQ0FzQkEsQ0FBQyxBQUtDLE1BQU8sQ0FBQztRQUNOLFNBQVMsRUFBRSxXQUFXLEdBQ3ZCO0lBM0NQLEFBNkNJLFdBN0NPLENBY1QsRUFBRSxDQStCQSxHQUFHLENBQUM7TUFDRixPQUFPLEVBQUUsS0FBSyxHQUNmO0lBL0NMLEFBZ0RJLFdBaERPLENBY1QsRUFBRSxDQWtDQSxPQUFPLENBQUM7TUFDTixRQUFRLEVBQUUsUUFBUTtNQUNsQixPQUFPLEVBQUUsS0FBSztNQUNkLEdBQUcsRUFBRSxDQUFDO01BQ04sTUFBTSxFQUFFLENBQUM7TUFDVCxLQUFLLEVBQUUsQ0FBQztNQUNSLElBQUksRUFBRSxDQUFDO01BR1AsVUFBVSxFWC9GUCxzQkFBTztNV2dHVixVQUFVLEVBQUUsWUFBWSxHQWtDekI7TUE1RkwsQUE0RE0sV0E1REssQ0FjVCxFQUFFLENBa0NBLE9BQU8sQ0FZTCxNQUFNLENBQUM7UUFDTCxTQUFTLEVBQUUsSUFBSTtRQUNmLE1BQU0sRUFBRSxJQUFJO1FBQ1osV0FBVyxFQUFFLElBQUk7UUFDakIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsR0FBRyxFQUFFLEdBQUc7UUFDUixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLEtBQUssRUFBRSxJQUFJLEdBc0JaO1FUY04sTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsTUFBTTtVU3hHckMsQUE0RE0sV0E1REssQ0FjVCxFQUFFLENBa0NBLE9BQU8sQ0FZTCxNQUFNLENBQUM7WUFXSCxTQUFTLEVBQUUsSUFBSSxHQW1CbEI7UVR3Qk4sTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztVU2xIcEMsQUE0RE0sV0E1REssQ0FjVCxFQUFFLENBa0NBLE9BQU8sQ0FZTCxNQUFNLENBQUM7WUFjSCxTQUFTLEVBQUUsSUFBSSxHQWdCbEI7UVQ2Qk4sTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztVU3ZIcEMsQUE0RE0sV0E1REssQ0FjVCxFQUFFLENBa0NBLE9BQU8sQ0FZTCxNQUFNLENBQUM7WUFpQkgsU0FBUyxFQUFFLElBQUksR0FhbEI7UVQyQ04sTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztVU3JJcEMsQUE0RE0sV0E1REssQ0FjVCxFQUFFLENBa0NBLE9BQU8sQ0FZTCxNQUFNLENBQUM7WUFvQkgsT0FBTyxFQUFFLElBQUksR0FVaEI7UUExRlAsQUFtRlEsV0FuRkcsQ0FjVCxFQUFFLENBa0NBLE9BQU8sQ0FZTCxNQUFNLENBdUJKLElBQUksQ0FBQztVQUNILE9BQU8sRUFBRSxZQUFZO1VBQ3JCLE1BQU0sRUFBRSxJQUFJO1VBQ1osV0FBVyxFQUFFLElBQUk7VUFDakIsY0FBYyxFQUFFLE1BQU07VUFDdEIsVUFBVSxFQUFFLHVDQUF1QyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQ3JFO0lBekZULEFBOEZNLFdBOUZLLENBY1QsRUFBRSxBQStFQSxPQUFRLENBQ04sT0FBTyxDQUFDO01BQ04sVUFBVSxFWDlJTCx1QkFBTyxHV3FKYjtNQXRHUCxBQWlHVSxXQWpHQyxDQWNULEVBQUUsQUErRUEsT0FBUSxDQUNOLE9BQU8sQ0FFTCxNQUFNLENBQ0osSUFBSSxDQUFDO1FBQ0gsS0FBSyxFQUFFLEtBQUs7UUFDWixVQUFVLEVBQUUsNkNBQTZDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FDM0U7O0FDbkpYLEFBQUEsTUFBTSxDQUFDO0VBQ0wsV0FBVyxFQUFFLElBQUk7RUFDakIsY0FBYyxFQUFFLElBQUksR0FNckI7RUFSRCxBQUlFLE1BSkksQ0FJSixFQUFFLENBQUM7SUFDRCxTQUFTLEVBQUUsSUFBSTtJQUNmLEtBQUssRVpMUyxPQUFPLEdZTXRCOztBQUdILEFBQUEsYUFBYSxDQUFDO0VBQ1osVUFBVSxFQUFFLElBQUksR0FDakI7O0FBRUQsQUFBQSxXQUFXLENBQUM7RUFDVixVQUFVLEVBQUUsSUFBSTtFQUNoQixNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDLEdBMENYO0VBN0NELEFBS0UsV0FMUyxDQUtULEVBQUUsQ0FBQztJQUNELGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGFBQWEsRUFBRSxJQUFJLEdBNEJwQjtJQXBDSCxBQVVJLFdBVk8sQ0FLVCxFQUFFLENBS0EsQ0FBQyxDQUFDO01BQ0EsT0FBTyxFQUFDLEtBQUs7TUFDYixRQUFRLEVBQUUsUUFBUTtNQUNsQixVQUFVLEVBQUUsYUFBYSxHQWdCMUI7TUE3QkwsQUFVSSxXQVZPLENBS1QsRUFBRSxDQUtBLENBQUMsQUFLQyxNQUFPLENBQUM7UUFDTixTQUFTLEVBQUUsVUFBVSxHQUN0QjtNQWpCUCxBQVVJLFdBVk8sQ0FLVCxFQUFFLENBS0EsQ0FBQyxBQVNDLE9BQVEsQ0FBQztRQUNQLE9BQU8sRUFBRSxFQUFFO1FBQ1gsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsUUFBUTtRQUNsQixNQUFNLEVBQUUsSUFBSTtRQUNaLE1BQU0sRUFBRSxHQUFHO1FBQ1gsSUFBSSxFQUFFLEdBQUc7UUFDVCxLQUFLLEVBQUUsR0FBRztRQUNWLFVBQVUsRUFBRSxLQUFLLEdBQ2xCO0lBNUJQLEFBK0JJLFdBL0JPLENBS1QsRUFBRSxDQTBCQSxHQUFHLENBQUM7TUFDRixPQUFPLEVBQUUsWUFBWTtNQUNyQixjQUFjLEVBQUUsR0FBRztNQUNuQixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQW5DTCxBQXNDRSxXQXRDUyxBQXNDVCxTQUFVLENBQUM7SUFDVCxZQUFZLEVBQUUsY0FBYyxHQUs3QjtJVmtHRixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO01VOUlwQyxBQXNDRSxXQXRDUyxBQXNDVCxTQUFVLENBQUM7UUFJUCxZQUFZLEVBQUUsWUFBWSxHQUU3Qjs7QUMxREgsQUFBQSxLQUFLLENBQUM7RUFDSixXQUFXLEVBQUUsSUFBSTtFQUNqQixjQUFjLEVBQUUsSUFBSTtFQUNwQixVQUFVLEVBQ1IscUNBQXFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQzdELGtDQUFrQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDYkUvQyxPQUFPLEdhRGxCOztBQUVELEFBQUEsVUFBVSxDQUFDO0VBQ1QsZUFBZSxFQUFFLElBQUksR0FDdEI7O0FYdUpBLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7RVdySnBDLEFBQUEsa0JBQWtCLENBQUM7SUFFZixhQUFhLEVBQUUsSUFBSSxHQXdFdEI7O0FBMUVELEFBS0Usa0JBTGdCLENBS2hCLE1BQU0sQ0FBQztFQUNMLE9BQU8sRUFBRSxLQUFLO0VBQ2QsUUFBUSxFQUFFLFFBQVE7RUFDbEIsVUFBVSxFQUFFLFlBQVksR0FxQnpCO0VBN0JILEFBS0Usa0JBTGdCLENBS2hCLE1BQU0sQUFLSixNQUFPLENBQUM7SUFDTixTQUFTLEVBQUUsV0FBVyxHQUN2QjtFQVpMLEFBYUksa0JBYmMsQ0FLaEIsTUFBTSxDQVFKLENBQUMsQ0FBQztJQUNBLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RUFmTCxBQWdCSSxrQkFoQmMsQ0FLaEIsTUFBTSxDQVdKLEdBQUcsQ0FBQztJQUNGLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RUFsQkwsQUFLRSxrQkFMZ0IsQ0FLaEIsTUFBTSxBQWNKLE1BQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxFQUFFO0lBQ1gsT0FBTyxFQUFFLEtBQUs7SUFDZCxRQUFRLEVBQUUsUUFBUTtJQUNsQixVQUFVLEVBQUUsS0FBSztJQUNqQixNQUFNLEVBQUUsR0FBRztJQUNYLElBQUksRUFBRSxHQUFHO0lBQ1QsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsSUFBSSxHQUNiOztBQTVCTCxBQThCRSxrQkE5QmdCLENBOEJoQixNQUFNLENBQUM7RUFDTCxTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFdBQVcsRUFBRSxlQUFlO0VBQzVCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFdBQVcsRUFBRSxLQUFLLEdBU25CO0VBN0NILEFBc0NJLGtCQXRDYyxDQThCaEIsTUFBTSxDQVFKLENBQUMsQ0FBQztJQUNBLFVBQVUsRUFBRSxZQUFZLEdBS3pCO0lBNUNMLEFBc0NJLGtCQXRDYyxDQThCaEIsTUFBTSxDQVFKLENBQUMsQUFHQyxNQUFPLENBQUM7TUFDTixLQUFLLEVBQUUsS0FBSyxHQUNiOztBQTNDUCxBQThDRSxrQkE5Q2dCLENBOENoQixLQUFLLENBQUM7RUFDSixTQUFTLEVBQUUsSUFBSTtFQUNmLEtBQUssRWIzRFMsT0FBTztFYTREckIsV0FBVyxFQUFFLEdBQUc7RUFDaEIsT0FBTyxFQUFFLEtBQUs7RUFDZCxRQUFRLEVBQUUsUUFBUSxHQWtCbkI7RUFyRUgsQUFxREksa0JBckRjLENBOENoQixLQUFLLENBT0gsSUFBSSxDQUFDO0lBQ0gsVUFBVSxFYjNESixPQUFPO0lhNERiLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGFBQWEsRUFBRSxHQUFHLEdBQ25CO0VBMURMLEFBOENFLGtCQTlDZ0IsQ0E4Q2hCLEtBQUssQUFjSCxPQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxLQUFLO0lBQ2QsUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsR0FBRztJQUNYLFVBQVUsRWJuRUQsd0JBQU87SWFvRWhCLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7O0FBcEVMLEFBc0VFLGtCQXRFZ0IsQ0FzRWhCLE9BQU8sQ0FBQztFQUNOLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLE1BQU0sR0FDcEI7O0FDckZILEFBQUEsV0FBVyxDQUFDO0VBQ1YsT0FBTyxFQUFFLGFBQWE7RUFDdEIsVUFBVSxFQUFFLE1BQU0sR0FtRm5CO0VBakZDLEFBQVcsVUFBRCxDQUpaLFdBQVc7RUFLVCxBQUF5Qix3QkFBRCxDQUwxQixXQUFXLENBS2tCO0lBQ3pCLFVBQVUsRUFBRSwwREFBZ0UsR0FDN0U7RUFQSCxBQVVFLFdBVlMsQ0FVVCxFQUFFLENBQUM7SUFDRCxLQUFLLEVkVlMsT0FBTztJY1dyQixTQUFTLEVBQUUsSUFBSTtJQUNmLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ1hpRWhCLGtCQUFvQixHV2hFM0I7RUFmSCxBQWdCRSxXQWhCUyxDQWdCVCxDQUFDLENBQUM7SUFDQSxVQUFVLEVBQUUsR0FBRztJQUNmLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBbkJILEFBb0JFLFdBcEJTLENBb0JULEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWI7RUFwQlIsQUFxQkUsV0FyQlMsQ0FxQlQsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWjtFQXJCUixBQXNCRSxXQXRCUyxDQXNCVCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssTUFBTSxBQUFYLEVBQWE7SUFDakIsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRztJQUNsQixNQUFNLEVBQUUsSUFBSTtJQUNaLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLE1BQU0sRUFBRSxLQUFLO0lBQ2IsY0FBYyxFQUFFLEdBQUc7SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixVQUFVLEVBQUUsVUFBVSxHQUN2QjtFQS9CSCxBQWlDRSxXQWpDUyxDQWlDVCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssT0FBTyxBQUFaO0VBakNSLEFBa0NFLFdBbENTLENBa0NULEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxNQUFNLEFBQVgsRUFBYTtJQUNqQixVQUFVLEVkeEJDLE9BQU87SWN5QmxCLEtBQUssRWRqQ0MsT0FBTztJY2tDYixPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLEtBQUssRUFBRSxJQUFJO0liMkZiLFdBQVcsRUFBRSxjQUFjO0lBQzNCLFdBQVcsRWEzRk0sR0FBRztJYm5DckIsc0JBQXNCLEVBQUUsV0FBVztJYW9DaEMsVUFBVSxFQUFFLGFBQWEsR0FjMUI7SUF2REgsQUFpQ0UsV0FqQ1MsQ0FpQ1QsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixDQVVMLFlBQWM7SUEzQ2pCLEFBa0NFLFdBbENTLENBa0NULEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxNQUFNLEFBQVgsQ0FTTCxZQUFjLENBQUM7TUFDWixLQUFLLEVBQUUsV0FBVyxHQUNuQjtJQTdDTCxBQWlDRSxXQWpDUyxDQWlDVCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssT0FBTyxBQUFaLENBY0wsTUFBUSxFQS9DWCxBQWlDRSxXQWpDUyxDQWlDVCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssT0FBTyxBQUFaLENBY0ksTUFBUTtJQS9DcEIsQUFrQ0UsV0FsQ1MsQ0FrQ1QsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWCxDQWFMLE1BQVE7SUEvQ1gsQUFrQ0UsV0FsQ1MsQ0FrQ1QsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWCxDQWFJLE1BQVEsQ0FBQztNQUNmLFVBQVUsRUFBRSxLQUFLLEdBQ2xCO0laMEhKLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7TVkzS3BDLEFBaUNFLFdBakNTLENBaUNULEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxPQUFPLEFBQVo7TUFqQ1IsQUFrQ0UsV0FsQ1MsQ0FrQ1QsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWCxFQUFhO1FBa0JmLGFBQWEsRUFBRSxJQUFJLEdBR3RCO0VBdkRILEFBd0RFLFdBeERTLENBd0RULEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsRUFBZTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFZDNESSxPQUFPO0ljNERyQixLQUFLLEVBQUUsS0FBSztJQUNaLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ2R2RGQsT0FBTztJQzJIakIsV0FBVyxFQUFFLGNBQWM7SUFDM0IsV0FBVyxFYXBFTSxHQUFHO0liMURyQixzQkFBc0IsRUFBRSxXQUFXO0lhMkRoQyxjQUFjLEVBQUUsU0FBUztJQUN6QixPQUFPLEVBQUUsTUFBTTtJQUNmLEtBQUssRUFBRSxJQUFJO0lBQ1gsVUFBVSxFQUFFLGFBQWEsR0FhMUI7SUFoRkgsQUF3REUsV0F4RFMsQ0F3RFQsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixDQWFKLE1BQU8sQ0FBQztNQUNOLFVBQVUsRUFBRSxPQUFpQztNQUM3QyxPQUFPLEVBQUUsSUFBSTtNQUNiLFNBQVMsRUFBRSxXQUFXLEdBQ3ZCO0lBekVMLEFBd0RFLFdBeERTLENBd0RULEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsQ0FtQkosT0FBUSxDQUFDO01BQ1AsVUFBVSxFQUFFLE9BQW1DO01BQy9DLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7RUE5RUwsQUFrRkUsV0FsRlMsQ0FrRlQsZ0JBQWdCLENBQUM7SUFDZixTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUFHSCxBQUFBLGdCQUFnQixDQUFDO0VBQ2YsVUFBVSxFQUFFLFdBQVc7RUFDdkIsS0FBSyxFQUFFLElBQUk7RUFDWCxXQUFXLEVBQUUsY0FBYztFQUMzQixXQUFXLEVBQUUsTUFBTTtFQUNuQixTQUFTLEVBQUUsSUFBSSxHQTJFaEI7RUFoRkQsQUFRRSxnQkFSYyxDQVFkLEtBQUssQ0FBQztJQUNKLFdBQVcsRUFBRSxNQUFNLEdBQ3BCO0VBVkgsQUFhSSxnQkFiWSxDQVlkLHVCQUF1QixDQUNyQixLQUFLLENBQUM7SUFDSixTQUFTLEVBQUUsSUFBSTtJYjZCbkIsV0FBVyxFQUFFLGNBQWM7SUFDM0IsV0FBVyxFYTdCUSxHQUFHO0liakd2QixzQkFBc0IsRUFBRSxXQUFXLEdha0cvQjtFQWhCTCxBQWlCSSxnQkFqQlksQ0FZZCx1QkFBdUIsQ0FLckIsS0FBSyxBQUFBLE1BQU0sQ0FBQztJQUNWLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLEdBQUc7SUFDbEIsTUFBTSxFQUFFLElBQUk7SUFDWixXQUFXLEVBQUUsSUFBSTtJQUNqQixNQUFNLEVBQUUsS0FBSztJQUNiLGNBQWMsRUFBRSxHQUFHO0lBQ25CLFNBQVMsRUFBRSxJQUFJO0lBQ2YsVUFBVSxFQUFFLFVBQVU7SUFDdEIsVUFBVSxFZHRHRCxPQUFPO0ljdUdoQixLQUFLLEVkL0dELE9BQU87SWNnSFgsT0FBTyxFQUFFLEtBQUs7SUFDZCxVQUFVLEVBQUUsVUFBVTtJYmMxQixXQUFXLEVBQUUsY0FBYztJQUMzQixXQUFXLEVhYlEsR0FBRztJYmpIdkIsc0JBQXNCLEVBQUUsV0FBVztJYWtIOUIsVUFBVSxFQUFFLGFBQWEsR0FhMUI7SUE3Q0wsQUFpQkksZ0JBakJZLENBWWQsdUJBQXVCLENBS3JCLEtBQUssQUFBQSxNQUFNLEFBaUJULFlBQWEsQ0FBQztNQUNaLEtBQUssRUFBRSxXQUFXLEdBQ25CO0lBcENQLEFBaUJJLGdCQWpCWSxDQVlkLHVCQUF1QixDQUtyQixLQUFLLEFBQUEsTUFBTSxBQXFCVCxNQUFPLEVBdENiLEFBaUJJLGdCQWpCWSxDQVlkLHVCQUF1QixDQUtyQixLQUFLLEFBQUEsTUFBTSxBQXFCQSxNQUFPLENBQUM7TUFDZixVQUFVLEVBQUUsS0FBSyxHQUNsQjtJWjRDTixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO01ZcEZwQyxBQWlCSSxnQkFqQlksQ0FZZCx1QkFBdUIsQ0FLckIsS0FBSyxBQUFBLE1BQU0sQ0FBQztRQTBCUixhQUFhLEVBQUUsSUFBSSxHQUV0QjtFQTdDTCxBQWdERSxnQkFoRGMsQ0FnRGQsS0FBSyxBQUFBLE9BQU8sQ0FBQztJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLEdBQUc7SUFFbEIsV0FBVyxFQUFFLElBQUk7SUFDakIsTUFBTSxFQUFFLEtBQUs7SUFDYixjQUFjLEVBQUUsR0FBRztJQUVuQixVQUFVLEVBQUUsVUFBVTtJQUN0QixTQUFTLEVBQUUsSUFBSTtJQUNmLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFZGxKSSxPQUFPO0ljbUpyQixLQUFLLEVBQUUsS0FBSztJQUNaLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ2Q5SWQsT0FBTztJQzJIakIsV0FBVyxFQUFFLGNBQWM7SUFDM0IsV0FBVyxFYW1CTSxHQUFHO0liakpyQixzQkFBc0IsRUFBRSxXQUFXO0lha0poQyxjQUFjLEVBQUUsU0FBUztJQUN6QixPQUFPLEVBQUUsTUFBTTtJQUNmLEtBQUssRUFBRSxJQUFJO0lBQ1gsVUFBVSxFQUFFLGFBQWEsR0FZMUI7SUEvRUgsQUFnREUsZ0JBaERjLENBZ0RkLEtBQUssQUFBQSxPQUFPLEFBcUJWLE1BQU8sQ0FBQztNQUNOLFVBQVUsRUFBRSxPQUFpQztNQUM3QyxPQUFPLEVBQUUsSUFBSTtNQUNiLFNBQVMsRUFBRSxXQUFXLEdBQ3ZCO0lBekVMLEFBZ0RFLGdCQWhEYyxDQWdEZCxLQUFLLEFBQUEsT0FBTyxBQTJCVixPQUFRLENBQUM7TUFDUCxVQUFVLEVBQUUsT0FBbUM7TUFDL0MsT0FBTyxFQUFFLElBQUksR0FDZDs7QUNyS0wsQUFBQSxTQUFTLENBQUM7RUFDUixVQUFVLEVBQUUsc0NBQXNDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTztFQUMvRSxRQUFRLEVBQUUsUUFBUSxHQTBCbkI7RUE1QkQsQUFJRSxTQUpPLEFBSVAsT0FBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLEVBQUU7SUFDWCxPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE1BQU0sRUFBRSxJQUFJO0lBQ1osR0FBRyxFQUFFLEtBQUs7SUFDVixJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0lBQ1IsVUFBVSxFQUFFLHdEQUErRDtJQUMzRSxPQUFPLEVBQUUsRUFBRSxHQUNaO0VBZEgsQUFpQkUsU0FqQk8sQ0FpQlAsUUFBUSxDQUFDO0lBQ1AsV0FBVyxFQUFFLENBQUMsR0FTZjtJQTNCSCxBQW9CSSxTQXBCSyxDQWlCUCxRQUFRLENBR04sRUFBRSxDQUFDO01BQ0QsVUFBVSxFQUFFLEdBQUc7TUFDZixhQUFhLEVBQUUsSUFBSSxHQUNwQjtJQXZCTCxBQXdCSSxTQXhCSyxDQWlCUCxRQUFRLENBT04sQ0FBQyxDQUFDO01BQ0EsYUFBYSxFQUFFLElBQUksR0FDcEI7O0FBSUwsQUFBQSxpQkFBaUIsQ0FBQztFQUNoQixRQUFRLEVBQUUsUUFBUSxHQUNuQjs7QUFFRCxBQUFBLGFBQWEsQ0FBQztFQUNaLG1CQUFtQixFQUFFLElBQUk7RUFDekIsa0JBQWtCLEVBQUUsSUFBSTtFQUN4QixnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLFdBQVcsRUFBRSxJQUFJLEdBQ2xCOztBQUNELEFBQUEsV0FBVyxBQUFBLFVBQVUsQ0FBQztFQUNwQixtQkFBbUIsRUFBRSxJQUFJO0VBQ3pCLGtCQUFrQixFQUFFLElBQUk7RUFDeEIsZ0JBQWdCLEVBQUUsSUFBSTtFQUN0QixlQUFlLEVBQUUsSUFBSTtFQUNyQixXQUFXLEVBQUUsSUFBSSxHQUNsQjs7QUFFRCxBQUFBLE1BQU0sQ0FBQztFQUNMLE9BQU8sRUFBRSxnQkFBZ0I7RUFDekIsT0FBTyxFQUFFLGVBQWUsR0FnT3pCO0VibEhBLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7SWFoSHBDLEFBQUEsTUFBTSxDQUFDO01BS0gsT0FBTyxFQUFFLGdCQUFnQixHQTZONUI7RUFsT0QsQUFRRSxNQVJJLENBUUosWUFBWSxDQUFDO0lBQ1gsVUFBVSxFQUFFLE1BQU07SUFDbEIsVUFBVSxFQUFFLEtBQUs7SUFDakIsUUFBUSxFQUFFLFFBQVE7SUFFbEIsbUJBQW1CLEVBQUUsVUFBVTtJQUMvQixpQkFBaUIsRUFBRSxTQUFTO0lBQzVCLGVBQWUsRUFBRSxJQUFJLEdBMEN0QjtJQXpESCxBQVFFLE1BUkksQ0FRSixZQUFZLEFBU1YsT0FBUSxDQUFDO01BQ1AsT0FBTyxFQUFFLEVBQUU7TUFDWCxPQUFPLEVBQUUsS0FBSztNQUNkLFFBQVEsRUFBRSxRQUFRO01BQ2xCLEtBQUssRUFBRSxLQUFLO01BQ1osTUFBTSxFQUFFLEtBQUs7TUFDYixVQUFVLEVBQUUsR0FBRztNQUNmLEdBQUcsRUFBRSxHQUFHO01BQ1IsSUFBSSxFQUFFLEdBQUc7TUFDVCxTQUFTLEVBQUUsZ0JBQWdCO01BQzNCLFVBQVUsRUFBRSx3SEFLWCxHQUNGO0lBakNMLEFBbUNJLE1BbkNFLENBUUosWUFBWSxDQTJCVixHQUFHLENBQUM7TVpHTixlQUFlLEVBQUUsU0FBUztNWUF0QixPQUFPLEVBQUUsWUFBWTtNQUVyQixNQUFNLEVBQUUsSUFBSTtNQUNaLFNBQVMsRUFBRSxVQUFVO01BQ3JCLGdCQUFnQixFQUFFLFVBQVUsR0FDN0I7SUEzQ0wsQUFRRSxNQVJJLENBUUosWUFBWSxBQXFDVixNQUFPLENBQUM7TUFDTixPQUFPLEVBQUUsRUFBRTtNQUNYLE9BQU8sRUFBRSxLQUFLO01BQ2QsUUFBUSxFQUFFLFFBQVE7TUFDbEIsTUFBTSxFQUFFLENBQUM7TUFDVCxJQUFJLEVBQUUsQ0FBQztNQUNQLEtBQUssRUFBRSxDQUFDO01BQ1IsTUFBTSxFQUFFLEtBQUs7TUFDYixVQUFVLEVBQUUscURBQTJEO01BQ3ZFLE9BQU8sRUFBRSxDQUFDLEdBQ1g7RUF2REwsQUEyREUsTUEzREksQ0EyREosY0FBYyxDQUFDO0lBQ2IsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENaL0JoQixrQkFBb0I7SVlnQzFCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLE9BQU8sRUFBRSxDQUFDLEdBT1g7SUF0RUgsQUFpRUksTUFqRUUsQ0EyREosY0FBYyxDQU1aLEdBQUcsQ0FBQztNQUNGLE9BQU8sRUFBRSxZQUFZO01BQ3JCLGNBQWMsRUFBRSxNQUFNLEdBRXZCO0VBckVMLEFBd0VFLE1BeEVJLENBd0VKLGFBQWEsQ0FBQztJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFZjNISSxPQUFPO0llNEhoQix1QkFBdUIsRWY1SGQsT0FBTztJZTZIaEIseUJBQXlCLEVBQUUsR0FBRztJQUM5Qix5QkFBeUIsRUFBRSxLQUFLO0lBQ2hDLFdBQVcsRUFBRSxlQUFlO0lBQzVCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLENBQUMsR0FDWDtFQWpGSCxBQWtGRSxNQWxGSSxDQWtGSixvQkFBb0IsQ0FBQztJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLEtBQUssRUFBRSxPQUEwQjtJQUNqQyxXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsS0FBSztJQUNsQixVQUFVLEVBQUUsS0FBSztJQUNqQixPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLFVBQVUsRUFBRSxZQUFZLEdBNEN6QjtJYnpCRixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO01haEhwQyxBQWtGRSxNQWxGSSxDQWtGSixvQkFBb0IsQ0FBQztRQWNqQixVQUFVLEVBQUUsS0FDZCxHQXdDRDtJQXpJSCxBQWtGRSxNQWxGSSxDQWtGSixvQkFBb0IsQUFpQmxCLE1BQU8sQ0FBQztNQUNOLE9BQU8sRUFBRSxFQUFFO01BQ1gsT0FBTyxFQUFFLEtBQUs7TUFDZCxRQUFRLEVBQUUsUUFBUTtNQUNsQixNQUFNLEVBQUUsQ0FBQztNQUNULElBQUksRUFBRSxDQUFDO01BQ1AsS0FBSyxFQUFFLENBQUM7TUFDUixNQUFNLEVBQUUsSUFBSTtNQUNaLFVBQVUsRUFBRSwwREFBc0QsR0FDbkU7SUE1R0wsQUFrRkUsTUFsRkksQ0FrRkosb0JBQW9CLEFBNEJsQixTQUFVLENBQUM7TUFDVCxVQUFVLEVBQUUsTUFBTSxHQUtuQjtNQXBITCxBQWtGRSxNQWxGSSxDQWtGSixvQkFBb0IsQUE0QmxCLFNBQVUsQUFHUixNQUFPLENBQUM7UUFDTixPQUFPLEVBQUUsSUFBSSxHQUNkO0lBbkhQLEFBc0hJLE1BdEhFLENBa0ZKLG9CQUFvQixDQW9DbEIsa0JBQWtCLENBQUM7TUFDakIsT0FBTyxFQUFFLEtBQUs7TUFDZCxRQUFRLEVBQUUsUUFBUTtNQUNsQixJQUFJLEVBQUUsR0FBRztNQUNULEtBQUssRUFBRSxLQUFLO01BQ1osVUFBVSxFQUFFLE1BQU07TUFDbEIsU0FBUyxFQUFFLGdCQUFnQjtNQUMzQixNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ2Y3S0wsT0FBTztNZThLbkIsT0FBTyxFQUFFLENBQUM7TUFDVixhQUFhLEVBQUUsR0FBRztNQUNsQixPQUFPLEVBQUUsS0FBSztNQUNkLEtBQUssRWZqTE8sT0FBTztNZWtMbkIsTUFBTSxFQUFFLENBQUMsR0FNVjtNQXhJTCxBQXNISSxNQXRIRSxDQWtGSixvQkFBb0IsQ0FvQ2xCLGtCQUFrQixBQWNoQixNQUFPLENBQUM7UUFDTixVQUFVLEVmckxBLE9BQU87UWVzTGpCLEtBQUssRWZyTEwsT0FBTyxHZXNMUjtFQXZJUCxBQTJJRSxNQTNJSSxDQTJJSixjQUFjLENBQUM7SUFDYixPQUFPLEVBQUUsTUFBTTtJQUVmLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFZnJMTSxPQUFPLEdlc0xuQjtFQWhKSCxBQW1KSSxNQW5KRSxDQWtKSixtQkFBbUIsQ0FDakIsQ0FBQyxDQUFDO0lBQ0EsV0FBVyxFQUFFLGVBQWUsR0FVN0I7SUE5SkwsQUFtSkksTUFuSkUsQ0FrSkosbUJBQW1CLENBQ2pCLENBQUMsQUFFQyxJQUFLLENBQUM7TUFDSixLQUFLLEVBQUUsT0FBTyxHQUNmO0lBdkpQLEFBbUpJLE1BbkpFLENBa0pKLG1CQUFtQixDQUNqQixDQUFDLEFBS0MsSUFBSyxDQUFDO01BQ0osS0FBSyxFZnpNSyxPQUFPLEdlME1sQjtJQTFKUCxBQW1KSSxNQW5KRSxDQWtKSixtQkFBbUIsQ0FDakIsQ0FBQyxBQVFDLElBQUssQ0FBQztNQUNKLEtBQUssRUFBRSxPQUFPLEdBQ2Y7RUE3SlAsQUFtS0ksTUFuS0UsQ0FpS0osZUFBZSxDQUViLEVBQUU7RUFuS04sQUFtS0ksTUFuS0UsQ0FrS0osbUJBQW1CLENBQ2pCLEVBQUUsQ0FBQztJQUNELFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFZnJOTyxPQUFPO0llc05uQixXQUFXLEVBQUUsR0FBRztJQUNoQixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxDQUFDLEdBQ1g7RUF6S0wsQUEwS0ksTUExS0UsQ0FpS0osZUFBZSxDQVNiLENBQUM7RUExS0wsQUEwS0ksTUExS0UsQ0FrS0osbUJBQW1CLENBUWpCLENBQUMsQ0FBQztJQUNBLFNBQVMsRUFBRSxJQUFJO0lBQ2YsTUFBTSxFQUFFLENBQUM7SUFDVCxPQUFPLEVBQUUsQ0FBQyxHQUNYO0VBOUtMLEFBaUxJLE1BakxFLENBZ0xKLG1CQUFtQixDQUNqQixHQUFHLENBQUM7SUFDRixLQUFLLEVBQUUsSUFBTztJWjVJbEIsZUFBZSxFQUFFLFNBQVM7SVk4SXRCLE9BQU8sRUFBRSxZQUFZLEdBQ3RCO0VBckxMLEFBd0xFLE1BeExJLENBd0xKLGVBQWUsQ0FBQztJQUNkLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGFBQWEsRUFBRSxJQUFJLEdBQ3BCO0VBM0xILEFBNkxJLE1BN0xFLENBNExKLGNBQWMsQ0FDWixDQUFDLENBQUM7SUFDQSxPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFVBQVUsRUFBRSxhQUFhLEdBd0IxQjtJQXhOTCxBQTZMSSxNQTdMRSxDQTRMSixjQUFjLENBQ1osQ0FBQyxBQUtDLE1BQU8sQ0FBQztNQUNOLFNBQVMsRUFBRSxVQUFVLEdBQ3RCO0lBcE1QLEFBNkxJLE1BN0xFLENBNExKLGNBQWMsQ0FDWixDQUFDLEFBUUMsT0FBUSxDQUFDO01BQ1AsU0FBUyxFQUFFLFVBQVU7TUFDckIsVUFBVSxFQUFFLE1BQU0sR0FDbkI7SUF4TVAsQUEwTU0sTUExTUEsQ0E0TEosY0FBYyxDQUNaLENBQUMsQ0FhQyxHQUFHLENBQUM7TUFDRixPQUFPLEVBQUUsS0FBSyxHQUNmO0lBNU1QLEFBNkxJLE1BN0xFLENBNExKLGNBQWMsQ0FDWixDQUFDLEFBaUJDLE1BQU8sQ0FBQztNQUNOLE9BQU8sRUFBRSxFQUFFO01BQ1gsT0FBTyxFQUFFLEtBQUs7TUFDZCxNQUFNLEVBQUUsR0FBRztNQUNYLFFBQVEsRUFBRSxRQUFRO01BQ2xCLE1BQU0sRUFBRSxJQUFJO01BQ1osSUFBSSxFQUFFLEdBQUc7TUFDVCxLQUFLLEVBQUUsR0FBRztNQUNWLFVBQVUsRUFBRSxLQUFLLEdBQ2xCO0VBdk5QLEFBME5FLE1BMU5JLENBME5KLG1CQUFtQixDQUFDO0lBQ2xCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLFdBQVcsR0FDekI7O0FBSUgsQUFBQSxZQUFZLENBQUM7RUFDWCxPQUFPLEVBQUUsS0FBSztFQUNkLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxHQUFHO0VBR1IsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLE1BQU0sRUFBRSxJQUFJO0VBQ1osT0FBTyxFQUFFLENBQUM7RUFDVixRQUFRLEVBQUUsTUFBTTtFQUNoQixXQUFXLEVBQUUsT0FBTztFQUNwQixTQUFTLEVBQUUsZ0JBQWdCO0VBQzNCLE9BQU8sRUFBRSxlQUFlO0VBQ3hCLFVBQVUsRUFBRSxhQUFhO0VBQ3pCLGVBQWUsRUFBRSxXQUFXLEdBUzdCO0VBeEJELEFBaUJFLFlBakJVLEFBaUJWLE1BQU8sQ0FBQztJQUNOLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXLEdBQ3hDO0VBbkJILEFBb0JFLFlBcEJVLEFBb0JWLE9BQVEsQ0FBQztJQUNQLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxVQUFTLEdBQ3RDOztBQUdILEFBQUEsV0FBVyxDQUFDO0VBQ1YsSUFBSSxFQUFFLEdBQUc7RUFDVCxVQUFVLEVBQUUsZ0NBQWdDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxHQVE1RTtFYnhKQSxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0lhOElwQyxBQUFBLFdBQVcsQ0FBQztNQUtSLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLElBQUk7TUFDWixlQUFlLEVBQUUsU0FBUztNQUMxQixJQUFJLEVBQUUsR0FBRyxHQUVaOztBQUNELEFBQUEsV0FBVyxDQUFDO0VBQ1YsS0FBSyxFQUFFLEdBQUc7RUFDVixVQUFVLEVBQUUsaUNBQWlDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxHQVM3RTtFYnBLQSxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0lheUpwQyxBQUFBLFdBQVcsQ0FBQztNQUtSLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLElBQUk7TUFDWixlQUFlLEVBQUUsU0FBUztNQUMxQixLQUFLLEVBQUUsR0FBRyxHQUdiOztBQUVELEFBQUEsZ0JBQWdCLENBQUM7RUFFZixRQUFRLEVBQUUsUUFBUSxHQUNuQjs7QUFFRCxBQUFBLFdBQVcsQ0FBQztFQUlWLEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLENBQUM7RUFDWixVQUFVLEVBQUUsTUFBTSxHQXlHbkI7RUEvR0QsQUFRRSxXQVJTLENBUVQsRUFBRSxDQUFDO0lBQ0QsS0FBSyxFQUFFLE1BQU07SUFDYixPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUsSUFBSSxHQW1HYjtJYnpSRixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO01hMktwQyxBQVFFLFdBUlMsQ0FRVCxFQUFFLENBQUM7UUFNQyxNQUFNLEVBQUUsS0FBSyxHQWdHaEI7SWJwUkYsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztNYXNLcEMsQUFRRSxXQVJTLENBUVQsRUFBRSxDQUFDO1FBU0MsS0FBSyxFQUFFLEdBQUc7UUFDVixNQUFNLEVBQUUsS0FBSyxHQTRGaEI7SUE5R0gsQUFRRSxXQVJTLENBUVQsRUFBRSxBQWFBLFlBQWEsQ0FBQztNQUNaLFdBQVcsRUFBRSxDQUFDLEdBQ2Y7SUF2QkwsQUFRRSxXQVJTLENBUVQsRUFBRSxBQWlCQSxXQUFZLENBQUM7TUFDWCxZQUFZLEVBQUUsQ0FBQyxHQUNoQjtJQTNCTCxBQTZCSSxXQTdCTyxDQVFULEVBQUUsQ0FxQkEsQ0FBQyxDQUFBO01BQ0MsT0FBTyxFQUFFLEtBQUs7TUFDZCxTQUFTLEVBQUUsS0FBSztNQUNoQixRQUFRLEVBQUUsUUFBUTtNQUNsQixVQUFVLEVBQUUsTUFBTTtNQUNsQixNQUFNLEVBQUUsT0FBTztNQUNmLFVBQVUsRUFBRSxhQUFhO01BQ3pCLGVBQWUsRUFBRSxXQUFXLEdBb0Q3QjtNQXhGTCxBQTZCSSxXQTdCTyxDQVFULEVBQUUsQ0FxQkEsQ0FBQyxBQVNDLE9BQVEsQ0FBQztRQUNQLE9BQU8sRUFBRSxFQUFFO1FBQ1gsT0FBTyxFQUFFLEtBQUs7UUFFZCxLQUFLLEVBQUUsSUFBSTtRQUNYLE1BQU0sRUFBRSxJQUFJO1FBQ1osR0FBRyxFQUFFLENBQUM7UUFDTixJQUFJLEVBQUUsR0FBRztRQUNULFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsVUFBVSxFQUFFLG9DQUFvQyxDQUFDLFNBQVM7UUFDMUQsZUFBZSxFQUFFLEtBQUs7UUFDdEIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsT0FBTyxFQUFFLEVBQUUsR0FDWjtNQW5EUCxBQTZCSSxXQTdCTyxDQVFULEVBQUUsQ0FxQkEsQ0FBQyxBQXdCQyxNQUFPLEFBR1AsT0FBVSxFQXhEaEIsQUE2QkksV0E3Qk8sQ0FRVCxFQUFFLENBcUJBLENBQUMsQUF5QkMsTUFBTyxBQUVQLE9BQVUsRUF4RGhCLEFBNkJJLFdBN0JPLENBUVQsRUFBRSxDQXFCQSxDQUFDLEFBMEJDLE9BQVEsQUFDUixPQUFVLENBQUM7UUFDUCxnQkFBZ0IsRUFBRSxtQ0FBbUMsR0FDdEQ7TUExRFQsQUE2QkksV0E3Qk8sQ0FRVCxFQUFFLENBcUJBLENBQUMsQUFnQ0MsTUFBTyxFQTdEYixBQTZCSSxXQTdCTyxDQVFULEVBQUUsQ0FxQkEsQ0FBQyxBQWlDQyxNQUFPLENBQUM7UUFDTixTQUFTLEVBQUUsV0FBVztRQUN0QixPQUFPLEVBQUUsQ0FBQyxHQUNYO01BakVQLEFBNkJJLFdBN0JPLENBUVQsRUFBRSxDQXFCQSxDQUFDLEFBc0NDLE9BQVEsQ0FBQztRQUNQLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLFNBQVMsRUFBRSxVQUFVLEdBQ3RCO0lBdEVQLEFBMEZJLFdBMUZPLENBUVQsRUFBRSxDQWtGQSxHQUFHLENBQUE7TUFDRCxPQUFPLEVBQUUsS0FBSztNQUNkLE1BQU0sRUFBRSxDQUFDO01BQ1QsT0FBTyxFQUFFLENBQUM7TUFDVixVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENaM1ZsQixrQkFBb0I7TVk0VnhCLFVBQVUsRUFBRSxZQUFZLEdBQ3pCO0lBaEdMLEFBbUdNLFdBbkdLLENBUVQsRUFBRSxBQTBGQSxhQUFjLENBQ1osQ0FBQyxDQUFDO01BQ0EsU0FBUyxFQUFFLFdBQVcsR0FLdkI7TUF6R1AsQUFtR00sV0FuR0ssQ0FRVCxFQUFFLEFBMEZBLGFBQWMsQ0FDWixDQUFDLEFBR0MsT0FBUSxDQUFDO1FBQ1AsZ0JBQWdCLEVBQUUsc0NBQXNDLEdBQ3pEO0lBeEdULEFBMEdNLFdBMUdLLENBUVQsRUFBRSxBQTBGQSxhQUFjLENBUVosR0FBRyxDQUFDO01BQ0YsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDZnZiakIsdUJBQU8sR2V3YmI7O0FDcmJQLEFBRUUsYUFGVyxDQUVYLGlCQUFpQixDQUFDO0VBQ2hCLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLG1DQUFtQyxDQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FDbkY7O0FBTEgsQUFNRSxhQU5XLENBTVgsaUJBQWlCLENBQUM7RUFDaEIsVUFBVSxFQUFPLG9CQUFPO0VBQ3hCLE9BQU8sRUFBRSxhQUFhLEdBQ3ZCOztBQVRILEFBVUUsYUFWVyxDQVVYLGlCQUFpQixDQUFDO0VBQ2hCLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLG1DQUFtQyxDQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FDbkY7O0FBYkgsQUFlRSxhQWZXLENBZVgsT0FBTyxDQUFDO0VBQ04sVUFBVSxFQUFFLE1BQU0sR0FnQ25CO0VBaERILEFBa0JJLGFBbEJTLENBZVgsT0FBTyxDQUdMLFVBQVUsQ0FBQztJQUVULFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRWhCdEJILE9BQU87SWdCdUJULFdBQVcsRUFBRSxXQUFXO0lBQ3hCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLE9BQU8sRUFBRSxDQUFDLEdBQ1g7RUF6QkwsQUEyQkksYUEzQlMsQ0FlWCxPQUFPLENBWUwsQ0FBQyxDQUFDO0lBQ0EsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsS0FBSztJQUNsQixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxDQUFDO0lBQ1YsVUFBVSxFQUFFLE1BQU07SUFDbEIsYUFBYSxFQUFFLEdBQUcsR0FDbkI7RUFsQ0wsQUFtQ0ksYUFuQ1MsQ0FlWCxPQUFPLENBb0JMLENBQUMsQ0FBQztJQUNBLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLEtBQUssRWhCdkNPLE9BQU87SWdCd0NuQixTQUFTLEVBQUUsSUFBSTtJQUNmLE9BQU8sRUFBRSxLQUFLO0lBQ2QsT0FBTyxFQUFFLEtBQUssR0FDZjtFQXpDTCxBQTBDSSxhQTFDUyxDQWVYLE9BQU8sQ0EyQkwsSUFBSSxDQUFDO0lBQ0gsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVoQi9DRSxPQUFPO0lnQmdEZCxXQUFXLEVBQUUsR0FBRztJQUNoQixVQUFVLEVBQUUsTUFBTSxHQUNuQjs7QUNqREwsQUFBQSxVQUFVLENBQUM7RUFDVCxRQUFRLEVBQUUsUUFBUTtFQUNsQixtQkFBbUIsRUFBRSxpQkFBaUIsR0F1R3ZDO0VBekdELEFBSUUsVUFKUSxDQUlSLFVBQVUsQ0FBQztJQUNULFdBQVcsRUFBRSxLQUFLO0lBQ2xCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGFBQWEsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQXdCO0lBQ2pELFVBQVUsRWpCUEoscUJBQU8sR2lCcUdkO0lBdkdILEFBV0ksVUFYTSxDQUlSLFVBQVUsQ0FPUixFQUFFLENBQUM7TUFDRCxTQUFTLEVBQUUsSUFBSTtNQUNmLGNBQWMsRUFBRSxTQUFTO01BRXpCLEtBQUssRWpCaEJFLE9BQU87TWlCaUJkLFdBQVcsRUFBRSxlQUFlLEdBQzdCO0lBakJMLEFBbUJJLFVBbkJNLENBSVIsVUFBVSxDQWVSLGVBQWUsQ0FBQztNQUNkLFVBQVUsRUFBRSxJQUFJO01BQ2hCLE1BQU0sRUFBRSxDQUFDO01BQ1QsT0FBTyxFQUFFLENBQUMsR0FDWDtJQXZCTCxBQXlCSSxVQXpCTSxDQUlSLFVBQVUsQ0FxQlIsZUFBZSxDQUFDO01BQ2QsYUFBYSxFQUFFLElBQUksR0EyRXBCO01BckdMLEFBNkJRLFVBN0JFLENBSVIsVUFBVSxDQXFCUixlQUFlLENBR2IsTUFBTSxDQUNKLENBQUMsQ0FBQztRQUNBLE9BQU8sRUFBRSxLQUFLO1FBQ2QsUUFBUSxFQUFFLFFBQVE7UUFDbEIsVUFBVSxFQUFFLGFBQWEsR0FpQjFCO1FBakRULEFBNkJRLFVBN0JFLENBSVIsVUFBVSxDQXFCUixlQUFlLENBR2IsTUFBTSxDQUNKLENBQUMsQUFLQyxNQUFPLENBQUM7VUFDTixPQUFPLEVBQUUsRUFBRTtVQUNYLFFBQVEsRUFBRSxRQUFRO1VBQ2xCLE1BQU0sRUFBRSxHQUFHO1VBQ1gsSUFBSSxFQUFFLEdBQUc7VUFDVCxLQUFLLEVBQUUsR0FBRztVQUNWLE1BQU0sRUFBRSxHQUFHO1VBQ1gsVUFBVSxFQUFFLEtBQUssR0FDbEI7UUExQ1gsQUE2QlEsVUE3QkUsQ0FJUixVQUFVLENBcUJSLGVBQWUsQ0FHYixNQUFNLENBQ0osQ0FBQyxBQWVDLE1BQU8sQ0FBQztVQUNOLFNBQVMsRUFBRSxXQUFXLEdBRXZCO01BL0NYLEFBcURRLFVBckRFLENBSVIsVUFBVSxDQXFCUixlQUFlLENBMkJiLG9CQUFvQixDQUNsQixFQUFFLENBQUM7UUFDRCxTQUFTLEVBQUUsSUFBSTtRQUNmLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ2R1QnRCLGtCQUFvQjtRY3RCcEIsTUFBTSxFQUFFLEtBQUssR0FTZDtRQWpFVCxBQTBEVSxVQTFEQSxDQUlSLFVBQVUsQ0FxQlIsZUFBZSxDQTJCYixvQkFBb0IsQ0FDbEIsRUFBRSxDQUtBLENBQUMsQ0FBQztVQUNBLFVBQVUsRUFBRSxRQUFRLEdBS3JCO1VBaEVYLEFBMERVLFVBMURBLENBSVIsVUFBVSxDQXFCUixlQUFlLENBMkJiLG9CQUFvQixDQUNsQixFQUFFLENBS0EsQ0FBQyxBQUdDLE1BQU8sQ0FBQztZQUNOLEtBQUssRUFBRSxLQUFLLEdBQ2I7TUEvRGIsQUFrRVEsVUFsRUUsQ0FJUixVQUFVLENBcUJSLGVBQWUsQ0EyQmIsb0JBQW9CLENBY2xCLE9BQU8sQ0FBQztRQUNOLFNBQVMsRUFBRSxJQUFJO1FBQ2YsYUFBYSxFQUFFLElBQUksR0FDcEI7TUFyRVQsQUFpRlEsVUFqRkUsQ0FJUixVQUFVLENBcUJSLGVBQWUsQUF1RGIsd0JBQXlCLENBQ3ZCLE1BQU0sQ0FBQztRQUNMLEtBQUssRUFBRSxJQUFJO1FBQ1gsS0FBSyxFQUFFLEdBQUcsR0FDWDtNQXBGVCxBQXFGUSxVQXJGRSxDQUlSLFVBQVUsQ0FxQlIsZUFBZSxBQXVEYix3QkFBeUIsQ0FLdkIsb0JBQW9CLENBQUM7UUFDbkIsS0FBSyxFQUFFLElBQUk7UUFDWCxLQUFLLEVBQUUsR0FBRztRQUNWLFlBQVksRUFBRSxJQUFJLEdBVW5CO1FBbEdULEFBMEZVLFVBMUZBLENBSVIsVUFBVSxDQXFCUixlQUFlLEFBdURiLHdCQUF5QixDQUt2QixvQkFBb0IsQ0FLbEIsRUFBRSxDQUFDO1VBQ0QsU0FBUyxFQUFFLElBQUk7VUFDZixVQUFVLEVBQUUsSUFBSTtVQUNoQixhQUFhLEVBQUUsSUFBSSxHQUNwQjtRQTlGWCxBQStGVSxVQS9GQSxDQUlSLFVBQVUsQ0FxQlIsZUFBZSxBQXVEYix3QkFBeUIsQ0FLdkIsb0JBQW9CLENBVWxCLE9BQU8sQ0FBQztVQUNOLFNBQVMsRUFBRSxJQUFJLEdBQ2hCOztBQ2xHWCxBQUFBLFlBQVksQ0FBQztFQUNYLEtBQUssRWxCVVEsT0FBTztFa0JUcEIsVUFBVSxFQUFFLG9DQUFvQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDbEJNekQsT0FBTztFa0JMbkIsT0FBTyxFQUFFLGFBQWE7RUFDdEIsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBRUQsQUFBQSxXQUFXLENBQUM7RUFDVixVQUFVLEVBQUUsTUFBTTtFQUNsQixhQUFhLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ2xCVGIsT0FBTztFa0JVbEIsY0FBYyxFQUFFLElBQUksR0FDckI7O0FoQnNKQSxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0VnQnBKcEMsQUFDTSxjQURRLEdBQ1IsQ0FBQyxDQUFDO0lBRUYsT0FBTyxFQUFFLEtBQUssR0FFakI7O0FBTEgsQUFPRSxjQVBZLENBT1osa0JBQWtCLENBQUM7RUFDakIsT0FBTyxFQUFFLFlBQVk7RUFDckIsTUFBTSxFQUFFLGVBQWU7RUFDdkIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsTUFBTSxFQUFFLElBQUk7RUFDWixjQUFjLEVBQUUsTUFBTTtFQUN0QixPQUFPLEVBQUUsU0FBUztFQUNsQixXQUFXLEVBQUUsR0FBRztFQUNoQixZQUFZLEVBQUUsR0FBRztFQUNqQixVQUFVLEVBQUUsYUFBYSxHQWdDMUI7RWhCMEZGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLE1BQU07SWdCMUlyQyxBQU9FLGNBUFksQ0FPWixrQkFBa0IsQ0FBQztNQVlmLE1BQU0sRUFBRSxJQUFJO01BQ1osT0FBTyxFQUFFLElBQUksR0E0QmhCO0VoQm9HRixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0lnQnBKcEMsQUFPRSxjQVBZLENBT1osa0JBQWtCLENBQUM7TUFpQmYsV0FBVyxFQUFFLEdBQUc7TUFDaEIsWUFBWSxFQUFFLEdBQUcsR0F1QnBCO0VBaERILEFBT0UsY0FQWSxDQU9aLGtCQUFrQixBQXFCaEIsTUFBTyxDQUFDO0lBQ04sZ0JBQWdCLEVsQjFDVCx1QkFBTyxDa0IwQ3NCLFVBQVU7SUFDOUMsU0FBUyxFQUFFLFVBQVUsR0FDdEI7RUEvQkwsQUFpQ0ksY0FqQ1UsQ0FPWixrQkFBa0IsQ0EwQmhCLEdBQUcsQ0FBQztJQUNGLE9BQU8sRUFBRSxNQUFNO0lBQ2YsVUFBVSxFQUFFLElBQUksR0FLakI7SWhCa0dKLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLE1BQU07TWdCMUlyQyxBQWlDSSxjQWpDVSxDQU9aLGtCQUFrQixDQTBCaEIsR0FBRyxDQUFDO1FBS0EsVUFBVSxFQUFFLElBQUksR0FFbkI7RUF4Q0wsQUFPRSxjQVBZLENBT1osa0JBQWtCLEFBbUNoQix3QkFBeUIsQ0FBQztJQUN4QixVQUFVLEVBQUUsc0NBQXNDLEdBQ25EO0VBNUNMLEFBT0UsY0FQWSxDQU9aLGtCQUFrQixBQXNDaEIsc0JBQXVCLENBQUM7SUFDdEIsVUFBVSxFQUFFLGlDQUE0RCxHQUN6RTs7QUFJTCxBQUFBLGFBQWEsQ0FBQztFQUNaLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUc7RUFFaEIsV0FBVyxFQUFFLEdBQUcsR0FnQ2pCO0VoQm1EQSxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxNQUFNO0lnQnZGckMsQUFBQSxhQUFhLENBQUM7TUFPVixTQUFTLEVBQUUsSUFBSSxHQTZCbEI7RWhCNkRBLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7SWdCakdwQyxBQUFBLGFBQWEsQ0FBQztNQVdWLFVBQVUsRUFBRSxJQUFJO01BQ2hCLFVBQVUsRUFBRSxLQUFLLENBQUMsR0FBRyxDbEJqRVYsd0JBQU8sR2tCeUZyQjtFQXBDRCxBQWVFLGFBZlcsQ0FlWCxDQUFDLENBQUM7SUFDQSxVQUFVLEVBQUUsYUFBYSxHQUsxQjtJQXJCSCxBQWVFLGFBZlcsQ0FlWCxDQUFDLEFBRUMsTUFBTyxDQUFDO01BQ04sS0FBSyxFQUFFLEtBQUssR0FDYjtFQW5CTCxBQXVCRSxhQXZCVyxDQXVCWCxFQUFFLENBQUM7SUFDRCxVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsS0FBSyxHQUNmO0VBM0JILEFBNEJFLGFBNUJXLENBNEJYLEVBQUUsQ0FBQztJQUNELE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxNQUFNLEdBS2hCO0loQjhERixNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO01nQmpHcEMsQUE0QkUsYUE1QlcsQ0E0QlgsRUFBRSxDQUFDO1FBS0MsT0FBTyxFQUFFLEtBQUssR0FFakI7O0FBR0gsQUFBQSxhQUFhLENBQUM7RUFDWixXQUFXLEVBQUUsSUFBSSxHQXdCbEI7RUF6QkQsQUFHRSxhQUhXLENBR1gsRUFBRSxDQUFDO0lBQ0QsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLE1BQU0sR0FNdkI7SUFYSCxBQU9JLGFBUFMsQ0FHWCxFQUFFLENBSUEsR0FBRyxDQUFDO01BQ0YsY0FBYyxFQUFFLE1BQU07TUFDdEIsVUFBVSxFQUFFLElBQUksR0FDakI7RUFWTCxBQVlFLGFBWlcsQ0FZWCxNQUFNLENBQUM7SUFDTCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGNBQWMsRUFBRSxHQUFHLEdBQ3BCO0VBaEJILEFBaUJFLGFBakJXLENBaUJYLENBQUMsQ0FBQztJQUNBLFVBQVUsRUFBRSxhQUFhLEdBTTFCO0lBeEJILEFBaUJFLGFBakJXLENBaUJYLENBQUMsQUFFQyxNQUFPLENBQUM7TUFHTixLQUFLLEVBQUUsS0FBSyxHQUNiOztBQUlMLEFBQUEsYUFBYSxDQUFDO0VBQ1osVUFBVSxFQUFFLEtBQUs7RUFDakIsV0FBVyxFQUFFLElBQUksR0E2QmxCO0VBL0JELEFBS0UsYUFMVyxDQUtYLEdBQUcsQ0FBQztJQUNGLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLGNBQWMsRUFBRSxNQUFNLEdBS3ZCO0lBWkgsQUFLRSxhQUxXLENBS1gsR0FBRyxBQUlELE1BQU8sQ0FBQztNQUNOLFNBQVMsRUFBRSxVQUFVLEdBQ3RCO0VoQldKLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLE1BQU07SWdCdEJyQyxBQUFBLGFBQWEsQ0FBQztNQWVWLFVBQVUsRUFBRSxNQUFNLEdBZ0JyQjtFQS9CRCxBQW9CRSxhQXBCVyxDQW9CWCxDQUFDLENBQUM7SUFDQSxNQUFNLEVBQUUsTUFBTSxHQVNmO0loQk9GLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7TWdCckNwQyxBQW9CRSxhQXBCVyxDQW9CWCxDQUFDLENBQUM7UUFHRSxNQUFNLEVBQUUsS0FBSyxHQU9oQjtRQTlCSCxBQXlCTSxhQXpCTyxDQW9CWCxDQUFDLENBS0csR0FBRyxDQUFDO1VBQ0YsVUFBVSxFQUFFLElBQUk7VUFDaEIsU0FBUyxFQUFFLEtBQUssR0FDakI7O0FBS1AsQUFBQSxpQkFBaUIsQ0FBQztFQUNoQixVQUFVLEVBQUUsS0FBSztFQUNqQixXQUFXLEVBQUUsTUFBTTtFQUNuQixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxJQUFJLEdBb0JsQjtFaEJuQ0EsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsTUFBTTtJZ0JXckMsQUFBQSxpQkFBaUIsQ0FBQztNQU9kLFVBQVUsRUFBRSxNQUFNLEdBaUJyQjtFQXhCRCxBQVVFLGlCQVZlLENBVWYsS0FBSyxDQUFDO0lBQ0osV0FBVyxFQUFFLFVBQVU7SUFDdkIsS0FBSyxFbEJyS0EsT0FBTztJa0JzS1osU0FBUyxFQUFFLElBQUksR0FVaEI7SUF2QkgsQUFlSSxpQkFmYSxDQVVmLEtBQUssQ0FLSCxDQUFDLENBQUM7TUFDQSxLQUFLLEVBQUUsT0FBcUIsR0FNN0I7TUF0QkwsQUFlSSxpQkFmYSxDQVVmLEtBQUssQ0FLSCxDQUFDLEFBSUMsTUFBTyxDQUFDO1FBQ04sS0FBSyxFbEIzS0UsT0FBTyxHa0I0S2YifQ== */
