/*
This .scss loop will create "margin helpers" and "padding helpers" for use in your web projects.
It will generate several classes such as:

.m-r-10 which gives margin-right 10 pixels.
.m-r-15 gives MARGIN to the RIGHT 15 pixels.
.m-t-15 gives MARGIN to the TOP 15 pixels and so on.

.p-b-5 gives PADDING to the BOTTOM of 5 pixels
.p-l-40 gives PADDING to the LEFT of 40 pixels

The first letter is "m" or "p" for MARGIN or PADDING
Second letter is "t", "b", "l", or "r" for TOP, BOTTOM, LEFT, or RIGHT
Third letter is the number of spacing in pixels. Adjust the amounts generated by editing the $spaceamounts variable below.

*/
.m-t-5 {
  margin-top: 5px !important; }

.p-t-5 {
  padding-top: 5px !important; }

.m-b-5 {
  margin-bottom: 5px !important; }

.p-b-5 {
  padding-bottom: 5px !important; }

.m-l-5 {
  margin-left: 5px !important; }

.p-l-5 {
  padding-left: 5px !important; }

.m-r-5 {
  margin-right: 5px !important; }

.p-r-5 {
  padding-right: 5px !important; }

.m-t-10 {
  margin-top: 10px !important; }

.p-t-10 {
  padding-top: 10px !important; }

.m-b-10 {
  margin-bottom: 10px !important; }

.p-b-10 {
  padding-bottom: 10px !important; }

.m-l-10 {
  margin-left: 10px !important; }

.p-l-10 {
  padding-left: 10px !important; }

.m-r-10 {
  margin-right: 10px !important; }

.p-r-10 {
  padding-right: 10px !important; }

.m-t-15 {
  margin-top: 15px !important; }

.p-t-15 {
  padding-top: 15px !important; }

.m-b-15 {
  margin-bottom: 15px !important; }

.p-b-15 {
  padding-bottom: 15px !important; }

.m-l-15 {
  margin-left: 15px !important; }

.p-l-15 {
  padding-left: 15px !important; }

.m-r-15 {
  margin-right: 15px !important; }

.p-r-15 {
  padding-right: 15px !important; }

.m-t-20 {
  margin-top: 20px !important; }

.p-t-20 {
  padding-top: 20px !important; }

.m-b-20 {
  margin-bottom: 20px !important; }

.p-b-20 {
  padding-bottom: 20px !important; }

.m-l-20 {
  margin-left: 20px !important; }

.p-l-20 {
  padding-left: 20px !important; }

.m-r-20 {
  margin-right: 20px !important; }

.p-r-20 {
  padding-right: 20px !important; }

.m-t-25 {
  margin-top: 25px !important; }

.p-t-25 {
  padding-top: 25px !important; }

.m-b-25 {
  margin-bottom: 25px !important; }

.p-b-25 {
  padding-bottom: 25px !important; }

.m-l-25 {
  margin-left: 25px !important; }

.p-l-25 {
  padding-left: 25px !important; }

.m-r-25 {
  margin-right: 25px !important; }

.p-r-25 {
  padding-right: 25px !important; }

.m-t-30 {
  margin-top: 30px !important; }

.p-t-30 {
  padding-top: 30px !important; }

.m-b-30 {
  margin-bottom: 30px !important; }

.p-b-30 {
  padding-bottom: 30px !important; }

.m-l-30 {
  margin-left: 30px !important; }

.p-l-30 {
  padding-left: 30px !important; }

.m-r-30 {
  margin-right: 30px !important; }

.p-r-30 {
  padding-right: 30px !important; }

.m-t-35 {
  margin-top: 35px !important; }

.p-t-35 {
  padding-top: 35px !important; }

.m-b-35 {
  margin-bottom: 35px !important; }

.p-b-35 {
  padding-bottom: 35px !important; }

.m-l-35 {
  margin-left: 35px !important; }

.p-l-35 {
  padding-left: 35px !important; }

.m-r-35 {
  margin-right: 35px !important; }

.p-r-35 {
  padding-right: 35px !important; }

.m-t-40 {
  margin-top: 40px !important; }

.p-t-40 {
  padding-top: 40px !important; }

.m-b-40 {
  margin-bottom: 40px !important; }

.p-b-40 {
  padding-bottom: 40px !important; }

.m-l-40 {
  margin-left: 40px !important; }

.p-l-40 {
  padding-left: 40px !important; }

.m-r-40 {
  margin-right: 40px !important; }

.p-r-40 {
  padding-right: 40px !important; }

.m-t-45 {
  margin-top: 45px !important; }

.p-t-45 {
  padding-top: 45px !important; }

.m-b-45 {
  margin-bottom: 45px !important; }

.p-b-45 {
  padding-bottom: 45px !important; }

.m-l-45 {
  margin-left: 45px !important; }

.p-l-45 {
  padding-left: 45px !important; }

.m-r-45 {
  margin-right: 45px !important; }

.p-r-45 {
  padding-right: 45px !important; }

.m-t-50 {
  margin-top: 50px !important; }

.p-t-50 {
  padding-top: 50px !important; }

.m-b-50 {
  margin-bottom: 50px !important; }

.p-b-50 {
  padding-bottom: 50px !important; }

.m-l-50 {
  margin-left: 50px !important; }

.p-l-50 {
  padding-left: 50px !important; }

.m-r-50 {
  margin-right: 50px !important; }

.p-r-50 {
  padding-right: 50px !important; }

.m-t-75 {
  margin-top: 75px !important; }

.p-t-75 {
  padding-top: 75px !important; }

.m-b-75 {
  margin-bottom: 75px !important; }

.p-b-75 {
  padding-bottom: 75px !important; }

.m-l-75 {
  margin-left: 75px !important; }

.p-l-75 {
  padding-left: 75px !important; }

.m-r-75 {
  margin-right: 75px !important; }

.p-r-75 {
  padding-right: 75px !important; }

.m-t-100 {
  margin-top: 100px !important; }

.p-t-100 {
  padding-top: 100px !important; }

.m-b-100 {
  margin-bottom: 100px !important; }

.p-b-100 {
  padding-bottom: 100px !important; }

.m-l-100 {
  margin-left: 100px !important; }

.p-l-100 {
  padding-left: 100px !important; }

.m-r-100 {
  margin-right: 100px !important; }

.p-r-100 {
  padding-right: 100px !important; }

/*
  RUN GULP to generate the classes. Now you can use these helpers to customize spacing on HTML elements.
*/
@font-face {
  font-family: "Neo-Reg";
  src: url("../../dist/fonts/Allianz_Neo_webfonts/eot/AllianzNeoW01-Regular.eot?") format("eot"), url("../../dist/fonts/Allianz_Neo_webfonts/woff2/AllianzNeoW01-Regular.woff2") format("woff2"), url("../../dist/fonts/Allianz_Neo_webfonts/woff/AllianzNeoW01-Regular.woff") format("woff"), url("../../dist/fonts/Allianz_Neo_webfonts/ttf/AllianzNeoW01-Regular.ttf") format("truetype"), url("../../dist/fonts/Allianz_Neo_webfonts/svg/AllianzNeoW01-Regular.svg#Samplina_Neue") format("svg"); }

@font-face {
  font-family: "Neo-Bold";
  font-weight: bold;
  src: url("../../dist/fonts/Allianz_Neo_webfonts/eot/AllianzNeoW01-Bold.eot?") format("eot"), url("../../dist/fonts/Allianz_Neo_webfonts/woff2/AllianzNeoW01-Bold.woff2") format("woff2"), url("../../dist/fonts/Allianz_Neo_webfonts/woff/AllianzNeoW01-Bold.woff") format("woff"), url("../../dist/fonts/Allianz_Neo_webfonts/ttf/AllianzNeoW01-Bold.ttf") format("truetype"), url("../../dist/fonts/Allianz_Neo_webfonts/svg/AllianzNeoW01-Bold.svg#Samplina_Neue") format("svg"); }

@font-face {
  font-family: "Neo-Light";
  src: url("../../dist/fonts/Allianz_Neo_webfonts/eot/AllianzNeoW01-Light.eot?") format("eot"), url("../../dist/fonts/Allianz_Neo_webfonts/woff2/AllianzNeoW01-Light.woff2") format("woff2"), url("../../dist/fonts/Allianz_Neo_webfonts/woff/AllianzNeoW01-Light.woff") format("woff"), url("../../dist/fonts/Allianz_Neo_webfonts/ttf/AllianzNeoW01-Light.ttf") format("truetype"), url("../../dist/fonts/Allianz_Neo_webfonts/svg/AllianzNeoW01-Light.svg#Samplina_Neue") format("svg"); }

/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

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

/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

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

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

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

/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active,
a:hover {
  outline: 0; }

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

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

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

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

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

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

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

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

/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px; }

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

/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto; }

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible; }

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

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

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

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

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

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

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

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

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

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

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto; }

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

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

td,
th {
  padding: 0; }

body {
  background-color: #E6F4F6 !important; }

.container .overlap {
  position: relative;
  z-index: 99;
  -webkit-transform: translate(65%, -35px);
      -ms-transform: translate(65%, -35px);
          transform: translate(65%, -35px); }
  @media (min-width: 20em) and (max-width: 61.24em) {
    .container .overlap {
      display: none; } }
  @media print {
    .container .overlap {
      display: none; } }

.table-container {
  position: relative;
  background-color: #F5F0E0 !important; }
  .table-container .overlap {
    position: relative;
    z-index: 99;
    -webkit-transform: translate(65%, -35px);
        -ms-transform: translate(65%, -35px);
            transform: translate(65%, -35px); }
    @media (min-width: 20em) and (max-width: 46.24em) {
      .table-container .overlap {
        display: none; } }
  .table-container .dataTables_wrapper {
    -webkit-transform: translateY(-50px);
        -ms-transform: translateY(-50px);
            transform: translateY(-50px); }

.select-wrapper input.select-dropdown {
  font-family: "Neo-Light";
  font-size: 22px !important;
  color: #414141;
  letter-spacing: 0;
  line-height: 22px !important; }

.dropdown-content li {
  min-height: 38px !important; }
  .dropdown-content li > a,
  .dropdown-content li > span {
    font-family: "Neo-Light";
    font-size: 22px !important;
    color: #414141 !important;
    letter-spacing: 0;
    line-height: 22px !important;
    padding: 8px 16px !important; }

#avb-dd {
  display: none; }

.navbar-brand {
  height: 60px !important;
  padding: 15px 15px !important; }

.navbar-header,
.navbar-nav {
  display: inline-block;
  width: auto; }

.btn-result {
  font-family: "Neo-Light";
  font-size: 12px;
  color: #FFFFFF;
  letter-spacing: 1px;
  padding: 10px 30px;
  /* Button: */
  background: #007AB3;
  border-radius: 5px;
  text-transform: uppercase;
  border: 2px solid #007AB3;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
  text-decoration: none;
  cursor: pointer; }
  .btn-result:hover {
    color: #007AB3;
    background: transparent;
    text-decoration: none; }

.navbar-right {
  margin-right: 0px !important;
  float: right; }

.show-after-product {
  opacity: 0;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s; }
  .show-after-product.show {
    opacity: 1; }

#categories-list,
#competitor-list,
#select-all-competitor,
#select-all {
  display: inline-block; }
  #categories-list li,
  #competitor-list li,
  #select-all-competitor li,
  #select-all li {
    display: inline-block;
    float: left;
    clear: left; }
  #categories-list[type="checkbox"]:checked + label:before,
  #categories-list [type="checkbox"]:checked + label:before,
  #competitor-list[type="checkbox"]:checked + label:before,
  #competitor-list [type="checkbox"]:checked + label:before,
  #select-all-competitor[type="checkbox"]:checked + label:before,
  #select-all-competitor [type="checkbox"]:checked + label:before,
  #select-all[type="checkbox"]:checked + label:before,
  #select-all [type="checkbox"]:checked + label:before {
    border-top: 2px solid transparent;
    border-left: 2px solid transparent;
    border-right: 2px solid white;
    border-bottom: 2px solid white; }
  #categories-list[type="checkbox"].filled-in:checked + label:after,
  #categories-list [type="checkbox"].filled-in:checked + label:after,
  #competitor-list[type="checkbox"].filled-in:checked + label:after,
  #competitor-list [type="checkbox"].filled-in:checked + label:after,
  #select-all-competitor[type="checkbox"].filled-in:checked + label:after,
  #select-all-competitor [type="checkbox"].filled-in:checked + label:after,
  #select-all[type="checkbox"].filled-in:checked + label:after,
  #select-all [type="checkbox"].filled-in:checked + label:after {
    top: 0;
    width: 20px;
    height: 20px;
    border: 2px solid #006192;
    background-color: #006192;
    z-index: 0; }
  #categories-list[type="checkbox"] + label,
  #categories-list [type="checkbox"] + label,
  #competitor-list[type="checkbox"] + label,
  #competitor-list [type="checkbox"] + label,
  #select-all-competitor[type="checkbox"] + label,
  #select-all-competitor [type="checkbox"] + label,
  #select-all[type="checkbox"] + label,
  #select-all [type="checkbox"] + label {
    font-size: 1.5rem;
    font-weight: normal;
    font-family: "Neo-Reg"; }

.card .card-content p {
  margin: 0;
  color: inherit;
  padding-bottom: 20px; }

.login-container,
#logout_link,
.info-container {
  display: none; }

.disclaimer {
  color: #acacac;
  font-size: 0.65em; }

.restrict .card-content {
  background-color: rgba(220, 49, 73, 0.2); }
  .restrict .card-content p {
    color: black !important; }

.warning .card-content {
  background-color: rgba(239, 190, 37, 0.2); }
  .warning .card-content p {
    color: black !important; }

.ok .card-content {
  background-color: rgba(30, 137, 39, 0.2); }
  .ok .card-content p {
    color: black !important; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsdWdpbnMvX3NwYWNpbmctaGVscGVycy5zY3NzIiwic2NyZWVuLmNzcyIsImJhc2UvX3ZhcmlhYmxlcy5zY3NzIiwiYmFzZS9fbm9ybWFsaXplLnNjc3MiLCJiYXNlL19nbG9iYWwuc2NzcyIsInBsdWdpbnMvX21xLnNjc3MiLCJsYXlvdXRzL19mb3JtLnNjc3MiLCJsYXlvdXRzL19jb250ZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztDQ2VDO0FET0c7RUFDRSwwQkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSwyQkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw2QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw4QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSwyQkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw0QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw0QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw2QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSwyQkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw0QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw4QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSwrQkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw0QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw2QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw2QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw4QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSwyQkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw0QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw4QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSwrQkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw0QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw2QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw2QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw4QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSwyQkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw0QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw4QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSwrQkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw0QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw2QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw2QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw4QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSwyQkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw0QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw4QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSwrQkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw0QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw2QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw2QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw4QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSwyQkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw0QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw4QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSwrQkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw0QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw2QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw2QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw4QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSwyQkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw0QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw4QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSwrQkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw0QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw2QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw2QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw4QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSwyQkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw0QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw4QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSwrQkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw0QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw2QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSw2QkFBZ0QsRUFBQTs7QUFHbEQ7RUFDRSw4QkFBa0QsRUFBQTs7QUFMcEQ7RUFDRSwyQkFBZ0Qs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Ii8qXG5UaGlzIC5zY3NzIGxvb3Agd2lsbCBjcmVhdGUgXCJtYXJnaW4gaGVscGVyc1wiIGFuZCBcInBhZGRpbmcgaGVscGVyc1wiIGZvciB1c2UgaW4geW91ciB3ZWIgcHJvamVjdHMuXG5JdCB3aWxsIGdlbmVyYXRlIHNldmVyYWwgY2xhc3NlcyBzdWNoIGFzOlxuXG4ubS1yLTEwIHdoaWNoIGdpdmVzIG1hcmdpbi1yaWdodCAxMCBwaXhlbHMuXG4ubS1yLTE1IGdpdmVzIE1BUkdJTiB0byB0aGUgUklHSFQgMTUgcGl4ZWxzLlxuLm0tdC0xNSBnaXZlcyBNQVJHSU4gdG8gdGhlIFRPUCAxNSBwaXhlbHMgYW5kIHNvIG9uLlxuXG4ucC1iLTUgZ2l2ZXMgUEFERElORyB0byB0aGUgQk9UVE9NIG9mIDUgcGl4ZWxzXG4ucC1sLTQwIGdpdmVzIFBBRERJTkcgdG8gdGhlIExFRlQgb2YgNDAgcGl4ZWxzXG5cblRoZSBmaXJzdCBsZXR0ZXIgaXMgXCJtXCIgb3IgXCJwXCIgZm9yIE1BUkdJTiBvciBQQURESU5HXG5TZWNvbmQgbGV0dGVyIGlzIFwidFwiLCBcImJcIiwgXCJsXCIsIG9yIFwiclwiIGZvciBUT1AsIEJPVFRPTSwgTEVGVCwgb3IgUklHSFRcblRoaXJkIGxldHRlciBpcyB0aGUgbnVtYmVyIG9mIHNwYWNpbmcgaW4gcGl4ZWxzLiBBZGp1c3QgdGhlIGFtb3VudHMgZ2VuZXJhdGVkIGJ5IGVkaXRpbmcgdGhlICRzcGFjZWFtb3VudHMgdmFyaWFibGUgYmVsb3cuXG5cbiovXG5cbiRzcGFjZWFtb3VudHM6ICg1LCAxMCwgMTUsIDIwLCAyNSwgMzAsIDM1LCA0MCwgNDUsIDUwLCA3NSwgMTAwKTsgLy8gQWRqdXN0IHRoaXMgdG8gaW5jbHVkZSB0aGUgcGl4ZWwgYW1vdW50cyB5b3UgbmVlZC5cbiRzaWRlczogKHRvcCwgYm90dG9tLCBsZWZ0LCByaWdodCk7IC8vIExlYXZlIHRoaXMgdmFyaWFibGUgYWxvbmVcblxuQGVhY2ggJHNwYWNlIGluICRzcGFjZWFtb3VudHMge1xuICBAZWFjaCAkc2lkZSBpbiAkc2lkZXMge1xuICAgIC5tLSN7c3RyLXNsaWNlKCRzaWRlLCAwLCAxKX0tI3skc3BhY2V9IHtcbiAgICAgIG1hcmdpbi0jeyRzaWRlfTogI3skc3BhY2V9cHggIWltcG9ydGFudDtcbiAgICB9XG4gIFxuICAgIC5wLSN7c3RyLXNsaWNlKCRzaWRlLCAwLCAxKX0tI3skc3BhY2V9IHtcbiAgICAgIHBhZGRpbmctI3skc2lkZX06ICN7JHNwYWNlfXB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLypcbiAgUlVOIEdVTFAgdG8gZ2VuZXJhdGUgdGhlIGNsYXNzZXMuIE5vdyB5b3UgY2FuIHVzZSB0aGVzZSBoZWxwZXJzIHRvIGN1c3RvbWl6ZSBzcGFjaW5nIG9uIEhUTUwgZWxlbWVudHMuXG4qLyIsIi8qXG5UaGlzIC5zY3NzIGxvb3Agd2lsbCBjcmVhdGUgXCJtYXJnaW4gaGVscGVyc1wiIGFuZCBcInBhZGRpbmcgaGVscGVyc1wiIGZvciB1c2UgaW4geW91ciB3ZWIgcHJvamVjdHMuXG5JdCB3aWxsIGdlbmVyYXRlIHNldmVyYWwgY2xhc3NlcyBzdWNoIGFzOlxuXG4ubS1yLTEwIHdoaWNoIGdpdmVzIG1hcmdpbi1yaWdodCAxMCBwaXhlbHMuXG4ubS1yLTE1IGdpdmVzIE1BUkdJTiB0byB0aGUgUklHSFQgMTUgcGl4ZWxzLlxuLm0tdC0xNSBnaXZlcyBNQVJHSU4gdG8gdGhlIFRPUCAxNSBwaXhlbHMgYW5kIHNvIG9uLlxuXG4ucC1iLTUgZ2l2ZXMgUEFERElORyB0byB0aGUgQk9UVE9NIG9mIDUgcGl4ZWxzXG4ucC1sLTQwIGdpdmVzIFBBRERJTkcgdG8gdGhlIExFRlQgb2YgNDAgcGl4ZWxzXG5cblRoZSBmaXJzdCBsZXR0ZXIgaXMgXCJtXCIgb3IgXCJwXCIgZm9yIE1BUkdJTiBvciBQQURESU5HXG5TZWNvbmQgbGV0dGVyIGlzIFwidFwiLCBcImJcIiwgXCJsXCIsIG9yIFwiclwiIGZvciBUT1AsIEJPVFRPTSwgTEVGVCwgb3IgUklHSFRcblRoaXJkIGxldHRlciBpcyB0aGUgbnVtYmVyIG9mIHNwYWNpbmcgaW4gcGl4ZWxzLiBBZGp1c3QgdGhlIGFtb3VudHMgZ2VuZXJhdGVkIGJ5IGVkaXRpbmcgdGhlICRzcGFjZWFtb3VudHMgdmFyaWFibGUgYmVsb3cuXG5cbiovXG4ubS10LTUge1xuICBtYXJnaW4tdG9wOiA1cHggIWltcG9ydGFudDsgfVxuXG4ucC10LTUge1xuICBwYWRkaW5nLXRvcDogNXB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tYi01IHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtYi01IHtcbiAgcGFkZGluZy1ib3R0b206IDVweCAhaW1wb3J0YW50OyB9XG5cbi5tLWwtNSB7XG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDsgfVxuXG4ucC1sLTUge1xuICBwYWRkaW5nLWxlZnQ6IDVweCAhaW1wb3J0YW50OyB9XG5cbi5tLXItNSB7XG4gIG1hcmdpbi1yaWdodDogNXB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtci01IHtcbiAgcGFkZGluZy1yaWdodDogNXB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tdC0xMCB7XG4gIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDsgfVxuXG4ucC10LTEwIHtcbiAgcGFkZGluZy10b3A6IDEwcHggIWltcG9ydGFudDsgfVxuXG4ubS1iLTEwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50OyB9XG5cbi5wLWItMTAge1xuICBwYWRkaW5nLWJvdHRvbTogMTBweCAhaW1wb3J0YW50OyB9XG5cbi5tLWwtMTAge1xuICBtYXJnaW4tbGVmdDogMTBweCAhaW1wb3J0YW50OyB9XG5cbi5wLWwtMTAge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHggIWltcG9ydGFudDsgfVxuXG4ubS1yLTEwIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtci0xMCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHggIWltcG9ydGFudDsgfVxuXG4ubS10LTE1IHtcbiAgbWFyZ2luLXRvcDogMTVweCAhaW1wb3J0YW50OyB9XG5cbi5wLXQtMTUge1xuICBwYWRkaW5nLXRvcDogMTVweCAhaW1wb3J0YW50OyB9XG5cbi5tLWItMTUge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtYi0xNSB7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tbC0xNSB7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtbC0xNSB7XG4gIHBhZGRpbmctbGVmdDogMTVweCAhaW1wb3J0YW50OyB9XG5cbi5tLXItMTUge1xuICBtYXJnaW4tcmlnaHQ6IDE1cHggIWltcG9ydGFudDsgfVxuXG4ucC1yLTE1IHtcbiAgcGFkZGluZy1yaWdodDogMTVweCAhaW1wb3J0YW50OyB9XG5cbi5tLXQtMjAge1xuICBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtdC0yMCB7XG4gIHBhZGRpbmctdG9wOiAyMHB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tYi0yMCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHggIWltcG9ydGFudDsgfVxuXG4ucC1iLTIwIHtcbiAgcGFkZGluZy1ib3R0b206IDIwcHggIWltcG9ydGFudDsgfVxuXG4ubS1sLTIwIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHggIWltcG9ydGFudDsgfVxuXG4ucC1sLTIwIHtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tci0yMCB7XG4gIG1hcmdpbi1yaWdodDogMjBweCAhaW1wb3J0YW50OyB9XG5cbi5wLXItMjAge1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tdC0yNSB7XG4gIG1hcmdpbi10b3A6IDI1cHggIWltcG9ydGFudDsgfVxuXG4ucC10LTI1IHtcbiAgcGFkZGluZy10b3A6IDI1cHggIWltcG9ydGFudDsgfVxuXG4ubS1iLTI1IHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweCAhaW1wb3J0YW50OyB9XG5cbi5wLWItMjUge1xuICBwYWRkaW5nLWJvdHRvbTogMjVweCAhaW1wb3J0YW50OyB9XG5cbi5tLWwtMjUge1xuICBtYXJnaW4tbGVmdDogMjVweCAhaW1wb3J0YW50OyB9XG5cbi5wLWwtMjUge1xuICBwYWRkaW5nLWxlZnQ6IDI1cHggIWltcG9ydGFudDsgfVxuXG4ubS1yLTI1IHtcbiAgbWFyZ2luLXJpZ2h0OiAyNXB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtci0yNSB7XG4gIHBhZGRpbmctcmlnaHQ6IDI1cHggIWltcG9ydGFudDsgfVxuXG4ubS10LTMwIHtcbiAgbWFyZ2luLXRvcDogMzBweCAhaW1wb3J0YW50OyB9XG5cbi5wLXQtMzAge1xuICBwYWRkaW5nLXRvcDogMzBweCAhaW1wb3J0YW50OyB9XG5cbi5tLWItMzAge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtYi0zMCB7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tbC0zMCB7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtbC0zMCB7XG4gIHBhZGRpbmctbGVmdDogMzBweCAhaW1wb3J0YW50OyB9XG5cbi5tLXItMzAge1xuICBtYXJnaW4tcmlnaHQ6IDMwcHggIWltcG9ydGFudDsgfVxuXG4ucC1yLTMwIHtcbiAgcGFkZGluZy1yaWdodDogMzBweCAhaW1wb3J0YW50OyB9XG5cbi5tLXQtMzUge1xuICBtYXJnaW4tdG9wOiAzNXB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtdC0zNSB7XG4gIHBhZGRpbmctdG9wOiAzNXB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tYi0zNSB7XG4gIG1hcmdpbi1ib3R0b206IDM1cHggIWltcG9ydGFudDsgfVxuXG4ucC1iLTM1IHtcbiAgcGFkZGluZy1ib3R0b206IDM1cHggIWltcG9ydGFudDsgfVxuXG4ubS1sLTM1IHtcbiAgbWFyZ2luLWxlZnQ6IDM1cHggIWltcG9ydGFudDsgfVxuXG4ucC1sLTM1IHtcbiAgcGFkZGluZy1sZWZ0OiAzNXB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tci0zNSB7XG4gIG1hcmdpbi1yaWdodDogMzVweCAhaW1wb3J0YW50OyB9XG5cbi5wLXItMzUge1xuICBwYWRkaW5nLXJpZ2h0OiAzNXB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tdC00MCB7XG4gIG1hcmdpbi10b3A6IDQwcHggIWltcG9ydGFudDsgfVxuXG4ucC10LTQwIHtcbiAgcGFkZGluZy10b3A6IDQwcHggIWltcG9ydGFudDsgfVxuXG4ubS1iLTQwIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OyB9XG5cbi5wLWItNDAge1xuICBwYWRkaW5nLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OyB9XG5cbi5tLWwtNDAge1xuICBtYXJnaW4tbGVmdDogNDBweCAhaW1wb3J0YW50OyB9XG5cbi5wLWwtNDAge1xuICBwYWRkaW5nLWxlZnQ6IDQwcHggIWltcG9ydGFudDsgfVxuXG4ubS1yLTQwIHtcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtci00MCB7XG4gIHBhZGRpbmctcmlnaHQ6IDQwcHggIWltcG9ydGFudDsgfVxuXG4ubS10LTQ1IHtcbiAgbWFyZ2luLXRvcDogNDVweCAhaW1wb3J0YW50OyB9XG5cbi5wLXQtNDUge1xuICBwYWRkaW5nLXRvcDogNDVweCAhaW1wb3J0YW50OyB9XG5cbi5tLWItNDUge1xuICBtYXJnaW4tYm90dG9tOiA0NXB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtYi00NSB7XG4gIHBhZGRpbmctYm90dG9tOiA0NXB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tbC00NSB7XG4gIG1hcmdpbi1sZWZ0OiA0NXB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtbC00NSB7XG4gIHBhZGRpbmctbGVmdDogNDVweCAhaW1wb3J0YW50OyB9XG5cbi5tLXItNDUge1xuICBtYXJnaW4tcmlnaHQ6IDQ1cHggIWltcG9ydGFudDsgfVxuXG4ucC1yLTQ1IHtcbiAgcGFkZGluZy1yaWdodDogNDVweCAhaW1wb3J0YW50OyB9XG5cbi5tLXQtNTAge1xuICBtYXJnaW4tdG9wOiA1MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtdC01MCB7XG4gIHBhZGRpbmctdG9wOiA1MHB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tYi01MCB7XG4gIG1hcmdpbi1ib3R0b206IDUwcHggIWltcG9ydGFudDsgfVxuXG4ucC1iLTUwIHtcbiAgcGFkZGluZy1ib3R0b206IDUwcHggIWltcG9ydGFudDsgfVxuXG4ubS1sLTUwIHtcbiAgbWFyZ2luLWxlZnQ6IDUwcHggIWltcG9ydGFudDsgfVxuXG4ucC1sLTUwIHtcbiAgcGFkZGluZy1sZWZ0OiA1MHB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tci01MCB7XG4gIG1hcmdpbi1yaWdodDogNTBweCAhaW1wb3J0YW50OyB9XG5cbi5wLXItNTAge1xuICBwYWRkaW5nLXJpZ2h0OiA1MHB4ICFpbXBvcnRhbnQ7IH1cblxuLm0tdC03NSB7XG4gIG1hcmdpbi10b3A6IDc1cHggIWltcG9ydGFudDsgfVxuXG4ucC10LTc1IHtcbiAgcGFkZGluZy10b3A6IDc1cHggIWltcG9ydGFudDsgfVxuXG4ubS1iLTc1IHtcbiAgbWFyZ2luLWJvdHRvbTogNzVweCAhaW1wb3J0YW50OyB9XG5cbi5wLWItNzUge1xuICBwYWRkaW5nLWJvdHRvbTogNzVweCAhaW1wb3J0YW50OyB9XG5cbi5tLWwtNzUge1xuICBtYXJnaW4tbGVmdDogNzVweCAhaW1wb3J0YW50OyB9XG5cbi5wLWwtNzUge1xuICBwYWRkaW5nLWxlZnQ6IDc1cHggIWltcG9ydGFudDsgfVxuXG4ubS1yLTc1IHtcbiAgbWFyZ2luLXJpZ2h0OiA3NXB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtci03NSB7XG4gIHBhZGRpbmctcmlnaHQ6IDc1cHggIWltcG9ydGFudDsgfVxuXG4ubS10LTEwMCB7XG4gIG1hcmdpbi10b3A6IDEwMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtdC0xMDAge1xuICBwYWRkaW5nLXRvcDogMTAwcHggIWltcG9ydGFudDsgfVxuXG4ubS1iLTEwMCB7XG4gIG1hcmdpbi1ib3R0b206IDEwMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnAtYi0xMDAge1xuICBwYWRkaW5nLWJvdHRvbTogMTAwcHggIWltcG9ydGFudDsgfVxuXG4ubS1sLTEwMCB7XG4gIG1hcmdpbi1sZWZ0OiAxMDBweCAhaW1wb3J0YW50OyB9XG5cbi5wLWwtMTAwIHtcbiAgcGFkZGluZy1sZWZ0OiAxMDBweCAhaW1wb3J0YW50OyB9XG5cbi5tLXItMTAwIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMDBweCAhaW1wb3J0YW50OyB9XG5cbi5wLXItMTAwIHtcbiAgcGFkZGluZy1yaWdodDogMTAwcHggIWltcG9ydGFudDsgfVxuXG4vKlxuICBSVU4gR1VMUCB0byBnZW5lcmF0ZSB0aGUgY2xhc3Nlcy4gTm93IHlvdSBjYW4gdXNlIHRoZXNlIGhlbHBlcnMgdG8gY3VzdG9taXplIHNwYWNpbmcgb24gSFRNTCBlbGVtZW50cy5cbiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiTmVvLVJlZ1wiO1xuICBzcmM6IHVybChcIi4uLy4uL2Rpc3QvZm9udHMvQWxsaWFuel9OZW9fd2ViZm9udHMvZW90L0FsbGlhbnpOZW9XMDEtUmVndWxhci5lb3Q/XCIpIGZvcm1hdChcImVvdFwiKSwgdXJsKFwiLi4vLi4vZGlzdC9mb250cy9BbGxpYW56X05lb193ZWJmb250cy93b2ZmMi9BbGxpYW56TmVvVzAxLVJlZ3VsYXIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uL2Rpc3QvZm9udHMvQWxsaWFuel9OZW9fd2ViZm9udHMvd29mZi9BbGxpYW56TmVvVzAxLVJlZ3VsYXIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi8uLi9kaXN0L2ZvbnRzL0FsbGlhbnpfTmVvX3dlYmZvbnRzL3R0Zi9BbGxpYW56TmVvVzAxLVJlZ3VsYXIudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi8uLi9kaXN0L2ZvbnRzL0FsbGlhbnpfTmVvX3dlYmZvbnRzL3N2Zy9BbGxpYW56TmVvVzAxLVJlZ3VsYXIuc3ZnI1NhbXBsaW5hX05ldWVcIikgZm9ybWF0KFwic3ZnXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJOZW8tQm9sZFwiO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgc3JjOiB1cmwoXCIuLi8uLi9kaXN0L2ZvbnRzL0FsbGlhbnpfTmVvX3dlYmZvbnRzL2VvdC9BbGxpYW56TmVvVzAxLUJvbGQuZW90P1wiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcIi4uLy4uL2Rpc3QvZm9udHMvQWxsaWFuel9OZW9fd2ViZm9udHMvd29mZjIvQWxsaWFuek5lb1cwMS1Cb2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi8uLi9kaXN0L2ZvbnRzL0FsbGlhbnpfTmVvX3dlYmZvbnRzL3dvZmYvQWxsaWFuek5lb1cwMS1Cb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vLi4vZGlzdC9mb250cy9BbGxpYW56X05lb193ZWJmb250cy90dGYvQWxsaWFuek5lb1cwMS1Cb2xkLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vLi4vZGlzdC9mb250cy9BbGxpYW56X05lb193ZWJmb250cy9zdmcvQWxsaWFuek5lb1cwMS1Cb2xkLnN2ZyNTYW1wbGluYV9OZXVlXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiTmVvLUxpZ2h0XCI7XG4gIHNyYzogdXJsKFwiLi4vLi4vZGlzdC9mb250cy9BbGxpYW56X05lb193ZWJmb250cy9lb3QvQWxsaWFuek5lb1cwMS1MaWdodC5lb3Q/XCIpIGZvcm1hdChcImVvdFwiKSwgdXJsKFwiLi4vLi4vZGlzdC9mb250cy9BbGxpYW56X05lb193ZWJmb250cy93b2ZmMi9BbGxpYW56TmVvVzAxLUxpZ2h0LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi8uLi9kaXN0L2ZvbnRzL0FsbGlhbnpfTmVvX3dlYmZvbnRzL3dvZmYvQWxsaWFuek5lb1cwMS1MaWdodC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uLy4uL2Rpc3QvZm9udHMvQWxsaWFuel9OZW9fd2ViZm9udHMvdHRmL0FsbGlhbnpOZW9XMDEtTGlnaHQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi8uLi9kaXN0L2ZvbnRzL0FsbGlhbnpfTmVvX3dlYmZvbnRzL3N2Zy9BbGxpYW56TmVvVzAxLUxpZ2h0LnN2ZyNTYW1wbGluYV9OZXVlXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG4vKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4gKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4gKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7IH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkOyB9XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyOiAwOyB9XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07IH1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovIH1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovIH1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFNkY0RjYgIWltcG9ydGFudDsgfVxuXG4uY29udGFpbmVyIC5vdmVybGFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5OTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNjUlLCAtMzVweCk7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIGFuZCAobWF4LXdpZHRoOiA2MS4yNGVtKSB7XG4gICAgLmNvbnRhaW5lciAub3ZlcmxhcCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgQG1lZGlhIHByaW50IHtcbiAgICAuY29udGFpbmVyIC5vdmVybGFwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4udGFibGUtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjVGMEUwICFpbXBvcnRhbnQ7IH1cbiAgLnRhYmxlLWNvbnRhaW5lciAub3ZlcmxhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDk5O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDY1JSwgLTM1cHgpOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDIwZW0pIGFuZCAobWF4LXdpZHRoOiA0Ni4yNGVtKSB7XG4gICAgICAudGFibGUtY29udGFpbmVyIC5vdmVybGFwIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC50YWJsZS1jb250YWluZXIgLmRhdGFUYWJsZXNfd3JhcHBlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MHB4KTsgfVxuXG4uc2VsZWN0LXdyYXBwZXIgaW5wdXQuc2VsZWN0LWRyb3Bkb3duIHtcbiAgZm9udC1mYW1pbHk6IFwiTmVvLUxpZ2h0XCI7XG4gIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzQxNDE0MTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4ICFpbXBvcnRhbnQ7IH1cblxuLmRyb3Bkb3duLWNvbnRlbnQgbGkge1xuICBtaW4taGVpZ2h0OiAzOHB4ICFpbXBvcnRhbnQ7IH1cbiAgLmRyb3Bkb3duLWNvbnRlbnQgbGkgPiBhLFxuICAuZHJvcGRvd24tY29udGVudCBsaSA+IHNwYW4ge1xuICAgIGZvbnQtZmFtaWx5OiBcIk5lby1MaWdodFwiO1xuICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjNDE0MTQxICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDIycHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiA4cHggMTZweCAhaW1wb3J0YW50OyB9XG5cbiNhdmItZGQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5uYXZiYXItYnJhbmQge1xuICBoZWlnaHQ6IDYwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMTVweCAxNXB4ICFpbXBvcnRhbnQ7IH1cblxuLm5hdmJhci1oZWFkZXIsXG4ubmF2YmFyLW5hdiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87IH1cblxuLmJ0bi1yZXN1bHQge1xuICBmb250LWZhbWlseTogXCJOZW8tTGlnaHRcIjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgcGFkZGluZzogMTBweCAzMHB4O1xuICAvKiBCdXR0b246ICovXG4gIGJhY2tncm91bmQ6ICMwMDdBQjM7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgYm9yZGVyOiAycHggc29saWQgIzAwN0FCMztcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmJ0bi1yZXN1bHQ6aG92ZXIge1xuICAgIGNvbG9yOiAjMDA3QUIzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4ubmF2YmFyLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5zaG93LWFmdGVyLXByb2R1Y3Qge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzOyB9XG4gIC5zaG93LWFmdGVyLXByb2R1Y3Quc2hvdyB7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4jY2F0ZWdvcmllcy1saXN0LFxuI2NvbXBldGl0b3ItbGlzdCxcbiNzZWxlY3QtYWxsLWNvbXBldGl0b3IsXG4jc2VsZWN0LWFsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAjY2F0ZWdvcmllcy1saXN0IGxpLFxuICAjY29tcGV0aXRvci1saXN0IGxpLFxuICAjc2VsZWN0LWFsbC1jb21wZXRpdG9yIGxpLFxuICAjc2VsZWN0LWFsbCBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBsZWZ0OyB9XG4gICNjYXRlZ29yaWVzLWxpc3RbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUsXG4gICNjYXRlZ29yaWVzLWxpc3QgW3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgbGFiZWw6YmVmb3JlLFxuICAjY29tcGV0aXRvci1saXN0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgbGFiZWw6YmVmb3JlLFxuICAjY29tcGV0aXRvci1saXN0IFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSxcbiAgI3NlbGVjdC1hbGwtY29tcGV0aXRvclt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSxcbiAgI3NlbGVjdC1hbGwtY29tcGV0aXRvciBbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUsXG4gICNzZWxlY3QtYWxsW3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgbGFiZWw6YmVmb3JlLFxuICAjc2VsZWN0LWFsbCBbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHdoaXRlO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB3aGl0ZTsgfVxuICAjY2F0ZWdvcmllcy1saXN0W3R5cGU9XCJjaGVja2JveFwiXS5maWxsZWQtaW46Y2hlY2tlZCArIGxhYmVsOmFmdGVyLFxuICAjY2F0ZWdvcmllcy1saXN0IFt0eXBlPVwiY2hlY2tib3hcIl0uZmlsbGVkLWluOmNoZWNrZWQgKyBsYWJlbDphZnRlcixcbiAgI2NvbXBldGl0b3ItbGlzdFt0eXBlPVwiY2hlY2tib3hcIl0uZmlsbGVkLWluOmNoZWNrZWQgKyBsYWJlbDphZnRlcixcbiAgI2NvbXBldGl0b3ItbGlzdCBbdHlwZT1cImNoZWNrYm94XCJdLmZpbGxlZC1pbjpjaGVja2VkICsgbGFiZWw6YWZ0ZXIsXG4gICNzZWxlY3QtYWxsLWNvbXBldGl0b3JbdHlwZT1cImNoZWNrYm94XCJdLmZpbGxlZC1pbjpjaGVja2VkICsgbGFiZWw6YWZ0ZXIsXG4gICNzZWxlY3QtYWxsLWNvbXBldGl0b3IgW3R5cGU9XCJjaGVja2JveFwiXS5maWxsZWQtaW46Y2hlY2tlZCArIGxhYmVsOmFmdGVyLFxuICAjc2VsZWN0LWFsbFt0eXBlPVwiY2hlY2tib3hcIl0uZmlsbGVkLWluOmNoZWNrZWQgKyBsYWJlbDphZnRlcixcbiAgI3NlbGVjdC1hbGwgW3R5cGU9XCJjaGVja2JveFwiXS5maWxsZWQtaW46Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMDYxOTI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNjE5MjtcbiAgICB6LWluZGV4OiAwOyB9XG4gICNjYXRlZ29yaWVzLWxpc3RbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWwsXG4gICNjYXRlZ29yaWVzLWxpc3QgW3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsLFxuICAjY29tcGV0aXRvci1saXN0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsLFxuICAjY29tcGV0aXRvci1saXN0IFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCxcbiAgI3NlbGVjdC1hbGwtY29tcGV0aXRvclt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCxcbiAgI3NlbGVjdC1hbGwtY29tcGV0aXRvciBbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWwsXG4gICNzZWxlY3QtYWxsW3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsLFxuICAjc2VsZWN0LWFsbCBbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1mYW1pbHk6IFwiTmVvLVJlZ1wiOyB9XG5cbi5jYXJkIC5jYXJkLWNvbnRlbnQgcCB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4OyB9XG5cbi5sb2dpbi1jb250YWluZXIsXG4jbG9nb3V0X2xpbmssXG4uaW5mby1jb250YWluZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5kaXNjbGFpbWVyIHtcbiAgY29sb3I6ICNhY2FjYWM7XG4gIGZvbnQtc2l6ZTogMC42NWVtOyB9XG5cbi5yZXN0cmljdCAuY2FyZC1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjAsIDQ5LCA3MywgMC4yKTsgfVxuICAucmVzdHJpY3QgLmNhcmQtY29udGVudCBwIHtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgfVxuXG4ud2FybmluZyAuY2FyZC1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzksIDE5MCwgMzcsIDAuMik7IH1cbiAgLndhcm5pbmcgLmNhcmQtY29udGVudCBwIHtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgfVxuXG4ub2sgLmNhcmQtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzAsIDEzNywgMzksIDAuMik7IH1cbiAgLm9rIC5jYXJkLWNvbnRlbnQgcCB7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IH1cbiIsIi8vIFZhcmlhYmxlcyBnbyBoZXJlXG4kYm9keS1jb2xvcjojRjVGMEUwO1xuJGxpZ2h0LWdyZXk6I0Q5RDlEOTtcbiRicmFuZC1ibHVlOiMwMDYxOTI7XG4kYnJhbmQtcmVkOiNEMDAyMUI7XG4kYnJhbmQtZ3JlZW46IzFFODkyNDtcbiRsaWdodC1ibHVlOiNFNkY0RjY7XG4kbGlnaHQtZ3JleTI6I0Y2RjVGNTtcblxuJHF1aXotZm9udC1Cb2xkIDonTmVvLUJvbGQnO1xuJHF1aXotZm9udC1SZWcgOidOZW8tUmVnJztcbiRxdWl6LWZvbnQtTGlnaHQgOidOZW8tTGlnaHQnO1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiTmVvLVJlZ1wiO1xuICAvL2ZvbnQtc3R5bGU6IGl0YWxpYztcbiAgLy9mb250LXdlaWdodDogYm9sZDtcbiAgc3JjOiB1cmwoXCIuLi8uLi9kaXN0L2ZvbnRzL0FsbGlhbnpfTmVvX3dlYmZvbnRzL2VvdC9BbGxpYW56TmVvVzAxLVJlZ3VsYXIuZW90P1wiKSBmb3JtYXQoXCJlb3RcIiksXG4gIHVybChcIi4uLy4uL2Rpc3QvZm9udHMvQWxsaWFuel9OZW9fd2ViZm9udHMvd29mZjIvQWxsaWFuek5lb1cwMS1SZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICB1cmwoXCIuLi8uLi9kaXN0L2ZvbnRzL0FsbGlhbnpfTmVvX3dlYmZvbnRzL3dvZmYvQWxsaWFuek5lb1cwMS1SZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgdXJsKFwiLi4vLi4vZGlzdC9mb250cy9BbGxpYW56X05lb193ZWJmb250cy90dGYvQWxsaWFuek5lb1cwMS1SZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgdXJsKFwiLi4vLi4vZGlzdC9mb250cy9BbGxpYW56X05lb193ZWJmb250cy9zdmcvQWxsaWFuek5lb1cwMS1SZWd1bGFyLnN2ZyNTYW1wbGluYV9OZXVlXCIpIGZvcm1hdChcInN2Z1wiKTtcbn1cblxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiTmVvLUJvbGRcIjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHNyYzogdXJsKFwiLi4vLi4vZGlzdC9mb250cy9BbGxpYW56X05lb193ZWJmb250cy9lb3QvQWxsaWFuek5lb1cwMS1Cb2xkLmVvdD9cIikgZm9ybWF0KFwiZW90XCIpLFxuICB1cmwoXCIuLi8uLi9kaXN0L2ZvbnRzL0FsbGlhbnpfTmVvX3dlYmZvbnRzL3dvZmYyL0FsbGlhbnpOZW9XMDEtQm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgdXJsKFwiLi4vLi4vZGlzdC9mb250cy9BbGxpYW56X05lb193ZWJmb250cy93b2ZmL0FsbGlhbnpOZW9XMDEtQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksXG4gIHVybChcIi4uLy4uL2Rpc3QvZm9udHMvQWxsaWFuel9OZW9fd2ViZm9udHMvdHRmL0FsbGlhbnpOZW9XMDEtQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gIHVybChcIi4uLy4uL2Rpc3QvZm9udHMvQWxsaWFuel9OZW9fd2ViZm9udHMvc3ZnL0FsbGlhbnpOZW9XMDEtQm9sZC5zdmcjU2FtcGxpbmFfTmV1ZVwiKSBmb3JtYXQoXCJzdmdcIik7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJOZW8tTGlnaHRcIjtcbiAgLy9mb250LXdlaWdodDogYm9sZDtcbiAgc3JjOiB1cmwoXCIuLi8uLi9kaXN0L2ZvbnRzL0FsbGlhbnpfTmVvX3dlYmZvbnRzL2VvdC9BbGxpYW56TmVvVzAxLUxpZ2h0LmVvdD9cIikgZm9ybWF0KFwiZW90XCIpLFxuICB1cmwoXCIuLi8uLi9kaXN0L2ZvbnRzL0FsbGlhbnpfTmVvX3dlYmZvbnRzL3dvZmYyL0FsbGlhbnpOZW9XMDEtTGlnaHQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gIHVybChcIi4uLy4uL2Rpc3QvZm9udHMvQWxsaWFuel9OZW9fd2ViZm9udHMvd29mZi9BbGxpYW56TmVvVzAxLUxpZ2h0LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgdXJsKFwiLi4vLi4vZGlzdC9mb250cy9BbGxpYW56X05lb193ZWJmb250cy90dGYvQWxsaWFuek5lb1cwMS1MaWdodC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gIHVybChcIi4uLy4uL2Rpc3QvZm9udHMvQWxsaWFuel9OZW9fd2ViZm9udHMvc3ZnL0FsbGlhbnpOZW9XMDEtTGlnaHQuc3ZnI1NhbXBsaW5hX05ldWVcIikgZm9ybWF0KFwic3ZnXCIpO1xufSIsIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbiAqIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvLyBHbG9iYWwgQ1NTIGdvZXMgaGVyZVxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3IgOiAkbGlnaHQtYmx1ZSAhaW1wb3J0YW50O1xuICAvL0BtZWRpYSBwcmludCB7XG5cdC8vYmFja2dyb3VuZC1jb2xvciA6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIC8vXG4gIC8vfVxufVxuXG4uY29udGFpbmVyIHtcbiAgLm92ZXJsYXAge1xuXHRwb3NpdGlvbiAgOiByZWxhdGl2ZTtcblx0ei1pbmRleCAgIDogOTk7XG5cdHRyYW5zZm9ybSA6IHRyYW5zbGF0ZSg2NSUsIC0zNXB4KTtcblx0Ly90cmFuc2Zvcm0gOiB0cmFuc2xhdGVYKDY1JSk7XG5cdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUsICR1bnRpbDogZGVza3RvcCkge1xuXHQgIGRpc3BsYXkgOiBub25lO1xuXHR9XG5cdEBtZWRpYSBwcmludCB7XG5cdCAgZGlzcGxheSA6IG5vbmU7XG5cdH1cbiAgfVxufVxuLnRhYmxlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uICAgICAgICAgOiByZWxhdGl2ZTtcbiAgLy9AbWVkaWEgcHJpbnQge1xuXHQvL2JhY2tncm91bmQtY29sb3IgOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAvL1xuICAvL31cbiAgLm92ZXJsYXAge1xuXHRwb3NpdGlvbiAgOiByZWxhdGl2ZTtcblx0ei1pbmRleCAgIDogOTk7XG5cdHRyYW5zZm9ybSA6IHRyYW5zbGF0ZSg2NSUsIC0zNXB4KTtcblx0Ly90cmFuc2Zvcm0gOiB0cmFuc2xhdGVYKDY1JSk7XG5cdEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUsICR1bnRpbDogdGFibGV0KSB7XG5cdCAgZGlzcGxheSA6IG5vbmU7XG5cdH1cblx0Ly9AbWVkaWEgcHJpbnQge1xuXHQvLyAgZGlzcGxheSA6IG5vbmU7XG5cdC8vfVxuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvciA6ICRib2R5LWNvbG9yICFpbXBvcnRhbnQ7XG4gIC5kYXRhVGFibGVzX3dyYXBwZXIge1xuXHR0cmFuc2Zvcm0gOiB0cmFuc2xhdGVZKC01MHB4KTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiOyAvLyBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBSdWJ5IGxvY2FsZSBpcyBub3Qgc2V0IHByb3Blcmx5XG4gICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9wdWxsLzEwXG5cbi8vLyBCYXNlIGZvbnQgc2l6ZSBvbiB0aGUgYDxib2R5PmAgZWxlbWVudFxuLy8vIEB0eXBlIE51bWJlciAodW5pdClcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8vIFJlc3BvbnNpdmUgbW9kZVxuLy8vXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXG4vLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSlcbi8vL1xuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2Vycyxcbi8vLyB3aGVyZSBAbWVkaWEgcXVlcmllcyBhcmUgcmFzdGVyaXplZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBvbGQtaWUuc2Nzc1xuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vZmYgRGlzYWJsZWQgcmVzcG9uc2l2ZSBtb2RlIGRvY3VtZW50YXRpb25cbiRtcS1yZXNwb25zaXZlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBsaXN0XG4vLy9cbi8vLyBOYW1lIHlvdXIgYnJlYWtwb2ludHMgaW4gYSB3YXkgdGhhdCBjcmVhdGVzIGEgdWJpcXVpdG91cyBsYW5ndWFnZVxuLy8vIGFjcm9zcyB0ZWFtIG1lbWJlcnMuIEl0IHdpbGwgaW1wcm92ZSBjb21tdW5pY2F0aW9uIGJldHdlZW5cbi8vLyBzdGFrZWhvbGRlcnMsIGRlc2lnbmVycywgZGV2ZWxvcGVycywgYW5kIHRlc3RlcnMuXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1icmVha3BvaW50czogKFxuICAgIG1vYmlsZTogIDMyMHB4LFxuICAgIHRhYmxldDogIDc0MHB4LFxuICAgIGRlc2t0b3A6IDk4MHB4LFxuICAgIHdpZGU6ICAgIDEzMDBweFxuKSAhZGVmYXVsdDtcblxuLy8vIFN0YXRpYyBicmVha3BvaW50IChmb3IgZml4ZWQtd2lkdGggbGF5b3V0cylcbi8vL1xuLy8vIERlZmluZSB0aGUgYnJlYWtwb2ludCBmcm9tICRtcS1icmVha3BvaW50cyB0aGF0IHNob3VsZFxuLy8vIGJlIHVzZWQgYXMgdGhlIHRhcmdldCB3aWR0aCBmb3IgdGhlIGZpeGVkLXdpZHRoIGxheW91dFxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3Ncbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xuLy8vICAvL1xuLy8vICAvLyBJZ25vcmUgYWxsIHN0eWxlcyBhYm92ZSB0YWJsZXQgYnJlYWtwb2ludCxcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChlLmcuIGxheW91dCkgYXQgdGFibGV0IHdpZHRoXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcbi8vLyAgJG1xLXN0YXRpYy1icmVha3BvaW50OiB0YWJsZXQ7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvIHRhYmxldFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjYWRkaW5nLWN1c3RvbS1icmVha3BvaW50cyBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtc3RhdGljLWJyZWFrcG9pbnQ6IGRlc2t0b3AgIWRlZmF1bHQ7XG5cbi8vLyBTaG93IGJyZWFrcG9pbnRzIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy9cbi8vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxuLy8vIHJpZ2h0IGNvcm5lciBvZiB5b3VyIHNpdGUgZHVyaW5nIGRldmVsb3BtZW50LCBhZGQgdGhlIGJyZWFrcG9pbnRzXG4vLy8gdG8gdGhpcyBsaXN0LCBvcmRlcmVkIGJ5IHdpZHRoLCBlLmcuIChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXG4vLy9cbi8vLyBAdHlwZSBtYXBcbiRtcS1zaG93LWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcblxuLy8vIEN1c3RvbWl6ZSB0aGUgbWVkaWEgdHlwZSAoZS5nLiBgQG1lZGlhIHNjcmVlbmAgb3IgYEBtZWRpYSBwcmludGApXG4vLy8gQnkgZGVmYXVsdCBzYXNzLW1xIHVzZXMgYW4gXCJhbGxcIiBtZWRpYSB0eXBlIChgQG1lZGlhIGFsbCBhbmQg4oCmYClcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjY2hhbmdpbmctbWVkaWEtdHlwZSBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtbWVkaWEtdHlwZTogYWxsICFkZWZhdWx0O1xuXG4vLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHB4IC0gdmFsdWUgdG8gY29udmVydFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZS1mb250LXNpemUgKCRtcS1iYXNlLWZvbnQtc2l6ZSkgLSBgPGJvZHk+YCBmb250IHNpemVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJGZvbnQtc2l6ZS1pbi1lbXM6IG1xLXB4MmVtKDE2cHgpO1xuLy8vICBwIHsgZm9udC1zaXplOiBtcS1weDJlbSgxNnB4KTsgfVxuLy8vXG4vLy8gQHJlcXVpcmVzICRtcS1iYXNlLWZvbnQtc2l6ZVxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XG5AZnVuY3Rpb24gbXEtcHgyZW0oJHB4LCAkYmFzZS1mb250LXNpemU6ICRtcS1iYXNlLWZvbnQtc2l6ZSkge1xuICAgIEBpZiB1bml0bGVzcygkcHgpIHtcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XG4gICAgICAgIEByZXR1cm4gbXEtcHgyZW0oJHB4ICogMXB4LCAkYmFzZS1mb250LXNpemUpO1xuICAgIH0gQGVsc2UgaWYgdW5pdCgkcHgpID09IGVtIHtcbiAgICAgICAgQHJldHVybiAkcHg7XG4gICAgfVxuICAgIEByZXR1cm4gKCRweCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07XG59XG5cbi8vLyBHZXQgYSBicmVha3BvaW50J3Mgd2lkdGhcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKGRlc2t0b3ApKSB7fVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEB3YXJuIFwiQnJlYWtwb2ludCAjeyRuYW1lfSB3YXNuJ3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzLlwiO1xuICAgIH1cbn1cblxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRmcm9tIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgKGZhbHNlKSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVkaWEtdHlwZSAoJG1xLW1lZGlhLXR5cGUpIC0gTWVkaWEgdHlwZTogc2NyZWVuLCBwcmludOKAplxuLy8vXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XG4vLy8gQGlnbm9yZSBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXG4vLy9cbi8vLyBAY29udGVudCBzdHlsaW5nIHJ1bGVzLCB3cmFwcGVkIGludG8gYSBAbWVkaWEgcXVlcnkgd2hlbiAkcmVzcG9uc2l2ZSBpcyB0cnVlXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGhcbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuLy8vICAgICAgY29sb3I6IHJlZDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcShtb2JpbGUsIHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGdyZWVuO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0LCAkYW5kOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJykge1xuLy8vICAgICAgY29sb3I6IHRlYWw7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKDk1MHB4KSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEodGFibGV0LCAkbWVkaWEtdHlwZTogc2NyZWVuKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgLy8gQWR2YW5jZWQgdXNlOlxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcbi8vLyAgICBAaW5jbHVkZSBtcShMLCAkYnJlYWtwb2ludHM6ICRteS1icmVha3BvaW50cywgJHN0YXRpYy1icmVha3BvaW50OiBMKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gIH1cbkBtaXhpbiBtcShcbiAgICAkZnJvbTogZmFsc2UsXG4gICAgJHVudGlsOiBmYWxzZSxcbiAgICAkYW5kOiBmYWxzZSxcbiAgICAkbWVkaWEtdHlwZTogJG1xLW1lZGlhLXR5cGUsXG4gICAgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMsXG4gICAgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLFxuICAgICRzdGF0aWMtYnJlYWtwb2ludDogJG1xLXN0YXRpYy1icmVha3BvaW50XG4pIHtcbiAgICAkbWluLXdpZHRoOiAwO1xuICAgICRtYXgtd2lkdGg6IDA7XG4gICAgJG1lZGlhLXF1ZXJ5OiAnJztcblxuICAgIC8vIEZyb206IHRoaXMgYnJlYWtwb2ludCAoaW5jbHVzaXZlKVxuICAgIEBpZiAkZnJvbSB7XG4gICAgICAgIEBpZiB0eXBlLW9mKCRmcm9tKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0oJGZyb20pO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVudGlsOiB0aGF0IGJyZWFrcG9pbnQgKGV4Y2x1c2l2ZSlcbiAgICBAaWYgJHVudGlsIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJHVudGlsKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0oJHVudGlsKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykpIC0gLjAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZGlzYWJsZWQsIHJhc3Rlcml6ZSB0aGUgb3V0cHV0IG91dHNpZGUgQG1lZGlhIGJsb2Nrc1xuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXG4gICAgQGlmICRyZXNwb25zaXZlID09IGZhbHNlIHtcbiAgICAgICAgJHN0YXRpYy1icmVha3BvaW50LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc3RhdGljLWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICR0YXJnZXQtd2lkdGg6IG1xLXB4MmVtKCRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCk7XG5cbiAgICAgICAgLy8gT3V0cHV0IG9ubHkgcnVsZXMgdGhhdCBzdGFydCBhdCBvciBzcGFuIG91ciB0YXJnZXQgd2lkdGhcbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICRhbmQgPT0gZmFsc2VcbiAgICAgICAgICAgIGFuZCAkbWluLXdpZHRoIDw9ICR0YXJnZXQtd2lkdGhcbiAgICAgICAgICAgIGFuZCAoXG4gICAgICAgICAgICAgICAgJHVudGlsID09IGZhbHNlIG9yICRtYXgtd2lkdGggPj0gJHRhcmdldC13aWR0aFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGVuYWJsZWQsIG91dHB1dCBydWxlcyBpbnNpZGUgQG1lZGlhIHF1ZXJpZXNcbiAgICBAZWxzZSB7XG4gICAgICAgIEBpZiAkbWluLXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtaW4td2lkdGg6ICN7JG1pbi13aWR0aH0pJzsgfVxuICAgICAgICBAaWYgJG1heC13aWR0aCAhPSAwIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWF4LXdpZHRoOiAjeyRtYXgtd2lkdGh9KSc7IH1cbiAgICAgICAgQGlmICRhbmQgICAgICAgICAgICB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgI3skYW5kfSc7IH1cblxuICAgICAgICAvLyBSZW1vdmUgdW5uZWNlc3NhcnkgbWVkaWEgcXVlcnkgcHJlZml4ICdhbGwgYW5kICdcbiAgICAgICAgQGlmICgkbWVkaWEtdHlwZSA9PSAnYWxsJyBhbmQgJG1lZGlhLXF1ZXJ5ICE9ICcnKSB7XG4gICAgICAgICAgICAkbWVkaWEtdHlwZTogJyc7XG4gICAgICAgICAgICAkbWVkaWEtcXVlcnk6IHN0ci1zbGljZSh1bnF1b3RlKCRtZWRpYS1xdWVyeSksIDYpO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGlhLXR5cGUgKyAkbWVkaWEtcXVlcnl9IHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xuLy8vICBAaW5jbHVkZSBtcSh0dnNjcmVlbikge31cbkBtaXhpbiBtcS1hZGQtYnJlYWtwb2ludCgkbmFtZSwgJHdpZHRoKSB7XG4gICAgJG5ldy1icmVha3BvaW50OiAoJG5hbWU6ICR3aWR0aCk7XG4gICAgJG1xLWJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJG1xLWJyZWFrcG9pbnRzLCAkbmV3LWJyZWFrcG9pbnQpICFnbG9iYWw7XG59XG5cbi8vLyBTaG93IHRoZSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lciBvZiB0aGUgdmlld3BvcnRcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG93LWJyZWFrcG9pbnRzICgkbXEtc2hvdy1icmVha3BvaW50cykgLSBMaXN0IG9mIGJyZWFrcG9pbnRzIHRvIHNob3cgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcbi8vLyBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpIC0gQnJlYWtwb2ludCBuYW1lcyBhbmQgc2l6ZXNcbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zaG93LWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgZ2xvYmFsIHNldHRpbmdzXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XG4vLy9cbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBjdXN0b20gc2V0dGluZ3Ncbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cygoTCwgWEwpLCAoUzogMzAwcHgsIEw6IDgwMHB4LCBYTDogMTIwMHB4KSk7XG5AbWl4aW4gbXEtc2hvdy1icmVha3BvaW50cygkc2hvdy1icmVha3BvaW50czogJG1xLXNob3ctYnJlYWtwb2ludHMsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XG4gICAgYm9keTpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGOEUzO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0ZCRUVENTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRkJFRUQ1O1xuICAgICAgICBjb2xvcjogI0MwOTg1MztcbiAgICAgICAgZm9udDogc21hbGwtY2FwdGlvbjtcbiAgICAgICAgcGFkZGluZzogM3B4IDZweDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogMTAwO1xuXG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgYnJlYWtwb2ludHMgdGhhdCBzaG91bGQgYmUgc2hvd25cbiAgICAgICAgQGVhY2ggJHNob3ctYnJlYWtwb2ludCBpbiAkc2hvdy1icmVha3BvaW50cyB7XG4gICAgICAgICAgICAkd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50cykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiI3skc2hvdy1icmVha3BvaW50fSDiiaUgI3skd2lkdGh9ICgje21xLXB4MmVtKCR3aWR0aCl9KVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaWYgbGVuZ3RoKCRtcS1zaG93LWJyZWFrcG9pbnRzKSA+IDAge1xuICAgIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XG59XG4iLCIuc2VsZWN0LXdyYXBwZXIgaW5wdXQuc2VsZWN0LWRyb3Bkb3duIHtcbiAgZm9udC1mYW1pbHkgICAgOiAkcXVpei1mb250LUxpZ2h0O1xuICBmb250LXNpemUgICAgICA6IDIycHggIWltcG9ydGFudDtcbiAgY29sb3IgICAgICAgICAgOiAjNDE0MTQxO1xuICBsZXR0ZXItc3BhY2luZyA6IDA7XG4gIGxpbmUtaGVpZ2h0ICAgIDogMjJweCAhaW1wb3J0YW50O1xufVxuXG5cbi5kcm9wZG93bi1jb250ZW50IGxpIHtcbiAgbWluLWhlaWdodCA6IDM4cHggIWltcG9ydGFudDtcbiAgJiA+IGEsXG4gICYgPiBzcGFuIHtcblx0Zm9udC1mYW1pbHkgICAgOiAkcXVpei1mb250LUxpZ2h0O1xuXHRmb250LXNpemUgICAgICA6IDIycHggIWltcG9ydGFudDtcblx0Y29sb3IgICAgICAgICAgOiAjNDE0MTQxICFpbXBvcnRhbnQ7XG5cdGxldHRlci1zcGFjaW5nIDogMDtcblx0bGluZS1oZWlnaHQgICAgOiAyMnB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmcgICAgICAgIDogOHB4IDE2cHggIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbiNhdmItZGQge1xuICBkaXNwbGF5IDogbm9uZTtcbn1cblxuXG4ubmF2YmFyLWJyYW5kIHtcbiAgaGVpZ2h0ICA6IDYwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZyA6IDE1cHggMTVweCAhaW1wb3J0YW50O1xufVxuXG5cbi5uYXZiYXItaGVhZGVyLFxuLm5hdmJhci1uYXYge1xuICBkaXNwbGF5IDogaW5saW5lLWJsb2NrO1xuICB3aWR0aCAgIDogYXV0bztcbiAgLy9tYXJnaW46IDBweCAtMTVweCFpbXBvcnRhbnQ7XG5cbn1cblxuXG4uYnRuLXJlc3VsdCB7XG4gIGZvbnQtZmFtaWx5ICAgICA6ICRxdWl6LWZvbnQtTGlnaHQ7XG4gIGZvbnQtc2l6ZSAgICAgICA6IDEycHg7XG4gIGNvbG9yICAgICAgICAgICA6ICNGRkZGRkY7XG4gIGxldHRlci1zcGFjaW5nICA6IDFweDtcbiAgcGFkZGluZyAgICAgICAgIDogMTBweCAzMHB4O1xuICAvKiBCdXR0b246ICovXG4gIGJhY2tncm91bmQgICAgICA6ICMwMDdBQjM7XG4gIGJvcmRlci1yYWRpdXMgICA6IDVweDtcbiAgdGV4dC10cmFuc2Zvcm0gIDogdXBwZXJjYXNlO1xuICBib3JkZXIgICAgICAgICAgOiAycHggc29saWQgIzAwN0FCMztcbiAgdHJhbnNpdGlvbiAgICAgIDogYWxsIC41cztcbiAgdGV4dC1kZWNvcmF0aW9uIDogbm9uZTtcbiAgY3Vyc29yICAgICAgICAgIDogcG9pbnRlcjtcbiAgJjpob3ZlciB7XG5cdGNvbG9yICAgICAgICAgICA6ICMwMDdBQjM7XG5cdGJhY2tncm91bmQgICAgICA6IHRyYW5zcGFyZW50O1xuXHR0ZXh0LWRlY29yYXRpb24gOiBub25lO1xuICB9XG59XG5cblxuLm5hdmJhci1yaWdodCB7XG4gIG1hcmdpbi1yaWdodCA6IDBweCAhaW1wb3J0YW50O1xuICBmbG9hdCAgICAgICAgOiByaWdodDtcbn1cblxuLnNob3ctYWZ0ZXItcHJvZHVjdHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbiA6IGFsbCAuNXM7XG4gICYuc2hvdyB7XG5cdG9wYWNpdHkgOiAxO1xuXG4gIH1cbn1cblxuXG5cbiNjYXRlZ29yaWVzLWxpc3QsXG4jY29tcGV0aXRvci1saXN0LFxuI3NlbGVjdC1hbGwtY29tcGV0aXRvcixcbiNzZWxlY3QtYWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaSB7XG5cdGRpc3BsYXkgOiBpbmxpbmUtYmxvY2s7XG5cdGZsb2F0OiBsZWZ0O1xuXHRjbGVhcjogbGVmdDtcbiAgfVxuXG4gICZbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUsXG4gIFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG5cdGJvcmRlci10b3AgICAgOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1sZWZ0ICAgOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1yaWdodCAgOiAycHggc29saWQgd2hpdGU7XG5cdGJvcmRlci1ib3R0b20gOiAycHggc29saWQgd2hpdGU7XG4gIH1cblxuICAmW3R5cGU9XCJjaGVja2JveFwiXS5maWxsZWQtaW46Y2hlY2tlZCArIGxhYmVsOmFmdGVyLFxuICBbdHlwZT1cImNoZWNrYm94XCJdLmZpbGxlZC1pbjpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuXHR0b3AgICAgICAgICAgICAgIDogMDtcblx0d2lkdGggICAgICAgICAgICA6IDIwcHg7XG5cdGhlaWdodCAgICAgICAgICAgOiAyMHB4O1xuXHRib3JkZXIgICAgICAgICAgIDogMnB4IHNvbGlkICRicmFuZC1ibHVlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yIDogJGJyYW5kLWJsdWU7XG5cdHotaW5kZXggICAgICAgICAgOiAwO1xuICB9XG5cbiAgJlt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCxcbiAgW3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsIHtcblx0Zm9udC1zaXplICAgOiAxLjVyZW07XG5cdGZvbnQtd2VpZ2h0IDogbm9ybWFsO1xuXHRmb250LWZhbWlseSA6ICRxdWl6LWZvbnQtUmVnO1xuICB9XG5cbn1cbiIsIi5jYXJkIC5jYXJkLWNvbnRlbnQgcCB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xufVxuLmxvZ2luLWNvbnRhaW5lcixcbiNsb2dvdXRfbGluayxcbi5pbmZvLWNvbnRhaW5lcntcbiAgZGlzcGxheTogbm9uZTtcblxufVxuXG5cbi5kaXNjbGFpbWVye1xuICBjb2xvcjogI2FjYWNhYztcbiAgZm9udC1zaXplOiAwLjY1ZW07XG59XG5cblxuLnRvYXN0X2Vycm9ye1xuICAvL3dpZHRoOiAxMDAlO1xufVxuXG4ucmVzdHJpY3QgLmNhcmQtY29udGVudHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjAsIDQ5LCA3MywuMik7XG4gIHB7XG4gIGNvbG9yOiBibGFjayFpbXBvcnRhbnQ7XG5cbiAgfVxufVxuXG4ud2FybmluZyAuY2FyZC1jb250ZW50e1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzOSwgMTkwLCAzNywuMik7XG4gIHB7XG5cdGNvbG9yOiBibGFjayFpbXBvcnRhbnQ7XG5cbiAgfVxufVxuXG4ub2sgLmNhcmQtY29udGVudHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSggMzAsIDEzNywgMzksLjIpO1xuICBwe1xuXHRjb2xvcjogYmxhY2shaW1wb3J0YW50O1xuXG4gIH1cbn1cbiJdfQ== */
