/* imports and utilities like animations and mixins should be defined here */
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/*! Base styles, made with normalize.css v7.0.0 */
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
@font-face {
  font-family: "Roboto Wide Black";
  font-style: normal;
  font-weight: 900;
  src: url("https://xpodotcom.azureedge.net/xpo/files/roboto-wide--black.woff2") format("woff2"), url("https://xpodotcom.azureedge.net/xpo/files/roboto-wide--black.woff") format("woff");
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
*:focus {
  outline: none;
}
:root {
  font-size: 14px;
}
html,
body {
  height: 100%;
  margin: 0;
}
html {
  line-height: 24px;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  background-color: #f3f3f3;
  color: #4a4a4a;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0.2px;
  line-height: 24px;
  position: relative;
}
article,
aside,
footer,
header,
nav,
section {
  display: block;
}
h1,
h2,
h3 {
  margin: 8px 0;
}
h1 {
  font-size: 1.428rem;
  font-weight: 500;
  letter-spacing: 0.38px;
  line-height: 1.286;
}
h2 {
  font-size: 1.285rem;
  font-weight: 500;
  letter-spacing: 0.33px;
  line-height: 1.143;
}
h3 {
  font-size: 1.143rem;
  font-weight: 500;
  letter-spacing: 0.3px;
  line-height: 1.143;
}
p {
  margin: 0;
}
figcaption,
figure,
main {
  display: block;
}
figure {
  margin: 1em 40px;
}
hr {
  border: 0;
  border-top: 1px solid #d8d8d8;
  display: block;
  height: 1px;
  margin: 16px 0;
  padding: 0;
}
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}
a {
  background-color: transparent;
  color: #0868ac;
  text-decoration: none;
  -webkit-text-decoration-skip: objects;
}
a:hover {
  color: #0d94f4;
}
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}
dt {
  font-weight: 500;
}
dd {
  margin: 0 0 8px;
}
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}
code,
kbd,
samp {
  background-color: #d8d8d8;
  font-family: monospace, monospace;
  font-size: 0.9em;
  padding: 0.2em 0.3em;
}
dfn {
  font-style: italic;
}
mark {
  background-color: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
audio,
video {
  display: inline-block;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
img {
  border-style: none;
  max-width: 100%;
}
svg:not(:root) {
  overflow: hidden;
}
button,
input,
optgroup,
select,
textarea {
  margin: 0;
}
button,
input {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}
progress {
  display: inline-block;
  vertical-align: baseline;
}
textarea {
  overflow: auto;
}
[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  padding: 0;
}
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}
[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
details,
menu {
  display: block;
}
summary {
  display: list-item;
}
canvas {
  display: inline-block;
}
template {
  display: none;
}
[hidden] {
  display: none;
}
.cellLinkSelection {
  color: #1976d2 !important;
  cursor: pointer;
}
.cellLinkSelection:hover {
  text-decoration: underline;
}
.app[class*="--hasActionBar"] {
  margin-bottom: 41px;
}
.app[class*="--hasActionBar"] .app-ActionBar {
  margin-bottom: -40px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix .mat-input-element:disabled {
  font-style: normal;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix .mat-form-field-label-wrapper .mat-form-field-label {
  transform: none !important;
}
.line-break-snackBar, .large-snackBar, .medium-snackBar {
  white-space: pre-line;
}
.medium-snackBar {
  min-width: 50vw !important;
}
.large-snackBar {
  min-width: 75vw !important;
}
.bullet-list {
  list-style-type: disc;
  list-style-position: inside;
}
input[type=search]::-webkit-search-cancel-button {
  -webkit-appearance: searchfield-cancel-button;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3N0eWxlcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B4cG8tbHRsL25neC1sdGwtY29yZS9zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B4cG8tbHRsL25neC1sdGwtY29yZS9zdHlsZXMvX3Jlc2V0LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHhwby1sdGwvbmd4LWx0bC1jb3JlL3N0eWxlcy9fZm9udHMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AeHBvLWx0bC9uZ3gtbHRsLWNvcmUvc3R5bGVzL190ZXh0LXRyZWF0bWVudC5zY3NzIiwiLi4vLi4vX2dyaWQtc3R5bGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNEVBQUE7QUNFQTs7Q0FBQTtBQUlBOztDQUFBO0FBcUVBOztDQUFBO0FBNkRBOztDQUFBO0FBSUE7O0NBQUE7QUFnR0E7O0NBQUE7QUFLQTs7Q0FBQTtBQStGQTs7Q0FBQTtBQUlBOztDQUFBO0FBaUNBO0VBQ0UsT0FBQTtBRHhWRjtBRTlCQSxpREFBQTtBREVBOztDQUFBO0FBSUE7O0NBQUE7QUFxRUE7O0NBQUE7QUE2REE7O0NBQUE7QUFJQTs7Q0FBQTtBQWdHQTs7Q0FBQTtBQUtBOztDQUFBO0FBK0ZBOztDQUFBO0FBSUE7O0NBQUE7QUFpQ0E7RUFDRSxPQUFBO0FEeFRGO0FHOURBO0VBQ0UsZ0NBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsdUxBQUE7QUhpRUY7QUVqRUE7OztFQUlFLHNCQUFBO0FGbUVGO0FFaEVBO0VBQ0UsYUFBQTtBRm1FRjtBRWhFQTtFQUNFLGVEc09tQjtBRG5LckI7QUVoRUE7O0VBRUUsWUFBQTtFQUNBLFNBQUE7QUZtRUY7QUVoRUE7RUFDRSxpQkR5UHFCO0VDeFByQiwwQkFBQTtFQUNBLDhCQUFBO0FGbUVGO0FFaEVBO0VBQ0UseUJEa00wQjtFQ2pNMUIsY0RpRGM7RUNoRGQsMEREa093QjtFQ2pPeEIsZ0JEcU91QjtFQ3BPdkIscUJEdVB3QjtFQ3RQeEIsaUJEOE9xQjtFQzdPckIsa0JBQUE7QUZtRUY7QUVoRUE7Ozs7OztFQU1FLGNBQUE7QUZtRUY7QUVoRUE7OztFQUdFLGFBQUE7QUZtRUY7QUVoRUE7RUV6Q0UsbUJIaVAyQjtFR2hQM0IsZ0JIMFBxQjtFR3pQckIsc0JINlFnQztFRzVRaEMsa0JIdVE2QjtBRDFKL0I7QUVuRUE7RUVwREUsbUJIdVA0QjtFR3RQNUIsZ0JIaVFxQjtFR2hRckIsc0JIbVJpQztFR2xSakMsa0JINlE4QjtBRGxKaEM7QUV0RUE7RUUvREUsbUJINlAyQjtFRzVQM0IsZ0JId1FxQjtFR3ZRckIscUJIeVJnQztFR3hSaEMsa0JIbVI2QjtBRDFJL0I7QUV6RUE7RUFDRSxTQUFBO0FGNEVGO0FFekVBOzs7RUFHRSxjQUFBO0FGNEVGO0FFekVBO0VBQ0UsZ0JBQUE7QUY0RUY7QUV6RUE7RUFDRSxTQUFBO0VBQ0EsNkJBQUE7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0FGNEVGO0FFekVBO0VBQ0UsaUNBQUE7RUFDQSxjQUFBO0FGNEVGO0FFekVBO0VBQ0UsNkJBQUE7RUFDQSxjRG9EYztFQ25EZCxxQkFBQTtFQUNBLHFDQUFBO0FGNEVGO0FFMUVFO0VBQ0UsY0Q2Q1k7QUQrQmhCO0FFeEVBO0VBQ0UscUJBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtBRjJFRjtBRXhFQTtFQUNFLGdCRHdKcUI7QUQ3RXZCO0FFeEVBO0VBQ0UsZUFBQTtBRjJFRjtBRXhFQTtFQUNFLG1CQUFBO0VBQ0EsMEJBQUE7RUFDQSx5Q0FBQTtVQUFBLGlDQUFBO0FGMkVGO0FFeEVBOzs7RUFHRSx5QkQ3Q2M7RUM4Q2QsaUNBQUE7RUFDQSxnQkFBQTtFQUNBLG9CQUFBO0FGMkVGO0FFeEVBO0VBQ0Usa0JBQUE7QUYyRUY7QUV4RUE7RUFDRSxzQkFBQTtFQUNBLFdBQUE7QUYyRUY7QUV4RUE7RUFDRSxjQUFBO0FGMkVGO0FFeEVBOztFQUVFLGNBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSx3QkFBQTtBRjJFRjtBRXhFQTtFQUNFLGVBQUE7QUYyRUY7QUV4RUE7RUFDRSxXQUFBO0FGMkVGO0FFeEVBOztFQUVFLHFCQUFBO0FGMkVGO0FFeEVBO0VBQ0UsYUFBQTtFQUNBLFNBQUE7QUYyRUY7QUV4RUE7RUFDRSxrQkFBQTtFQUNBLGVBQUE7QUYyRUY7QUV4RUE7RUFDRSxnQkFBQTtBRjJFRjtBRXhFQTs7Ozs7RUFLRSxTQUFBO0FGMkVGO0FFeEVBOztFQUVFLGlCQUFBO0FGMkVGO0FFeEVBOztFQUVFLG9CQUFBO0FGMkVGO0FFeEVBOzs7O0VBSUUsMEJBQUE7QUYyRUY7QUV4RUE7Ozs7RUFJRSxrQkFBQTtFQUNBLFVBQUE7QUYyRUY7QUV4RUE7Ozs7RUFJRSw4QkFBQTtBRjJFRjtBRXhFQTtFQUNFLDhCQUFBO0FGMkVGO0FFeEVBO0VBQ0Usc0JBQUE7RUFDQSxjQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7QUYyRUY7QUV4RUE7RUFDRSxxQkFBQTtFQUNBLHdCQUFBO0FGMkVGO0FFeEVBO0VBQ0UsY0FBQTtBRjJFRjtBRXhFQTs7RUFFRSxzQkFBQTtFQUNBLFVBQUE7QUYyRUY7QUV4RUE7O0VBRUUsWUFBQTtBRjJFRjtBRXhFQTtFQUNFLDZCQUFBO0VBQ0Esb0JBQUE7QUYyRUY7QUV4RUE7O0VBRUUsd0JBQUE7QUYyRUY7QUV4RUE7RUFDRSwwQkFBQTtFQUNBLGFBQUE7QUYyRUY7QUV4RUE7O0VBRUUsY0FBQTtBRjJFRjtBRXhFQTtFQUNFLGtCQUFBO0FGMkVGO0FFeEVBO0VBQ0UscUJBQUE7QUYyRUY7QUV4RUE7RUFDRSxhQUFBO0FGMkVGO0FFeEVBO0VBQ0UsYUFBQTtBRjJFRjtBSzdXQTtFQUNFLHlCQUFBO0VBQ0EsZUFBQTtBTGdYRjtBSzlXRTtFQUNFLDBCQUFBO0FMZ1hKO0FBN1dFO0VBQ0UsbUJBQUE7QUFnWEo7QUE5V0k7RUFDRSxvQkFBQTtBQWdYTjtBQTNXQTtFQUNFLGtCQUFBO0FBOFdGO0FBM1dBO0VBRUUsMEJBQUE7QUE4V0Y7QUEzV0E7RUFDRSxxQkFBQTtBQThXRjtBQTNXQTtFQUdFLDBCQUFBO0FBNFdGO0FBMVdBO0VBR0UsMEJBQUE7QUEyV0Y7QUF4V0E7RUFDRSxxQkFBQTtFQUNBLDJCQUFBO0FBMldGO0FBeFdBO0VBQ0UsNkNBQUE7QUEyV0YiLCJmaWxlIjoic3R5bGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpbXBvcnRzIGFuZCB1dGlsaXRpZXMgbGlrZSBhbmltYXRpb25zIGFuZCBtaXhpbnMgc2hvdWxkIGJlIGRlZmluZWQgaGVyZSAqL1xuQGltcG9ydCAnfkB4cG8tbHRsL25neC1sdGwtY29yZS9zdHlsZXMvdmFyaWFibGVzJztcbkBpbXBvcnQgJ35AeHBvLWx0bC9uZ3gtbHRsLWNvcmUvc3R5bGVzL3Jlc2V0JztcbkBpbXBvcnQgJ2dyaWQtc3R5bGVzJztcblxuJGFwcC1hY3Rpb25CYXItaGVpZ2h0OiA0MHB4O1xuXG4uYXBwIHtcbiAgJltjbGFzcyo9Jy0taGFzQWN0aW9uQmFyJ10ge1xuICAgIG1hcmdpbi1ib3R0b206ICRhcHAtYWN0aW9uQmFyLWhlaWdodCArIDE7XG5cbiAgICAuYXBwLUFjdGlvbkJhciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtJGFwcC1hY3Rpb25CYXItaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1pbnB1dCAubWF0LWZvcm0tZmllbGQtZmxleCAubWF0LWZvcm0tZmllbGQtaW5maXggLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1pbnB1dCAubWF0LWZvcm0tZmllbGQtZmxleCAubWF0LWZvcm0tZmllbGQtaW5maXggLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5saW5lLWJyZWFrLXNuYWNrQmFyIHtcbiAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xufVxuXG4ubWVkaXVtLXNuYWNrQmFyIHtcbiAgQGV4dGVuZCAubGluZS1icmVhay1zbmFja0JhcjtcblxuICBtaW4td2lkdGg6IDUwdncgIWltcG9ydGFudDtcbn1cbi5sYXJnZS1zbmFja0JhciB7XG4gIEBleHRlbmQgLmxpbmUtYnJlYWstc25hY2tCYXI7XG5cbiAgbWluLXdpZHRoOiA3NXZ3ICFpbXBvcnRhbnQ7XG59XG5cbi5idWxsZXQtbGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xufVxuXG5pbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHNlYXJjaGZpZWxkLWNhbmNlbC1idXR0b247XG59XG4iLCJAaW1wb3J0ICcuL3RleHQtdHJlYXRtZW50JztcblxuLypcbioqID09PT0gQmFzaWMgY29sb3JzID09PT1cbiovXG5cbi8qXG4qKiA9PT09IFhQTyBCcmFuZCBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIFhQTyBSZWRcbiR4cG8tYnJhbmQtcmVkOiAjY2MwMDAwO1xuJHhwby1icmFuZC1yZWQtLTkwMDogJHhwby1icmFuZC1yZWQ7XG4keHBvLWJyYW5kLXJlZC0tODAwOiAjZTQyMTBlO1xuJHhwby1icmFuZC1yZWQtLTcwMDogI2YzMmExMztcbiR4cG8tYnJhbmQtcmVkLS02MDA6ICNmZjMzMTc7XG4keHBvLWJyYW5kLXJlZC0tNTAwOiAjZmYzOTFjO1xuJHhwby1icmFuZC1yZWQtLTQwMDogI2ZmNWUzZDtcbiR4cG8tYnJhbmQtcmVkLS0zMDA6ICNmZjdlNjA7XG4keHBvLWJyYW5kLXJlZC0tMjAwOiAjZmZhNDhlO1xuJHhwby1icmFuZC1yZWQtLTEwMDogI2ZmYzhiYTtcbiR4cG8tYnJhbmQtcmVkLS01MDogI2ZjZThlNjtcblxuLy8gWFBPIEJsYWNrXG4keHBvLWJsYWNrOiAjMDAwMDAwO1xuJHhwby1icmFuZC1ibGFjay0tOTAwOiAkeHBvLWJsYWNrO1xuJHhwby1icmFuZC1ibGFjay0tODAwOiAjMjYyNjI2O1xuJHhwby1icmFuZC1ibGFjay0tNzAwOiAjNTU1NTU1O1xuJHhwby1icmFuZC1ibGFjay0tNjAwOiAjN2I3YjdiO1xuJHhwby1icmFuZC1ibGFjay0tNTAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tNDAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tMzAwOiAjYzRjNGM0O1xuJHhwby1icmFuZC1ibGFjay0tMjAwOiAjZDlkOWQ5O1xuJHhwby1icmFuZC1ibGFjay0tMTAwOiAjZTllOWU5O1xuJHhwby1icmFuZC1ibGFjay0tNTA6ICNmNWY1ZjU7XG5cbi8vIFhQTyBEYXJrIEdyZXlcbiR4cG8tYnJhbmQtZGFyay1ncmV5OiAjNDE0YTRjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTkwMDogIzIyMjgyYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS04MDA6ICR4cG8tYnJhbmQtZGFyay1ncmV5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTcwMDogIzYyNjg2YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS02MDA6ICM3NTdkODE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTAwOiAjYTBhNmFhO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTQwMDogI2JlYzVjOTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0zMDA6ICNlMGU3ZWI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMjAwOiAjZWJmMmY2O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTEwMDogI2YwZjdmYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDogI2Y0ZmNmZjtcblxuLy8gWFBPIE1lZGl1bSBHcmV5XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5OiAjODQ4NDg0O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tOTAwOiAjMmUyZTJlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tODAwOiAjNTA1MDUwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNzAwOiAjNzA3MDcwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNjAwOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTAwOiAjYWZhZmFmO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNDAwOiAjY2RjZGNkO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMzAwOiAjZWVlZWVlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwOiAjZjNmM2YzO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMTAwOiAjZjhmOGY4O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA6ICNmY2ZjZmM7XG5cbi8vIFhQTyBMaWdodCBHcmV5XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXk6ICNkZWRlZGU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTkwMDogIzFmMWYxZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tODAwOiAjM2YzZjNmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS03MDA6ICM1ZTVlNWU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTYwMDogIzcyNzI3MjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTAwOiAjOWE5YTlhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS00MDA6ICNiYWJhYmE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTMwMDogJHhwby1icmFuZC1saWdodC1ncmV5O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0yMDA6ICNlY2VjZWM7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTEwMDogI2Y0ZjRmNDtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTA6ICNmOWY5Zjk7XG5cbi8qXG4qKiA9PT09IE1haW4gQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBCbGFjayBhbmQgR3JleVxuJHhwby1ncmV5LS05NzU6ICMyMTIxMjE7XG4keHBvLWdyZXktLTk1MDogIzMzMzMzMztcbiR4cG8tZ3JleS0tOTAwOiAjNGE0YTRhO1xuJHhwby1ncmV5LS03MDA6ICM2ZjZmNmY7XG4keHBvLWdyZXktLTM1MDogI2JkYmRiZDtcbiR4cG8tZ3JleS0tMzAwOiAjZDhkOGQ4O1xuJHhwby1ncmV5LS04MDogI2Y2ZjZmNjtcbiR4cG8tZ3JleS0tMjU6ICNmYWZhZmE7XG5cbiR4cG8td2hpdGU6ICNmZmZmZmY7XG5cbi8vIExpbmtzLCBCdXR0b25zLCBUYWJzZXQgYW5kIFRhYnBpbGxzXG4keHBvLWJsdWUtLTg1MDogIzBkNDdhMTtcbiR4cG8tYmx1ZS0tODAwOiAjMTk3NmQyO1xuJHhwby1ibHVlLS0zNTA6ICMyMTk2ZjM7XG5cbi8vIEVycm9yIFN0YXRlXG4keHBvLXJlZC0tMjAwOiAjYjcxYzFjO1xuJHhwby1yZWQtLTE1MDogI2QzMmYyZjtcbiR4cG8tcmVkLS01MDogI2ZjZWVlYjtcblxuLy8gU3VjY2VzcyBTdGF0ZVxuJHhwby1ncmVlbi0tNjAwOiAjMzg4ZTNjO1xuJHhwby1ncmVlbi0tNDUwOiAjNGNhZjUwO1xuJHhwby1ncmVlbi0tNTA6ICNmMWY5ZjE7XG5cbi8vIFdhcm5pbmcgU3RhdGVcbiR4cG8teWVsbG93LS0zNTA6ICNmZmQ2MDA7XG5cbiR4cG8tb3JhbmdlLS0zNTA6ICNmZjZkMDA7XG5cbi8vIEluZm8gU3RhdGVcbiR4cG8tYmx1ZS0tNzAwOiAjMDA5MWVhO1xuXG4vLyBUcmFuc2FjdGlvbmFsIENlbGxzXG4keHBvLWdyZXktLTE1MDogI2VjZWZmMTtcblxuJHhwby1ibHVlR3JleS0tNzAwOiAjY2ZkOGRjO1xuXG4vLyBBY2NlbnQgQ29sb3JzXG4keHBvLXBpbmstLTcwMDogI2M1MTE2MjtcblxuJHhwby10ZWFsLS03MDA6ICMwMGJmYTU7XG5cbiR4cG8tYmx1ZS0tODI1OiAjMzA0ZmZlO1xuJHhwby1ibHVlLS0yMDA6ICNlNGVmZmE7XG5cbiR4cG8tYWNjZW50LXJlZC0tNDAwOiAkeHBvLWJyYW5kLXJlZC0tNDAwO1xuJHhwby1hY2NlbnQtcmVkLS0xMDA6ICR4cG8tYnJhbmQtcmVkLS0xMDA7XG5cbiR4cG8tcHVycGxlLS03MDA6ICM2MjAwZWE7XG5cbiR4cG8tZ3JlZW4tLTIwMDogI2E0ZTU5YjtcblxuJHhwby15ZWxsb3ctLTIwMDogI2ZmZjljNDtcblxuLypcbioqID09PT0gREVQUkVDQVRFRCBDT0xPUlMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xMDA6ICNlOGY1ZmU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTE1MDogI2UzZjJmZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMzAwOiAjMGQ5NGY0O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS00MDA6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTkwMDogIzA1M2M2Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0xMDA6ICNmZmY4ZTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMzAwOiAjZmZjZjRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTQwMDogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS03MDA6ICNmZmQ2MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tOTAwOiAjNGQzODAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMTAwOiAjYzhmZmRmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzAwOiAjMWNlODU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzUwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNDAwOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNzAwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tOTAwOiAjMGE2MTIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS01MDogI2ZiZmJmYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjA6ICNmYWZhZmE7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjAwOiAjZTZlNmU2O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yNTA6ICNkZGRkZGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTQwMDogIzliOWI5Yjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjAwOiAjNzU3NTc1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02NTA6ICM4NTg1ODU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTc1MDogIzU3NTc1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTE1OiAjNDM0OTRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MzA6ICM0MjQyNDI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDA6ICMxNzE3MTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTExMDA6ICMyMTIxMjE7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMTAwOiAjZmZlZWVlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTI1MDogI2RkMmMwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0zMDA6ICNmZjIyMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNDAwOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTYwMDogI2NjMDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS03MDA6ICNkMzJmMmY7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tOTAwOiAjNTUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTEwMDogI2ZmZGZjYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0zMDA6ICNmZjk5NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tNDAwOiAjZmY2NDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTkwMDogIzhiMzcwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZm9udENvbG9yLS1saW5rOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1iYWNrZ3JvdW5kQ29sb3ItLWJvZHk6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1lcnJvcjogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXN1Y2Nlc3M6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS13YXJuOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0taW5mbzogIzRhNGE0YTtcblxuLypcbioqID09PT0gQ09MT1JTIEFQUExJRUQgPT09PVxuKi9cbiR4cG8tZm9udENvbG9yLS1wcmltYXJ5OiAkeHBvLWdyZXktLTkwMDtcblxuLypcbioqID09PT0gVHlwb2dyYXBoeSA9PT09XG4qL1xuLy8gUHV0dGluZyBzaXplcyBpbiBtYXBzIHRvIGFsbG93IGR5bmFtaWMgc2l6aW5nIGZvciBleHRlcm5hbFxuLy8gUm9vdCBmb250LXNpemUocykgYWx3YXlzIGluIHB4XG4keHBvLWZvbnRTaXplLS1yb290OiAxNHB4O1xuJHhwby1mb250U2l6ZS0tc21hbGw6IDAuODc1cmVtOyAvLzEycHhcbiR4cG8tZm9udFNpemUtLW1lZGl1bTogMXJlbTsgLy8xNHB4XG4keHBvLWZvbnRTaXplLS1sYXJnZTogMS4xNDNyZW07IC8vMTZweFxuJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTogMS4yODVyZW07IC8vMThweFxuJHhwby1mb250U2l6ZS0teHhsYXJnZTogMS43MTRyZW07IC8vMjRweFxuXG4keHBvLWhlYWRlci1mb250U2l6ZS0teHNtYWxsOiAxcmVtOyAvLzE0cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDogMS4xNDNyZW07IC8vMTZweFxuJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTogMS4yODVyZW07IC8vMThweFxuJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlOiAxLjQyOHJlbTsgLy8yMHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teGxhcmdlOiAxLjU3MXJlbTsgLy8yMnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teHhsYXJnZTogMS44NTdyZW07IC8vMjZweFxuXG4keHBvLWZvbnRGYW1pbHktLXByaW1hcnk6ICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiR4cG8tZm9udEZhbWlseS0tcm9ib3RvV2lkZUJsYWNrOiAnUm9ib3RvIFdpZGUgQmxhY2snLCAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiR4cG8tZm9udFdlaWdodC0tbGlnaHQ6IDMwMDtcbiR4cG8tZm9udFdlaWdodC0tbm9ybWFsOiA0MDA7XG4keHBvLWZvbnRXZWlnaHQtLW1lZGl1bTogNTAwOyAvLyBERVBSRUNBVEVEIHwgZG8gbm90IGRlbGV0ZSBzaW5jZSBpdCBpcyBzdGlsbCBiZWluZyB1c2VkIGluIHNvbWUgcHJvamVjdHNcbiR4cG8tZm9udFdlaWdodC0tYm9sZDogNTAwO1xuJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ6IDYwMDtcbiR4cG8tZm9udFdlaWdodC0tYm9sZGVyOiA3MDA7XG5cbiR4cG8tbGluZUhlaWdodC0teGw6IDIuMjg2cmVtOyAvLyAzMnB4XG4keHBvLWxpbmVIZWlnaHQtLWxnOiAxLjcxNHJlbTsgLy8gMjRweFxuJHhwby1saW5lSGVpZ2h0LS1tZDogMS41NzFyZW07IC8vIDIycHhcbiR4cG8tbGluZUhlaWdodC0tc206IDEuNDI5cmVtOyAvLyAyMHB4XG5cbiR4cG8tbGluZUhlaWdodC0tYmFzZTogMjRweDsgLy8gZm9yIG1lZGl1bSBhbmQgbGFyZ2UgZm9udCBzaXplXG4keHBvLWxpbmVIZWlnaHQtLW1lZGl1bTogMThweDsgLy8gZm9yIG1lZGl1bSBmb250IHNpemVzXG4keHBvLWxpbmVIZWlnaHQtLXNtYWxsOiAxNnB4OyAvLyBmb3Igc21hbGwgZm9udCBzaXplXG5cbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U6IDEuMjg2OyAvLyBERVBSRUNBVEVEXG5cbiR4cG8tbGV0dGVyU3BhY2luZy0tYmFzZTogMC4ycHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDogMC4zcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW06IDAuMzNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlOiAwLjM4cHg7XG5cbi8vID09PT0gTGF5b3V0ID09PT1cbiR4cG8tY29udGVudFNwYWNpbmc6IDE2cHg7XG5cbi8vIEJyZWFrcG9pbnRzXG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsLXhzOiA0ODBweDtcbiR4cG8tYnJlYWtwb2ludC0tc21hbGw6IDYwMHB4O1xuJHhwby1icmVha3BvaW50LS1tZWRpdW06IDc2OHB4O1xuJHhwby1icmVha3BvaW50LS1sYXJnZTogMTAyNXB4O1xuJHhwby1icmVha3BvaW50LS14TGFyZ2U6IDE0NDBweDtcblxuJHhwby1zZWxlY3QtYmFja2dyb3VuZENvbG9yLW9wdGlvbk9uSG92ZXI6ICR4cG8tYmx1ZS0tMjAwO1xuXG4vLyAtLSBOR1gtVUkgU3BlY2lmaWMgLS1cbiRuZ3gtZm9vdGVyLWhlaWdodDogNDJweDtcbiRuZ3gtdGFiLWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4kbmd4LXRhYmxlLXJvdy1oZWlnaHQ6IDMwcHg7XG5cbiRuZ3gtaWNvbi1zaXplOiAyNHB4OyAvLyBUT0RPOiBEZXByZWNhdGUgdGhpcyB2YXJpYWJsZVxuJHhwby1pY29uLXNpemUtLXN0YW5kYXJkOiAyMHB4O1xuJHhwby1pY29uLXNpemUtLXNtYWxsOiAxOHB4O1xuJHhwby1pY29uLXNpemUtLWxhcmdlOiAyNHB4O1xuXG4kbmd4LXRoZUJsYWNrUm9ib3RvOiA5MDA7XG5cbiR4cG8taW5wdXQtaGVpZ2h0LS1kZWZhdWx0OiAzMHB4O1xuJHhwby1pbnB1dC1oZWlnaHQtLXR3b0xpbmVzOiA0NXB4O1xuXG4kbmd4LWlucHV0LWJvcmRlci13aWR0aDogMXB4O1xuXG4kbmd4LWlucHV0LWNvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms6ICR4cG8tYmxhY2s7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1saWdodDogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyOiAkeHBvLWdyZXktLTMwMDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms6ICR4cG8tZ3JleS0tMzUwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlLS1saWdodGVyOiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ6ICR4cG8tZ3JleS0tODA7XG5cbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQ6IDM2cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1zbWFsbDogMjhweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLWxhcmdlOiA0NnB4O1xuJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb246IDIwMG1zO1xuXG4kbmd4LWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4vLyBGb3IgdXNlIHdoZW4gYSBob3ZlciBpcyBuZWVkZWQgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kLlxuJG5neC13aGl0ZUFmZm9yZGFuY2Utb25Ib3Zlci1jb2xvcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yOiAkeHBvLXdoaXRlO1xuXG4vKlxuKiogPT09PSBTTkFDS0JBUiBERVBSRUNBVEVEIFZBUklBQkxFUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tc3VjY2VzczogJHhwby1ncmVlbi0tNDUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tZXJyb3I6ICR4cG8tcmVkLS0xNTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1pbmZvOiAjMDI4OGQxO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0td2FybjogI2ZiYzAyZDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS02MDA7XG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWVycm9yOiAkeHBvLXJlZC0tMjAwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWluZm86ICMwMTU3OWI7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tCYXItbWFyZ2luVG9wOiAzMnB4O1xuXG4vL0JhZGdlXG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLW5lZ2F0aXZlOiAkeHBvLXJlZC0tNTA7XG4kX21hdEJhZGdlQ29udGVudC1jb2xvci0tbmVnYXRpdmU6ICNkZDJjMDA7XG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLXBvc2l0aXZlOiAkeHBvLWdyZWVuLS01MDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDtcbi8vIFVzZWQgYXMgYSBzcGFjZXIgZm9yIGZsZXhlZCBjaGlsZHJlblxuLy8gVE9ETzogTW92ZSBhbGwgaW5zdGFuY2VzIHRvIHRoZSB1dGlsaXRpZXMgZGVmaW5pdGlvblxuLmZsZXgtLXN0cmV0Y2gge1xuICBmbGV4OiAxO1xufVxuXG4vLyAtLS0gRGlhbG9nIC0tLVxuJG5neC1kaWFsb2ctaGVhZGVyLWhlaWdodDogNDhweDtcbiRuZ3gtZGlhbG9nLWZvb3Rlci1oZWlnaHQ6IDY0cHg7XG5cbi8vIC0tLSBUcmFuc2l0aW9ucyAtLS1cbiR4cG8tdHJhbnNpdGlvbi0yMDA6IGFsbCAyMDBtcyBlYXNlLW91dDtcblxuLy8gLS0tIENvbnRleHR1YWwgSGVhZGVyIC0tLVxuJG5neC1Db250ZXh0dWFsSGVhZGVyLXNlcGFyYXRvci0tY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuIiwiLyohIEJhc2Ugc3R5bGVzLCBtYWRlIHdpdGggbm9ybWFsaXplLmNzcyB2Ny4wLjAgKi9cbkBpbXBvcnQgJy4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4vZm9udHMnO1xuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbio6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG46cm9vdCB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tcm9vdDtcbn1cblxuaHRtbCxcbmJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLWJhc2U7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG59XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJhY2tncm91bmRDb2xvci0tYm9keTtcbiAgY29sb3I6ICR4cG8tZm9udENvbG9yLS1wcmltYXJ5O1xuICBmb250LWZhbWlseTogJHhwby1mb250RmFtaWx5LS1wcmltYXJ5O1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWxldHRlclNwYWNpbmctLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLWJhc2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5oMSxcbmgyLFxuaDMge1xuICBtYXJnaW46ICgkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMikgMDtcbn1cblxuaDEge1xuICBAaW5jbHVkZSBUZXh0VHJlYXRtZW50LWhlYWRlci0tbGFyZ2UoKTtcbn1cblxuaDIge1xuICBAaW5jbHVkZSBUZXh0VHJlYXRtZW50LWhlYWRlci0tbWVkaXVtKCk7XG59XG5cbmgzIHtcbiAgQGluY2x1ZGUgVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCk7XG59XG5cbnAge1xuICBtYXJnaW46IDA7XG59XG5cbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbmhyIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAkeHBvLWNvbnRlbnRTcGFjaW5nIDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICR4cG8tYmx1ZS0tNDAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICR4cG8tYmx1ZS0tMzAwO1xuICB9XG59XG5cbnVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmR0IHtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbn1cblxuZGQge1xuICBtYXJnaW46IDAgMCAoJHhwby1jb250ZW50U3BhY2luZyAvIDIpO1xufVxuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgcGFkZGluZzogMC4yZW0gMC4zZW07XG59XG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIG1hcmdpbjogMDtcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9J2J1dHRvbiddLFxuW3R5cGU9J3Jlc2V0J10sXG5bdHlwZT0nc3VibWl0J10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J2J1dHRvbiddOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPSdidXR0b24nXTotbW96LWZvY3VzcmluZyxcblt0eXBlPSdyZXNldCddOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J3N1Ym1pdCddOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbnByb2dyZXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cblt0eXBlPSdjaGVja2JveCddLFxuW3R5cGU9J3JhZGlvJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xufVxuXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPSdzZWFyY2gnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuW3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGZvbnQ6IGluaGVyaXQ7XG59XG5cbmRldGFpbHMsXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gV2lkZSBCbGFjayc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgc3JjOiB1cmwoJ2h0dHBzOi8veHBvZG90Y29tLmF6dXJlZWRnZS5uZXQveHBvL2ZpbGVzL3JvYm90by13aWRlLS1ibGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJ2h0dHBzOi8veHBvZG90Y29tLmF6dXJlZWRnZS5uZXQveHBvL2ZpbGVzL3JvYm90by13aWRlLS1ibGFjay53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG59XG4iLCJAbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW07XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW07XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTtcbn1cblxuLy8gUmVndWxhciB0ZXh0IG1peGluc1xuQG1peGluIFRleHRUcmVhdG1lbnQtLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbn1cbiIsIi5jZWxsTGlua1NlbGVjdGlvbiB7XG4gIGNvbG9yOiAkeHBvLWJsdWUtLTgwMCAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cbiJdfQ== */
@charset "UTF-8";
/* Colors for the ripple elements.*/
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable material/no-prefixes */
/* stylelint-enable */
/*! Base styles, made with normalize.css v7.0.0 */
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
@font-face {
  font-family: "Roboto Wide Black";
  font-style: normal;
  font-weight: 900;
  src: url("https://xpodotcom.azureedge.net/xpo/files/roboto-wide--black.woff2") format("woff2"), url("https://xpodotcom.azureedge.net/xpo/files/roboto-wide--black.woff") format("woff");
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
*:focus {
  outline: none;
}
:root {
  font-size: 14px;
}
html,
body {
  height: 100%;
  margin: 0;
}
html {
  line-height: 24px;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  background-color: #f3f3f3;
  color: #4a4a4a;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0.2px;
  line-height: 24px;
  position: relative;
}
article,
aside,
footer,
header,
nav,
section {
  display: block;
}
h1,
h2,
h3 {
  margin: 8px 0;
}
h1 {
  font-size: 1.428rem;
  font-weight: 500;
  letter-spacing: 0.38px;
  line-height: 1.286;
}
h2 {
  font-size: 1.285rem;
  font-weight: 500;
  letter-spacing: 0.33px;
  line-height: 1.143;
}
h3 {
  font-size: 1.143rem;
  font-weight: 500;
  letter-spacing: 0.3px;
  line-height: 1.143;
}
p {
  margin: 0;
}
figcaption,
figure,
main {
  display: block;
}
figure {
  margin: 1em 40px;
}
hr {
  border: 0;
  border-top: 1px solid #d8d8d8;
  display: block;
  height: 1px;
  margin: 16px 0;
  padding: 0;
}
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}
a {
  background-color: transparent;
  color: #0868ac;
  text-decoration: none;
  -webkit-text-decoration-skip: objects;
}
a:hover {
  color: #0d94f4;
}
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}
dt {
  font-weight: 500;
}
dd {
  margin: 0 0 8px;
}
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}
code,
kbd,
samp {
  background-color: #d8d8d8;
  font-family: monospace, monospace;
  font-size: 0.9em;
  padding: 0.2em 0.3em;
}
dfn {
  font-style: italic;
}
mark {
  background-color: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
audio,
video {
  display: inline-block;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
img {
  border-style: none;
  max-width: 100%;
}
svg:not(:root) {
  overflow: hidden;
}
button,
input,
optgroup,
select,
textarea {
  margin: 0;
}
button,
input {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}
progress {
  display: inline-block;
  vertical-align: baseline;
}
textarea {
  overflow: auto;
}
[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  padding: 0;
}
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}
[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
details,
menu {
  display: block;
}
summary {
  display: list-item;
}
canvas {
  display: inline-block;
}
template {
  display: none;
}
[hidden] {
  display: none;
}
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
[mat-button].mat-button,
[mat-raised-button].mat-raised-button,
[mat-icon-button].mat-icon-button {
  border-width: 2px;
  font-size: 1.143rem;
  font-weight: 400;
  height: 40px;
  line-height: normal;
  padding: 0 20px;
  transition: color 200ms ease, background-color 200ms ease, border-color 200ms ease;
}
[mat-button].mat-button {
  padding: 0;
}
[mat-icon-button].mat-icon-button {
  padding: 0;
}
[mat-raised-button].mat-raised-button {
  border-style: solid;
  border-width: 2px;
  box-shadow: none !important;
  color: #ffffff;
}
[mat-raised-button].mat-raised-button, [mat-raised-button].mat-raised-button.mat-primary {
  background-color: #1976d2;
  border-color: #1976d2;
}
[mat-raised-button].mat-raised-button:hover, [mat-raised-button].mat-raised-button.mat-primary:hover {
  background-color: #2196f3;
  border-color: #2196f3;
}
[mat-raised-button].mat-raised-button:focus, [mat-raised-button].mat-raised-button:active, [mat-raised-button].mat-raised-button.mat-primary:focus, [mat-raised-button].mat-raised-button.mat-primary:active {
  background-color: #0d47a1;
  border-color: #0d47a1;
}
[mat-raised-button].mat-raised-button.mat-warn {
  background-color: #d50000;
  border-color: #d50000;
}
[mat-raised-button].mat-raised-button.mat-warn:hover {
  background-color: #ff2222;
  border-color: #ff2222;
}
[mat-raised-button].mat-raised-button.mat-warn:focus, [mat-raised-button].mat-raised-button.mat-warn:active {
  background-color: #550000;
  border-color: #550000;
}
[mat-raised-button].mat-raised-button[disabled], [mat-raised-button].mat-raised-button[disabled]:active, [mat-raised-button].mat-raised-button[disabled]:hover, [mat-raised-button].mat-raised-button[disabled]:focus {
  background-color: #d8d8d8;
  border-color: #d8d8d8;
  color: #ffffff;
  cursor: not-allowed;
}
.mat-button,
.mat-icon-button {
  background-color: transparent;
}
.mat-button.mat-primary,
.mat-icon-button.mat-primary {
  color: #0868ac;
}
.mat-button.mat-primary:hover, .mat-button.mat-primary:focus,
.mat-icon-button.mat-primary:hover,
.mat-icon-button.mat-primary:focus {
  color: #0d94f4;
}
.mat-button.mat-primary:active,
.mat-icon-button.mat-primary:active {
  color: #053c63;
}
.mat-button, .mat-button.mat-accent,
.mat-icon-button,
.mat-icon-button.mat-accent {
  color: #4a4a4a;
}
.mat-button:hover, .mat-button:focus, .mat-button.mat-accent:hover, .mat-button.mat-accent:focus,
.mat-icon-button:hover,
.mat-icon-button:focus,
.mat-icon-button.mat-accent:hover,
.mat-icon-button.mat-accent:focus {
  color: #9b9b9b;
}
.mat-button:active, .mat-button.mat-accent:active,
.mat-icon-button:active,
.mat-icon-button.mat-accent:active {
  color: #4a4a4a;
}
.mat-button.mat-warn,
.mat-icon-button.mat-warn {
  color: #d50000;
}
.mat-button.mat-warn:hover, .mat-button.mat-warn:focus,
.mat-icon-button.mat-warn:hover,
.mat-icon-button.mat-warn:focus {
  color: #ff2222;
}
.mat-button.mat-warn:active,
.mat-icon-button.mat-warn:active {
  color: #550000;
}
[mat-raised-button].mat-raised-button {
  align-items: center;
  display: inline-flex;
}
[mat-button].mat-button[disabled], [mat-button].mat-button[disabled]:active, [mat-button].mat-button[disabled]:hover, [mat-button].mat-button[disabled]:focus,
[mat-icon-button].mat-icon-button[disabled],
[mat-icon-button].mat-icon-button[disabled]:active,
[mat-icon-button].mat-icon-button[disabled]:hover,
[mat-icon-button].mat-icon-button[disabled]:focus {
  background-color: transparent;
  border-color: #bdbdbd;
  color: #bdbdbd;
  cursor: not-allowed;
}
[mat-raised-button].mat-raised-button {
  border-radius: 2px;
}
[mat-button].mat-button.xpo-SmallButton,
[mat-raised-button].mat-raised-button.xpo-SmallButton,
[mat-icon-button].mat-icon-button.xpo-SmallButton {
  border-width: 1px;
  font-size: 1rem;
  height: 30px;
  line-height: normal;
  min-width: auto;
}
[mat-button].mat-button.xpo-SmallButton .mat-icon,
[mat-raised-button].mat-raised-button.xpo-SmallButton .mat-icon,
[mat-icon-button].mat-icon-button.xpo-SmallButton .mat-icon {
  font-size: 20px;
}
[mat-button].mat-button.xpo-SmallButton .mat-button-wrapper,
[mat-raised-button].mat-raised-button.xpo-SmallButton .mat-button-wrapper,
[mat-icon-button].mat-icon-button.xpo-SmallButton .mat-button-wrapper {
  line-height: 28px;
}
[mat-button].mat-button.xpo-LargeButton,
[mat-raised-button].mat-raised-button.xpo-LargeButton {
  font-size: 1.143rem;
  height: 50px;
  line-height: normal;
}
[mat-button].mat-button.xpo-LargeButton .mat-button-toggle-button,
[mat-raised-button].mat-raised-button.xpo-LargeButton .mat-button-toggle-button {
  font-size: 1.285rem;
  height: 100%;
}
/*
  1. These are carried over from Material but UX does not
      have any design for them yet. That's why they are not
      in the sample... they're a bit of a hidden API.
*/
/* Colors for the ripple elements.*/
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable material/no-prefixes */
/* stylelint-enable */
.xpo-Link--accent {
  color: #4a4a4a;
}
.xpo-Link--accent:hover, .xpo-Link--accent:focus, .xpo-Link--accent:active {
  text-decoration: underline;
}
.xpo-Link--accent:hover, .xpo-Link--accent:focus {
  color: #4a4a4a;
  outline: 0;
}
.xpo-Link--accent:active {
  color: #171717;
}
.mat-chip-list .mat-chip-list-wrapper {
  gap: 6px;
}
.mat-chip.mat-standard-chip.xpo-Tag {
  background-color: #fafafa;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  color: #212121;
  display: flex;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.429rem;
  height: 24px;
  margin: 4px 0;
  min-height: 24px;
  padding: 2px 8px;
}
.mat-chip.mat-standard-chip.xpo-Tag > .mat-icon {
  font-size: 1.143rem;
  height: 16px;
  margin-left: 12px;
  margin-right: 0;
  width: 16px;
}
.mat-chip.mat-standard-chip.xpo-Tag .xpo-Icon {
  height: 16px;
  margin-left: 12px;
  width: 16px;
}
.mat-chip.mat-standard-chip.xpo-Tag .xpo-Icon .mat-icon {
  height: 16px;
  margin-right: 0;
  width: 16px;
}
.mat-chip.mat-standard-chip.xpo-Tag .mat-chip-remove.mat-chip-trailing-icon {
  margin-left: 12px;
  opacity: 1;
}
.mat-chip.mat-standard-chip.xpo-Tag .mat-chip-remove.mat-chip-trailing-icon:hover {
  opacity: 1;
}
.mat-chip.mat-standard-chip.xpo-Tag:hover {
  background-color: #ffffff;
}
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/* Colors for the ripple elements.*/
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable material/no-prefixes */
/* stylelint-enable */
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/*
    1. Thanks to sub-pixels and how they render this caused some nasty
        blur. Ew! What one can do is start to add sub-pixels in along
        with the "em" (or rem, or points, or 🧀; it doesn't really
        matter). This is sub-pixel pushing so I just used my eye on
        a low-rez monitor and got it as close as I could. Because
        `calc` was uses this will be handled on the DOM instead of
        during the SCSS compilation which should give the rendering
        engine the best chance to make the correct decision.
    2. This is to support the text weight changing from the label
        changing weights as we want to animate this change instead
        of a snapping change.
    3. This large bit of classes is to identify if a prefix is attached
        to the input so that we can move the label better.
    4. Material has this set to 133.333% because they scale the label.
        We're changing that scale so we need to change the size of it.
*/
/*
    1. Threw a `div` to start this off to get the score to 0011 in order
        to beat Materials 0010. Mwahahaha.
    2. This disables the caret on anything but the first menu when there
        are nested menus. This is slightly fragile but sadly Material
        doesn't give us much of a choice here. We know the first panel
        is the second child of the overlay `div` so we get the second
        with `nth-of-type(2)` which gets the second `div`...then add
        `:not()` and you now get "everything that isn't the second div.
    3. This is because the first and last menu items have space added
        around them. The carets need to respect that and because the
        area round the buttons needs to accept the hover state this
        these need to be manually moved. All other carets are just
        moved 50% wholesale.
    4. Thanks to the reduced padding we need to move the submenu trigger
        icon over just a bit.
*/
/* Colors for the ripple elements.*/
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable material/no-prefixes */
/* stylelint-enable */
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/*
* The following styles style tabs that have been deprecated or are not in the design system 
* and also style the tab snippets in the Core documentation.
**/
.mat-primary .mat-tab-header .mat-tab-label-container .mat-ink-bar,
.mat-primary .mat-tab-header .mat-tab-label-container .mat-tab-nav-bar.mat-primary .mat-ink-bar {
  background-color: #0d94f4;
}
.mat-primary .mat-tab-label {
  color: #000000;
  height: 40px;
  line-height: 40px;
  margin-left: 0;
  min-width: 0;
  opacity: 1;
  padding: 4px 8px;
}
.mat-primary .mat-tab-label:first-child {
  margin-left: 0;
}
.mat-primary .mat-tab-label:hover, .mat-primary .mat-tab-label.mat-tab-label-active {
  color: #000000;
}
.mat-primary .mat-tab-label.mat-tab-disabled {
  color: #d8d8d8;
}
.mat-primary .mat-tab-label .mat-tab-link:hover, .mat-primary .mat-tab-label .mat-tab-link:focus {
  text-decoration: none;
}
.mat-primary .mat-tab-label .mat-tab-labels .mat-tab-label-content {
  padding-bottom: 0;
}
.mat-primary .mat-tab-label .mat-tab-labels .mat-tab-label-content .mat-chip.xpo-Chip--small {
  font-size: 12px;
  line-height: 16px;
  min-height: 16px;
}
.mat-primary .mat-tab-label .mat-tab-labels .mat-tab-label-content .mat-chip.xpo-Chip--small .mat-icon {
  height: 12px;
  width: 12px;
}
.mat-primary .mat-tab-label .mat-tab-labels .mat-tab-label-content > .mat-icon {
  align-items: center;
  display: flex;
  font-size: 1.143rem;
  width: auto;
}
.xpo-AlternateTabs.xpo-TabsWideNav .mat-tab-header-pagination,
.xpo-PillTabGroup.xpo-TabsWideNav .mat-tab-header-pagination,
.xpo-VerticalTabs.xpo-TabsWideNav .mat-tab-header-pagination,
.xpo-PrimaryTabs.xpo-TabsWideNav .mat-tab-header-pagination {
  min-width: 40px;
  width: 40px;
  padding: 8px;
}
.xpo-AlternateTabs .mat-tab-header,
.xpo-PillTabGroup .mat-tab-header,
.xpo-VerticalTabs .mat-tab-header,
.xpo-PrimaryTabs .mat-tab-header {
  border-bottom: none;
}
.xpo-AlternateTabs .mat-tab-header-pagination,
.xpo-PillTabGroup .mat-tab-header-pagination,
.xpo-VerticalTabs .mat-tab-header-pagination,
.xpo-PrimaryTabs .mat-tab-header-pagination {
  background-color: #f6f6f6;
  border: 1px solid #d8d8d8;
  box-shadow: none;
  min-width: 24px;
  height: 40px;
  opacity: 0.8;
  padding: 8px 0;
  width: 24px;
}
.xpo-AlternateTabs .mat-tab-header-pagination:hover:not(.mat-tab-header-pagination-disabled),
.xpo-PillTabGroup .mat-tab-header-pagination:hover:not(.mat-tab-header-pagination-disabled),
.xpo-VerticalTabs .mat-tab-header-pagination:hover:not(.mat-tab-header-pagination-disabled),
.xpo-PrimaryTabs .mat-tab-header-pagination:hover:not(.mat-tab-header-pagination-disabled) {
  background-color: #ffffff;
}
.xpo-AlternateTabs .mat-tab-header-pagination-disabled,
.xpo-PillTabGroup .mat-tab-header-pagination-disabled,
.xpo-VerticalTabs .mat-tab-header-pagination-disabled,
.xpo-PrimaryTabs .mat-tab-header-pagination-disabled {
  background: #f6f6f6;
}
.xpo-AlternateTabs .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,
.xpo-PillTabGroup .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,
.xpo-VerticalTabs .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,
.xpo-PrimaryTabs .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: #bdbdbd;
}
.xpo-AlternateTabs .mat-tab-header-pagination-chevron,
.xpo-PillTabGroup .mat-tab-header-pagination-chevron,
.xpo-VerticalTabs .mat-tab-header-pagination-chevron,
.xpo-PrimaryTabs .mat-tab-header-pagination-chevron {
  height: 8px;
  width: 8px;
  border-color: #4a4a4a;
}
.xpo-AlternateTabs .mat-tab-header-pagination-chevron:hover:not(.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron),
.xpo-PillTabGroup .mat-tab-header-pagination-chevron:hover:not(.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron),
.xpo-VerticalTabs .mat-tab-header-pagination-chevron:hover:not(.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron),
.xpo-PrimaryTabs .mat-tab-header-pagination-chevron:hover:not(.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron) {
  border-color: #212121;
}
.xpo-AlternateTabs .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-label-content {
  gap: 8px;
}
.xpo-AlternateTabs .mat-tab-label-content > .mat-icon,
.xpo-PillTabGroup .mat-tab-label-content > .mat-icon,
.xpo-VerticalTabs .mat-tab-label-content > .mat-icon,
.xpo-PrimaryTabs .mat-tab-label-content > .mat-icon {
  font-size: 1.428rem;
  width: 20px;
  height: 20px;
}
.xpo-AlternateTabs .mat-tab-label-content .mat-badge.mat-badge-overlap,
.xpo-PillTabGroup .mat-tab-label-content .mat-badge.mat-badge-overlap,
.xpo-VerticalTabs .mat-tab-label-content .mat-badge.mat-badge-overlap,
.xpo-PrimaryTabs .mat-tab-label-content .mat-badge.mat-badge-overlap {
  display: flex;
  gap: 8px;
}
.xpo-AlternateTabs .mat-tab-label-content .mat-badge-content,
.xpo-AlternateTabs .mat-tab-label-content .mat-chip,
.xpo-PillTabGroup .mat-tab-label-content .mat-badge-content,
.xpo-PillTabGroup .mat-tab-label-content .mat-chip,
.xpo-VerticalTabs .mat-tab-label-content .mat-badge-content,
.xpo-VerticalTabs .mat-tab-label-content .mat-chip,
.xpo-PrimaryTabs .mat-tab-label-content .mat-badge-content,
.xpo-PrimaryTabs .mat-tab-label-content .mat-chip {
  align-items: center;
  background-color: #f6f6f6;
  border: 1px solid #d8d8d8;
  border-radius: 10px;
  color: #000000;
  display: flex;
  font-weight: 900;
  justify-content: center;
  height: 20px;
  line-height: 12px;
  min-width: 30px;
  overflow: initial;
  padding: 4px 8px;
  position: initial;
  width: 100%;
}
.xpo-AlternateTabs .mat-tab-list .mat-ink-bar,
.xpo-PillTabGroup .mat-tab-list .mat-ink-bar,
.xpo-VerticalTabs .mat-tab-list .mat-ink-bar,
.xpo-PrimaryTabs .mat-tab-list .mat-ink-bar {
  display: none;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link {
  background-color: #ffffff;
  border-left: 1px solid #d8d8d8;
  border-top: 1px solid #d8d8d8;
  border-bottom: 1px solid #d8d8d8;
  color: #212121;
  font-weight: 700;
  height: 40px;
  line-height: 1.429rem;
  min-width: 0;
  opacity: 1;
  padding: 10px 16px;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link.mat-tab-label-active,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link.mat-tab-label-active,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label.mat-tab-label-active,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link.mat-tab-label-active,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label.mat-tab-label-active,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link.mat-tab-label-active,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active {
  border-bottom: 1px solid #ffffff;
  border-top: 4px solid #0d47a1;
  overflow: inherit;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-tab-label-content {
  margin-bottom: 3px;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-AlternateTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link.mat-tab-label-active .mat-chip,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-badge-content,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-chip,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-badge-content,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-chip {
  background-color: #4a4a4a;
  border: 1px solid #4a4a4a;
  color: #ffffff;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label.mat-tab-disabled,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link.mat-tab-disabled,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label.mat-tab-disabled,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-disabled,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label.mat-tab-disabled,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link.mat-tab-disabled,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label.mat-tab-disabled,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link.mat-tab-disabled,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label.mat-tab-disabled,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link.mat-tab-disabled,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label.mat-tab-disabled,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-disabled,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label.mat-tab-disabled,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link.mat-tab-disabled,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label.mat-tab-disabled,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link.mat-tab-disabled {
  background-color: #f6f6f6;
  color: #d8d8d8;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label:last-child,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link:last-child,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label:last-child,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link:last-child,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label:last-child,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link:last-child,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label:last-child,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link:last-child,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label:last-child,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link:last-child,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label:last-child,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link:last-child,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label:last-child,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link:last-child,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label:last-child,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link:last-child {
  border-right: 1px solid #d8d8d8;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PillTabGroup .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PillTabGroup .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-VerticalTabs .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-VerticalTabs .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) {
  border-top: 4px solid #2196f3;
}
.xpo-AlternateTabs .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-AlternateTabs .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-AlternateTabs .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-AlternateTabs .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-VerticalTabs .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-header .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-links .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PrimaryTabs .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content {
  margin-bottom: 3px;
}
.mat-tab-nav-bar.xpo-AlternateTabs {
  border-bottom: none;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels {
  gap: 4px;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label,
.xpo-PillTabGroup .mat-tab-header .mat-tab-nav-bar .mat-tab-link {
  padding: 6px 16px;
  border-radius: 20px;
  height: 32px;
  border: 0;
  font-weight: 400;
  line-height: 20px;
  color: #1976d2;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label.mat-tab-label-active,
.xpo-PillTabGroup .mat-tab-header .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active {
  background-color: #e4effa;
  color: #212121;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-header .mat-tab-nav-bar .mat-tab-link.mat-tab-label-active .mat-tab-label-content {
  margin-bottom: 0;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label.mat-tab-disabled,
.xpo-PillTabGroup .mat-tab-header .mat-tab-nav-bar .mat-tab-link.mat-tab-disabled {
  color: #bdbdbd;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active),
.xpo-PillTabGroup .mat-tab-header .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) {
  border: 0;
  color: #0d47a1;
}
.xpo-PillTabGroup .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content,
.xpo-PillTabGroup .mat-tab-header .mat-tab-nav-bar .mat-tab-link:hover:not(.mat-tab-disabled):not(.mat-tab-label-active) .mat-tab-label-content {
  margin-bottom: 0;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs {
  align-items: flex-start;
  display: flex;
  flex-direction: row;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-list {
  flex-grow: 0;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels {
  display: flex;
  flex-direction: column;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label {
  border: 1px solid #d8d8d8;
  border-top: 0;
  height: 32px;
  line-height: 1.429rem;
  justify-content: start;
  padding: 6px 16px;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:first-child {
  border-top: 1px solid #d8d8d8;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label-content {
  font-weight: 400;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label-active {
  border-left: 4px solid #0d47a1;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label.mat-tab-label-active .mat-tab-label-content {
  font-weight: 700;
  margin-bottom: 0;
  margin-left: -3px;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:hover:first-child {
  border-top: 1px solid #d8d8d8;
  border-left: 4px solid #2196f3;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:hover:first-child .mat-tab-label-content {
  margin-bottom: 0;
  margin-left: -3px;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(:first-child) {
  border-top: 0;
  border-left: 4px solid #2196f3;
}
.mat-tab-group.mat-primary.xpo-VerticalTabs .mat-tab-header .mat-tab-label-container .mat-tab-labels .mat-tab-label:hover:not(.mat-tab-disabled):not(:first-child) .mat-tab-label-content {
  margin-bottom: 0;
  margin-left: -3px;
}
/*
    1. Moves the select to sit right under the trigger
*/
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
.xpo-Footer {
  width: 100%;
}
.xpo-Footer-navbar > :nth-child(n) {
  margin: 0 12px;
}
.xpo-Footer-navbar > :nth-child(n):last-child {
  margin-right: 16px;
}
.xpo-Footer-bold-text {
  font-weight: 700;
}
.xpo-Footer--sticky {
  bottom: 0;
  position: sticky;
}
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
/*
** ==== Basic colors ====
*/
/*
** ==== XPO Brand Color Palette ====
*/
/*
** ==== Main Color Palette ====
*/
/*
** ==== DEPRECATED COLORS ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
/*
** ==== COLORS APPLIED ====
*/
/*
** ==== Typography ====
*/
/*
** ==== SNACKBAR DEPRECATED VARIABLES ====
*/
/*
** WARNING: THIS VARIABLES WILL BE REMOVED SOON
*/
.flex--stretch {
  flex: 1;
}
.mat-elevation-z0 {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z1 {
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z2 {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z3 {
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z4 {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z5 {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z6 {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z7 {
  box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z8 {
  box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z9 {
  box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z10 {
  box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z11 {
  box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z12 {
  box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z13 {
  box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z14 {
  box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z15 {
  box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z16 {
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z17 {
  box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z18 {
  box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z19 {
  box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z20 {
  box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z21 {
  box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z22 {
  box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z23 {
  box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z24 {
  box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);
}
.mat-badge-content {
  font-weight: 600;
  font-size: 12px;
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-badge-small .mat-badge-content {
  font-size: 9px;
}
.mat-badge-large .mat-badge-content {
  font-size: 24px;
}
.mat-h1, .mat-headline, .mat-typography h1 {
  font: 400 24px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h2, .mat-title, .mat-typography h2 {
  font: 500 20px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h3, .mat-subheading-2, .mat-typography h3 {
  font: 400 16px/28px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h4, .mat-subheading-1, .mat-typography h4 {
  font: 400 15px/24px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h5, .mat-typography h5 {
  font: 400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;
  margin: 0 0 12px;
}
.mat-h6, .mat-typography h6 {
  font: 400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;
  margin: 0 0 12px;
}
.mat-body-strong, .mat-body-2 {
  font: 500 14px/24px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-body, .mat-body-1, .mat-typography {
  font: 400 14px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-body p, .mat-body-1 p, .mat-typography p {
  margin: 0 0 12px;
}
.mat-small, .mat-caption {
  font: 400 12px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-display-4, .mat-typography .mat-display-4 {
  font: 300 112px/112px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: -0.05em;
  margin: 0 0 56px;
}
.mat-display-3, .mat-typography .mat-display-3 {
  font: 400 56px/56px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: -0.02em;
  margin: 0 0 64px;
}
.mat-display-2, .mat-typography .mat-display-2 {
  font: 400 45px/48px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: -0.005em;
  margin: 0 0 64px;
}
.mat-display-1, .mat-typography .mat-display-1 {
  font: 400 34px/40px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 64px;
}
.mat-bottom-sheet-container {
  font: 400 14px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,
.mat-flat-button, .mat-fab, .mat-mini-fab {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 500;
}
.mat-button-toggle {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-card {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-card-title {
  font-size: 24px;
  font-weight: 500;
}
.mat-card-header .mat-card-title {
  font-size: 20px;
}
.mat-card-subtitle,
.mat-card-content {
  font-size: 14px;
}
.mat-checkbox {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-checkbox-layout .mat-checkbox-label {
  line-height: 24px;
}
.mat-chip {
  font-size: 14px;
  font-weight: 500;
}
.mat-chip .mat-chip-trailing-icon.mat-icon,
.mat-chip .mat-chip-remove.mat-icon {
  font-size: 18px;
}
.mat-table {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-header-cell {
  font-size: 12px;
  font-weight: 500;
}
.mat-cell, .mat-footer-cell {
  font-size: 14px;
}
.mat-calendar {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-calendar-body {
  font-size: 13px;
}
.mat-calendar-body-label,
.mat-calendar-period-button {
  font-size: 14px;
  font-weight: 500;
}
.mat-calendar-table-header th {
  font-size: 11px;
  font-weight: 400;
}
.mat-dialog-title {
  font: 500 20px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-expansion-panel-header {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 15px;
  font-weight: 400;
}
.mat-expansion-panel-content {
  font: 400 14px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-form-field {
  font-size: inherit;
  font-weight: 400;
  line-height: 1.125;
  font-family: Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-form-field-wrapper {
  padding-bottom: 1.34375em;
}
.mat-form-field-prefix .mat-icon,
.mat-form-field-suffix .mat-icon {
  font-size: 150%;
  line-height: 1.125;
}
.mat-form-field-prefix .mat-icon-button,
.mat-form-field-suffix .mat-icon-button {
  height: 1.5em;
  width: 1.5em;
}
.mat-form-field-prefix .mat-icon-button .mat-icon,
.mat-form-field-suffix .mat-icon-button .mat-icon {
  height: 1.125em;
  line-height: 1.125;
}
.mat-form-field-infix {
  padding: 0.5em 0;
  border-top: 0.84375em solid transparent;
}
.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.34375em) scale(0.75);
  width: 133.3333333333%;
}
.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.34374em) scale(0.75);
  width: 133.3333433333%;
}
.mat-form-field-label-wrapper {
  top: -0.84375em;
  padding-top: 0.84375em;
}
.mat-form-field-label {
  top: 1.34375em;
}
.mat-form-field-underline {
  bottom: 1.34375em;
}
.mat-form-field-subscript-wrapper {
  font-size: 75%;
  margin-top: 0.6666666667em;
  top: calc(100% - 1.7916666667em);
}
.mat-form-field-appearance-legacy .mat-form-field-wrapper {
  padding-bottom: 1.25em;
}
.mat-form-field-appearance-legacy .mat-form-field-infix {
  padding: 0.4375em 0;
}
.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);
  -ms-transform: translateY(-1.28125em) scale(0.75);
  width: 133.3333333333%;
}
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);
  -ms-transform: translateY(-1.28124em) scale(0.75);
  width: 133.3333433333%;
}
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);
  -ms-transform: translateY(-1.28123em) scale(0.75);
  width: 133.3333533333%;
}
.mat-form-field-appearance-legacy .mat-form-field-label {
  top: 1.28125em;
}
.mat-form-field-appearance-legacy .mat-form-field-underline {
  bottom: 1.25em;
}
.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {
  margin-top: 0.5416666667em;
  top: calc(100% - 1.6666666667em);
}
@media print {
  .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
    transform: translateY(-1.28122em) scale(0.75);
  }
  .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {
    transform: translateY(-1.28121em) scale(0.75);
  }
  .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {
    transform: translateY(-1.2812em) scale(0.75);
  }
}
.mat-form-field-appearance-fill .mat-form-field-infix {
  padding: 0.25em 0 0.75em 0;
}
.mat-form-field-appearance-fill .mat-form-field-label {
  top: 1.09375em;
  margin-top: -0.5em;
}
.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-0.59375em) scale(0.75);
  width: 133.3333333333%;
}
.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-0.59374em) scale(0.75);
  width: 133.3333433333%;
}
.mat-form-field-appearance-outline .mat-form-field-infix {
  padding: 1em 0 1em 0;
}
.mat-form-field-appearance-outline .mat-form-field-label {
  top: 1.84375em;
  margin-top: -0.25em;
}
.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.59375em) scale(0.75);
  width: 133.3333333333%;
}
.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.59374em) scale(0.75);
  width: 133.3333433333%;
}
.mat-grid-tile-header,
.mat-grid-tile-footer {
  font-size: 14px;
}
.mat-grid-tile-header .mat-line,
.mat-grid-tile-footer .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-grid-tile-header .mat-line:nth-child(n+2),
.mat-grid-tile-footer .mat-line:nth-child(n+2) {
  font-size: 12px;
}
input.mat-input-element {
  margin-top: -0.0625em;
}
.mat-menu-item {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 400;
}
.mat-paginator,
.mat-paginator-page-size .mat-select-trigger {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 12px;
}
.mat-radio-button {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-select {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-select-trigger {
  height: 1.125em;
}
.mat-slide-toggle-content {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-slider-thumb-label-text {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 12px;
  font-weight: 500;
}
.mat-stepper-vertical, .mat-stepper-horizontal {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-step-label {
  font-size: 14px;
  font-weight: 400;
}
.mat-step-sub-label-error {
  font-weight: normal;
}
.mat-step-label-error {
  font-size: 14px;
}
.mat-step-label-selected {
  font-size: 14px;
  font-weight: 500;
}
.mat-tab-group {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-tab-label, .mat-tab-link {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 500;
}
.mat-toolbar,
.mat-toolbar h1,
.mat-toolbar h2,
.mat-toolbar h3,
.mat-toolbar h4,
.mat-toolbar h5,
.mat-toolbar h6 {
  font: 500 20px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0;
}
.mat-tooltip {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 10px;
  padding-top: 6px;
  padding-bottom: 6px;
}
.mat-tooltip-handset {
  font-size: 14px;
  padding-top: 8px;
  padding-bottom: 8px;
}
.mat-list-item {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-list-option {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-list-base .mat-list-item {
  font-size: 16px;
}
.mat-list-base .mat-list-item .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {
  font-size: 14px;
}
.mat-list-base .mat-list-option {
  font-size: 16px;
}
.mat-list-base .mat-list-option .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {
  font-size: 14px;
}
.mat-list-base .mat-subheader {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 500;
}
.mat-list-base[dense] .mat-list-item {
  font-size: 12px;
}
.mat-list-base[dense] .mat-list-item .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {
  font-size: 12px;
}
.mat-list-base[dense] .mat-list-option {
  font-size: 12px;
}
.mat-list-base[dense] .mat-list-option .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {
  font-size: 12px;
}
.mat-list-base[dense] .mat-subheader {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 12px;
  font-weight: 500;
}
.mat-option {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 16px;
}
.mat-optgroup-label {
  font: 500 14px/24px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-simple-snackbar {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
}
.mat-simple-snackbar-action {
  line-height: 1;
  font-family: inherit;
  font-size: inherit;
  font-weight: 500;
}
.mat-tree {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-tree-node,
.mat-nested-tree-node {
  font-weight: 400;
  font-size: 14px;
}
.mat-ripple {
  overflow: hidden;
  position: relative;
}
.mat-ripple:not(:empty) {
  transform: translateZ(0);
}
.mat-ripple.mat-ripple-unbounded {
  overflow: visible;
}
.mat-ripple-element {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);
  transform: scale(0);
}
.cdk-high-contrast-active .mat-ripple-element {
  display: none;
}
.cdk-visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  outline: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
}
.cdk-overlay-container, .cdk-global-overlay-wrapper {
  pointer-events: none;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
.cdk-overlay-container {
  position: fixed;
  z-index: 1000;
}
.cdk-overlay-container:empty {
  display: none;
}
.cdk-global-overlay-wrapper {
  display: flex;
  position: absolute;
  z-index: 1000;
}
.cdk-overlay-pane {
  position: absolute;
  pointer-events: auto;
  box-sizing: border-box;
  z-index: 1000;
  display: flex;
  max-width: 100%;
  max-height: 100%;
}
.cdk-overlay-backdrop {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  pointer-events: auto;
  -webkit-tap-highlight-color: transparent;
  transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
  opacity: 0;
}
.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
  opacity: 1;
}
.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
  opacity: 0.6;
}
.cdk-overlay-dark-backdrop {
  background: rgba(0, 0, 0, 0.32);
}
.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {
  opacity: 0;
}
.cdk-overlay-connected-position-bounding-box {
  position: absolute;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  min-width: 1px;
  min-height: 1px;
}
.cdk-global-scrollblock {
  position: fixed;
  width: 100%;
  overflow-y: scroll;
}
.mat-ripple-element {
  background-color: rgba(0, 0, 0, 0.1);
}
.mat-option {
  color: rgba(0, 0, 0, 0.87);
}
.mat-option:hover:not(.mat-option-disabled), .mat-option:focus:not(.mat-option-disabled) {
  background: rgba(0, 0, 0, 0.04);
}
.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {
  background: rgba(0, 0, 0, 0.04);
}
.mat-option.mat-active {
  background: rgba(0, 0, 0, 0.04);
  color: rgba(0, 0, 0, 0.87);
}
.mat-option.mat-option-disabled {
  color: rgba(0, 0, 0, 0.38);
}
.mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {
  color: #0868ac;
}
.mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {
  color: #4a4a4a;
}
.mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {
  color: #d50000;
}
.mat-optgroup-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-optgroup-disabled .mat-optgroup-label {
  color: rgba(0, 0, 0, 0.38);
}
.mat-pseudo-checkbox {
  color: rgba(0, 0, 0, 0.54);
}
.mat-pseudo-checkbox::after {
  color: #f3f3f3;
}
.mat-pseudo-checkbox-disabled {
  color: #b0b0b0;
}
.mat-primary .mat-pseudo-checkbox-checked,
.mat-primary .mat-pseudo-checkbox-indeterminate {
  background: #0868ac;
}
.mat-pseudo-checkbox-checked,
.mat-pseudo-checkbox-indeterminate,
.mat-accent .mat-pseudo-checkbox-checked,
.mat-accent .mat-pseudo-checkbox-indeterminate {
  background: #4a4a4a;
}
.mat-warn .mat-pseudo-checkbox-checked,
.mat-warn .mat-pseudo-checkbox-indeterminate {
  background: #d50000;
}
.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,
.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {
  background: #b0b0b0;
}
.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {
  background-color: #4a4a4a;
}
.mat-slide-toggle.mat-checked .mat-slide-toggle-bar {
  background-color: rgba(74, 74, 74, 0.54);
}
.mat-slide-toggle.mat-checked .mat-ripple-element {
  background-color: #4a4a4a;
}
.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {
  background-color: #0868ac;
}
.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {
  background-color: rgba(8, 104, 172, 0.54);
}
.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {
  background-color: #0868ac;
}
.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {
  background-color: #d50000;
}
.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {
  background-color: rgba(213, 0, 0, 0.54);
}
.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {
  background-color: #d50000;
}
.mat-slide-toggle:not(.mat-checked) .mat-ripple-element {
  background-color: black;
}
.mat-slide-toggle-thumb {
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
  background-color: #fafafa;
}
.mat-slide-toggle-bar {
  background-color: rgba(0, 0, 0, 0.38);
}
.mat-theme-loaded-marker {
  display: none;
}
.xpo-Card {
  background: white;
  border: 1px solid rgba(0, 0, 0, 0.12);
  color: rgba(0, 0, 0, 0.87);
}
.xpo-Button,
.xpo-Button .mat-button-toggle-button {
  text-transform: uppercase;
}
[mat-flat-button].mat-flat-button,
[mat-stroked-button].mat-stroked-button {
  border-radius: 2px;
  font-size: 1.143rem;
  font-weight: 500;
  height: 40px;
  line-height: 24px;
  padding: 8px 20px;
  min-width: auto;
  transition: color 200ms ease, background-color 200ms ease, border-color 200ms ease;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard {
  height: 40px;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {
  border-top-width: 2px;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-appearance-standard.mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-button,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard.mat-button-toggle,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-button {
  border-width: 2px;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-button,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-button {
  font-size: 1.143rem;
  height: 100%;
}
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard {
  border-width: 2px;
}
mat-button-toggle-group.mat-button-toggle-group {
  border-width: 0;
}
[mat-flat-button].mat-flat-button {
  border-style: solid;
  border-width: 2px;
  box-shadow: none !important;
  color: #ffffff;
}
[mat-flat-button].mat-flat-button {
  background-color: #1976d2;
  border-color: #1976d2;
}
[mat-flat-button].mat-flat-button:hover {
  background-color: #2196f3;
  border-color: #2196f3;
}
[mat-flat-button].mat-flat-button:focus, [mat-flat-button].mat-flat-button:active {
  background-color: #0d47a1;
  border-color: #0d47a1;
}
[mat-flat-button].mat-flat-button[disabled], [mat-flat-button].mat-flat-button[disabled]:active, [mat-flat-button].mat-flat-button[disabled]:hover, [mat-flat-button].mat-flat-button[disabled]:focus {
  background-color: #d8d8d8;
  border-color: #d8d8d8;
  color: #ffffff;
  cursor: not-allowed;
}
.mat-stroked-button {
  background-color: #ffffff;
  border-color: #1976d2;
  color: #0d47a1;
}
.mat-stroked-button:hover {
  background-color: #e4effa;
  border-color: #1976d2;
  color: #1976d2;
}
.mat-stroked-button:focus, .mat-stroked-button:active {
  background-color: #e4effa;
  border-color: #2196f3;
  color: #2196f3;
}
.mat-stroked-button[disabled], .mat-stroked-button[disabled]:active, .mat-stroked-button[disabled]:hover, .mat-stroked-button[disabled]:focus {
  background-color: #fafafa;
  border-color: #bdbdbd;
  color: #bdbdbd;
  cursor: not-allowed;
}
[mat-flat-button].mat-flat-button,
[mat-stroked-button].mat-stroked-button {
  align-items: center;
  display: inline-flex;
  justify-content: center;
}
[mat-flat-button].mat-flat-button.xpo-SmallButton,
[mat-stroked-button].mat-stroked-button.xpo-SmallButton {
  border-width: 1px;
  font-size: 1rem;
  height: 32px;
  padding: 4px 20px;
}
[mat-flat-button].mat-flat-button.xpo-SmallButton .mat-icon,
[mat-stroked-button].mat-stroked-button.xpo-SmallButton .mat-icon {
  font-size: 20px;
}
[mat-flat-button].mat-flat-button.xpo-SmallButton .mat-button-wrapper,
[mat-stroked-button].mat-stroked-button.xpo-SmallButton .mat-button-wrapper {
  line-height: 28px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton {
  height: 32px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton .mat-button-toggle, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton.mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton .mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton.mat-button-toggle {
  border-width: 1px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton .mat-button-toggle .mat-button-toggle-button, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-SmallButton.mat-button-toggle .mat-button-toggle-button,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton .mat-button-toggle .mat-button-toggle-button,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-SmallButton.mat-button-toggle .mat-button-toggle-button {
  font-size: 1rem;
  height: 100%;
}
[mat-flat-button].mat-flat-button.xpo-LargeButton,
[mat-stroked-button].mat-stroked-button.xpo-LargeButton,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-LargeButton,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-LargeButton {
  font-size: 1.428rem;
  font-weight: 500;
  height: 56px;
  line-height: normal;
  padding: 16px 20px;
}
[mat-flat-button].mat-flat-button.xpo-LargeButton .mat-button-toggle-button,
[mat-stroked-button].mat-stroked-button.xpo-LargeButton .mat-button-toggle-button,
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.xpo-LargeButton .mat-button-toggle-button,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.xpo-LargeButton .mat-button-toggle-button {
  font-size: 1.285rem;
  height: 100%;
}
.xpo-ActionButton {
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  color: #4a4a4a;
  height: 32px;
  width: 32px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
.xpo-ActionButton > .mat-icon {
  width: 20px;
  height: 20px;
  font-size: 20px;
}
.xpo-ActionButton:focus, .xpo-ActionButton:active {
  border: 1px solid #d8d8d8;
  color: #1976d2;
  outline: none;
}
.xpo-ActionButton:hover {
  color: #212121;
}
.xpo-ActionButton[disabled], .xpo-ActionButton[disabled]:active, .xpo-ActionButton[disabled]:hover, .xpo-ActionButton[disabled]:focus {
  background-color: #ffffff;
  border-color: #d8d8d8;
  color: #bdbdbd;
  cursor: not-allowed;
}
.mat-button-focus-overlay,
.mat-button-toggle-focus-overlay {
  opacity: 0 !important;
}
.cdk-overlay-container .cdk-global-overlay-wrapper.xpo-ApplicationSwitcher-dialog-wrapper {
  height: auto;
  max-height: 100%;
}
.cdk-overlay-container .cdk-global-overlay-wrapper.xpo-ApplicationSwitcher-dialog-wrapper .cdk-overlay-pane.xpo-ApplicationSwitcher-dialog {
  width: 100%;
  background-color: #ffffff;
  border-bottom: solid 1px #d8d8d8;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 100px;
}
.xpo-ApplicationSwitcherContent {
  overflow: auto;
}
.xpo-ApplicationSwitcherContent .xpo-ApplicationCategory .xpo-Application:last-of-type .xpo-Application-content:hover {
  border-bottom: none;
}
.mat-autocomplete-panel {
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-autocomplete-panel:not([class*=mat-elevation-z]) {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {
  background: white;
}
.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {
  color: rgba(0, 0, 0, 0.87);
}
.mat-autocomplete-panel-above:nth-child(1) {
  border-top: 1px solid #d8d8d8;
}
.mat-autocomplete-panel-above .mat-autocomplete-panel.mat-autocomplete-visible {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.mat-autocomplete-panel-above .mat-autocomplete-panel.mat-autocomplete-visible:last-of-type {
  border-bottom: 0;
}
.mat-form-field-suffix .mat-icon {
  cursor: pointer;
}
.mat-autocomplete-panel.mat-autocomplete-visible {
  border: 1px solid #d8d8d8;
  border-radius: 0;
  border-top: none;
  box-shadow: none;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option {
  border-bottom: 1px solid #d8d8d8;
  color: #000000;
  font-size: 14px;
  height: 30px;
  line-height: 1.429rem;
  padding: 0 8px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option:hover {
  background-color: #e4effa;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.mat-active {
  background: #e4effa;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option:last-of-type {
  border-bottom: 0;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option .mat-option-text {
  align-items: center;
  display: inline-flex;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option .xpo-Icon {
  margin-right: 4px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option--twoLines {
  height: 45px;
  line-height: 1.429rem;
  padding: 6px 8px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option--twoLines .mat-option-text {
  align-items: center;
  display: flex;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option--twoLines .mat-option-text .xpo-Select-twoLinesContainer {
  flex-grow: 1;
  margin-left: 0;
  overflow: hidden;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option--twoLines .mat-option-text .xpo-Select-twoLinesContainer span {
  overflow: hidden;
  text-overflow: ellipsis;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option.xpo-Option-hideDivider:not(:last-of-type) {
  border-bottom: none;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option .mat-icon {
  margin-right: 0;
}
.mat-autocomplete-panel.mat-autocomplete-visible .mat-option .xpo-icon {
  margin-right: 4px;
  vertical-align: middle;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-twoColumnsContainer {
  display: grid;
  grid-template-columns: 20% 80%;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-twoColumnsContainer span {
  flex: none;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-twoColumnsContainer span:first-of-type {
  margin-right: 4px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-twoColumnsContainer span:last-of-type {
  margin-left: 4px;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-threeColumnsContainer {
  display: grid;
  grid-template-columns: 33% 34% 33%;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-threeColumnsContainer span {
  margin: 0 4px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-threeColumnsContainer span:first-of-type {
  margin-left: 0;
}
.mat-autocomplete-panel.mat-autocomplete-visible .xpo-Select-threeColumnsContainer span:last-of-type {
  margin-right: 0;
}
.mat-icon.mat-badge-above:not(.xpo-Badge--important) {
  align-items: center;
  display: inline-flex;
  font-size: 20px;
  height: auto;
  width: auto;
}
.mat-icon.mat-badge-medium {
  color: #4a4a4a;
}
.mat-icon.mat-badge-medium .mat-badge-content {
  align-items: center;
  background-color: #4a4a4a;
  border: 1px solid #ffffff;
  border-radius: 2px;
  display: flex;
  font-size: 10px;
  font-weight: 600;
  height: 16px;
  justify-content: center;
  line-height: 16px;
  padding: 2px 3px;
  width: auto;
}
.mat-icon.mat-badge-medium.mat-badge-above .mat-badge-content {
  top: -9px;
}
.mat-icon.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -15px;
}
.mat-icon.mat-badge-medium.xpo-Badge--important.mat-badge-above .mat-badge-content {
  top: -8px;
}
.mat-icon.mat-badge-medium.xpo-Badge--important.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -28px;
}
.mat-icon.mat-badge-medium.xpo-Badge--important .mat-badge-content {
  background-color: #cc0000;
  border-radius: 10px;
  font-weight: 600;
  height: auto;
  line-height: 10px;
  padding: 4px 8px;
  width: auto;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot .mat-badge-content {
  border: none;
  border-radius: 10px;
  height: 10px;
  width: 10px;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -14px;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot.mat-badge-above .mat-badge-content {
  top: -1px;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--warning .mat-badge-content {
  background-color: #fbc02d;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--success .mat-badge-content {
  background-color: #4caf50;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--info .mat-badge-content {
  background-color: #0091ea;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--info .mat-badge-content {
  background-color: #0091ea;
}
.mat-icon.mat-badge-medium.xpo-BadgeDot--important .mat-badge-content {
  background-color: #d32f2f;
}
.mat-button-toggle-standalone,
.mat-button-toggle-group {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
.mat-button-toggle-group-appearance-standard {
  box-shadow: none;
}
.mat-button-toggle {
  color: rgba(0, 0, 0, 0.38);
}
.mat-button-toggle .mat-button-toggle-focus-overlay {
  background-color: rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-appearance-standard {
  color: rgba(0, 0, 0, 0.87);
  background: white;
}
.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {
  background-color: black;
}
.mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {
  border-left: solid 1px rgba(0, 0, 0, 0.12);
}
[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {
  border-left: none;
  border-right: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {
  border-left: none;
  border-right: none;
  border-top: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-checked {
  background-color: #e0e0e0;
  color: rgba(0, 0, 0, 0.54);
}
.mat-button-toggle-checked.mat-button-toggle-appearance-standard {
  color: rgba(0, 0, 0, 0.87);
}
.mat-button-toggle-disabled {
  color: rgba(0, 0, 0, 0.26);
  background-color: #eeeeee;
}
.mat-button-toggle-disabled.mat-button-toggle-appearance-standard {
  background: white;
}
.mat-button-toggle-disabled.mat-button-toggle-checked {
  background-color: #bdbdbd;
}
.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
.mat-button-toggle-group-appearance-standard {
  border: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-appearance-standard .mat-button-toggle-label-content {
  line-height: 48px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard {
  border-radius: 2px;
}
.mat-button-toggle-standalone:not(:last-child) {
  margin-right: 2px;
}
.mat-button-toggle.mat-button-toggle-standalone,
.mat-button-toggle {
  background-color: #ffffff;
  border-color: #1976d2;
  border-style: solid;
  color: #1976d2;
  font-weight: 500;
  transition: color 200ms ease, background-color 200ms ease;
}
.mat-button-toggle.mat-button-toggle-standalone:hover, .mat-button-toggle.mat-button-toggle-standalone:focus,
.mat-button-toggle:hover,
.mat-button-toggle:focus {
  background-color: #e4effa;
}
.mat-button-toggle.mat-button-toggle-standalone:active,
.mat-button-toggle:active {
  background-color: #1976d2;
  color: #ffffff;
}
.mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-checked,
.mat-button-toggle.mat-button-toggle-checked {
  background-color: #1976d2;
  color: #ffffff;
}
.mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-disabled,
.mat-button-toggle.mat-button-toggle-disabled {
  background-color: #f6f6f6;
  color: #bdbdbd;
  outline: none;
}
.mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-disabled .mat-button-toggle-button:hover,
.mat-button-toggle.mat-button-toggle-disabled .mat-button-toggle-button:hover {
  cursor: not-allowed;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-label-content, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-label-content,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-label-content,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard .mat-button-toggle-label-content {
  display: flex;
  line-height: inherit;
  padding: 4px 20px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-label-content > .mat-icon, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard .mat-button-toggle-label-content > .mat-icon,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-button-toggle-label-content > .mat-icon,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard .mat-button-toggle-label-content > .mat-icon {
  width: 20px;
  height: 20px;
  font-size: 20px;
}
mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle, mat-button-toggle-group.mat-button-toggle-group.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-standalone.mat-button-toggle-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle,
mat-button-toggle.mat-button-toggle-standalone.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {
  border-top-color: #1976d2;
  border-top-style: solid;
}
.mat-button-toggle-standalone.mat-button-toggle-disabled.mat-button-toggle-appearance-standard {
  border-color: #bdbdbd;
}
.mat-checkbox-frame {
  border-color: rgba(0, 0, 0, 0.54);
}
.mat-checkbox-checkmark {
  fill: #f3f3f3;
}
.mat-checkbox-checkmark-path {
  stroke: #f3f3f3 !important;
}
.mat-checkbox-mixedmark {
  background-color: #f3f3f3;
}
.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .mat-checkbox-checked.mat-primary .mat-checkbox-background {
  background-color: #0868ac;
}
.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .mat-checkbox-checked.mat-accent .mat-checkbox-background {
  background-color: #4a4a4a;
}
.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .mat-checkbox-checked.mat-warn .mat-checkbox-background {
  background-color: #d50000;
}
.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {
  background-color: #b0b0b0;
}
.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {
  border-color: #b0b0b0;
}
.mat-checkbox-disabled .mat-checkbox-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-checkbox .mat-ripple-element {
  background-color: black;
}
.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,
.mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {
  background: #0868ac;
}
.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,
.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {
  background: #4a4a4a;
}
.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,
.mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {
  background: #d50000;
}
.mat-checkbox-background {
  transition: none !important;
}
.mat-checkbox-indeterminate.mat-accent .mat-checkbox-inner-container {
  border: 1px solid #000000;
  border-radius: 2px;
}
.mat-checkbox-indeterminate.mat-accent.mat-checkbox-disabled .mat-checkbox-inner-container {
  border: 1px solid #bdbdbd;
}
.mat-checkbox-indeterminate.mat-accent.mat-checkbox-disabled .mat-checkbox-inner-container .mat-checkbox-frame {
  border: 1px solid transparent;
}
.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background {
  background: #000000;
  border: 2px solid #000000;
  height: 8px;
  margin: 3px 3px;
  padding: 1px 2px 3px 1px;
  width: 8px;
}
.mat-checkbox {
  border: 1px solid transparent;
  display: inline-flex;
  margin: 3px 4px;
  padding: 0 4px;
}
.mat-checkbox.cdk-keyboard-focused {
  border: 1px dashed #d8d8d8;
}
.mat-checkbox.xpo-CheckboxGroup-selectAll {
  margin: 3px 8px;
}
.mat-checkbox .mat-checkbox-layout {
  align-items: center;
}
.mat-checkbox.mat-checkbox-label-before .mat-checkbox-inner-container {
  margin-left: 4px;
}
.mat-checkbox .mat-checkbox-inner-container {
  align-self: flex-start;
  margin: 4px 4px 0 0;
}
.mat-checkbox-ripple {
  display: none;
}
.mat-checkbox-background .mat-checkbox-checkmark-path {
  stroke-width: 3.13333px;
}
.mat-checkbox .mat-checkbox-frame {
  border: none;
}
.mat-checkbox.mat-checkbox-disabled {
  cursor: not-allowed;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-label {
  color: #333333;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-mixedmark {
  background-color: #bdbdbd;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-checkmark {
  fill: #f6f6f6;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-background {
  background-color: #f6f6f6;
  border: 1px solid #bdbdbd;
}
.mat-checkbox-checked .mat-checkbox.mat-checkbox-disabled .mat-checkbox-background {
  background-color: #bdbdbd;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-background .mat-checkbox-checkmark-path {
  stroke: #ffffff !important;
}
.mat-checkbox.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {
  background-color: #d8d8d8;
}
.mat-checkbox.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-mixedmark {
  background-color: #f6f6f6;
}
.mat-checkbox.mat-checkbox-disabled .mat-checkbox-frame {
  border-color: #d8d8d8;
}
.mat-checkbox.mat-checkbox-checked .mat-checkbox-background {
  background-color: #000000;
}
.mat-checkbox.mat-checkbox-checked.mat-checkbox-disabled .mat-checkbox-background {
  background-color: #bdbdbd;
}
.mat-checkbox:not(.mat-checkbox-disabled) .mat-checkbox-inner-container:hover {
  background-color: transparent;
}
.mat-checkbox:not(.mat-checkbox-indeterminate) .mat-checkbox-frame {
  border: 1px solid #d8d8d8;
}
.mat-checkbox.mat-checkbox-indeterminate .mat-checkbox-background {
  background-color: #000000;
}
.mat-chip.mat-standard-chip {
  background-color: #e0e0e0;
  color: rgba(0, 0, 0, 0.87);
}
.mat-chip.mat-standard-chip .mat-chip-remove {
  color: rgba(0, 0, 0, 0.87);
  opacity: 0.4;
}
.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);
}
.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {
  opacity: 0.54;
}
.mat-chip.mat-standard-chip.mat-chip-disabled {
  opacity: 0.4;
}
.mat-chip.mat-standard-chip::after {
  background: black;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {
  background-color: #0868ac;
  color: white;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {
  color: white;
  opacity: 0.4;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.1);
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {
  background-color: #d50000;
  color: white;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {
  color: white;
  opacity: 0.4;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.1);
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {
  background-color: #4a4a4a;
  color: white;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {
  color: white;
  opacity: 0.4;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.1);
}
mat-chip.mat-chip {
  font-weight: 500;
  font-size: 1rem;
  line-height: 24px;
  min-height: 24px;
}
mat-chip.mat-chip .mat-icon {
  height: 1rem;
  width: 1rem;
}
mat-chip.mat-chip.xpo-Chip--small {
  font-size: 0.875rem;
  line-height: 16px;
  min-height: 16px;
}
mat-chip.mat-chip.xpo-Chip--small .mat-icon {
  height: 0.875rem;
  width: 0.875rem;
}
mat-chip.mat-chip.mat-standard-chip {
  background-color: #d8d8d8;
  border-radius: 16px;
  padding-left: 8px;
  padding-right: 8px;
}
mat-chip.mat-chip.mat-standard-chip:not(.mat-chip-disabled):focus, mat-chip.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {
  box-shadow: none;
}
mat-chip.mat-chip.mat-standard-chip::after {
  opacity: 0;
}
mat-chip.mat-chip.mat-standard-chip .mat-icon {
  font-size: inherit;
  margin-right: 4px;
}
mat-chip.mat-chip.mat-standard-chip .mat-icon.mat-chip-trailing-icon {
  height: auto;
  margin-left: 4px;
  margin-right: 0;
  width: auto;
}
mat-chip.mat-chip.xpo-Chip {
  display: flex;
  justify-content: center;
}
mat-chip.mat-chip.xpo-Chip--unread, mat-chip.mat-chip.xpo-Chip--critical {
  background: #d50000;
  color: #ffffff;
}
mat-chip.mat-chip.xpo-Chip--high {
  background: #ff9957;
}
mat-chip.mat-chip.xpo-Chip--medium {
  background: #ffba00;
}
mat-chip.mat-chip.xpo-Chip--green {
  background-color: #11a63b;
  color: #ffffff;
}
mat-chip.mat-chip.xpo-Chip--orange {
  background-color: #ff9957;
}
mat-chip.mat-chip.xpo-Chip--red {
  background-color: #d50000;
  color: #ffffff;
}
mat-chip.mat-chip.xpo-Chip--yellow {
  background-color: #ffba00;
}
mat-chip.mat-chip.xpo-BadgeChip.mat-chip {
  font-size: 10px;
  font-weight: 600;
  min-height: 20px;
}
mat-chip.mat-chip.xpo-BadgeChip--negative.mat-standard-chip.mat-chip {
  background-color: #fceeeb;
  border: 1px solid #fceeeb;
  color: #dd2c00;
}
mat-chip.mat-chip.xpo-BadgeChip--positive.mat-standard-chip.mat-chip {
  background-color: #f1f9f1;
  border: 1px solid #f1f9f1;
  color: #4caf50;
}
.xpo-ContextualHeader-item:first-child::before, .xpo-HeaderArrow + .xpo-ContextualHeader-item::before {
  display: none;
}
.xpo-ContextualHeader .xpo-HeaderItems:first-child .xpo-HeaderItem:first-child::before,
.xpo-ContextualHeader .xpo-HeaderArrow + .xpo-HeaderItems .xpo-HeaderItem:first-child::before {
  display: none;
}
.mat-calendar-arrow {
  border-top-color: rgba(0, 0, 0, 0.54);
}
.mat-datepicker-toggle,
.mat-datepicker-content .mat-calendar-next-button,
.mat-datepicker-content .mat-calendar-previous-button {
  color: rgba(0, 0, 0, 0.54);
}
.mat-calendar-table-header {
  color: rgba(0, 0, 0, 0.38);
}
.mat-calendar-table-header-divider::after {
  background: rgba(0, 0, 0, 0.12);
}
.mat-calendar-body-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-calendar-body-cell-content,
.mat-date-range-input-separator {
  color: rgba(0, 0, 0, 0.87);
  border-color: transparent;
}
.mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  color: rgba(0, 0, 0, 0.38);
}
.mat-form-field-disabled .mat-date-range-input-separator {
  color: rgba(0, 0, 0, 0.38);
}
.mat-calendar-body-in-preview {
  color: rgba(0, 0, 0, 0.24);
}
.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  border-color: rgba(0, 0, 0, 0.18);
}
.mat-calendar-body-in-range::before {
  background: rgba(8, 104, 172, 0.2);
}
.mat-calendar-body-comparison-identical,
.mat-calendar-body-in-comparison-range::before {
  background: rgba(249, 171, 0, 0.2);
}
.mat-calendar-body-comparison-bridge-start::before,
[dir=rtl] .mat-calendar-body-comparison-bridge-end::before {
  background: linear-gradient(to right, rgba(8, 104, 172, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-calendar-body-comparison-bridge-end::before,
[dir=rtl] .mat-calendar-body-comparison-bridge-start::before {
  background: linear-gradient(to left, rgba(8, 104, 172, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,
.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {
  background: #a8dab5;
}
.mat-calendar-body-comparison-identical.mat-calendar-body-selected,
.mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {
  background: #46a35e;
}
.mat-calendar-body-selected {
  background-color: #0868ac;
  color: white;
}
.mat-calendar-body-disabled > .mat-calendar-body-selected {
  background-color: rgba(8, 104, 172, 0.4);
}
.mat-calendar-body-today.mat-calendar-body-selected {
  box-shadow: inset 0 0 0 1px white;
}
.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  background-color: rgba(8, 104, 172, 0.3);
}
.mat-datepicker-content {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
  background-color: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-in-range::before {
  background: rgba(74, 74, 74, 0.2);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range::before {
  background: rgba(249, 171, 0, 0.2);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start::before,
.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end::before {
  background: linear-gradient(to right, rgba(74, 74, 74, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end::before,
.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start::before {
  background: linear-gradient(to left, rgba(74, 74, 74, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {
  background: #a8dab5;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,
.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {
  background: #46a35e;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-selected {
  background-color: #4a4a4a;
  color: white;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {
  background-color: rgba(74, 74, 74, 0.4);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {
  box-shadow: inset 0 0 0 1px white;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  background-color: rgba(74, 74, 74, 0.3);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-in-range::before {
  background: rgba(213, 0, 0, 0.2);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range::before {
  background: rgba(249, 171, 0, 0.2);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start::before,
.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end::before {
  background: linear-gradient(to right, rgba(213, 0, 0, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end::before,
.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start::before {
  background: linear-gradient(to left, rgba(213, 0, 0, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {
  background: #a8dab5;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,
.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {
  background: #46a35e;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-selected {
  background-color: #d50000;
  color: white;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {
  background-color: rgba(213, 0, 0, 0.4);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {
  box-shadow: inset 0 0 0 1px white;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  background-color: rgba(213, 0, 0, 0.3);
}
.mat-datepicker-content-touch {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mat-datepicker-toggle-active {
  color: #0868ac;
}
.mat-datepicker-toggle-active.mat-accent {
  color: #4a4a4a;
}
.mat-datepicker-toggle-active.mat-warn {
  color: #d50000;
}
.mat-date-range-input-inner[disabled] {
  color: rgba(0, 0, 0, 0.38);
}
.xpo-DatePicker .mat-datepicker-toggle {
  display: flex;
}
.xpo-DatePicker .mat-datepicker-toggle .mat-icon-button {
  height: 16px;
  margin: 0;
  width: 16px;
}
.xpo-DatePicker .mat-datepicker-toggle .mat-icon-button .mat-button-wrapper {
  display: flex;
}
.xpo-DatePicker .mat-datepicker-toggle .mat-icon-button .mat-button-wrapper .mat-icon {
  font-size: 16px;
  height: 16px;
  line-height: 16px;
  width: 16px;
}
.xpo-DatePicker .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix {
  min-width: 128px;
}
.xpo-DatePicker .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-suffix {
  margin-right: 4px;
}
.xpo-DatePicker--active .mat-form-field-wrapper .mat-form-field-flex {
  border-color: #000000;
}
.mat-datepicker-popup .mat-datepicker-content {
  border: solid 1px #000000;
  border-radius: 0;
  margin-top: -1px;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar {
  height: 250px;
  width: 226px;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-header {
  padding-top: 0;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-controls {
  align-items: center;
  height: 30px;
  justify-content: space-between;
  margin: 8px 0;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-period-button {
  color: #000000;
  font-size: 1rem;
  font-weight: 500;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-previous-button, .mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-next-button {
  height: 16px;
  width: 16px;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-previous-button::after, .mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-next-button::after {
  border-color: #000000;
  border-top-width: 3px;
  margin: 0;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-previous-button::after {
  border-left-width: 3px;
  transform: scale(0.5305) translateX(3px) rotate(-45deg);
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-next-button::after {
  border-right-width: 3px;
  transform: scale(0.5305) translateX(-3px) rotate(45deg);
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-table-header {
  color: #000000;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-table-header th {
  font-size: 1rem;
  font-weight: 500;
  padding: 0;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-table-header-divider {
  display: none;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-label {
  padding: 0 !important;
  visibility: hidden;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-cell:hover .mat-calendar-body-cell-content {
  background-color: #e8f5fe;
  border-color: transparent;
  color: #000000;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-cell-content {
  background-color: #fafafa;
  color: #000000;
  font-size: 1rem;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-today {
  border-color: #1976d2;
  color: #1976d2;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-selected {
  background-color: #1976d2;
  border-color: #1976d2;
  color: #ffffff;
  font-weight: 500;
}
.mat-datepicker-popup .mat-datepicker-content .xpo-DatePicker-calendar.mat-calendar .mat-calendar-body-selected.mat-calendar-body-today {
  box-shadow: none;
}
.mat-datepicker-popup .mat-datepicker-content mat-year-view .mat-calendar-table .mat-calendar-body-cell-content {
  border-radius: 0;
}
.mat-datepicker-popup .mat-datepicker-content mat-multi-year-view .mat-calendar-table {
  height: 205px;
}
.mat-datepicker-popup .mat-datepicker-content mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell-content {
  border-radius: 0;
  height: 30px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input {
  margin-bottom: 16px;
  margin-top: 24px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-form-field-flex {
  align-items: center;
  padding-top: 0;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder .mat-form-field-label {
  font-size: 1rem;
  letter-spacing: normal;
  opacity: 0.5;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder .mat-form-field-label-wrapper {
  left: 9px;
  overflow: visible;
  top: -12px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder.mat-form-field-should-float .mat-form-field-label {
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-weight: normal;
  letter-spacing: inherit;
  opacity: 1;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy.mat-form-field-invalid .mat-form-field-flex, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard.mat-form-field-invalid .mat-form-field-flex {
  border-color: #d50000;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-form-field-wrapper, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-form-field-wrapper {
  height: unset;
  line-height: 16px;
  padding: 0;
  top: 0;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-form-field-subscript-wrapper {
  margin: 0;
  position: relative;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-hint, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-hint {
  font-size: 0.875rem;
  margin-top: 8px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-error, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-error {
  display: flex;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 16px;
  margin-top: 8px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-error .mat-icon, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-error .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: auto;
  line-height: 16px;
  margin-right: 4px;
  width: auto;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-legacy .mat-form-field-underline, mat-form-field.mat-form-field-type-xpo-date-range-input.mat-form-field-appearance-standard .mat-form-field-underline {
  display: none;
}
mat-form-field.mat-form-field-type-xpo-date-range-input:not(.mat-form-field-has-label) {
  margin-top: 0;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-focused .mat-form-field-flex {
  border: 1px solid #000000;
}
mat-form-field.mat-form-field-type-xpo-date-range-input.mat-focused .mat-form-field-wrapper {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-flex {
  align-items: center;
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  display: flex;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-flex .mat-form-field-suffix {
  margin-right: 4px;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-flex .mat-form-field-suffix .mat-icon-button {
  height: auto;
  width: auto;
}
mat-form-field.mat-form-field-type-xpo-date-range-input .mat-form-field-flex .mat-form-field-infix {
  align-items: center;
  border: 0;
  display: flex;
  padding: 0;
  width: 208px;
}
.xpo-DateRangeInput-separator {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.cdk-overlay-pane.xpo-DateRangePicker-popup {
  margin-bottom: -1px;
  margin-top: -1px;
}
.mat-dialog-container {
  box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
mat-dialog-container.mat-dialog-container {
  border-radius: 0;
}
mat-dialog-container.mat-dialog-container .xpo-Dialog-container {
  display: flex;
  flex-direction: column;
  height: 100%;
}
mat-dialog-container.mat-dialog-container [mat-dialog-title].mat-dialog-title {
  color: #000000;
  display: flex;
  flex-direction: row;
  flex-shrink: 0;
  font-size: 1.714rem;
  line-height: 28px;
  font-weight: 500;
  justify-content: space-between;
  margin: 0 24px;
  padding-bottom: 12px;
  padding-top: 24px;
}
mat-dialog-container.mat-dialog-container [mat-dialog-title].mat-dialog-title:not(.xpo-ConfirmDialog-header) {
  border-bottom: 1px solid #d8d8d8;
}
mat-dialog-container.mat-dialog-container [mat-dialog-content].mat-dialog-content,
mat-dialog-container.mat-dialog-container mat-dialog-content.mat-dialog-content {
  color: #333333;
  font-size: 1.143rem;
  line-height: 24px;
  margin: 0;
  margin-bottom: auto;
  overflow: auto;
  padding: 12px 24px 24px;
}
mat-dialog-container.mat-dialog-container [mat-dialog-content].mat-dialog-content p:not(:last-of-type),
mat-dialog-container.mat-dialog-container mat-dialog-content.mat-dialog-content p:not(:last-of-type) {
  margin-bottom: 24px;
}
mat-dialog-container.mat-dialog-container [mat-dialog-actions].mat-dialog-actions,
mat-dialog-container.mat-dialog-container mat-dialog-actions.mat-dialog-actions {
  border-top: 1px solid #d8d8d8;
  flex-wrap: nowrap;
  justify-content: space-between;
  margin: 0 24px;
  min-height: auto;
  padding: 24px 0 28px;
}
mat-dialog-container.mat-dialog-container [mat-dialog-actions].mat-dialog-actions .xpo-ButtonGroup > .mat-button-base,
mat-dialog-container.mat-dialog-container mat-dialog-actions.mat-dialog-actions .xpo-ButtonGroup > .mat-button-base {
  margin-left: 0;
}
.mat-expansion-panel {
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-expansion-panel:not([class*=mat-elevation-z]) {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mat-action-row {
  border-top-color: rgba(0, 0, 0, 0.12);
}
.mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {
  background: rgba(0, 0, 0, 0.04);
}
@media (hover: none) {
  .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {
    background: white;
  }
}
.mat-expansion-panel-header-title {
  color: rgba(0, 0, 0, 0.87);
}
.mat-expansion-panel-header-description,
.mat-expansion-indicator::after {
  color: rgba(0, 0, 0, 0.54);
}
.mat-expansion-panel-header[aria-disabled=true] {
  color: rgba(0, 0, 0, 0.26);
}
.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,
.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {
  color: inherit;
}
.mat-expansion-panel-header {
  height: 48px;
}
.mat-expansion-panel-header.mat-expanded {
  height: 64px;
}
.mat-accordion > .mat-expansion-panel,
.mat-expansion-panel {
  margin: 0.1px;
}
.mat-accordion > .mat-expansion-panel, .mat-accordion > .mat-expansion-panel:not([class*=mat-elevation-z]),
.mat-expansion-panel,
.mat-expansion-panel:not([class*=mat-elevation-z]) {
  border-radius: 0;
  box-shadow: none;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-header,
.mat-expansion-panel .mat-expansion-panel-header {
  padding: 8px;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-header .mat-content::before,
.mat-expansion-panel .mat-expansion-panel-header .mat-content::before {
  font-family: "Material Icons";
  font-size: 24px;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-header.mat-expanded > .mat-content::before,
.mat-expansion-panel .mat-expansion-panel-header.mat-expanded > .mat-content::before {
  content: "remove";
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-header:not(.mat-expanded) > .mat-content::before,
.mat-expansion-panel .mat-expansion-panel-header:not(.mat-expanded) > .mat-content::before {
  content: "add";
}
.mat-accordion > .mat-expansion-panel .mat-icon,
.mat-expansion-panel .mat-icon {
  font-size: 20px;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-body,
.mat-expansion-panel .mat-expansion-panel-body {
  padding: 8px 39px 8px;
  padding-bottom: 8px;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-body p,
.mat-expansion-panel .mat-expansion-panel-body p {
  font-size: 14px;
}
.mat-accordion > .mat-expansion-panel .mat-expansion-panel-content .mat-cell > .mat-icon,
.mat-expansion-panel .mat-expansion-panel-content .mat-cell > .mat-icon {
  margin-right: 8px;
}
.mat-accordion > .mat-expansion-panel .mat-content,
.mat-expansion-panel .mat-content {
  align-items: center;
  line-height: 24px;
}
.mat-accordion > .mat-expansion-panel .mat-content .mat-expansion-panel-header-title,
.mat-expansion-panel .mat-content .mat-expansion-panel-header-title {
  margin-right: 0;
  padding: 8px 10px;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap),
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) {
  border-bottom: 1px solid #d8d8d8;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header,
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header {
  font-size: 1.143rem;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header:not([aria-disabled=true]) .mat-expansion-panel-header-title,
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header:not([aria-disabled=true]) .mat-expansion-panel-header-title {
  color: #000000;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header:not([aria-disabled=true]) .mat-content::before,
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header:not([aria-disabled=true]) .mat-content::before {
  color: #424242;
}
.mat-accordion > .mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header[aria-disabled=true],
.mat-expansion-panel:not(.xpo-ExpansionPanelDark--wrap) mat-expansion-panel-header.mat-expansion-panel-header[aria-disabled=true] {
  color: #d8d8d8;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap {
  margin-bottom: 8px;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap:not(.mat-expanded),
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap:not(.mat-expanded) {
  border: 1px solid #d8d8d8;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap.mat-expanded .mat-expansion-panel-content,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap.mat-expanded .mat-expansion-panel-content {
  border: 1px solid #d8d8d8;
  border-top: none;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header {
  padding: 0;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header[aria-disabled=true] .mat-content::before,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header[aria-disabled=true] .mat-content::before {
  color: #f6f6f6 !important;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header[aria-disabled=true] .mat-content .mat-expansion-panel-header-title,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header[aria-disabled=true] .mat-content .mat-expansion-panel-header-title {
  color: #d8d8d8;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content::before,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content::before {
  background-color: #333333;
  color: #ffffff;
  margin-right: 0;
  padding: 8px;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content {
  background-color: #4a4a4a;
  display: inline-flex;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content > .mat-expansion-panel-header-title,
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content .mat-expansion-panel-header-description,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content > .mat-expansion-panel-header-title,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header.mat-expanded .mat-content .mat-expansion-panel-header-description {
  color: #ffffff;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header:not(.mat-expanded) .mat-content,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header:not(.mat-expanded) .mat-content {
  background-color: #f6f6f6;
  color: #171717;
  display: inline-flex;
}
.mat-accordion > .mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header:not(.mat-expanded) .mat-content::before,
.mat-expansion-panel.xpo-ExpansionPanelDark--wrap .mat-expansion-panel-header:not(.mat-expanded) .mat-content::before {
  background-color: #d8d8d8;
  color: #333333;
  margin-right: 0;
  padding: 8px;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header ::before,
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-icon,
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-title,
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-description,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header ::before,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-icon,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-title,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-description {
  align-items: center;
  display: flex;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header ::before,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header ::before {
  margin-right: 8px;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-title,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-title {
  font-size: 1.143rem;
  font-weight: 500;
  letter-spacing: 0.3px;
  line-height: 1.143;
  flex-grow: 0;
  line-height: 24px;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-description,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .mat-expansion-panel-header-description {
  font-size: 0.875rem;
  line-height: 16px;
  flex-grow: 0;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .xpo-StatusIndicator:not(:first-of-type),
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .xpo-StatusIndicator:not(:first-of-type) {
  margin-left: 8px;
}
.mat-accordion > .mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .xpo-StatusIndicator-tag,
.mat-expansion-panel mat-expansion-panel-header.mat-expansion-panel-header .xpo-StatusIndicator-tag {
  font-size: 10px;
}
.mat-accordion > .mat-expansion-panel.mat-expanded.mat-expansion-panel-spacing,
.mat-expansion-panel.mat-expanded.mat-expansion-panel-spacing {
  margin: 0;
}
.mat-accordion > .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover,
.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover {
  background: none;
}
.mat-accordion mat-expansion-panel.mat-expansion-panel:last-of-type {
  border-radius: 0;
}
.mat-form-field-label {
  color: rgba(0, 0, 0, 0.6);
}
.mat-hint {
  color: rgba(0, 0, 0, 0.6);
}
.mat-form-field.mat-focused .mat-form-field-label {
  color: #0868ac;
}
.mat-form-field.mat-focused .mat-form-field-label.mat-accent {
  color: #4a4a4a;
}
.mat-form-field.mat-focused .mat-form-field-label.mat-warn {
  color: #d50000;
}
.mat-focused .mat-form-field-required-marker {
  color: #4a4a4a;
}
.mat-form-field-ripple {
  background-color: rgba(0, 0, 0, 0.87);
}
.mat-form-field.mat-focused .mat-form-field-ripple {
  background-color: #0868ac;
}
.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {
  background-color: #4a4a4a;
}
.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {
  background-color: #d50000;
}
.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {
  color: #0868ac;
}
.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {
  color: #4a4a4a;
}
.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {
  color: #d50000;
}
.mat-form-field.mat-form-field-invalid .mat-form-field-label {
  color: #d50000;
}
.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,
.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {
  color: #d50000;
}
.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,
.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {
  background-color: #d50000;
}
.mat-error {
  color: #d50000;
}
.mat-form-field-appearance-legacy .mat-form-field-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-form-field-appearance-legacy .mat-hint {
  color: rgba(0, 0, 0, 0.54);
}
.mat-form-field-appearance-legacy .mat-form-field-underline {
  background-color: rgba(0, 0, 0, 0.42);
}
.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);
  background-size: 4px 100%;
  background-repeat: repeat-x;
}
.mat-form-field-appearance-standard .mat-form-field-underline {
  background-color: rgba(0, 0, 0, 0.42);
}
.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);
  background-size: 4px 100%;
  background-repeat: repeat-x;
}
.mat-form-field-appearance-fill .mat-form-field-flex {
  background-color: rgba(0, 0, 0, 0.04);
}
.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {
  background-color: rgba(0, 0, 0, 0.02);
}
.mat-form-field-appearance-fill .mat-form-field-underline::before {
  background-color: rgba(0, 0, 0, 0.42);
}
.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {
  color: rgba(0, 0, 0, 0.38);
}
.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {
  background-color: transparent;
}
.mat-form-field-appearance-outline .mat-form-field-outline {
  color: rgba(0, 0, 0, 0.12);
}
.mat-form-field-appearance-outline .mat-form-field-outline-thick {
  color: rgba(0, 0, 0, 0.87);
}
.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {
  color: #0868ac;
}
.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {
  color: #4a4a4a;
}
.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {
  color: #d50000;
}
.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {
  color: #d50000;
}
.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {
  color: rgba(0, 0, 0, 0.38);
}
.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {
  color: rgba(0, 0, 0, 0.06);
}
mat-form-field.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float.mat-form-field-has-label .mat-form-field-label {
  transform: none;
  top: 0;
  font-size: 14px;
  color: #4a4a4a !important;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-weight: normal;
  letter-spacing: normal;
  overflow: visible;
  line-height: 16px;
}
mat-form-field.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float.mat-form-field-has-label .mat-form-field-label mat-label {
  align-items: center;
  display: inline-flex;
}
mat-form-field.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float.mat-form-field-has-label .mat-form-field-label mat-label .mat-icon {
  padding-left: 8px;
}
mat-form-field.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float.mat-form-field-has-label .mat-form-field-label-wrapper {
  left: 0;
  top: -24px;
}
mat-form-field.mat-form-field-type-mat-input {
  margin-bottom: 16px;
  margin-top: 24px;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-form-field-flex {
  align-items: center;
  padding-top: 0;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder .mat-form-field-label {
  font-size: 1rem;
  letter-spacing: normal;
  opacity: 0.5;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder .mat-form-field-label-wrapper {
  left: 9px;
  overflow: visible;
  top: -12px;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.mat-form-field-hide-placeholder.mat-form-field-should-float .mat-form-field-label {
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.285rem;
  font-weight: normal;
  letter-spacing: inherit;
  opacity: 1;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.mat-form-field-invalid .mat-form-field-flex, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard.mat-form-field-invalid .mat-form-field-flex {
  border-color: #d50000;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-form-field-wrapper, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-form-field-wrapper {
  height: unset;
  line-height: 16px;
  padding: 0;
  top: 0;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.ngx-FormField--inline,
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.ngx-FormField--inline .mat-form-field-wrapper, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard.ngx-FormField--inline,
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard.ngx-FormField--inline .mat-form-field-wrapper {
  margin-bottom: 0;
  margin-top: 0;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-form-field-subscript-wrapper {
  margin: 0;
  position: relative;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-hint, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-hint {
  font-size: 0.875rem;
  margin-top: 8px;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-error, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-error {
  display: flex;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 16px;
  margin-top: 8px;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-error .mat-icon, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-error .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: auto;
  line-height: 16px;
  margin-right: 4px;
  width: auto;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy.ngx-FormField--borderless .mat-form-field-flex, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard.ngx-FormField--borderless .mat-form-field-flex {
  border: none;
  box-shadow: unset;
}
mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-legacy .mat-form-field-underline, mat-form-field.mat-form-field-type-mat-input.mat-form-field-appearance-standard .mat-form-field-underline {
  display: none;
}
mat-form-field.mat-form-field-type-mat-input:not(.mat-form-field-has-label) {
  margin-top: 0;
}
mat-form-field.mat-form-field-type-mat-input.mat-focused .mat-form-field-flex {
  border: 1px solid #000000;
}
mat-form-field.mat-form-field-type-mat-input.mat-focused .mat-form-field-wrapper {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex {
  align-items: center;
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  display: flex;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-prefix,
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-suffix {
  display: flex;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-prefix .mat-icon,
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-suffix .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: 16px;
  justify-content: center;
  line-height: 16px;
  width: 16px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-prefix .xpo-BusyLoader,
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-suffix .xpo-BusyLoader {
  width: 24px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-prefix {
  margin-left: 6px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-suffix {
  margin-right: 6px;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix {
  align-items: center;
  border: 0;
  display: flex;
  padding: 0;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix .mat-icon + .mat-input-element {
  padding-left: 0;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix .mat-input-element {
  color: #000000;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  margin: 0;
  padding: 6px 8px;
  resize: none;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-flex .mat-form-field-infix .mat-input-element:disabled {
  background-color: #f3f3f3;
  color: #000000;
  font-style: italic;
  font-weight: 400;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-label {
  color: #333333 !important;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.428rem;
  font-weight: normal;
  letter-spacing: normal;
  overflow: visible;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-label mat-label {
  align-items: center;
  display: inline-flex;
}
mat-form-field.mat-form-field-type-mat-input .mat-form-field-label mat-label .mat-icon {
  padding-left: 8px;
}
mat-form-field .xpo-Label--wrap .mat-checkbox-layout,
mat-form-field .xpo-Label--wrap .mat-radio-label {
  white-space: unset;
}
.xpo-Form--inline {
  align-items: flex-end;
  display: inline-flex;
  flex-wrap: wrap;
  width: 100%;
}
.xpo-Form--inline .mat-button-base,
.xpo-Form--inline .mat-button-toggle-group,
.xpo-Form--inline .mat-form-field,
.xpo-Form--inline .mat-form-field-type-mat-input:not(.mat-form-field-has-label) {
  margin-bottom: 16px;
  margin-right: 8px;
  width: auto;
}
.xpo-Form--inline > .mat-button-toggle {
  margin-bottom: 16px;
}
.xpo-Form--inline > .mat-button-toggle:last-of-type {
  margin-right: 8px;
}
.mat-form-field-type-mat-native-select .mat-form-field-infix::after {
  color: rgba(0, 0, 0, 0.54);
}
.mat-input-element:disabled,
.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {
  color: rgba(0, 0, 0, 0.38);
}
.mat-input-element {
  caret-color: #0868ac;
}
.mat-input-element::-moz-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element:-ms-input-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element::placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element::-moz-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element::-webkit-input-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element:-ms-input-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-form-field.mat-accent .mat-input-element {
  caret-color: #4a4a4a;
}
.mat-form-field.mat-warn .mat-input-element,
.mat-form-field-invalid .mat-input-element {
  caret-color: #d50000;
}
.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {
  color: #d50000;
}
input.mat-input-element {
  caret-color: #4a4a4a !important;
  margin-top: 0.1375em;
}
input.mat-input-element:disabled {
  cursor: not-allowed;
}
.xpo-Link {
  align-items: center;
  color: #1976d2;
  cursor: pointer;
  display: inline-flex;
  font-weight: 500;
  gap: 5px;
}
.xpo-Link:hover, .xpo-Link:focus, .xpo-Link:active {
  text-decoration: underline;
}
.xpo-Link:hover {
  color: #2196f3;
  outline: 0;
}
.xpo-Link:active, .xpo-Link:focus {
  color: #0d47a1;
  outline: none;
}
.xpo-Link[disabled] {
  color: #bdbdbd;
  cursor: not-allowed;
}
.xpo-Link--regular {
  font-weight: 400;
}
.xpo-Link > .mat-icon {
  font-size: 1.428rem;
  height: 20px;
  width: 20px;
  text-decoration: none;
}
.mat-menu-panel {
  background: white;
}
.mat-menu-panel:not([class*=mat-elevation-z]) {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-menu-item {
  background: transparent;
  color: rgba(0, 0, 0, 0.87);
}
.mat-menu-item[disabled], .mat-menu-item[disabled]::after,
.mat-menu-item[disabled] .mat-icon-no-color {
  color: rgba(0, 0, 0, 0.38);
}
.mat-menu-item .mat-icon-no-color,
.mat-menu-item-submenu-trigger::after {
  color: rgba(0, 0, 0, 0.54);
}
.mat-menu-item:hover:not([disabled]),
.mat-menu-item.cdk-program-focused:not([disabled]),
.mat-menu-item.cdk-keyboard-focused:not([disabled]),
.mat-menu-item-highlighted:not([disabled]) {
  background: rgba(0, 0, 0, 0.04);
}
div.mat-menu-panel {
  border-radius: 0;
  border: 1px solid #d8d8d8;
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
  margin-top: 4px;
}
div.mat-menu-panel .mat-menu-content:not(:empty) {
  padding-bottom: 0;
  padding-top: 0;
}
div.mat-menu-panel .mat-menu-item {
  align-items: center;
  color: #000000;
  display: flex;
  gap: 8px;
  height: 32px;
  justify-content: flex-start;
  line-height: 1.429rem;
  padding: 6px 8px;
}
div.mat-menu-panel .mat-menu-item .xpo-Icon .mat-icon {
  color: #000000;
  margin-right: 0;
}
div.mat-menu-panel .mat-menu-item .xpo-Icon .mat-icon:hover {
  color: #212121;
}
div.mat-menu-panel .mat-menu-item:disabled {
  color: #bdbdbd;
}
div.mat-menu-panel .mat-menu-item:disabled .xpo-Icon .mat-icon {
  color: #bdbdbd;
}
div.mat-menu-panel .mat-menu-item:hover {
  background: #e4effa;
}
div.mat-menu-panel .mat-menu-item-submenu-trigger::after {
  margin-right: -7px;
}
div.mat-menu-panel a.mat-menu-item,
div.mat-menu-panel a.mat-menu-item:hover,
div.mat-menu-panel a.mat-menu-item:focus {
  text-decoration: none;
}
div.mat-menu-panel .mat-divider {
  color: #d8d8d8;
}
div.mat-menu-panel .mat-divider:last-child {
  display: none;
}
.cdk-overlay-connected-position-bounding-box:not(:nth-of-type(2)) .mat-menu-panel::after {
  display: none;
}
.mat-form-field.mat-form-field-type-xpo-multi-select {
  line-height: 24px;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float {
  margin-bottom: 16px;
  margin-top: 24px;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper {
  padding: 0;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-flex {
  cursor: pointer;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix {
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  padding: 2px 8px;
  width: 260px;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix .mat-select-arrow {
  margin-right: 0;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-underline {
  display: none;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-subscript-wrapper {
  margin: 0;
  position: relative;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-subscript-wrapper .mat-error {
  display: flex;
  font-size: 1rem;
  font-weight: 400;
  line-height: 16px;
  margin-top: 8px;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-wrapper .mat-form-field-subscript-wrapper .mat-error .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: auto;
  line-height: 16px;
  margin-right: 4px;
  width: auto;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float.mat-focused .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix {
  border-color: #000000;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float.mat-focused .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix .mat-select-arrow {
  color: #4a4a4a;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float.mat-form-field-disabled .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix {
  background-color: #f6f6f6;
  cursor: not-allowed;
}
.mat-form-field.mat-form-field-type-xpo-multi-select.mat-form-field-appearance-legacy.mat-form-field-should-float.mat-form-field-disabled .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix .mat-select-trigger {
  cursor: not-allowed;
}
.mat-select-panel.xpo-Select-panel.xpo-Select-panelMultiple.xpo-MultiSelect-panel {
  border: 1px solid #000000;
  margin-top: 2px;
  margin-bottom: 2px;
}
.mat-select-panel.xpo-Select-panel.xpo-Select-panelMultiple.xpo-MultiSelect-panel .mat-option .mat-option-text .mat-icon {
  margin-right: 6px;
}
.mat-select-panel.xpo-Select-panel.xpo-Select-panelMultiple.xpo-MultiSelect-panel .mat-option.xpo-MultiSelectAllOption .mat-pseudo-checkbox-indeterminate {
  background: #ffffff;
  border: 1px solid #000000;
}
.mat-select-panel.xpo-Select-panel.xpo-Select-panelMultiple.xpo-MultiSelect-panel .mat-option.xpo-MultiSelectAllOption .mat-pseudo-checkbox-indeterminate::after {
  background: #000000;
  border: 2px solid #000000;
  height: 8px;
  left: 3px;
  top: 3px;
  width: 8px;
}
.xpo-MultiSelectTrigger .mat-chip-list .mat-chip-list-wrapper {
  display: inline-flex;
  flex-wrap: nowrap;
  margin: -4px 0;
  gap: 0;
}
.mat-snack-bar-container {
  color: rgba(255, 255, 255, 0.7);
  background: #323232;
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
}
.mat-simple-snackbar-action {
  color: #4a4a4a;
}
snack-bar-container.mat-snack-bar-container {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.12), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.2);
  background: #ffffff;
  border-radius: 2px;
  color: #4a4a4a;
  padding: 0;
  overflow: hidden;
  margin: 32px;
}
@media (max-width: 768px) {
  snack-bar-container.mat-snack-bar-container {
    min-width: 80vw;
    max-height: 40vh;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  snack-bar-container.mat-snack-bar-container {
    min-width: 60vw;
    width: auto;
    max-height: 40vh;
  }
}
@media (min-width: 1024px) {
  snack-bar-container.mat-snack-bar-container {
    min-width: 40vw;
    max-height: 40vh;
  }
}
snack-bar-container.mat-snack-bar-container > div {
  height: 100%;
}
snack-bar-container.mat-snack-bar-container > div > div {
  height: 100%;
}
.mat-table {
  background: white;
}
.mat-table thead, .mat-table tbody, .mat-table tfoot,
mat-header-row, mat-row, mat-footer-row,
[mat-header-row], [mat-row], [mat-footer-row],
.mat-table-sticky {
  background: inherit;
}
mat-row, mat-header-row, mat-footer-row,
th.mat-header-cell, td.mat-cell, td.mat-footer-cell {
  border-bottom-color: rgba(0, 0, 0, 0.12);
}
.mat-header-cell {
  color: rgba(0, 0, 0, 0.54);
}
.mat-cell, .mat-footer-cell {
  color: rgba(0, 0, 0, 0.87);
}
.mat-table {
  border: 1px solid #d8d8d8;
}
.mat-table tr.mat-header-row,
.mat-table tr.mat-footer-row,
.mat-table tr.mat-row {
  height: 30px;
}
.mat-table mat-header-row.mat-header-row,
.mat-table mat-footer-row.mat-footer-row,
.mat-table mat-row.mat-row {
  min-height: 30px;
}
.mat-table mat-row.mat-row,
.mat-table mat-header-row.mat-header-row,
.mat-table mat-footer-row.mat-footer-row,
.mat-table th.mat-header-cell,
.mat-table td.mat-cell,
.mat-table td.mat-footer-cell {
  border-bottom-color: #d8d8d8;
}
.mat-table mat-row.mat-row:last-child,
.mat-table mat-footer-row.mat-footer-row:last-child,
.mat-table tr.mat-row:last-child > .mat-cell {
  border-bottom-color: transparent;
}
.mat-table .mat-cell .mat-icon {
  align-items: center;
  justify-content: center;
}
.mat-table .mat-cell > .xpo-Icon {
  margin-right: 4px;
}
.mat-table th.mat-header-cell,
.mat-table td.mat-cell,
.mat-table td.mat-footer-cell,
.mat-table mat-cell.mat-cell,
.mat-table mat-header-cell.mat-header-cell,
.mat-table mat-footer-cell.mat-footer-cell {
  font-size: 1rem;
}
.mat-table th.mat-header-cell, .mat-table th.mat-header-cell:first-of-type,
.mat-table td.mat-cell,
.mat-table td.mat-cell:first-of-type,
.mat-table td.mat-footer-cell,
.mat-table td.mat-footer-cell:first-of-type,
.mat-table mat-cell.mat-cell,
.mat-table mat-cell.mat-cell:first-of-type,
.mat-table mat-header-cell.mat-header-cell,
.mat-table mat-header-cell.mat-header-cell:first-of-type,
.mat-table mat-footer-cell.mat-footer-cell,
.mat-table mat-footer-cell.mat-footer-cell:first-of-type {
  padding-left: 8px;
}
.mat-table th.mat-header-cell, .mat-table th.mat-header-cell:last-of-type,
.mat-table td.mat-cell,
.mat-table td.mat-cell:last-of-type,
.mat-table td.mat-footer-cell,
.mat-table td.mat-footer-cell:last-of-type,
.mat-table mat-cell.mat-cell,
.mat-table mat-cell.mat-cell:last-of-type,
.mat-table mat-header-cell.mat-header-cell,
.mat-table mat-header-cell.mat-header-cell:last-of-type,
.mat-table mat-footer-cell.mat-footer-cell,
.mat-table mat-footer-cell.mat-footer-cell:last-of-type {
  padding-right: 8px;
}
.mat-table tr.mat-header-row,
.mat-table mat-header-row.mat-header-row {
  background-color: #f6f6f6;
  box-shadow: 0 4px -2px -1px rgba(0, 0, 0, 0.1);
}
.mat-table tr.mat-header-row .mat-header-cell,
.mat-table mat-header-row.mat-header-row .mat-header-cell {
  color: #4a4a4a;
  font-size: 0.875rem;
  font-weight: 500;
}
.mat-table tr.mat-footer-row,
.mat-table mat-footer-row.mat-footer-row {
  background-color: #e6e6e6;
}
.mat-table tr.mat-footer-row .mat-footer-cell,
.mat-table mat-footer-row.mat-footer-row .mat-footer-cell {
  font-weight: 500;
}
.mat-table .mat-tab-label.mat-tab-label-active {
  color: #000000;
}
.mat-cell .mat-icon {
  align-items: center;
  justify-content: center;
}
.mat-cell > .xpo-Icon {
  margin-right: 4px;
}
.xpo-MatTable--withColumnGroup tr.mat-header-row:first-of-type {
  background-color: #e6e6e6;
}
.xpo-MatTable--withColumnGroup tr.mat-header-row:first-of-type th.mat-header-cell {
  text-align: center;
}
.xpo-MatTable--borderRight {
  border-right: 1px solid #d8d8d8;
}
.xpo-MatTable--borderLeft {
  border-left: 1px solid #d8d8d8;
}
.xpo-MatTable-cell--textAlignRight.mat-header-cell, .xpo-MatTable-cell--textAlignRight.mat-cell, .xpo-MatTable-cell--textAlignRight.mat-footer-cell {
  justify-content: flex-end;
  text-align: right;
}
.xpo-MatTable-cell--textAlignCenter.mat-header-cell, .xpo-MatTable-cell--textAlignCenter.mat-cell, .xpo-MatTable-cell--textAlignCenter.mat-footer-cell {
  justify-content: center;
  text-align: center;
}
.mat-tab-nav-bar,
.mat-tab-header {
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}
.mat-tab-group-inverted-header .mat-tab-nav-bar,
.mat-tab-group-inverted-header .mat-tab-header {
  border-top: 1px solid rgba(0, 0, 0, 0.12);
  border-bottom: none;
}
.mat-tab-label, .mat-tab-link {
  color: rgba(0, 0, 0, 0.87);
}
.mat-tab-label.mat-tab-disabled, .mat-tab-link.mat-tab-disabled {
  color: rgba(0, 0, 0, 0.38);
}
.mat-tab-header-pagination-chevron {
  border-color: rgba(0, 0, 0, 0.87);
}
.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-tab-group[class*=mat-background-] .mat-tab-header,
.mat-tab-nav-bar[class*=mat-background-] {
  border-bottom: none;
  border-top: none;
}
.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(232, 245, 254, 0.3);
}
.mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar {
  background-color: #0868ac;
}
.mat-tab-group.mat-primary.mat-background-primary > .mat-tab-header .mat-ink-bar, .mat-tab-group.mat-primary.mat-background-primary > .mat-tab-link-container .mat-ink-bar, .mat-tab-nav-bar.mat-primary.mat-background-primary > .mat-tab-header .mat-ink-bar, .mat-tab-nav-bar.mat-primary.mat-background-primary > .mat-tab-link-container .mat-ink-bar {
  background-color: white;
}
.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(155, 155, 155, 0.3);
}
.mat-tab-group.mat-accent .mat-ink-bar, .mat-tab-nav-bar.mat-accent .mat-ink-bar {
  background-color: #4a4a4a;
}
.mat-tab-group.mat-accent.mat-background-accent > .mat-tab-header .mat-ink-bar, .mat-tab-group.mat-accent.mat-background-accent > .mat-tab-link-container .mat-ink-bar, .mat-tab-nav-bar.mat-accent.mat-background-accent > .mat-tab-header .mat-ink-bar, .mat-tab-nav-bar.mat-accent.mat-background-accent > .mat-tab-link-container .mat-ink-bar {
  background-color: white;
}
.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(255, 34, 34, 0.3);
}
.mat-tab-group.mat-warn .mat-ink-bar, .mat-tab-nav-bar.mat-warn .mat-ink-bar {
  background-color: #d50000;
}
.mat-tab-group.mat-warn.mat-background-warn > .mat-tab-header .mat-ink-bar, .mat-tab-group.mat-warn.mat-background-warn > .mat-tab-link-container .mat-ink-bar, .mat-tab-nav-bar.mat-warn.mat-background-warn > .mat-tab-header .mat-ink-bar, .mat-tab-nav-bar.mat-warn.mat-background-warn > .mat-tab-link-container .mat-ink-bar {
  background-color: white;
}
.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(232, 245, 254, 0.3);
}
.mat-tab-group.mat-background-primary > .mat-tab-header, .mat-tab-group.mat-background-primary > .mat-tab-link-container, .mat-tab-group.mat-background-primary > .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header, .mat-tab-nav-bar.mat-background-primary > .mat-tab-link-container, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header-pagination {
  background-color: #0868ac;
}
.mat-tab-group.mat-background-primary > .mat-tab-header .mat-tab-label, .mat-tab-group.mat-background-primary > .mat-tab-link-container .mat-tab-link, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header .mat-tab-label, .mat-tab-nav-bar.mat-background-primary > .mat-tab-link-container .mat-tab-link {
  color: white;
}
.mat-tab-group.mat-background-primary > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-primary > .mat-tab-link-container .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary > .mat-tab-link-container .mat-tab-link.mat-tab-disabled {
  color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-primary > .mat-tab-header-pagination .mat-tab-header-pagination-chevron,
.mat-tab-group.mat-background-primary > .mat-tab-links .mat-focus-indicator::before,
.mat-tab-group.mat-background-primary > .mat-tab-header .mat-focus-indicator::before, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header-pagination .mat-tab-header-pagination-chevron,
.mat-tab-nav-bar.mat-background-primary > .mat-tab-links .mat-focus-indicator::before,
.mat-tab-nav-bar.mat-background-primary > .mat-tab-header .mat-focus-indicator::before {
  border-color: white;
}
.mat-tab-group.mat-background-primary > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-primary > .mat-tab-header .mat-ripple-element,
.mat-tab-group.mat-background-primary > .mat-tab-link-container .mat-ripple-element, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header .mat-ripple-element,
.mat-tab-nav-bar.mat-background-primary > .mat-tab-link-container .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.12);
}
.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(155, 155, 155, 0.3);
}
.mat-tab-group.mat-background-accent > .mat-tab-header, .mat-tab-group.mat-background-accent > .mat-tab-link-container, .mat-tab-group.mat-background-accent > .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header, .mat-tab-nav-bar.mat-background-accent > .mat-tab-link-container, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header-pagination {
  background-color: #4a4a4a;
}
.mat-tab-group.mat-background-accent > .mat-tab-header .mat-tab-label, .mat-tab-group.mat-background-accent > .mat-tab-link-container .mat-tab-link, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header .mat-tab-label, .mat-tab-nav-bar.mat-background-accent > .mat-tab-link-container .mat-tab-link {
  color: white;
}
.mat-tab-group.mat-background-accent > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-accent > .mat-tab-link-container .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent > .mat-tab-link-container .mat-tab-link.mat-tab-disabled {
  color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-accent > .mat-tab-header-pagination .mat-tab-header-pagination-chevron,
.mat-tab-group.mat-background-accent > .mat-tab-links .mat-focus-indicator::before,
.mat-tab-group.mat-background-accent > .mat-tab-header .mat-focus-indicator::before, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header-pagination .mat-tab-header-pagination-chevron,
.mat-tab-nav-bar.mat-background-accent > .mat-tab-links .mat-focus-indicator::before,
.mat-tab-nav-bar.mat-background-accent > .mat-tab-header .mat-focus-indicator::before {
  border-color: white;
}
.mat-tab-group.mat-background-accent > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-accent > .mat-tab-header .mat-ripple-element,
.mat-tab-group.mat-background-accent > .mat-tab-link-container .mat-ripple-element, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header .mat-ripple-element,
.mat-tab-nav-bar.mat-background-accent > .mat-tab-link-container .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.12);
}
.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(255, 34, 34, 0.3);
}
.mat-tab-group.mat-background-warn > .mat-tab-header, .mat-tab-group.mat-background-warn > .mat-tab-link-container, .mat-tab-group.mat-background-warn > .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header, .mat-tab-nav-bar.mat-background-warn > .mat-tab-link-container, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header-pagination {
  background-color: #d50000;
}
.mat-tab-group.mat-background-warn > .mat-tab-header .mat-tab-label, .mat-tab-group.mat-background-warn > .mat-tab-link-container .mat-tab-link, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header .mat-tab-label, .mat-tab-nav-bar.mat-background-warn > .mat-tab-link-container .mat-tab-link {
  color: white;
}
.mat-tab-group.mat-background-warn > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-warn > .mat-tab-link-container .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn > .mat-tab-link-container .mat-tab-link.mat-tab-disabled {
  color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-warn > .mat-tab-header-pagination .mat-tab-header-pagination-chevron,
.mat-tab-group.mat-background-warn > .mat-tab-links .mat-focus-indicator::before,
.mat-tab-group.mat-background-warn > .mat-tab-header .mat-focus-indicator::before, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header-pagination .mat-tab-header-pagination-chevron,
.mat-tab-nav-bar.mat-background-warn > .mat-tab-links .mat-focus-indicator::before,
.mat-tab-nav-bar.mat-background-warn > .mat-tab-header .mat-focus-indicator::before {
  border-color: white;
}
.mat-tab-group.mat-background-warn > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-warn > .mat-tab-header .mat-ripple-element,
.mat-tab-group.mat-background-warn > .mat-tab-link-container .mat-ripple-element, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header .mat-ripple-element,
.mat-tab-nav-bar.mat-background-warn > .mat-tab-link-container .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.12);
}
.mat-radio-outer-circle {
  border-color: rgba(0, 0, 0, 0.54);
}
.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {
  border-color: #0868ac;
}
.mat-radio-button.mat-primary .mat-radio-inner-circle,
.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {
  background-color: #0868ac;
}
.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {
  border-color: #4a4a4a;
}
.mat-radio-button.mat-accent .mat-radio-inner-circle,
.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {
  background-color: #4a4a4a;
}
.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {
  border-color: #d50000;
}
.mat-radio-button.mat-warn .mat-radio-inner-circle,
.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {
  background-color: #d50000;
}
.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,
.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,
.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {
  background-color: rgba(0, 0, 0, 0.38);
}
.mat-radio-button.mat-radio-disabled .mat-radio-label-content {
  color: rgba(0, 0, 0, 0.38);
}
.mat-radio-button .mat-ripple-element {
  background-color: black;
}
mat-radio-button.mat-radio-button .mat-radio-container {
  transform: scale(0.8);
}
mat-radio-button.mat-radio-button .mat-radio-container .mat-radio-inner-circle {
  background-color: #000000;
}
mat-radio-button.mat-radio-button .mat-radio-container .mat-radio-outer-circle {
  border-width: 1px;
}
mat-radio-button.mat-radio-button .mat-radio-label-content {
  padding-left: 2px;
}
mat-radio-button.mat-radio-button.mat-radio-checked .mat-radio-outer-circle {
  border-color: #ffffff;
}
mat-radio-button.mat-radio-button.mat-radio-checked .mat-radio-inner-circle {
  transform: scale(0.625);
}
mat-radio-button.mat-radio-button.mat-radio-disabled .mat-radio-label {
  cursor: not-allowed;
}
mat-radio-button.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle, mat-radio-button.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle {
  border-color: #bdbdbd;
}
mat-radio-button.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {
  background-color: #bdbdbd;
}
mat-radio-button.mat-radio-button .mat-ripple {
  display: none;
}
.mat-select-value {
  color: rgba(0, 0, 0, 0.87);
}
.mat-select-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-select-disabled .mat-select-value {
  color: rgba(0, 0, 0, 0.38);
}
.mat-select-arrow {
  color: rgba(0, 0, 0, 0.54);
}
.mat-select-panel {
  background: white;
}
.mat-select-panel:not([class*=mat-elevation-z]) {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {
  background: rgba(0, 0, 0, 0.12);
}
.mat-form-field.mat-focused.mat-primary .mat-select-arrow {
  color: #0868ac;
}
.mat-form-field.mat-focused.mat-accent .mat-select-arrow {
  color: #4a4a4a;
}
.mat-form-field.mat-focused.mat-warn .mat-select-arrow {
  color: #d50000;
}
.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {
  color: #d50000;
}
.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {
  color: rgba(0, 0, 0, 0.38);
}
.xpo-Select-twoLinesContainer {
  color: #212121;
  display: flex;
  flex-direction: column;
  margin-left: 8px;
}
.xpo-Select-twoLinesContainer .mat-option-text:nth-of-type(1) {
  color: #000000;
  line-height: 16px;
}
.xpo-Select-twoLinesContainer .mat-option-text:nth-of-type(2) {
  color: #333333;
  font-size: 11px;
  line-height: 12px;
  padding-top: 4px;
}
.xpo-Select-twoColumnsContainer {
  display: flex;
  width: 100%;
}
.xpo-Select-twoColumnsContainer span:first-of-type {
  flex: 1;
}
.xpo-Select-twoColumnsContainer span:last-of-type {
  flex: 2;
}
.xpo-Select-panel.mat-select-panel {
  border: 1px solid #d8d8d8;
  border-radius: 0;
  border-top: none;
  box-shadow: none;
  margin-left: 7px;
  margin-top: 24px;
}
.xpo-Select-panel.mat-select-panel .mat-option,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label {
  height: 30px;
  line-height: normal;
  padding: 6px 8px;
}
.xpo-Select-panel.mat-select-panel .mat-option:not(:last-of-type),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label:not(:last-of-type) {
  border-bottom: 1px solid #d8d8d8;
}
.xpo-Select-panel.mat-select-panel .mat-option.xpo-Option--twoLines,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label.xpo-Option--twoLines {
  height: 45px;
}
.xpo-Select-panel.mat-select-panel .mat-option.xpo-Option--twoLines .mat-option-text,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label.xpo-Option--twoLines .mat-option-text {
  display: flex;
  flex-direction: row;
}
.xpo-Select-panel.mat-select-panel .mat-option.xpo-Option-hideDivider:not(:last-of-type),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label.xpo-Option-hideDivider:not(:last-of-type) {
  border-bottom: none;
}
.xpo-Select-panel.mat-select-panel .mat-option:hover:not(.mat-option-disabled), .xpo-Select-panel.mat-select-panel .mat-option:focus:not(.mat-option-disabled),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label:hover:not(.mat-option-disabled),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label:focus:not(.mat-option-disabled) {
  background: #e4effa;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-icon,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-icon {
  margin-right: 0;
}
.xpo-Select-panel.mat-select-panel .mat-option.mat-selected:not(.mat-option-disabled),
.xpo-Select-panel.mat-select-panel .mat-optgroup-label.mat-selected:not(.mat-option-disabled) {
  background: #e4effa;
  color: #4a4a4a;
}
.xpo-Select-panel.mat-select-panel .mat-option-disabled,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label-disabled {
  background-color: #f6f6f6;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-option-text,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-option-text {
  align-items: center;
  color: #333333;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox {
  border: 1px solid #d8d8d8;
  margin-right: 6px;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox-disabled,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox-disabled {
  background-color: #d8d8d8;
  border-color: #d8d8d8;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox-disabled::after,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox-disabled::after {
  border-left: 2px solid currentColor;
  box-sizing: content-box;
  height: 3px;
  opacity: 1;
  transform: rotate(-45deg);
  width: 8px;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox-checked,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox-checked {
  background-color: #000000;
  border-color: #000000;
}
.xpo-Select-panel.mat-select-panel .mat-option .mat-pseudo-checkbox::after,
.xpo-Select-panel.mat-select-panel .mat-optgroup-label .mat-pseudo-checkbox::after {
  left: 2px;
  top: 3.4px;
}
.xpo-Select-panel.mat-select-panel .mat-optgroup-label {
  border-bottom: 1px solid #d8d8d8;
  color: #333333;
  font-weight: 500;
}
.xpo-Select-panel.mat-select-panel .mat-optgroup:not(:first-of-type) .mat-optgroup-label {
  border-top: 1px solid #d8d8d8;
}
.mat-option .mat-option-ripple {
  display: none !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-flex {
  align-items: center;
  padding-top: 0;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard {
  margin-bottom: 16px;
  margin-top: 24px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-wrapper .mat-form-field-infix, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-wrapper .mat-form-field-infix {
  background-color: #f6f6f6;
  cursor: not-allowed;
  font-style: italic;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-select-placeholder,
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-select-trigger, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-disabled .mat-select-placeholder,
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-disabled .mat-select-trigger {
  color: #000000;
  cursor: not-allowed;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper {
  transform: none;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-subscript-wrapper {
  margin: 0;
  position: relative;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-wrapper {
  height: unset;
  line-height: 16px;
  padding: 0;
}
.mat-focused .mat-form-field-infix {
  border-color: #000000 !important;
}
.mat-form-field-invalid .mat-form-field-infix {
  border-color: #d50000 !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-wrapper .mat-form-field-infix, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-wrapper .mat-form-field-infix {
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  padding: 6px 8px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-wrapper .mat-form-field-infix .mat-select-arrow {
  margin-right: 0;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-wrapper .mat-form-field-infix .mat-select-value-text, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-wrapper .mat-form-field-infix .mat-select-value-text {
  color: #212121;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-focused .mat-select-arrow, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-focused .mat-select-arrow {
  color: #4a4a4a !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.ngx-FormField--inline .mat-form-field-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.ngx-FormField--inline .mat-form-field-wrapper {
  margin-bottom: 0;
  margin-top: 0;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy:not(.mat-form-field-should-float) .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard:not(.mat-form-field-should-float) .mat-form-field-label {
  color: #9b9b9b;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-should-float .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-should-float .mat-form-field-label {
  color: #333333;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.mat-form-field-invalid .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.mat-form-field-invalid .mat-form-field-label {
  color: #9b9b9b !important;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy:not(.mat-form-field-should-float) .mat-form-field-label, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard:not(.mat-form-field-should-float) .mat-form-field-label {
  color: #9b9b9b;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-placeholder-required, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-placeholder-required {
  color: #d50000;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-hint, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-hint {
  font-size: 0.875rem;
  font-style: italic;
  font-weight: 400;
  line-height: 16px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-error, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-error {
  display: flex;
  font-family: "Roboto", "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 16px;
  margin-top: 8px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-error .mat-icon, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-error .mat-icon {
  display: inline-flex;
  font-size: 20px;
  height: auto;
  line-height: 16px;
  margin-right: 4px;
  width: auto;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-prefix, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-prefix {
  padding-left: 0.3em;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-suffix, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-suffix {
  height: 24px;
  position: absolute;
  right: 24px;
  width: 24px;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy.ngx-FormField--borderless .mat-form-field-wrapper, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard.ngx-FormField--borderless .mat-form-field-wrapper {
  border: none;
  box-shadow: unset;
}
.mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-legacy .mat-form-field-underline, .mat-form-field.mat-form-field-type-mat-select.mat-form-field-appearance-standard .mat-form-field-underline {
  display: none;
}
.xpo-Select-panel.mat-select-panel {
  min-width: calc(100% + 18px) !important;
}
.xpo-Select-panelMultiple.mat-select-panel {
  margin-left: 31px;
}
mat-slide-toggle.mat-slide-toggle.mat-disabled {
  opacity: unset;
}
mat-slide-toggle.mat-slide-toggle.mat-checked {
  opacity: unset;
}
mat-slide-toggle.mat-slide-toggle.mat-checked.mat-disabled .mat-slide-toggle-bar {
  background-color: #cde8cc;
  border: 1px solid #c7dec6;
}
mat-slide-toggle.mat-slide-toggle.mat-disabled .mat-slide-toggle-bar {
  background-color: #f9f9f9;
  border: 1px solid #e2e2e4;
}
mat-slide-toggle.mat-slide-toggle.mat-disabled .mat-slide-toggle-bar .mat-slide-toggle-thumb {
  box-shadow: 0 0 0 1px #e2e2e4;
}
mat-slide-toggle.mat-slide-toggle.mat-checked .mat-slide-toggle-bar {
  background-color: #4caf50;
  border: 1px solid #388e3c;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-bar {
  background-color: #f6f6f6;
  border: 1px solid #d8d8d8;
  border-radius: 30px;
  height: 22px;
  width: 38px;
}
mat-slide-toggle.mat-slide-toggle.mat-checked.mat-disabled .mat-slide-toggle-thumb {
  box-shadow: 0 0 0 1px #c7dec6;
}
mat-slide-toggle.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {
  background-color: #ffffff;
  border: none;
  box-shadow: none;
}
mat-slide-toggle.mat-slide-toggle.mat-disabled .mat-slide-toggle-thumb {
  background-color: #ffffff;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-thumb-container {
  cursor: pointer;
  left: 0;
  top: 0.1px;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-thumb-container.mat-slide-toggle-thumb {
  background-color: #ffffff;
  height: 22px;
  width: 22px;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-thumb {
  background-color: #ffffff;
  box-shadow: 0 0 0 1px #d8d8d8;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small.mat-checked.mat-disabled .mat-slide-toggle-bar {
  background-color: #cde8cc;
  border: 1px solid #c7dec6;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small.mat-disabled .mat-slide-toggle-bar {
  background-color: #f9f9f9;
  border: 1px solid #e2e2e4;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small.mat-checked .mat-slide-toggle-bar {
  background-color: #4caf50;
  border: 1px solid #388e3c;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small .mat-slide-toggle-bar {
  background-color: #f6f6f6;
  border-radius: 30px;
  height: 16px;
  width: 32px;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small .mat-slide-toggle-thumb-container {
  height: 14px;
  width: 14px;
}
mat-slide-toggle.mat-slide-toggle.xpo-SlideToggle--small .mat-slide-toggle-thumb {
  height: 14px;
  width: 14px;
}
mat-slide-toggle.mat-slide-toggle .mat-slide-toggle-ripple {
  display: none;
}
.xpo-Ssi {
  display: inline-flex;
}
.xpo-Ssi .xpo-Icon {
  width: auto;
}
.xpo-Ssi .xpo-Icon .mat-icon svg {
  width: auto;
}
.mat-drawer.xpo-TrayDrawer {
  max-width: 10%;
  min-width: 500px;
  overflow: hidden;
  width: 10%;
}
.mat-drawer.xpo-TrayDrawer.xpo-TrayDrawer--extended {
  max-width: 90%;
  width: 90%;
}
.mat-drawer.xpo-TrayDrawer:not(.mat-drawer-side), .mat-drawer.xpo-TrayDrawer.mat-drawer-side {
  border: 1px solid #d8d8d8;
  box-shadow: 0 3px 9px 0 rgba(0, 0, 0, 0.35);
}
.mat-drawer.xpo-TrayDrawer .mat-drawer-inner-container {
  overflow: hidden;
}
.cdk-overlay-container .mat-tooltip-panel .mat-tooltip {
  background: #212121;
  border-radius: 0;
  color: #ffffff;
  display: flex;
  font-size: 1rem;
  line-height: 18px;
  overflow: visible;
  padding: 16px;
  position: relative;
  white-space: pre-line;
}
.cdk-overlay-container .mat-tooltip-panel[style*=bottom][style*=left] .mat-tooltip[style*=center][style*=bottom] {
  margin-bottom: 18px;
}
.cdk-overlay-container .mat-tooltip-panel[style*=bottom][style*=left] .mat-tooltip[style*=center][style*=bottom]::after {
  border-bottom: none;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid #212121;
  content: "";
  height: 0;
  left: 50%;
  position: absolute;
  top: 100%;
  transform: translateX(-50%);
  width: 0;
}
.cdk-overlay-container .mat-tooltip-panel[style*=top][style*=left] .mat-tooltip[style*=center][style*=top] {
  margin-top: 18px;
}
.cdk-overlay-container .mat-tooltip-panel[style*=top][style*=left] .mat-tooltip[style*=center][style*=top]::before {
  border-bottom: 10px solid #212121;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: none;
  bottom: 100%;
  content: "";
  height: 0;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 0;
}
.cdk-overlay-container .mat-tooltip-panel[style*=top][style*=left] .mat-tooltip[style*=center][style*=left] {
  margin-left: 18px;
}
.cdk-overlay-container .mat-tooltip-panel[style*=top][style*=left] .mat-tooltip[style*=center][style*=left]::before {
  border-bottom: 10px solid transparent;
  border-left: 10px solid transparent;
  border-right: 10px solid #212121;
  border-top: 10px solid transparent;
  content: "";
  height: 0;
  position: absolute;
  right: 100%;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
}
.cdk-overlay-container .mat-tooltip-panel[style*=top][style*=right] .mat-tooltip[style*=center][style*=right] {
  margin-right: 18px;
}
.cdk-overlay-container .mat-tooltip-panel[style*=top][style*=right] .mat-tooltip[style*=center][style*=right]::after {
  border-bottom: 10px solid transparent;
  border-left: 10px solid #212121;
  border-right: 10px solid transparent;
  border-top: 10px solid transparent;
  content: "";
  height: 0;
  left: 100%;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
}
.xpo-ErrorPages-title h1 {
  font-size: 28px;
}
.xpo-ErrorPages-description {
  margin-bottom: 16px;
}
.xpo-ErrorPages-description p {
  font-size: 1.285rem;
}
.xpo-ErrorPages-action {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 32px;
  gap: 8px;
}
.xpo-ErrorPages-footer {
  width: 100%;
}
.mat-form-field-type-xpo-time-picker {
  width: 96px;
  margin-bottom: 6px;
  margin-top: 24px;
}
.mat-form-field-type-xpo-time-picker .xpo-Icon .mat-icon {
  color: #4a4a4a;
  cursor: pointer;
}
.mat-form-field-type-xpo-time-picker .xpo-Icon .mat-icon:hover {
  color: #9b9b9b;
}
.mat-form-field-type-xpo-time-picker .xpo-Icon .mat-icon:active {
  color: #4a4a4a;
}
.mat-form-field-type-xpo-time-picker .xpo-TimePicker:focus-within {
  border: solid 1px #000000;
}
.mat-form-field-type-xpo-time-picker .xpo-TimePicker.ng-touched.ng-invalid {
  border: solid 1px #d32f2f;
}
.mat-form-field-type-xpo-time-picker .mat-input-element:disabled {
  background-color: #f3f3f3;
  font-style: italic;
  font-weight: 400;
}
.mat-form-field-type-xpo-time-picker .mat-input-element:disabled ~ .xpo-Icon .mat-icon {
  color: #bdbdbd;
  cursor: not-allowed;
}
.mat-form-field-type-xpo-time-picker .mat-form-field-underline {
  display: none;
}
.mat-form-field-type-xpo-time-picker.mat-form-field-appearance-legacy .mat-form-field-infix {
  padding: 0;
  border-top: 0;
}
.mat-form-field-type-xpo-time-picker.mat-form-field-infix {
  padding: 0;
  border-top: 0;
}
.mat-form-field-type-xpo-time-picker.mat-form-field-wrapper {
  padding-bottom: 0;
  height: unset;
  line-height: 16px;
  padding: 0;
  top: 0;
}
.mat-form-field-type-xpo-time-picker.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float.mat-form-field-has-label .mat-form-field-flex .mat-form-field-label-wrapper .mat-form-field-label {
  line-height: 1.429rem;
  height: 20px;
}
.mat-form-field-type-xpo-time-picker.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {
  color: #d32f2f;
}
.mat-form-field-type-xpo-time-picker .mat-error {
  color: #d32f2f;
  display: flex;
  font-size: 0.875rem;
  gap: 8px;
  line-height: 16px;
  width: 96px;
}
.mat-form-field-type-xpo-time-picker .mat-error .xpo-Icon .mat-icon {
  color: #d32f2f;
  display: inline-flex;
}
.mat-form-field-type-xpo-time-picker .mat-error > .mat-icon {
  color: #d32f2f;
  display: inline-flex;
  font-size: 20px;
  height: 20px;
}
.mat-autocomplete-panel.mat-autocomplete-visible.xpo-TimePicker-panel {
  border: solid 1px #000000;
  min-width: 96px;
  right: 1px;
  top: -1px;
  width: 96px;
}
.mat-autocomplete-panel.mat-autocomplete-visible.xpo-TimePicker-panel .mat-option {
  border: 0;
  color: #4a4a4a;
  line-height: 1.429rem;
}
.mat-autocomplete-panel.mat-autocomplete-visible.xpo-TimePicker-panel .mat-option.mat-active {
  background: #e4effa;
}
button.mat-button.xpo-DownloadButton {
  align-items: center;
  display: flex;
  height: 20px;
  min-width: 20px;
}
button.mat-button.xpo-DownloadButton .mat-spinner {
  display: inline-block;
}
.xpo-Header {
  background: white;
  border-bottom: 1px solid #d8d8d8;
}
.mat-progress-bar-background {
  fill: #e8f5fe;
}
.mat-progress-bar-buffer {
  background-color: #e8f5fe;
}
.mat-progress-bar-fill::after {
  background-color: #0868ac;
}
.mat-progress-bar.mat-accent .mat-progress-bar-background {
  fill: #9b9b9b;
}
.mat-progress-bar.mat-accent .mat-progress-bar-buffer {
  background-color: #9b9b9b;
}
.mat-progress-bar.mat-accent .mat-progress-bar-fill::after {
  background-color: #4a4a4a;
}
.mat-progress-bar.mat-warn .mat-progress-bar-background {
  fill: #ff2222;
}
.mat-progress-bar.mat-warn .mat-progress-bar-buffer {
  background-color: #ff2222;
}
.mat-progress-bar.mat-warn .mat-progress-bar-fill::after {
  background-color: #d50000;
}
.mat-progress-spinner circle, .mat-spinner circle {
  stroke: #0868ac;
}
.mat-progress-spinner.mat-accent circle, .mat-spinner.mat-accent circle {
  stroke: #4a4a4a;
}
.mat-progress-spinner.mat-warn circle, .mat-spinner.mat-warn circle {
  stroke: #d50000;
}
.mat-drawer-container {
  background-color: #f3f3f3;
  color: rgba(0, 0, 0, 0.87);
}
.mat-drawer {
  background-color: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-drawer.mat-drawer-push {
  background-color: white;
}
.mat-drawer:not(.mat-drawer-side) {
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
}
.mat-drawer-side {
  border-right: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-drawer-side.mat-drawer-end {
  border-left: solid 1px rgba(0, 0, 0, 0.12);
  border-right: none;
}
[dir=rtl] .mat-drawer-side {
  border-left: solid 1px rgba(0, 0, 0, 0.12);
  border-right: none;
}
[dir=rtl] .mat-drawer-side.mat-drawer-end {
  border-left: none;
  border-right: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-drawer-backdrop.mat-drawer-shown {
  background-color: rgba(0, 0, 0, 0.6);
}
.mat-badge-content {
  color: white;
  background: #0868ac;
}
.cdk-high-contrast-active .mat-badge-content {
  outline: solid 1px;
  border-radius: 0;
}
.mat-badge-accent .mat-badge-content {
  background: #4a4a4a;
  color: white;
}
.mat-badge-warn .mat-badge-content {
  color: white;
  background: #d50000;
}
.mat-badge {
  position: relative;
}
.mat-badge-hidden .mat-badge-content {
  display: none;
}
.mat-badge-disabled .mat-badge-content {
  background: #b4b4b4;
  color: rgba(0, 0, 0, 0.38);
}
.mat-badge-content {
  position: absolute;
  text-align: center;
  display: inline-block;
  border-radius: 50%;
  transition: transform 200ms ease-in-out;
  transform: scale(0.6);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  pointer-events: none;
}
.ng-animate-disabled .mat-badge-content,
.mat-badge-content._mat-animation-noopable {
  transition: none;
}
.mat-badge-content.mat-badge-active {
  transform: none;
}
.mat-badge-small .mat-badge-content {
  width: 16px;
  height: 16px;
  line-height: 16px;
}
.mat-badge-small.mat-badge-above .mat-badge-content {
  top: -8px;
}
.mat-badge-small.mat-badge-below .mat-badge-content {
  bottom: -8px;
}
.mat-badge-small.mat-badge-before .mat-badge-content {
  left: -16px;
}
[dir=rtl] .mat-badge-small.mat-badge-before .mat-badge-content {
  left: auto;
  right: -16px;
}
.mat-badge-small.mat-badge-after .mat-badge-content {
  right: -16px;
}
[dir=rtl] .mat-badge-small.mat-badge-after .mat-badge-content {
  right: auto;
  left: -16px;
}
.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: -8px;
}
[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: auto;
  right: -8px;
}
.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -8px;
}
[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: auto;
  left: -8px;
}
.mat-badge-medium .mat-badge-content {
  width: 22px;
  height: 22px;
  line-height: 22px;
}
.mat-badge-medium.mat-badge-above .mat-badge-content {
  top: -11px;
}
.mat-badge-medium.mat-badge-below .mat-badge-content {
  bottom: -11px;
}
.mat-badge-medium.mat-badge-before .mat-badge-content {
  left: -22px;
}
[dir=rtl] .mat-badge-medium.mat-badge-before .mat-badge-content {
  left: auto;
  right: -22px;
}
.mat-badge-medium.mat-badge-after .mat-badge-content {
  right: -22px;
}
[dir=rtl] .mat-badge-medium.mat-badge-after .mat-badge-content {
  right: auto;
  left: -22px;
}
.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: -11px;
}
[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: auto;
  right: -11px;
}
.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -11px;
}
[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: auto;
  left: -11px;
}
.mat-badge-large .mat-badge-content {
  width: 28px;
  height: 28px;
  line-height: 28px;
}
.mat-badge-large.mat-badge-above .mat-badge-content {
  top: -14px;
}
.mat-badge-large.mat-badge-below .mat-badge-content {
  bottom: -14px;
}
.mat-badge-large.mat-badge-before .mat-badge-content {
  left: -28px;
}
[dir=rtl] .mat-badge-large.mat-badge-before .mat-badge-content {
  left: auto;
  right: -28px;
}
.mat-badge-large.mat-badge-after .mat-badge-content {
  right: -28px;
}
[dir=rtl] .mat-badge-large.mat-badge-after .mat-badge-content {
  right: auto;
  left: -28px;
}
.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: -14px;
}
[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: auto;
  right: -14px;
}
.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -14px;
}
[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: auto;
  left: -14px;
}
mat-dialog-container.mat-dialog-container {
  padding: 0;
}
.u-flex--fillSpace {
  flex: 1;
}
.u-flex--spaceBetween {
  justify-content: space-between;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3hwby1pbnRlcm5hbC5zY3NzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQGFuZ3VsYXIvbWF0ZXJpYWwvX3RoZW1pbmcuc2NzcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0Bhbmd1bGFyL2Nkay9fb3ZlcmxheS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ3UwRGhCLG1DQUFBO0FBK0lBLHlEQUFBO0FBb2JBLHlEQUFBO0FBbXdEQSwyQ0FBQTtBQTZDQSxxQkFBQTtBRDFxSUEsaURBQUE7QUFxQ0E7O0NBQUE7QUFJQTs7Q0FBQTtBQXFFQTs7Q0FBQTtBQTZEQTs7Q0FBQTtBQUlBOztDQUFBO0FBZ0dBOztDQUFBO0FBS0E7O0NBQUE7QUErRkE7O0NBQUE7QUFJQTs7Q0FBQTtBQWlDQTtFQUNFLE9BQUE7QUFyWUY7QUFrWkE7RUFDRSxnQ0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1TEFBQTtBQS9ZRjtBQW9aQTs7O0VBSUUsc0JBQUE7QUFsWkY7QUFxWkE7RUFDRSxhQUFBO0FBbFpGO0FBcVpBO0VBQ0UsZUFsS21CO0FBaFByQjtBQXFaQTs7RUFFRSxZQUFBO0VBQ0EsU0FBQTtBQWxaRjtBQXFaQTtFQUNFLGlCQS9JcUI7RUFnSnJCLDBCQUFBO0VBQ0EsOEJBQUE7QUFsWkY7QUFxWkE7RUFDRSx5QkF0TTBCO0VBdU0xQixjQXZWYztFQXdWZCwwREF0S3dCO0VBdUt4QixnQkFuS3VCO0VBb0t2QixxQkFqSndCO0VBa0p4QixpQkExSnFCO0VBMkpyQixrQkFBQTtBQWxaRjtBQXFaQTs7Ozs7O0VBTUUsY0FBQTtBQWxaRjtBQXFaQTs7O0VBR0UsYUFBQTtBQWxaRjtBQXFaQTtFQW5kRSxtQkFtUjJCO0VBbFIzQixnQkE0UnFCO0VBM1JyQixzQkErU2dDO0VBOVNoQyxrQkF5UzZCO0FBdk8vQjtBQWtaQTtFQTlkRSxtQkF5UjRCO0VBeFI1QixnQkFtU3FCO0VBbFNyQixzQkFxVGlDO0VBcFRqQyxr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QU5tQjtFQU9uQixpQkFQbUI7QUQrMUZ2QjtBQ3AxRkk7RUFDRSxVQUFBO0FEczFGTjtBQ2oxRkk7RUFDRSxhQUFBO0FEbTFGTjtBQzkwRkk7RUFDRSxXQUFBO0FEZzFGTjtBQzMwRkk7RUFDRSxVQUFBO0VBQ0EsWUFBQTtBRDYwRk47QUN4MEZJO0VBQ0UsWUFBQTtBRDAwRk47QUNyMEZJO0VBQ0UsV0FBQTtFQUNBLFdBQUE7QUR1MEZOO0FDajBGTTtFQUNFLFdBQUE7QURtMEZSO0FDOXpGTTtFQUNFLFVBQUE7RUFDQSxZQUFBO0FEZzBGUjtBQzN6Rk07RUFDRSxZQUFBO0FENnpGUjtBQ3h6Rk07RUFDRSxXQUFBO0VBQ0EsV0FBQTtBRDB6RlI7QUFrMUVFO0VBQ0UsVUFBQTtBQS8wRUo7QUE4bUZBO0VBQ0UsT0FBQTtBQTNtRkY7QUE4bUZBO0VBQ0UsOEJBQUE7QUEzbUZGIiwiZmlsZSI6Inhwby1pbnRlcm5hbC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVE9ETzogUmVtb3ZlIHdoZW4gY2hlY2tib3ggaXMgdGhlbWVkXG4vLyBXZSBjYW4gdXNlIHJlbGF0aXZlIGltcG9ydHMgZm9yIGltcG9ydHMgZnJvbSB0aGUgY2RrIGJlY2F1c2Ugd2UgYnVuZGxlIGV2ZXJ5dGhpbmdcbi8vIHVwIGludG8gYSBzaW5nbGUgZmxhdCBzY3NzIGZpbGUgZm9yIG1hdGVyaWFsLlxuQGltcG9ydCAnfkBhbmd1bGFyL2Nkay9vdmVybGF5JztcbkBpbXBvcnQgJ35AYW5ndWxhci9jZGsvYTExeSc7XG4vLyBcbkBpbXBvcnQgJ35AYW5ndWxhci9tYXRlcmlhbC90aGVtaW5nJztcblxuLy8gQ29yZSBzdHlsZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBtYXRlcmlhbCBkZXNpZ24gdHJlYXRtZW50cyB0byBhbnkgZWxlbWVudC5cblxuLy8gXG4vLyBcbi8vIFxuLy8gXG4vLyBcbi8vIFxuLyohIEJhc2Ugc3R5bGVzLCBtYWRlIHdpdGggbm9ybWFsaXplLmNzcyB2Ny4wLjAgKi9cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuXG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIFdpZGUgQmxhY2snO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIHNyYzogdXJsKCdodHRwczovL3hwb2RvdGNvbS5henVyZWVkZ2UubmV0L3hwby9maWxlcy9yb2JvdG8td2lkZS0tYmxhY2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgdXJsKCdodHRwczovL3hwb2RvdGNvbS5henVyZWVkZ2UubmV0L3hwby9maWxlcy9yb2JvdG8td2lkZS0tYmxhY2sud29mZicpIGZvcm1hdCgnd29mZicpO1xufVxuXG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbjpyb290IHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1yb290O1xufVxuXG5odG1sLFxuYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tYmFzZTtcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5O1xuICBjb2xvcjogJHhwby1mb250Q29sb3ItLXByaW1hcnk7XG4gIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8tbGV0dGVyU3BhY2luZy0tYmFzZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tYmFzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmgxLFxuaDIsXG5oMyB7XG4gIG1hcmdpbjogKCR4cG8tY29udGVudFNwYWNpbmcgLyAyKSAwO1xufVxuXG5oMSB7XG4gIEBpbmNsdWRlIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpO1xufVxuXG5oMiB7XG4gIEBpbmNsdWRlIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKTtcbn1cblxuaDMge1xuICBAaW5jbHVkZSBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKTtcbn1cblxucCB7XG4gIG1hcmdpbjogMDtcbn1cblxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuaHIge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46ICR4cG8tY29udGVudFNwYWNpbmcgMDtcbiAgcGFkZGluZzogMDtcbn1cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogJHhwby1ibHVlLS00MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHhwby1ibHVlLS0zMDA7XG4gIH1cbn1cblxudWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuZHQge1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xufVxuXG5kZCB7XG4gIG1hcmdpbjogMCAwICgkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMik7XG59XG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBwYWRkaW5nOiAwLjJlbSAwLjNlbTtcbn1cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuYnV0dG9uLFxuaHRtbCBbdHlwZT0nYnV0dG9uJ10sXG5bdHlwZT0ncmVzZXQnXSxcblt0eXBlPSdzdWJtaXQnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0nYnV0dG9uJ106Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0ncmVzZXQnXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPSdzdWJtaXQnXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J2J1dHRvbiddOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J3Jlc2V0J106LW1vei1mb2N1c3JpbmcsXG5bdHlwZT0nc3VibWl0J106LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZGlzcGxheTogdGFibGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuW3R5cGU9J2NoZWNrYm94J10sXG5bdHlwZT0ncmFkaW8nXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG59XG5cblt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuW3R5cGU9J3NlYXJjaCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG5bdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxuZGV0YWlscyxcbm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgYWxsIG9mIHRoZSBjb3JlIHN0eWxlcyB0aGF0IGFyZSBub3QgdGhlbWUtZGVwZW5kZW50LlxuQG1peGluIHhwby1tYXQtY29yZSgkdHlwb2dyYXBoeS1jb25maWc6IG51bGwpIHtcbiAgLy8gUHJvdmlkZXMgZXh0ZXJuYWwgQ1NTIGNsYXNzZXMgZm9yIGVhY2ggZWxldmF0aW9uIHZhbHVlLiBFYWNoIENTUyBjbGFzcyBpcyBmb3JtYXR0ZWQgYXNcbiAgLy8gYG1hdC1lbGV2YXRpb24teiR6VmFsdWVgIHdoZXJlIGAkelZhbHVlYCBjb3JyZXNwb25kcyB0byB0aGUgei1zcGFjZSB0byB3aGljaCB0aGUgZWxlbWVudCBpc1xuICAvLyBlbGV2YXRlZC5cbiAgQGZvciAkelZhbHVlIGZyb20gMCB0aHJvdWdoIDI0IHtcbiAgICAuI3skbWF0LWVsZXZhdGlvbi1wcmVmaXh9I3skelZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeS1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlKCk7XG4gIEBpbmNsdWRlIGNkay1hMTF5KCk7XG4gIEBpbmNsdWRlIGNkay1vdmVybGF5KCk7XG4gIC8vIEBpbmNsdWRlIGNkay10ZXh0LWZpZWxkKCk7XG59XG5cbi8vIE1peGluIHRoYXQgcmVuZGVycyBhbGwgb2YgdGhlIGNvcmUgc3R5bGVzIHRoYXQgZGVwZW5kIG9uIHRoZSB0aGVtZS5cbkBtaXhpbiB4cG8tbWF0LWNvcmUtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGlvbi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG5cbiAgLy8gV3JhcHBlciBlbGVtZW50IHRoYXQgcHJvdmlkZXMgdGhlIHRoZW1lIGJhY2tncm91bmQgd2hlbiB0aGUgdXNlcidzIGNvbnRlbnQgaXNuJ3RcbiAgLy8gaW5zaWRlIG9mIGEgYG1hdC1zaWRlbmF2LWNvbnRhaW5lcmAuIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIGV4Y2x1ZGUgdGhlIGFtcGVyc2FuZFxuICAvLyBzZWxlY3RvciBpbiBjYXNlIHRoZSBtaXhpbiBpcyBpbmNsdWRlZCBhdCB0aGUgdG9wIGxldmVsLlxuICAvLyAubWF0LWFwcC1iYWNrZ3JvdW5kI3tpZigmLCAnLCAmLm1hdC1hcHAtYmFja2dyb3VuZCcsICcnKX0ge1xuICAvLyAgICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gIC8vICAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAvLyAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG4gIC8vICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIC8vIH1cblxuICAvLyBNYXJrZXIgdGhhdCBpcyB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSB1c2VyIGhhcyBhZGRlZCBhIHRoZW1lIHRvIHRoZWlyIHBhZ2UuXG4gIEBhdC1yb290IHtcbiAgICAubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHhwby1jYXJkLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC54cG8tQ2FyZCB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuXG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcblxuXG5AbWl4aW4geHBvLWFwcGxpY2F0aW9uU3dpdGNoZXItdGhlbWUoJHRoZW1lKSB7XG4gIC8vIG92ZXJsYXkgZGlhbG9nIHdyYXBwZXJcbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIueHBvLUFwcGxpY2F0aW9uU3dpdGNoZXItZGlhbG9nLXdyYXBwZXIge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgLy8gb3ZlcmxheSBwYW5lbCBjb250ZW50IHN0eWxlXG4gICAgLmNkay1vdmVybGF5LXBhbmUueHBvLUFwcGxpY2F0aW9uU3dpdGNoZXItZGlhbG9nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgIC8vIFRPRE86IGRlZmluZSBpZiB3ZSdsbCBkaXNwbGF5IGEgYm9yZGVyLCBhIHNoYWRvdyBvciBib3RoXG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJHhwby1ncmV5LS0zMDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICB9XG4gIH1cblxuICAueHBvLUFwcGxpY2F0aW9uU3dpdGNoZXJDb250ZW50IHtcbiAgICAvLyBzZXQgdGhlIGNvbnRlbnQgc2Nyb2xsIHRvIGtlZXAgdGhlIGhlYWRlciBhbHdheXMgdmlzaWJsZVxuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgLy8gZml4IGRvdWJsZSBib3R0b20gYm9yZGVyXG4gICAgLy8gaXQgY2FudCBiZSBkb25lIGluc2lkZSBhcHBsaWNhdGlvbiBjb21wb25lbnQgZHVlIHRvIHRoZSBgbGFzdC14YCBzZWxlY3RvclxuICAgIC8vIGVpdGhlciBpbnNpZGUgYXBwbGljYXRpb24gY2F0ZWdvcnkgY29tcG9uZW50IGR1ZSB0byB2aWV3IGVuY2Fwc3VsYXRpb25cbiAgICAueHBvLUFwcGxpY2F0aW9uQ2F0ZWdvcnkge1xuICAgICAgLnhwby1BcHBsaWNhdGlvbjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAueHBvLUFwcGxpY2F0aW9uLWNvbnRlbnQ6aG92ZXIge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHhwby1hdXRvY29tcGxldGUtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1hdXRvY29tcGxldGUtdGhlbWUoJHRoZW1lKTtcblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbC1hYm92ZSB7XG4gICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgIH1cblxuICAgICYgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwubWF0LWF1dG9jb21wbGV0ZS12aXNpYmxlIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IHRoaXMgc3R5bGUgd2lsbCBiZSBhcHBsaWVkIHRvIGFsbCBmb3JtIGZpZWxkIHR5cGVzXG4gIC8vIHdlIG5lZWQgdG8gZmluZCB0aGUgd2F5IHRvIHVzZSBpdCBqdXN0IGZvciBhdXRvY29tcGxldGUgY29udHJvbHNcbiAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gICAgLm1hdC1pY29uIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbC5tYXQtYXV0b2NvbXBsZXRlLXZpc2libGUge1xuICAgICRfYXV0b2NvbXBsZXRlLXBhZGRpbmctLXZlcnRpY2FsOiA2cHg7XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgIC5tYXQtb3B0aW9uIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1yb290O1xuICAgICAgaGVpZ2h0OiAkeHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtO1xuICAgICAgcGFkZGluZzogMCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tMjAwO1xuICAgICAgfVxuXG4gICAgICAmLm1hdC1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkeHBvLWJsdWUtLTIwMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICAubWF0LW9wdGlvbi10ZXh0IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICB9XG5cbiAgICAgIC54cG8tSWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICB9XG5cbiAgICAgICYueHBvLU9wdGlvbiB7XG4gICAgICAgICYtLXR3b0xpbmVzIHtcbiAgICAgICAgICBoZWlnaHQ6ICR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lcztcbiAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbTtcbiAgICAgICAgICBwYWRkaW5nOiAkX2F1dG9jb21wbGV0ZS1wYWRkaW5nLS12ZXJ0aWNhbCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgICAgIC5tYXQtb3B0aW9uLXRleHQge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgIC54cG8tU2VsZWN0LXR3b0xpbmVzQ29udGFpbmVyIHtcbiAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgICAvLyBlYWNoIG9mIHRoZSBwcm9qZWN0ZWQgY29udGVudFxuICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1oaWRlRGl2aWRlcjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICAueHBvLWljb24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC54cG8tU2VsZWN0LXR3b0NvbHVtbnNDb250YWluZXIge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjAlIDgwJTtcblxuICAgICAgLy8gZWFjaCBvZiB0aGUgcHJvamVjdGVkIGNvbnRlbnQgZm9yIGNvbHVtbnNcbiAgICAgIHNwYW4ge1xuICAgICAgICBmbGV4OiBub25lO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cblxuICAgICAgc3BhbjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgIH1cblxuICAgICAgc3BhbjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnhwby1TZWxlY3QtdGhyZWVDb2x1bW5zQ29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDMzJSAzNCUgMzMlO1xuXG4gICAgICAvLyBlYWNoIG9mIHRoZSBwcm9qZWN0ZWQgY29udGVudCBmb3IgY29sdW1uc1xuICAgICAgc3BhbiB7XG4gICAgICAgIG1hcmdpbjogMCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG5cbiAgICAgIHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICBzcGFuOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRvdEJhZGdlTWl4KCRiYWNrZ3JvdW5kQ29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmRDb2xvcjtcbn1cbkBtaXhpbiB4cG8tYmFkZ2UtdGhlbWUoJHRoZW1lKSB7XG4gICRfbWF0QmFkZ2VDb250ZW50LWZvbnRTaXplOiAxMHB4O1xuICAkX21hdEJhZGdlQ29udGVudC1pY29uLWZvbnRTaXplOiAyMHB4O1xuICAkX21hdEJhZGdlQ29udGVudC1oZWlnaHQ6IDE2cHg7XG4gICRfbWF0QmFkZ2VDb250ZW50RGVmYXVsdC1ib3JkZXJSYWRpdXM6IDJweDtcbiAgJF9tYXRCYWRnZUNvbnRlbnQtcGFkZGluZzogMnB4IDNweDtcbiAgJF9tYXRCYWRnZUNvbnRlbnQtYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLXdoaXRlO1xuICAkX21hdEJhZGdlQ29udGVudC1yaWdodDogLTE1cHg7XG4gICRfbWF0QmFkZ2VDb250ZW50LWJvcmRlclJhZGl1czogMTBweDtcbiAgJF9tYXREb3RCYWRnZUNvbnRlbnQtaGVpZ2h0V2lkdGg6IDEwcHg7XG4gICRfbWF0QmFkZ2VPdmVybGFwQ29udGVudC10b3A6IC0xcHg7XG4gICRfbWF0QmFkZ2VPdmVybGFwQ29udGVudC1yaWdodDogLTE0cHg7XG4gICRfbWF0QmFkZ2VDb250ZW50LXRvcC0taW1wb3J0YW50OiAtOHB4O1xuICAkX21hdEJhZGdlQ29udGVudC1oZWlnaHQtLWltcG9ydGFudDogMThweDtcblxuICAubWF0LWljb24ge1xuICAgICYubWF0LWJhZGdlLWFib3ZlOm5vdCgueHBvLUJhZGdlLS1pbXBvcnRhbnQpIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGZvbnQtc2l6ZTogJF9tYXRCYWRnZUNvbnRlbnQtaWNvbi1mb250U2l6ZTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgICYubWF0LWJhZGdlLW1lZGl1bSB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG5cbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuICAgICAgICBib3JkZXI6ICRfbWF0QmFkZ2VDb250ZW50LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJF9tYXRCYWRnZUNvbnRlbnREZWZhdWx0LWJvcmRlclJhZGl1cztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZm9udC1zaXplOiAkX21hdEJhZGdlQ29udGVudC1mb250U2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkO1xuICAgICAgICBoZWlnaHQ6ICRfbWF0QmFkZ2VDb250ZW50LWhlaWdodDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkX21hdEJhZGdlQ29udGVudC1oZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6ICRfbWF0QmFkZ2VDb250ZW50LXBhZGRpbmc7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuXG4gICAgICAmLm1hdC1iYWRnZS1hYm92ZSB7XG4gICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgdG9wOiAtOXB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWF0LWJhZGdlLW92ZXJsYXAge1xuICAgICAgICAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICAgIHJpZ2h0OiAkX21hdEJhZGdlQ29udGVudC1yaWdodDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy9JbXBvcnRhbnQgbm90aWZpY2F0aW9uIGJhZGdlXG4gICAgICAmLnhwby1CYWRnZS0taW1wb3J0YW50IHtcbiAgICAgICAgJi5tYXQtYmFkZ2UtYWJvdmUge1xuICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICB0b3A6ICRfbWF0QmFkZ2VDb250ZW50LXRvcC0taW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LWJhZGdlLW92ZXJsYXAge1xuICAgICAgICAgICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICAgIHJpZ2h0OiAtMjhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tcmVkLS02MDA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJF9tYXRCYWRnZUNvbnRlbnQtYm9yZGVyUmFkaXVzO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICRfbWF0QmFkZ2VDb250ZW50LWZvbnRTaXplO1xuICAgICAgICAgIHBhZGRpbmc6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvL0RvdCBiYWRnZVxuICAgICAgJi54cG8tQmFkZ2VEb3Qge1xuICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkX21hdEJhZGdlQ29udGVudC1ib3JkZXJSYWRpdXM7XG4gICAgICAgICAgaGVpZ2h0OiAkX21hdERvdEJhZGdlQ29udGVudC1oZWlnaHRXaWR0aDtcbiAgICAgICAgICB3aWR0aDogJF9tYXREb3RCYWRnZUNvbnRlbnQtaGVpZ2h0V2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1iYWRnZS1vdmVybGFwIHtcbiAgICAgICAgICAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgICByaWdodDogJF9tYXRCYWRnZU92ZXJsYXBDb250ZW50LXJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LWJhZGdlLWFib3ZlIHtcbiAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgdG9wOiAkX21hdEJhZGdlT3ZlcmxhcENvbnRlbnQtdG9wO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdhcm5pbmcge1xuICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkb3RCYWRnZU1peCgkbmd4LVNuYWNrYmFyLXN0YXR1cy0td2Fybik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3VjY2VzcyB7XG4gICAgICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRvdEJhZGdlTWl4KCRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmZvIHtcbiAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZG90QmFkZ2VNaXgoJHhwby1ibHVlLS03MDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluZm8ge1xuICAgICAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkb3RCYWRnZU1peCgkeHBvLWJsdWUtLTcwMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW1wb3J0YW50IHtcbiAgICAgICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZG90QmFkZ2VNaXgoJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vXG4vLyBTbWFsbCBCdXR0b24gc3R5bGVzXG4vLy9cblxuQG1peGluIGJ1dHRvbi0tc21hbGwoKSB7XG4gICRfYnV0dG9uLWJvcmRlci0tc2xpbTogMXB4O1xuICAkX2J1dHRvbi1mb250U2l6ZS1pY29uLS1zbWFsbDogMjBweDtcbiAgJF9idXR0b24tTGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4gIFxuICAkX2J1dHRvbi1IZWlnaHQtLXNtYWxsOiAzMnB4O1xuICAkX2J1dHRvbi1wYWRkaW5nOiA0cHggMjBweDtcblxuICBbbWF0LWZsYXQtYnV0dG9uXS5tYXQtZmxhdC1idXR0b24ueHBvLVNtYWxsQnV0dG9uLFxuICBbbWF0LXN0cm9rZWQtYnV0dG9uXS5tYXQtc3Ryb2tlZC1idXR0b24ueHBvLVNtYWxsQnV0dG9uIHtcbiAgICBib3JkZXItd2lkdGg6ICRfYnV0dG9uLWJvcmRlci0tc2xpbTtcbiAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICBoZWlnaHQ6ICRfYnV0dG9uLUhlaWdodC0tc21hbGw7XG4gICAgcGFkZGluZzogJF9idXR0b24tcGFkZGluZztcblxuICAgIC5tYXQtaWNvbiB7XG4gICAgICBmb250LXNpemU6ICRfYnV0dG9uLWZvbnRTaXplLWljb24tLXNtYWxsO1xuICAgIH1cblxuICAgIC5tYXQtYnV0dG9uLXdyYXBwZXIge1xuICAgICAgbGluZS1oZWlnaHQ6ICRfYnV0dG9uLUxpbmVIZWlnaHQtLXNtYWxsO1xuICAgIH1cbiAgfVxuXG4gIG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQueHBvLVNtYWxsQnV0dG9uLFxuICBtYXQtYnV0dG9uLXRvZ2dsZS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQueHBvLVNtYWxsQnV0dG9uIHtcbiAgICBoZWlnaHQ6ICRfYnV0dG9uLUhlaWdodC0tc21hbGw7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUsXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBib3JkZXItd2lkdGg6ICRfYnV0dG9uLWJvcmRlci0tc2xpbTtcblxuICAgICAgLm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8gTGFyZ2UgQnV0dG9uIHN0eWxlc1xuLy8vXG5cbkBtaXhpbiBidXR0b24tLWxhcmdlKCkge1xuICBbbWF0LWZsYXQtYnV0dG9uXS5tYXQtZmxhdC1idXR0b24ueHBvLUxhcmdlQnV0dG9uLFxuICBbbWF0LXN0cm9rZWQtYnV0dG9uXS5tYXQtc3Ryb2tlZC1idXR0b24ueHBvLUxhcmdlQnV0dG9uLFxuICBtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkLnhwby1MYXJnZUJ1dHRvbixcbiAgbWF0LWJ1dHRvbi10b2dnbGUubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLnhwby1MYXJnZUJ1dHRvbiB7XG4gICAgJF9idXR0b24tbGFyZ2UtaGVpZ2h0OiA1NnB4O1xuICAgICRfYnV0dG9uLXBhZGRpbmc6IDE2cHggMjBweDtcblxuICAgIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlO1xuICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gICAgaGVpZ2h0OiAkX2J1dHRvbi1sYXJnZS1oZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBwYWRkaW5nOiAkX2J1dHRvbi1wYWRkaW5nO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8gQWN0aW9uIEJ1dHRvbiBzdHlsZXNcbi8vL1xuXG5AbWl4aW4geHBvLWFjdGlvbi1idXR0b24tdGhlbWUoJHRoZW1lKSB7XG4gICRfYnV0dG9uLXdpZHRoOiAzMnB4O1xuICAkX2J1dHRvbi1oZWlnaHQ6IDMycHg7XG5cbiAgLnhwby1BY3Rpb25CdXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuICAgIGhlaWdodDogJF9idXR0b24taGVpZ2h0O1xuICAgIHdpZHRoOiAkX2J1dHRvbi13aWR0aDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgPiAubWF0LWljb24ge1xuICAgICAgJF9pY29uLXNpemU6IDIwcHg7XG4gICAgICB3aWR0aDogJF9pY29uLXNpemU7XG4gICAgICBoZWlnaHQ6ICRfaWNvbi1zaXplO1xuICAgICAgZm9udC1zaXplOiAkX2ljb24tc2l6ZTtcbiAgICB9XG4gIFxuXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS05NzU7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgeHBvLWJ1dHRvbi1kaXNhYmxlZCgkeHBvLXdoaXRlLCAkeHBvLWdyZXktLTMwMCwgJHhwby1ncmV5LS0zNTApO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFRPRE86IHJlbW92ZSB0aGlzIGltcG9ydCBmb3IgZGVwcmVjYXRlZCBzdHlsZXNcbi8vL1xuLy8gREVQUkVDQVRFRCBTVFlMRVMgRk9SIEJVVFRPTlNcbi8vIFdlJ3JlIGtlZXBpbmcgdGhlIHN0eWxlcyBhcm91bmQgc28gdGhpbmdzIGRvbid0IGJyZWFrIHNvIGJhZGx5LlxuLy8vXG5cbkBtaXhpbiB4cG8tYnV0dG9uLWRpc2FibGVkLWRlcHJlY2F0ZWQoJGJhY2tncm91bmQtY29sb3IsICRib3JkZXItY29sb3IsICRmb250LWNvbG9yKSB7XG4gICYsXG4gICY6YWN0aXZlLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG4gICAgY29sb3I6ICRmb250LWNvbG9yO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cbn1cblxuJF9idXR0b24tcGFkZGluZy0taG9yaXpvbnRhbDogMjBweDtcbiRfYnV0dG9uLWJvcmRlci0tcmVndWxhcjogMnB4O1xuXG4vLyAtLS0gQnV0dG9uIFdhcm4tLS1cbiRfYnV0dG9uLXdhcm46ICR4cG8tcmVkLS00MDA7XG4kX2J1dHRvbi13YXJuLS1hY3RpdmU6ICR4cG8tcmVkLS05MDA7XG4kX2J1dHRvbi13YXJuLS1ob3ZlcjogJHhwby1yZWQtLTMwMDtcbiRfYnV0dG9uLW1lZGl1bS1oZWlnaHQ6IDQwcHg7XG5cbi8vIEFsbCBCdXR0b25zXG5bbWF0LWJ1dHRvbl0ubWF0LWJ1dHRvbixcbiAgW21hdC1yYWlzZWQtYnV0dG9uXS5tYXQtcmFpc2VkLWJ1dHRvbixcbiAgW21hdC1pY29uLWJ1dHRvbl0ubWF0LWljb24tYnV0dG9uIHtcbiAgYm9yZGVyLXdpZHRoOiAkX2J1dHRvbi1ib3JkZXItLXJlZ3VsYXI7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgaGVpZ2h0OiAkX2J1dHRvbi1tZWRpdW0taGVpZ2h0O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAwICRfYnV0dG9uLXBhZGRpbmctLWhvcml6b250YWw7XG4gIHRyYW5zaXRpb246IGNvbG9yICRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uIGVhc2UsIGJhY2tncm91bmQtY29sb3IgJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb24gZWFzZSwgYm9yZGVyLWNvbG9yICRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uIGVhc2U7XG59XG5cbi8vIEZvciBidXR0b25zIHdpdGhvdXQgYm9yZGVyIG9yIGJhY2tncm91bmQgd2UgYXJlIG5vdCB1c2luZyB0aGUgdmVydGljYWwgcGFkZGluZ1xuW21hdC1idXR0b25dLm1hdC1idXR0b24ge1xuICBwYWRkaW5nOiAwO1xufVxuXG5bbWF0LWljb24tYnV0dG9uXS5tYXQtaWNvbi1idXR0b24ge1xuICBwYWRkaW5nOiAwO1xufVxuXG4vLyBGbGF0LWJ1dHRvbiBzdHlsZXNcblttYXQtcmFpc2VkLWJ1dHRvbl0ubWF0LXJhaXNlZC1idXR0b24ge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6ICRfYnV0dG9uLWJvcmRlci0tcmVndWxhcjtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyAvLyBvdmVycmlkZXMgYXJlIGEgamVyay0tb25seSBmb3IgYG1hdC1yYWlzZWQtYFxuICBjb2xvcjogJHhwby13aGl0ZTtcblxuICAmLFxuICAmLm1hdC1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTM1MDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibHVlLS0zNTA7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTg1MDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibHVlLS04NTA7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtd2FybiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJF9idXR0b24td2FybjtcbiAgICBib3JkZXItY29sb3I6ICRfYnV0dG9uLXdhcm47XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfYnV0dG9uLXdhcm4tLWhvdmVyO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkX2J1dHRvbi13YXJuLS1ob3ZlcjtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfYnV0dG9uLXdhcm4tLWFjdGl2ZTtcbiAgICAgIGJvcmRlci1jb2xvcjogJF9idXR0b24td2Fybi0tYWN0aXZlO1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBAaW5jbHVkZSB4cG8tYnV0dG9uLWRpc2FibGVkLWRlcHJlY2F0ZWQoJHhwby1ncmV5LS0zMDAsICR4cG8tZ3JleS0tMzAwLCAkeHBvLXdoaXRlKTtcbiAgfVxufVxuXG4vLyBMaW5rIGJ1dHRvbnMgYW5kIGljb24gYnV0dG9uc1xuLm1hdC1idXR0b24sXG4ubWF0LWljb24tYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgJi5tYXQtcHJpbWFyeSB7XG4gICAgY29sb3I6ICR4cG8tYmx1ZS0tNDAwO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTMwMDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBjb2xvcjogJHhwby1ibHVlLS05MDA7XG4gICAgfVxuICB9XG5cbiAgJixcbiAgJi5tYXQtYWNjZW50IHtcbiAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tNDAwO1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTkwMDtcbiAgICB9XG4gIH1cblxuICAmLm1hdC13YXJuIHtcbiAgICBjb2xvcjogJF9idXR0b24td2FybjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJF9idXR0b24td2Fybi0taG92ZXI7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgY29sb3I6ICRfYnV0dG9uLXdhcm4tLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQnV0dG9ucyB3aXRoIGJvcmRlcnNcblttYXQtcmFpc2VkLWJ1dHRvbl0ubWF0LXJhaXNlZC1idXR0b24ge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuLy8gRGlzYWJsZWQgc3RhdGVzIGZvciBidXR0b25zIHdpdGggbm8gYmFja2dyb3VuZFxuW21hdC1idXR0b25dLm1hdC1idXR0b24sXG5bbWF0LWljb24tYnV0dG9uXS5tYXQtaWNvbi1idXR0b24ge1xuICAmW2Rpc2FibGVkXSB7XG4gICAgQGluY2x1ZGUgeHBvLWJ1dHRvbi1kaXNhYmxlZC1kZXByZWNhdGVkKHRyYW5zcGFyZW50LCAkeHBvLWdyZXktLTM1MCwgJHhwby1ncmV5LS0zNTApO1xuICB9XG59XG5cbi8vIFJlbW92ZSByb3VuZGVkIGJvcmRlcnNcblttYXQtcmFpc2VkLWJ1dHRvbl0ubWF0LXJhaXNlZC1idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAkX2J1dHRvbi1ib3JkZXItLXJlZ3VsYXI7XG59XG5cbi8vL1xuLy8gREVQUkVDQVRFRCBTVFlMRVMgRk9SIFNNQUxMIEJVVFRPTlNcbi8vIFdlJ3JlIGtlZXBpbmcgdGhlIHN0eWxlcyBhcm91bmQgc28gdGhpbmdzIGRvbid0IGJyZWFrIHNvIGJhZGx5LlxuLy8vXG5cbiAgJF9idXR0b24tYm9yZGVyLS1zbGltOiAxcHg7XG4gICRfYnV0dG9uLWZvbnRTaXplLWljb24tLXNtYWxsOiAyMHB4O1xuICAkX2J1dHRvbi1IZWlnaHQtLXNtYWxsOiAzMHB4O1xuICAkX2J1dHRvbi1MaW5lSGVpZ2h0LS1zbWFsbDogMjhweDtcblxuICBbbWF0LWJ1dHRvbl0ubWF0LWJ1dHRvbi54cG8tU21hbGxCdXR0b24sXG4gIFttYXQtcmFpc2VkLWJ1dHRvbl0ubWF0LXJhaXNlZC1idXR0b24ueHBvLVNtYWxsQnV0dG9uLFxuICBbbWF0LWljb24tYnV0dG9uXS5tYXQtaWNvbi1idXR0b24ueHBvLVNtYWxsQnV0dG9uIHtcbiAgICBib3JkZXItd2lkdGg6ICRfYnV0dG9uLWJvcmRlci0tc2xpbTtcbiAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICBoZWlnaHQ6ICRfYnV0dG9uLUhlaWdodC0tc21hbGw7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBtaW4td2lkdGg6IGF1dG87XG5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkX2J1dHRvbi1mb250U2l6ZS1pY29uLS1zbWFsbDtcbiAgICB9XG5cbiAgICAubWF0LWJ1dHRvbi13cmFwcGVyIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkX2J1dHRvbi1MaW5lSGVpZ2h0LS1zbWFsbDtcbiAgICB9XG4gIH1cblxuXG4vLy9cbi8vIERFUFJFQ0FURUQgU1RZTEVTIEZPUiBMQVJHRSBCVVRUT05TXG4vLyBXZSdyZSBrZWVwaW5nIHRoZSBzdHlsZXMgYXJvdW5kIHNvIHRoaW5ncyBkb24ndCBicmVhayBzbyBiYWRseS5cbi8vL1xuXG4gIFttYXQtYnV0dG9uXS5tYXQtYnV0dG9uLnhwby1MYXJnZUJ1dHRvbixcbiAgW21hdC1yYWlzZWQtYnV0dG9uXS5tYXQtcmFpc2VkLWJ1dHRvbi54cG8tTGFyZ2VCdXR0b24ge1xuICAgICRfYnV0dG9uLWxhcmdlLWhlaWdodDogNTBweDtcblxuICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG4gICAgaGVpZ2h0OiAkX2J1dHRvbi1sYXJnZS1oZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b24ge1xuICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1leHRyYUxhcmdlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG5cblxuQG1peGluIHhwby1idXR0b24tZGlzYWJsZWQoJGJhY2tncm91bmQtY29sb3IsICRib3JkZXItY29sb3IsICRmb250LWNvbG9yKSB7XG4gICYsXG4gICY6YWN0aXZlLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG4gICAgY29sb3I6ICRmb250LWNvbG9yO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cbn1cblxuQG1peGluIHhwby1idXR0b24tdGhlbWUoJHRoZW1lKSB7XG4gICRfYnV0dG9uLXBhZGRpbmctLWhvcml6b250YWw6IDIwcHg7XG4gICRfYnV0dG9uLXBhZGRpbmctLXZlcnRpY2FsOiA4cHg7XG4gICRfYnV0dG9uLWJvcmRlci0tcmVndWxhcjogMnB4O1xuXG4gIC8vIC0tLSBCdXR0b24gV2Fybi0tLVxuICAkX2J1dHRvbi1tZWRpdW0taGVpZ2h0OiA0MHB4O1xuXG4gIC8vIEJ1dHRvbiBkaXJlY3RpdmVcbiAgLnhwby1CdXR0b24sXG4gIC54cG8tQnV0dG9uIC5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b24ge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAvLyBBbGwgQnV0dG9uc1xuICBbbWF0LWZsYXQtYnV0dG9uXS5tYXQtZmxhdC1idXR0b24sXG4gIFttYXQtc3Ryb2tlZC1idXR0b25dLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gICAgYm9yZGVyLXJhZGl1czogJF9idXR0b24tYm9yZGVyLS1yZWd1bGFyO1xuICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG4gICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgICBoZWlnaHQ6ICRfYnV0dG9uLW1lZGl1bS1oZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tYmFzZTtcbiAgICBwYWRkaW5nOiAkX2J1dHRvbi1wYWRkaW5nLS12ZXJ0aWNhbCAkX2J1dHRvbi1wYWRkaW5nLS1ob3Jpem9udGFsO1xuICAgIG1pbi13aWR0aDogYXV0bztcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAkbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbiBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yICRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uIGVhc2UsIGJvcmRlci1jb2xvciAkbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbiBlYXNlO1xuICB9XG5cbiAgLy8gVGhpcyBzdHlsZXMgYXJlIGhlcmUgdG8gYmUgYWJsZSB0byB1c2UgJ3hwb1NtYWxsQnV0dG9uJyBhbmQgJ3hwb1NtYWxsQnV0dG9uJ1xuICAvLyB3aXRoIG1hdC1idXR0b24tdG9nZ2xlXG4gIG1hdC1idXR0b24tdG9nZ2xlLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgaGVpZ2h0OiAkX2J1dHRvbi1tZWRpdW0taGVpZ2h0O1xuXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCB7XG4gICAgICAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAkX2J1dHRvbi1ib3JkZXItLXJlZ3VsYXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUsXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICBib3JkZXItd2lkdGg6ICRfYnV0dG9uLWJvcmRlci0tcmVndWxhcjtcbiAgICB9XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtYnV0dG9uIHtcbiAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgbWF0LWJ1dHRvbi10b2dnbGUubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3JkZXItd2lkdGg6ICRfYnV0dG9uLWJvcmRlci0tcmVndWxhcjtcbiAgfVxuXG4gIG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgICBib3JkZXItd2lkdGg6IDA7XG4gIH1cblxuICAvLyBGbGF0LWJ1dHRvbiBzdHlsZXNcbiAgW21hdC1mbGF0LWJ1dHRvbl0ubWF0LWZsYXQtYnV0dG9uIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJF9idXR0b24tYm9yZGVyLS1yZWd1bGFyO1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgLy8gb3ZlcnJpZGVzIGFyZSBhIGplcmstLW9ubHkgZm9yIGBtYXQtcmFpc2VkLWBcbiAgICBjb2xvcjogJHhwby13aGl0ZTtcblxuICAgICYge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS0zNTA7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibHVlLS0zNTA7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMsXG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tODUwO1xuICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tODUwO1xuICAgICAgfVxuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIHhwby1idXR0b24tZGlzYWJsZWQoJHhwby1ncmV5LS0zMDAsICR4cG8tZ3JleS0tMzAwLCAkeHBvLXdoaXRlKTtcbiAgICB9XG4gIH1cblxuICAvLyBTdHJva2VkIEJ1dHRvbnNcbiAgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgIGNvbG9yOiAkeHBvLWJsdWUtLTg1MDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS0yMDA7XG4gICAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS0yMDA7XG4gICAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tMzUwO1xuICAgICAgY29sb3I6ICR4cG8tYmx1ZS0tMzUwO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIHhwby1idXR0b24tZGlzYWJsZWQoJHhwby1ncmV5LS0yNSwgJHhwby1ncmV5LS0zNTAsICR4cG8tZ3JleS0tMzUwKTtcbiAgICB9XG4gIH1cblxuICAvLyBCdXR0b25zIHdpdGggYm9yZGVyc1xuICBbbWF0LWZsYXQtYnV0dG9uXS5tYXQtZmxhdC1idXR0b24sXG4gIFttYXQtc3Ryb2tlZC1idXR0b25dLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIC8vIEJyaW5nIGluIHRoZSBTbWFsbCBCdXR0b24gU3R5bGVzXG4gIEBpbmNsdWRlIGJ1dHRvbi0tc21hbGwoKTtcblxuICAvLyBCcmluZyBpbiB0aGUgTGFyZ2UgQnV0dG9uIFN0eWxlc1xuICBAaW5jbHVkZSBidXR0b24tLWxhcmdlKCk7XG5cbiAgQGluY2x1ZGUgeHBvLWFjdGlvbi1idXR0b24tdGhlbWUoJHRoZW1lKTtcblxuICAvLy9cbiAgLy8gUmVtb3ZhbHNcbiAgLy8vXG4gIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7IC8vICh4cG8pOiBoaWRlIGJhY2tncm91bmQgY29sb3I7XG4gIH1cblxufVxuXG4vLy9cbi8vIFNldHMgdXAgdGhlIGJ1dHRvbiB0b2dnbGUgZ3JvdXBcbi8vL1xuXG4vKlxuICAxLiBUaGVzZSBhcmUgY2FycmllZCBvdmVyIGZyb20gTWF0ZXJpYWwgYnV0IFVYIGRvZXMgbm90XG4gICAgICBoYXZlIGFueSBkZXNpZ24gZm9yIHRoZW0geWV0LiBUaGF0J3Mgd2h5IHRoZXkgYXJlIG5vdFxuICAgICAgaW4gdGhlIHNhbXBsZS4uLiB0aGV5J3JlIGEgYml0IG9mIGEgaGlkZGVuIEFQSS5cbiovXG5cbkBpbXBvcnQgJ35AYW5ndWxhci9tYXRlcmlhbC90aGVtaW5nJztcblxuQG1peGluIHhwby1idXR0b24tdG9nZ2xlLWdyb3VwLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10aGVtZSgkdGhlbWUpO1xuXG4gIG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLFxuICBtYXQtYnV0dG9uLXRvZ2dsZS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lIHtcbiAgICAkX2lubmVyRGl2aWRlckNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAkX2lubmVyQm9yZGVyVGhpY2tuZXNzOiAycHg7XG4gICAgJF9pbm5lclN0YW5kYWxvbmVCdXR0b24tbWFyZ2luOiAycHg7IC8vICMxXG4gICAgJF9pbm5lclBhZGRpbmctLWhvcml6b250YWw6IDIwcHg7XG4gICAgJF9pbm5lclBhZGRpbmctLXZlcnRpY2FsOiA0cHg7XG5cbiAgICAmLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuXG4gICAgICBAYXQtcm9vdCAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgLy8gIzFcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkX2lubmVyU3RhbmRhbG9uZUJ1dHRvbi1tYXJnaW47XG4gICAgICB9XG5cbiAgICAgIEBhdC1yb290IC5tYXQtYnV0dG9uLXRvZ2dsZS5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLCAvLyAjMVxuICAgICAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkX2lubmVyRGl2aWRlckNvbG9yO1xuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICBjb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW1lZGl1bTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb24gZWFzZSwgYmFja2dyb3VuZC1jb2xvciAkbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbiBlYXNlO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tMjAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTgwMDtcbiAgICAgICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXaWxsIGJlIGRlcHJlY2F0ZWRcbiAgICAgICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS04MDtcbiAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS0zNTA7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEJ1dHRvbiBDb250ZW50XG4gICAgICAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nOiAkX2lubmVyUGFkZGluZy0tdmVydGljYWwgJF9pbm5lclBhZGRpbmctLWhvcml6b250YWw7XG4gICAgICAgID4gLm1hdC1pY29uIHtcbiAgICAgICAgICAkX2ljb24tc2l6ZTogMjBweDtcbiAgICAgICAgICB3aWR0aDogJF9pY29uLXNpemU7XG4gICAgICAgICAgaGVpZ2h0OiAkX2ljb24tc2l6ZTtcbiAgICAgICAgICBmb250LXNpemU6ICRfaWNvbi1zaXplO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE92ZXJyaWRlcyBmb3IgYm9yZGVyIGNvbG9yc1xuXG4gICAgICAmLm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIHtcbiAgICAgICAgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkX2lubmVyRGl2aWRlckNvbG9yO1xuICAgICAgICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgYm9yZGVyLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcbiAgfVxufVxuXG4vLyBUT0RPOiByZW1vdmUgdGhpcyBpbXBvcnQgZm9yIGRlcHJlY2F0ZWQgc3R5bGVzXG4vLy9cbi8vIERFUFJFQ0FURUQgU1RZTEVTIEZPUiBMSU5LU1xuLy8gV2UncmUga2VlcGluZyB0aGUgc3R5bGVzIGFyb3VuZCBzbyB0aGluZ3MgZG9uJ3QgYnJlYWsgc28gYmFkbHkuXG4vLy9cblxuLnhwby1MaW5rIHtcbiAgJi0tYWNjZW50IHtcbiAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTkwMDtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMTAwMDtcbiAgICB9XG4gIH1cbn1cblxuXG5AbWl4aW4geHBvLWxpbmstdGhlbWUoJHRoZW1lKSB7XG4gICRfaWNvbi1zaXplOiAyMHB4OyAvLyByZWxhdGl2ZSB0byBwYXJlbnQgc2l6ZVxuICAkX2ljb24tZ2FwOiA1cHg7IFxuXG4gIC54cG8tTGluayB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW1lZGl1bTsgICAgICAgIFxuICAgIGdhcDogJF9pY29uLWdhcDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTM1MDtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJHhwby1ibHVlLS04NTA7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTM1MDtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICAgIFxuICAgICYtLXJlZ3VsYXIge1xuICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgIH1cblxuICAgID4ubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gICAgICBoZWlnaHQ6ICRfaWNvbi1zaXplO1xuICAgICAgd2lkdGg6ICRfaWNvbi1zaXplO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgICBcbiAgfVxufVxuXG5cbkBtaXhpbiB4cG8tZG93bmxvYWQtYnV0dG9uLXRoZW1lKCR0aGVtZSkge1xuICBidXR0b24ubWF0LWJ1dHRvbi54cG8tRG93bmxvYWRCdXR0b24ge1xuICAgICRfYnV0dG9uLXNpemU6IDIwcHg7XG5cbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiAkX2J1dHRvbi1zaXplO1xuICAgIG1pbi13aWR0aDogJF9idXR0b24tc2l6ZTtcblxuICAgIC5tYXQtc3Bpbm5lciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB4cG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1jaGVja2JveC10aGVtZSgkdGhlbWUpO1xuICAkX2NoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyUmFkaXVzOiAycHg7XG4gICRfY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1wYWRkaW5nOiAxcHggMnB4IDNweCAxcHg7XG4gICRfY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1tYXJnaW46IDNweCAzcHg7XG4gICRfY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1ib3JkZXI6IDJweCBzb2xpZCAkeHBvLWJsYWNrO1xuXG4gIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OyAvLyBBdm9pZCBkZWZhdWx0IGluZGV0ZXJtaXRhdGUgc3R5bGUgd2hlbiBsZWZ0IGluZGV0ZXJtaW5hdGUgc3RhdGVcbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtYWNjZW50IHtcbiAgICAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciB7XG4gICAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICR4cG8tYmxhY2s7XG4gICAgICBib3JkZXItcmFkaXVzOiAkX2NoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyUmFkaXVzO1xuICAgIH1cblxuICAgICYubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAgIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLWdyZXktLTM1MDtcblxuICAgICAgICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICAgICAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQ6ICR4cG8tYmxhY2s7XG4gICAgICBib3JkZXI6ICRfY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1ib3JkZXI7XG4gICAgICBoZWlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgbWFyZ2luOiAkX2NoZWNrYm94LWluZGV0ZXJtaW5hdGUtbWFyZ2luO1xuICAgICAgcGFkZGluZzogJF9jaGVja2JveC1pbmRldGVybWluYXRlLXBhZGRpbmc7XG4gICAgICB3aWR0aDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGVja2JveCB7XG4gICAgJF9tYXQtY2hlY2tib3gtY2xhc3M6ICY7XG5cbiAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG1hcmdpbjogM3B4ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgIHBhZGRpbmc6IDAgJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG5cbiAgICAmLmNkay1rZXlib2FyZC1mb2N1c2VkIHtcbiAgICAgIGJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggZGFzaGVkICR4cG8tZ3JleS0tMzAwO1xuICAgIH1cblxuICAgICYueHBvLUNoZWNrYm94R3JvdXAtc2VsZWN0QWxsIHtcbiAgICAgIG1hcmdpbjogM3B4ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtbGF5b3V0IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tib3gtbGFiZWwtYmVmb3JlIC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICB9XG5cbiAgICAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciB7XG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgbWFyZ2luOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNCAwIDA7XG4gICAgfVxuXG4gICAgJi1yaXBwbGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLWJhY2tncm91bmQge1xuICAgICAgLm1hdC1jaGVja2JveC1jaGVja21hcmsge1xuICAgICAgICAmLXBhdGgge1xuICAgICAgICAgIHN0cm9rZS13aWR0aDogMy4xMzMzM3B4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrO1xuICAgICAgfVxuXG4gICAgICAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gICAgICAgIGZpbGw6ICRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0O1xuICAgICAgfVxuXG4gICAgICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zNTA7XG5cbiAgICAgICAgLm1hdC1jaGVja2JveC1jaGVja2VkICYge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gICAgICAgICAgc3Ryb2tlOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGUtLWxpZ2h0ZXIgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJrIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1jaGVja2JveC1jaGVja2VkIHtcbiAgICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkge1xuICAgICAgI3skX21hdC1jaGVja2JveC1jbGFzc30taW5uZXItY29udGFpbmVyOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlKSB7XG4gICAgICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJG5neC1pbnB1dC1jb2xvci1ib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyaztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGNoaXAtc2l6ZSgkY2hpcC1zaXplLCAkZm9udC1zaXplKSB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRjaGlwLXNpemU7XG4gIG1pbi1oZWlnaHQ6ICRjaGlwLXNpemU7XG59XG5cbkBtaXhpbiBpY29uLXNpemUoJGljb24tc2l6ZSkge1xuICBoZWlnaHQ6ICRpY29uLXNpemU7XG4gIHdpZHRoOiAkaWNvbi1zaXplO1xufVxuXG5AbWl4aW4gY2hpcHMtYmFkZ2UoJGJhY2tncm91bmRDb2xvciwgJGJvcmRlciwgJGNvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kQ29sb3I7XG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgY29sb3I6ICRjb2xvcjtcbn1cblxuQG1peGluIHhwby1jaGlwcy10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lKCR0aGVtZSk7XG5cbiAgbWF0LWNoaXAubWF0LWNoaXAge1xuICAgICRfbWF0Q2hpcC1wcmlvcml0eS1jcml0aWNhbDogJHhwby1jb2xvci0tZXJyb3I7XG4gICAgJF9tYXRDaGlwLXByaW9yaXR5LWhpZ2g6ICR4cG8tb3JhbmdlLS0zMDA7XG4gICAgJF9tYXRDaGlwLXByaW9yaXR5LW1lZGl1bTogJHhwby1jb2xvci0td2FybjtcbiAgICAkX21hdENoaXAtYm9yZGVyLXJhZGl1cy0tZGVmYXVsdDogJHhwby1jb250ZW50U3BhY2luZztcbiAgICAkX21hdENoaXAtdGFncy1ib3JkZXItcmFkaXVzOiAycHg7XG4gICAgJF9tYXRDaGlwLXRhZ0xhcmdlLWhlaWdodDogMzBweDtcbiAgICAkX21hdEJhZGdlQ29udGVudC1mb250U2l6ZTogMTBweDtcbiAgICAkX21hdENoaXAtQmFkZ2UtaGVpZ2h0OiAyMHB4O1xuXG4gICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbWVkaXVtO1xuXG4gICAgQGluY2x1ZGUgY2hpcC1zaXplKCR4cG8tbGluZUhlaWdodC0tYmFzZSwgJHhwby1mb250U2l6ZS0tbWVkaXVtKTtcblxuICAgIC5tYXQtaWNvbiB7XG4gICAgICBAaW5jbHVkZSBpY29uLXNpemUoJHhwby1mb250U2l6ZS0tbWVkaXVtKTtcbiAgICB9XG5cbiAgICAmLnhwby1DaGlwLS1zbWFsbCB7XG4gICAgICBAaW5jbHVkZSBjaGlwLXNpemUoJHhwby1saW5lSGVpZ2h0LS1zbWFsbCwgJHhwby1mb250U2l6ZS0tc21hbGwpO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBAaW5jbHVkZSBpY29uLXNpemUoJHhwby1mb250U2l6ZS0tc21hbGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LXN0YW5kYXJkLWNoaXAge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAkX21hdENoaXAtYm9yZGVyLXJhZGl1cy0tZGVmYXVsdDtcbiAgICAgIHBhZGRpbmctbGVmdDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgJjpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSB7XG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuXG4gICAgICAgICYubWF0LWNoaXAtdHJhaWxpbmctaWNvbiB7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnhwby1DaGlwIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgJi0tdW5yZWFkLFxuICAgICAgJi0tY3JpdGljYWwge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkX21hdENoaXAtcHJpb3JpdHktY3JpdGljYWw7XG4gICAgICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgfVxuXG4gICAgICAmLS1oaWdoIHtcbiAgICAgICAgYmFja2dyb3VuZDogJF9tYXRDaGlwLXByaW9yaXR5LWhpZ2g7XG4gICAgICB9XG5cbiAgICAgICYtLW1lZGl1bSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRfbWF0Q2hpcC1wcmlvcml0eS1tZWRpdW07XG4gICAgICB9XG5cbiAgICAgICYtLWdyZWVuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmVlbi0tNDAwO1xuICAgICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICAgIH1cblxuICAgICAgJi0tb3JhbmdlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1vcmFuZ2UtLTMwMDtcbiAgICAgIH1cblxuICAgICAgJi0tcmVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1yZWQtLTQwMDtcbiAgICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICB9XG5cbiAgICAgICYtLXllbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8teWVsbG93LS00MDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi54cG8tQmFkZ2VDaGlwIHtcbiAgICAgICYubWF0LWNoaXAge1xuICAgICAgICBmb250LXNpemU6ICRfbWF0QmFkZ2VDb250ZW50LWZvbnRTaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6ICRfbWF0Q2hpcC1CYWRnZS1oZWlnaHQ7XG4gICAgICB9XG5cbiAgICAgIC8vIE51bWJlcmVkXG4gICAgICAmLS1uZWdhdGl2ZSB7XG4gICAgICAgICYubWF0LXN0YW5kYXJkLWNoaXAge1xuICAgICAgICAgICYubWF0LWNoaXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2hpcHMtYmFkZ2UoXG4gICAgICAgICAgICAgICRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tbmVnYXRpdmUsXG4gICAgICAgICAgICAgICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tbmVnYXRpdmUsXG4gICAgICAgICAgICAgICRfbWF0QmFkZ2VDb250ZW50LWNvbG9yLS1uZWdhdGl2ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi0tcG9zaXRpdmUge1xuICAgICAgICAmLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgICAgICAgICAmLm1hdC1jaGlwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNoaXBzLWJhZGdlKFxuICAgICAgICAgICAgICAkX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLXBvc2l0aXZlLFxuICAgICAgICAgICAgICAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLXBvc2l0aXZlLFxuICAgICAgICAgICAgICAkbmd4LVNuYWNrYmFyLXN0YXR1cy0tc3VjY2Vzc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4ubWF0LWNoaXAtbGlzdCB7XG4gIC5tYXQtY2hpcC1saXN0LXdyYXBwZXIge1xuICAgICRfbWF0Q2hpcC13cmFwcGVyLWdhcDogNnB4O1xuICAgIGdhcDogJF9tYXRDaGlwLXdyYXBwZXItZ2FwO1xuICB9ICBcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC54cG8tVGFnIHtcbiAgJF9tYXRDaGlwLWJvcmRlci1yYWRpdXMtLWRlZmF1bHQ6ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICRfbWF0Q2hpcC1nYXA6IDEycHg7XG4gICRfbWF0Q2hpcC1tYXJnaW4tcmlnaHQ6IDEycHg7XG4gICRfbWF0Q2hpcC10YWdzLWJvcmRlci1yYWRpdXM6IDJweDtcbiAgJF9tYXRDaGlwLXRhZ3MtaGVpZ2h0OiAyNHB4O1xuICAkX21hdENoaXAtdGFncy1tYXJnaW46IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS0yNTtcbiAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gIGJvcmRlci1yYWRpdXM6ICRfbWF0Q2hpcC10YWdzLWJvcmRlci1yYWRpdXM7XG4gIGNvbG9yOiAkeHBvLWdyZXktLTk3NTtcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc207XG4gIGhlaWdodDogJF9tYXRDaGlwLXRhZ3MtaGVpZ2h0O1xuICBtYXJnaW46ICRfbWF0Q2hpcC10YWdzLW1hcmdpbiAwO1xuICBtaW4taGVpZ2h0OiAkX21hdENoaXAtdGFncy1oZWlnaHQ7XG4gIHBhZGRpbmc6ICgkeHBvLWNvbnRlbnRTcGFjaW5nIC8gOCkgKCR4cG8tY29udGVudFNwYWNpbmcgLyAyKTtcblxuICA+IC5tYXQtaWNvbiB7XG4gICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbiAgICBoZWlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgbWFyZ2luLWxlZnQ6ICRfbWF0Q2hpcC1tYXJnaW4tcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHdpZHRoOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICB9IFxuICAueHBvLUljb24ge1xuICAgIGhlaWdodDogJHhwby1jb250ZW50U3BhY2luZztcbiAgICBtYXJnaW4tbGVmdDogJF9tYXRDaGlwLW1hcmdpbi1yaWdodDtcbiAgICB3aWR0aDogJHhwby1jb250ZW50U3BhY2luZzsgXG4gICAgLm1hdC1pY29uIHtcbiAgICAgIGhlaWdodDogJHhwby1jb250ZW50U3BhY2luZztcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIHdpZHRoOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgIH0gXG4gIH1cbiAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtY2hpcC10cmFpbGluZy1pY29uIHtcbiAgICBtYXJnaW4tbGVmdDogJF9tYXRDaGlwLW1hcmdpbi1yaWdodDtcbiAgICBvcGFjaXR5OiAxO1xuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgfVxuICAgIFxufVxuXG5AbWl4aW4geHBvLWNvbnRleHR1YWwtaGVhZGVyLXRoZW1lKCR0aGVtZSkge1xuICAueHBvLUNvbnRleHR1YWxIZWFkZXIge1xuICAgIFxuICAgIC8vIFRPRE86IHJldmlldyB3aGVuIGRldmVsb3BpbmcgYHhwby1jb250ZXh0dWFsLWhlYWRlci1pdGVtYCBjb21wbGV0ZWx5IGluZGVwZW5kZW50IGZyb20gZWFjaCBvdGhlclxuICAgICYtaXRlbTpmaXJzdC1jaGlsZCxcbiAgICAueHBvLUhlYWRlckFycm93ICsgJi1pdGVtIHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnhwby1IZWFkZXJJdGVtczpmaXJzdC1jaGlsZCxcbiAgICAueHBvLUhlYWRlckFycm93ICsgLnhwby1IZWFkZXJJdGVtcyB7XG4gICAgICAueHBvLUhlYWRlckl0ZW06Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuXG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcblxuXG4kX2RhdGVQaWNrZXItaW5wdXQtLWJvcmRlcjogc29saWQgMXB4ICR4cG8tYmxhY2s7XG4kX2RhdGVQaWNrZXItaW5wdXQtLW1pbldpZHRoOiAkeHBvLWNvbnRlbnRTcGFjaW5nICogODtcblxuJF9kYXRlUGlja2VyLXBvcHVwLS1tYXJnaW5Ub3BBZGp1c3RtZW50OiAtMXB4O1xuXG4kX2RhdGVQaWNrZXItcGFuZWwtLWhlaWdodDogMjUwcHg7XG4kX2RhdGVQaWNrZXItcGFuZWwtLXdpZHRoOiAyMjZweDtcblxuJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLS1oZWlnaHQ6IDMwcHg7XG4kX2RhdGVQaWNrZXItY29udHJvbHNCYXItLW1hcmdpbnM6ICR4cG8tY29udGVudFNwYWNpbmcgKiAwLjU7XG4kX2RhdGVQaWNrZXItY29udHJvbHNCYXItYnV0dG9ucy0tdGhpY2tuZXNzOiAzcHg7XG4kX2RhdGVQaWNrZXItY29udHJvbHNCYXItcHJldk5leHRCdXR0b25zLS1zaXplOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLS1zY2FsZTogc2NhbGUoMC41MzA1KTtcblxuJF9kYXRlUGlja2VyLXllYXJQaWNrZXItY2VsbENvbnRlbnQtLWhlaWdodDogMzBweDtcblxuJF9kYXRlUGlja2VyLW11bHRpWWVhci0taGVpZ2h0OiAyMDVweDtcblxuQG1peGluIHhwby1kYXRlUGlja2VyLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10aGVtZSgkdGhlbWUpO1xuXG4gIC8vL1xuICAvLy8gRGF0ZSBQaWNrZXIgSW5wdXQsIGNhbGVuZGFyIGJ1dHRvblxuICAvLy9cbiAgLnhwby1EYXRlUGlja2VyIHtcbiAgICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlIHtcbiAgICAgICRfZGF0ZVBpY2tlci10b2dnbGUtLXNpemU6IDE2cHg7XG5cbiAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgICBoZWlnaHQ6ICRfZGF0ZVBpY2tlci10b2dnbGUtLXNpemU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6ICRfZGF0ZVBpY2tlci10b2dnbGUtLXNpemU7XG5cbiAgICAgICAgLm1hdC1idXR0b24td3JhcHBlciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRfZGF0ZVBpY2tlci10b2dnbGUtLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRfZGF0ZVBpY2tlci10b2dnbGUtLXNpemU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJF9kYXRlUGlja2VyLXRvZ2dsZS0tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkX2RhdGVQaWNrZXItdG9nZ2xlLS1zaXplO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgIC8vIG1pbi13aWR0aCBwcm9wZXJ0eSBzZXQgdG8gYXZvaWQgbWF0LWRhdGVwaWNrZXItdG9nZ2xlIGljb24gb3ZlcmxhcHMgdGV4dCBpbnB1dFxuICAgICAgICAvLyBiYXNlZCBvbiBjb250ZW50IHNwYWNpbmdcbiAgICAgICAgbWluLXdpZHRoOiAkX2RhdGVQaWNrZXItaW5wdXQtLW1pbldpZHRoO1xuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAgICAgJF9kYXRlUGlja2VyLXRvZ2dsZS0tbWFyZ2luLXJpZ2h0OiA0cHg7XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkX2RhdGVQaWNrZXItdG9nZ2xlLS1tYXJnaW4tcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2hvdyBkZWZpbmVkIGJvcmRlciBjb2xvciBpbiBkYXRlIHBpY2tlciBpbnB1dCB0ZXh0XG4gICAgLy8gd2hlbiBkYXRlIHBpY2tlciBjYWxlbmRhciBpcyBvcGVuXG4gICAgJi0tYWN0aXZlIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibGFjaztcbiAgICB9XG4gIH1cblxuICAvLy9cbiAgLy8vIERhdGUgUGlja2VyIENhbGVuZGFyIHBvcHVwXG4gIC8vL1xuICAubWF0LWRhdGVwaWNrZXItcG9wdXAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICAgIGJvcmRlcjogJF9kYXRlUGlja2VyLWlucHV0LS1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAvLyB0aGlzIGlzIGEgbmVnYXRpdmUgdG9wIG1hcmdpbiB1c2VkIHRvIHNob3cgdGhlIGNhbGVuZGFyIHBvcHVwIHRvcCBib3JkZXJcbiAgICAvLyBhbmQgdG8gbm90IHNob3dpbmcgdGhlIGlucHV0IHRleHQgYm90dG9tIGJvcmRlclxuICAgIG1hcmdpbi10b3A6ICRfZGF0ZVBpY2tlci1wb3B1cC0tbWFyZ2luVG9wQWRqdXN0bWVudDtcblxuICAgIC54cG8tRGF0ZVBpY2tlci1jYWxlbmRhci5tYXQtY2FsZW5kYXIge1xuICAgICAgaGVpZ2h0OiAkX2RhdGVQaWNrZXItcGFuZWwtLWhlaWdodDtcbiAgICAgIHdpZHRoOiAkX2RhdGVQaWNrZXItcGFuZWwtLXdpZHRoO1xuXG4gICAgICAubWF0LWNhbGVuZGFyIHtcbiAgICAgICAgLy8vXG4gICAgICAgIC8vLyBTdHlsZXMgZm9yIGNhbGVuZGFyIGhlYWRlclxuICAgICAgICAvLy9cbiAgICAgICAgJi1oZWFkZXIge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1jb250cm9scyB7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBoZWlnaHQ6ICRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci0taGVpZ2h0O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICBtYXJnaW46ICRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci0tbWFyZ2lucyAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1wZXJpb2QtYnV0dG9uIHtcbiAgICAgICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1wcmV2aW91cy1idXR0b24sXG4gICAgICAgICYtbmV4dC1idXR0b24ge1xuICAgICAgICAgIGhlaWdodDogJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLXByZXZOZXh0QnV0dG9ucy0tc2l6ZTtcbiAgICAgICAgICB3aWR0aDogJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLXByZXZOZXh0QnV0dG9ucy0tc2l6ZTtcblxuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgICAgIGJvcmRlci10b3Atd2lkdGg6ICRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci1idXR0b25zLS10aGlja25lc3M7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1wcmV2aW91cy1idXR0b24ge1xuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItYnV0dG9ucy0tdGhpY2tuZXNzO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItLXNjYWxlIHRyYW5zbGF0ZVgoJF9kYXRlUGlja2VyLWNvbnRyb2xzQmFyLWJ1dHRvbnMtLXRoaWNrbmVzcykgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1uZXh0LWJ1dHRvbiB7XG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItYnV0dG9ucy0tdGhpY2tuZXNzO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAkX2RhdGVQaWNrZXItY29udHJvbHNCYXItLXNjYWxlIHRyYW5zbGF0ZVgoLSRfZGF0ZVBpY2tlci1jb250cm9sc0Jhci1idXR0b25zLS10aGlja25lc3MpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8vXG4gICAgICAgIC8vLyBTdHlsZXMgZm9yIGNhbGVuZGFyIHRhYmxlIGhlYWRlclxuICAgICAgICAvLy9cbiAgICAgICAgJi10YWJsZS1oZWFkZXIge1xuICAgICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuXG4gICAgICAgICAgdGgge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLWRpdmlkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLy9cbiAgICAgICAgLy8vIENvbW1vbiBzdHlsZXMgZm9yIGNhbGVuZGFyIGJvZHkgdmlld3NcbiAgICAgICAgLy8vXG4gICAgICAgICYtYm9keSB7XG4gICAgICAgICAgJi1sYWJlbCB7XG4gICAgICAgICAgICAvLyAhaW1wb3J0YW50IGlzIG5lZWRlZCBpbiBvcmRlciB0byBvdmVycmlkZSBpbi1saW5lIHN0eWxlc1xuICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLy8gZm9yIHNwYWNpbmcgcHVycG9zZXMgd2UgbmVlZCB0byBrZWVwIHRoZSBlbGVtZW50IHNpemVcbiAgICAgICAgICAgIC8vIHNvIHdlIHVzZSB2aXNpYmlsaXR5OiBoaWRkZW4gaW5zdGVhZCBvZiBkaXNwbGF5OiBub25lXG4gICAgICAgICAgICAvLyBiZXNpZGVzIHRoaXMgY2xhc3MgaXMgYXBwbHkgdG8gYSB0ZCBlbGVtZW50XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi1jZWxsOmhvdmVyIHtcbiAgICAgICAgICAgIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJsdWUtLTEwMDtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi1jZWxsLWNvbnRlbnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS02MDtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi10b2RheSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgICAgICAgY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYtc2VsZWN0ZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tYmx1ZS0tODAwO1xuICAgICAgICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuXG4gICAgICAgICAgICAmLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5IHtcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLy9cbiAgICAvLy8gU3R5bGVzIGZvciBjYWxlbmRhciB5ZWFyIHZpZXdcbiAgICAvLy9cbiAgICBtYXQteWVhci12aWV3IC5tYXQtY2FsZW5kYXItdGFibGUge1xuICAgICAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8vXG4gICAgLy8vIFN0eWxlcyBmb3IgY2FsZW5kYXIgbXVsdGkteWVhciB2aWV3XG4gICAgLy8vXG4gICAgbWF0LW11bHRpLXllYXItdmlldyAubWF0LWNhbGVuZGFyLXRhYmxlIHtcbiAgICAgIGhlaWdodDogJF9kYXRlUGlja2VyLW11bHRpWWVhci0taGVpZ2h0O1xuXG4gICAgICAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgaGVpZ2h0OiAkX2RhdGVQaWNrZXIteWVhclBpY2tlci1jZWxsQ29udGVudC0taGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4geHBvLWRhdGUtcmFuZ2UtcGlja2VyLXRoZW1lKCR0aGVtZSkge1xuICAvLyBEQVRFIFJBTkdFIElOUFVUIEZPUk0gRklFTEQgU1RZTEVcbiAgbWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtdHlwZS14cG8tZGF0ZS1yYW5nZS1pbnB1dCB7XG4gICAgLy8gdXNlIGEgbmVnYXRpdmUgbWFyZ2luIHRvIHBvc2l0aW9uIHRoZSBsYWJlbCBvbiB0b3AgZm9yIHRoZSBpbnB1dCBjb250cm9sXG4gICAgLy8gaW4gdGhlIHNhbWUgd2F5IGl0IGlzIGRvbmUgZm9yIFwibWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtaW5wdXRcIlxuICAgICRfZm9ybUZpZWxkLW1hcmdpblRvcDogMjRweDtcbiAgICAkX2Zvcm1GaWVsZC1pY29uLWZvbnRTaXplOiAyMHB4O1xuXG4gICAgbWFyZ2luLWJvdHRvbTogJHhwby1jb250ZW50U3BhY2luZztcbiAgICBtYXJnaW4tdG9wOiAkX2Zvcm1GaWVsZC1tYXJnaW5Ub3A7XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJbnB1dCBkZWZhdWx0IGJlaGF2aW9yXG4gICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgICAvLyBPbmx5IHBsYWNlaG9sZGVyXG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXIge1xuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgICAgICAgICRfbGFiZWxXcmFwcGVyLXRvcC0tZGVmYXVsdDogLTEycHg7XG4gICAgICAgICAgJF9sYWJlbFdyYXBwZXItbGVmdC0tZGVmYXVsdDogOXB4O1xuXG4gICAgICAgICAgbGVmdDogJF9sYWJlbFdyYXBwZXItbGVmdC0tZGVmYXVsdDtcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICB0b3A6ICRfbGFiZWxXcmFwcGVyLXRvcC0tZGVmYXVsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvY3VzZWQgb3Igd2l0aCB2YWx1ZVxuICAgICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCB7XG4gICAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3ksXG4gICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAgIC8vIFNldHMgdGhlIGJvcmRlciBjb2xvciB3aGVuIGludmFsaWRcbiAgICAgICYubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1yZWQtLTQwMDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1oaW50IHtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgICAgICAgbWFyZ2luLXRvcDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZXJyb3Ige1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmb250LWZhbWlseTogJHhwby1mb250RmFtaWx5LS1wcmltYXJ5O1xuICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgbWFyZ2luLXRvcDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICBmb250LXNpemU6ICRfZm9ybUZpZWxkLWljb24tZm9udFNpemU7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gUmVtb3ZlcyB0aGUgdW5kZXJsaW5lXG4gICAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgICYubWF0LWZvY3VzZWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICR4cG8tYmxhY2s7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAkX2Zvcm1GaWVsZC1ib3JkZXJSYWRpdXM6IDJweDtcblxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogJF9mb3JtRmllbGQtYm9yZGVyUmFkaXVzO1xuICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gICAgICAgICRfZm9ybUZpZWxkLXN1ZmZpeC1tYXJnaW46IDRweDtcblxuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRfZm9ybUZpZWxkLXN1ZmZpeC1tYXJnaW47XG5cbiAgICAgICAgLm1hdC1pY29uLWJ1dHRvbiB7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IDIwOHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIERBVEUgUkFOR0UgSU5QVVRcbiAgLnhwby1EYXRlUmFuZ2VJbnB1dCB7XG4gICAgJi1zZXBhcmF0b3Ige1xuICAgICAgLy8gRGlzYWJsZSB0ZXh0IHNlbGVjdGlvblxuICAgICAgLy8gd2UgYWRkIHRoaXMgaGVyZSwgaW5zdGVhZCBvZiB0aGUgY29tcG9uZW50IHN0eWxlcyBkZWZpbml0aW9uXG4gICAgICAvLyBqdXN0IHRvIHJldXNlIG1hdGVyaWFsIG1peGluIHdlIGhhdmUgYXZhaWxhYmxlIGhlcmUgYW5kIGl0J3Mgbm90IGF2YWlsYWJsZVxuICAgICAgLy8gaW5zaWRlIHRoZSBjb21wb25lbnQgc3R5bGVzIGRlZmluaXRpb25cbiAgICAgIEBpbmNsdWRlIHVzZXItc2VsZWN0KG5vbmUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERBVEUgUElDS0VSIFBPUFVQXG4gIC5jZGstb3ZlcmxheS1wYW5lLnhwby1EYXRlUmFuZ2VQaWNrZXItcG9wdXAge1xuICAgIC8vIHRoZSBzYW1lIGFzIGZvciBgbWFyZ2luLXRvcGAgaW4gY2FzZSB0aGUgY2FsZW5kYXIgaXMgc2hvd24gYWJvdmUgdGhlIGlucHV0XG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgICAvLyB0aGlzIGlzIGEgbmVnYXRpdmUgdG9wIG1hcmdpbiB1c2VkIHRvIHNob3cgdGhlIGNhbGVuZGFyIHBvcHVwIHRvcCBib3JkZXJcbiAgICAvLyBhbmQgdG8gbm90IHNob3dpbmcgdGhlIGlucHV0IGJvdHRvbSBib3JkZXJcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICB9XG59XG5cbkBpbXBvcnQgJ35AYW5ndWxhci9tYXRlcmlhbC90aGVtaW5nJztcbi8vIFRPRE86IFJlbmFtZSB0aGlzIHNvIGl0IGRvZXNuJ3QgZ2V0IGNvbmZ1c2VkIHdpdGggdGhlIHBhZ2UncyBoZWFkZXJcblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U7XG59XG5cbi8vIFJlZ3VsYXIgdGV4dCBtaXhpbnNcbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG59XG5cblxuLypcbioqID09PT0gQmFzaWMgY29sb3JzID09PT1cbiovXG5cbi8qXG4qKiA9PT09IFhQTyBCcmFuZCBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIFhQTyBSZWRcbiR4cG8tYnJhbmQtcmVkOiAjY2MwMDAwO1xuJHhwby1icmFuZC1yZWQtLTkwMDogJHhwby1icmFuZC1yZWQ7XG4keHBvLWJyYW5kLXJlZC0tODAwOiAjZTQyMTBlO1xuJHhwby1icmFuZC1yZWQtLTcwMDogI2YzMmExMztcbiR4cG8tYnJhbmQtcmVkLS02MDA6ICNmZjMzMTc7XG4keHBvLWJyYW5kLXJlZC0tNTAwOiAjZmYzOTFjO1xuJHhwby1icmFuZC1yZWQtLTQwMDogI2ZmNWUzZDtcbiR4cG8tYnJhbmQtcmVkLS0zMDA6ICNmZjdlNjA7XG4keHBvLWJyYW5kLXJlZC0tMjAwOiAjZmZhNDhlO1xuJHhwby1icmFuZC1yZWQtLTEwMDogI2ZmYzhiYTtcbiR4cG8tYnJhbmQtcmVkLS01MDogI2ZjZThlNjtcblxuLy8gWFBPIEJsYWNrXG4keHBvLWJsYWNrOiAjMDAwMDAwO1xuJHhwby1icmFuZC1ibGFjay0tOTAwOiAkeHBvLWJsYWNrO1xuJHhwby1icmFuZC1ibGFjay0tODAwOiAjMjYyNjI2O1xuJHhwby1icmFuZC1ibGFjay0tNzAwOiAjNTU1NTU1O1xuJHhwby1icmFuZC1ibGFjay0tNjAwOiAjN2I3YjdiO1xuJHhwby1icmFuZC1ibGFjay0tNTAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tNDAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tMzAwOiAjYzRjNGM0O1xuJHhwby1icmFuZC1ibGFjay0tMjAwOiAjZDlkOWQ5O1xuJHhwby1icmFuZC1ibGFjay0tMTAwOiAjZTllOWU5O1xuJHhwby1icmFuZC1ibGFjay0tNTA6ICNmNWY1ZjU7XG5cbi8vIFhQTyBEYXJrIEdyZXlcbiR4cG8tYnJhbmQtZGFyay1ncmV5OiAjNDE0YTRjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTkwMDogIzIyMjgyYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS04MDA6ICR4cG8tYnJhbmQtZGFyay1ncmV5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTcwMDogIzYyNjg2YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS02MDA6ICM3NTdkODE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTAwOiAjYTBhNmFhO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTQwMDogI2JlYzVjOTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0zMDA6ICNlMGU3ZWI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMjAwOiAjZWJmMmY2O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTEwMDogI2YwZjdmYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDogI2Y0ZmNmZjtcblxuLy8gWFBPIE1lZGl1bSBHcmV5XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5OiAjODQ4NDg0O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tOTAwOiAjMmUyZTJlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tODAwOiAjNTA1MDUwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNzAwOiAjNzA3MDcwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNjAwOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTAwOiAjYWZhZmFmO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNDAwOiAjY2RjZGNkO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMzAwOiAjZWVlZWVlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwOiAjZjNmM2YzO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMTAwOiAjZjhmOGY4O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA6ICNmY2ZjZmM7XG5cbi8vIFhQTyBMaWdodCBHcmV5XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXk6ICNkZWRlZGU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTkwMDogIzFmMWYxZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tODAwOiAjM2YzZjNmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS03MDA6ICM1ZTVlNWU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTYwMDogIzcyNzI3MjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTAwOiAjOWE5YTlhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS00MDA6ICNiYWJhYmE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTMwMDogJHhwby1icmFuZC1saWdodC1ncmV5O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0yMDA6ICNlY2VjZWM7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTEwMDogI2Y0ZjRmNDtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTA6ICNmOWY5Zjk7XG5cbi8qXG4qKiA9PT09IE1haW4gQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBCbGFjayBhbmQgR3JleVxuJHhwby1ncmV5LS05NzU6ICMyMTIxMjE7XG4keHBvLWdyZXktLTk1MDogIzMzMzMzMztcbiR4cG8tZ3JleS0tOTAwOiAjNGE0YTRhO1xuJHhwby1ncmV5LS03MDA6ICM2ZjZmNmY7XG4keHBvLWdyZXktLTM1MDogI2JkYmRiZDtcbiR4cG8tZ3JleS0tMzAwOiAjZDhkOGQ4O1xuJHhwby1ncmV5LS04MDogI2Y2ZjZmNjtcbiR4cG8tZ3JleS0tMjU6ICNmYWZhZmE7XG5cbiR4cG8td2hpdGU6ICNmZmZmZmY7XG5cbi8vIExpbmtzLCBCdXR0b25zLCBUYWJzZXQgYW5kIFRhYnBpbGxzXG4keHBvLWJsdWUtLTg1MDogIzBkNDdhMTtcbiR4cG8tYmx1ZS0tODAwOiAjMTk3NmQyO1xuJHhwby1ibHVlLS0zNTA6ICMyMTk2ZjM7XG5cbi8vIEVycm9yIFN0YXRlXG4keHBvLXJlZC0tMjAwOiAjYjcxYzFjO1xuJHhwby1yZWQtLTE1MDogI2QzMmYyZjtcbiR4cG8tcmVkLS01MDogI2ZjZWVlYjtcblxuLy8gU3VjY2VzcyBTdGF0ZVxuJHhwby1ncmVlbi0tNjAwOiAjMzg4ZTNjO1xuJHhwby1ncmVlbi0tNDUwOiAjNGNhZjUwO1xuJHhwby1ncmVlbi0tNTA6ICNmMWY5ZjE7XG5cbi8vIFdhcm5pbmcgU3RhdGVcbiR4cG8teWVsbG93LS0zNTA6ICNmZmQ2MDA7XG5cbiR4cG8tb3JhbmdlLS0zNTA6ICNmZjZkMDA7XG5cbi8vIEluZm8gU3RhdGVcbiR4cG8tYmx1ZS0tNzAwOiAjMDA5MWVhO1xuXG4vLyBUcmFuc2FjdGlvbmFsIENlbGxzXG4keHBvLWdyZXktLTE1MDogI2VjZWZmMTtcblxuJHhwby1ibHVlR3JleS0tNzAwOiAjY2ZkOGRjO1xuXG4vLyBBY2NlbnQgQ29sb3JzXG4keHBvLXBpbmstLTcwMDogI2M1MTE2MjtcblxuJHhwby10ZWFsLS03MDA6ICMwMGJmYTU7XG5cbiR4cG8tYmx1ZS0tODI1OiAjMzA0ZmZlO1xuJHhwby1ibHVlLS0yMDA6ICNlNGVmZmE7XG5cbiR4cG8tYWNjZW50LXJlZC0tNDAwOiAkeHBvLWJyYW5kLXJlZC0tNDAwO1xuJHhwby1hY2NlbnQtcmVkLS0xMDA6ICR4cG8tYnJhbmQtcmVkLS0xMDA7XG5cbiR4cG8tcHVycGxlLS03MDA6ICM2MjAwZWE7XG5cbiR4cG8tZ3JlZW4tLTIwMDogI2E0ZTU5YjtcblxuJHhwby15ZWxsb3ctLTIwMDogI2ZmZjljNDtcblxuLypcbioqID09PT0gREVQUkVDQVRFRCBDT0xPUlMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xMDA6ICNlOGY1ZmU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTE1MDogI2UzZjJmZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMzAwOiAjMGQ5NGY0O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS00MDA6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTkwMDogIzA1M2M2Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0xMDA6ICNmZmY4ZTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMzAwOiAjZmZjZjRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTQwMDogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS03MDA6ICNmZmQ2MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tOTAwOiAjNGQzODAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMTAwOiAjYzhmZmRmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzAwOiAjMWNlODU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzUwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNDAwOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNzAwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tOTAwOiAjMGE2MTIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS01MDogI2ZiZmJmYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjA6ICNmYWZhZmE7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjAwOiAjZTZlNmU2O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yNTA6ICNkZGRkZGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTQwMDogIzliOWI5Yjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjAwOiAjNzU3NTc1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02NTA6ICM4NTg1ODU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTc1MDogIzU3NTc1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTE1OiAjNDM0OTRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MzA6ICM0MjQyNDI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDA6ICMxNzE3MTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTExMDA6ICMyMTIxMjE7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMTAwOiAjZmZlZWVlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTI1MDogI2RkMmMwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0zMDA6ICNmZjIyMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNDAwOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTYwMDogI2NjMDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS03MDA6ICNkMzJmMmY7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tOTAwOiAjNTUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTEwMDogI2ZmZGZjYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0zMDA6ICNmZjk5NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tNDAwOiAjZmY2NDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTkwMDogIzhiMzcwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZm9udENvbG9yLS1saW5rOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1iYWNrZ3JvdW5kQ29sb3ItLWJvZHk6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1lcnJvcjogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXN1Y2Nlc3M6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS13YXJuOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0taW5mbzogIzRhNGE0YTtcblxuLypcbioqID09PT0gQ09MT1JTIEFQUExJRUQgPT09PVxuKi9cbiR4cG8tZm9udENvbG9yLS1wcmltYXJ5OiAkeHBvLWdyZXktLTkwMDtcblxuLypcbioqID09PT0gVHlwb2dyYXBoeSA9PT09XG4qL1xuLy8gUHV0dGluZyBzaXplcyBpbiBtYXBzIHRvIGFsbG93IGR5bmFtaWMgc2l6aW5nIGZvciBleHRlcm5hbFxuLy8gUm9vdCBmb250LXNpemUocykgYWx3YXlzIGluIHB4XG4keHBvLWZvbnRTaXplLS1yb290OiAxNHB4O1xuJHhwby1mb250U2l6ZS0tc21hbGw6IDAuODc1cmVtOyAvLzEycHhcbiR4cG8tZm9udFNpemUtLW1lZGl1bTogMXJlbTsgLy8xNHB4XG4keHBvLWZvbnRTaXplLS1sYXJnZTogMS4xNDNyZW07IC8vMTZweFxuJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTogMS4yODVyZW07IC8vMThweFxuJHhwby1mb250U2l6ZS0teHhsYXJnZTogMS43MTRyZW07IC8vMjRweFxuXG4keHBvLWhlYWRlci1mb250U2l6ZS0teHNtYWxsOiAxcmVtOyAvLzE0cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDogMS4xNDNyZW07IC8vMTZweFxuJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTogMS4yODVyZW07IC8vMThweFxuJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlOiAxLjQyOHJlbTsgLy8yMHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teGxhcmdlOiAxLjU3MXJlbTsgLy8yMnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teHhsYXJnZTogMS44NTdyZW07IC8vMjZweFxuXG4keHBvLWZvbnRGYW1pbHktLXByaW1hcnk6ICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiR4cG8tZm9udEZhbWlseS0tcm9ib3RvV2lkZUJsYWNrOiAnUm9ib3RvIFdpZGUgQmxhY2snLCAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiR4cG8tZm9udFdlaWdodC0tbGlnaHQ6IDMwMDtcbiR4cG8tZm9udFdlaWdodC0tbm9ybWFsOiA0MDA7XG4keHBvLWZvbnRXZWlnaHQtLW1lZGl1bTogNTAwOyAvLyBERVBSRUNBVEVEIHwgZG8gbm90IGRlbGV0ZSBzaW5jZSBpdCBpcyBzdGlsbCBiZWluZyB1c2VkIGluIHNvbWUgcHJvamVjdHNcbiR4cG8tZm9udFdlaWdodC0tYm9sZDogNTAwO1xuJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ6IDYwMDtcbiR4cG8tZm9udFdlaWdodC0tYm9sZGVyOiA3MDA7XG5cbiR4cG8tbGluZUhlaWdodC0teGw6IDIuMjg2cmVtOyAvLyAzMnB4XG4keHBvLWxpbmVIZWlnaHQtLWxnOiAxLjcxNHJlbTsgLy8gMjRweFxuJHhwby1saW5lSGVpZ2h0LS1tZDogMS41NzFyZW07IC8vIDIycHhcbiR4cG8tbGluZUhlaWdodC0tc206IDEuNDI5cmVtOyAvLyAyMHB4XG5cbiR4cG8tbGluZUhlaWdodC0tYmFzZTogMjRweDsgLy8gZm9yIG1lZGl1bSBhbmQgbGFyZ2UgZm9udCBzaXplXG4keHBvLWxpbmVIZWlnaHQtLW1lZGl1bTogMThweDsgLy8gZm9yIG1lZGl1bSBmb250IHNpemVzXG4keHBvLWxpbmVIZWlnaHQtLXNtYWxsOiAxNnB4OyAvLyBmb3Igc21hbGwgZm9udCBzaXplXG5cbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U6IDEuMjg2OyAvLyBERVBSRUNBVEVEXG5cbiR4cG8tbGV0dGVyU3BhY2luZy0tYmFzZTogMC4ycHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDogMC4zcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW06IDAuMzNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlOiAwLjM4cHg7XG5cbi8vID09PT0gTGF5b3V0ID09PT1cbiR4cG8tY29udGVudFNwYWNpbmc6IDE2cHg7XG5cbi8vIEJyZWFrcG9pbnRzXG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsLXhzOiA0ODBweDtcbiR4cG8tYnJlYWtwb2ludC0tc21hbGw6IDYwMHB4O1xuJHhwby1icmVha3BvaW50LS1tZWRpdW06IDc2OHB4O1xuJHhwby1icmVha3BvaW50LS1sYXJnZTogMTAyNXB4O1xuJHhwby1icmVha3BvaW50LS14TGFyZ2U6IDE0NDBweDtcblxuJHhwby1zZWxlY3QtYmFja2dyb3VuZENvbG9yLW9wdGlvbk9uSG92ZXI6ICR4cG8tYmx1ZS0tMjAwO1xuXG4vLyAtLSBOR1gtVUkgU3BlY2lmaWMgLS1cbiRuZ3gtZm9vdGVyLWhlaWdodDogNDJweDtcbiRuZ3gtdGFiLWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4kbmd4LXRhYmxlLXJvdy1oZWlnaHQ6IDMwcHg7XG5cbiRuZ3gtaWNvbi1zaXplOiAyNHB4OyAvLyBUT0RPOiBEZXByZWNhdGUgdGhpcyB2YXJpYWJsZVxuJHhwby1pY29uLXNpemUtLXN0YW5kYXJkOiAyMHB4O1xuJHhwby1pY29uLXNpemUtLXNtYWxsOiAxOHB4O1xuJHhwby1pY29uLXNpemUtLWxhcmdlOiAyNHB4O1xuXG4kbmd4LXRoZUJsYWNrUm9ib3RvOiA5MDA7XG5cbiR4cG8taW5wdXQtaGVpZ2h0LS1kZWZhdWx0OiAzMHB4O1xuJHhwby1pbnB1dC1oZWlnaHQtLXR3b0xpbmVzOiA0NXB4O1xuXG4kbmd4LWlucHV0LWJvcmRlci13aWR0aDogMXB4O1xuXG4kbmd4LWlucHV0LWNvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms6ICR4cG8tYmxhY2s7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1saWdodDogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyOiAkeHBvLWdyZXktLTMwMDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms6ICR4cG8tZ3JleS0tMzUwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlLS1saWdodGVyOiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ6ICR4cG8tZ3JleS0tODA7XG5cbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQ6IDM2cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1zbWFsbDogMjhweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLWxhcmdlOiA0NnB4O1xuJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb246IDIwMG1zO1xuXG4kbmd4LWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4vLyBGb3IgdXNlIHdoZW4gYSBob3ZlciBpcyBuZWVkZWQgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kLlxuJG5neC13aGl0ZUFmZm9yZGFuY2Utb25Ib3Zlci1jb2xvcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yOiAkeHBvLXdoaXRlO1xuXG4vKlxuKiogPT09PSBTTkFDS0JBUiBERVBSRUNBVEVEIFZBUklBQkxFUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tc3VjY2VzczogJHhwby1ncmVlbi0tNDUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tZXJyb3I6ICR4cG8tcmVkLS0xNTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1pbmZvOiAjMDI4OGQxO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0td2FybjogI2ZiYzAyZDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS02MDA7XG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWVycm9yOiAkeHBvLXJlZC0tMjAwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWluZm86ICMwMTU3OWI7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tCYXItbWFyZ2luVG9wOiAzMnB4O1xuXG4vL0JhZGdlXG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLW5lZ2F0aXZlOiAkeHBvLXJlZC0tNTA7XG4kX21hdEJhZGdlQ29udGVudC1jb2xvci0tbmVnYXRpdmU6ICNkZDJjMDA7XG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLXBvc2l0aXZlOiAkeHBvLWdyZWVuLS01MDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDtcbi8vIFVzZWQgYXMgYSBzcGFjZXIgZm9yIGZsZXhlZCBjaGlsZHJlblxuLy8gVE9ETzogTW92ZSBhbGwgaW5zdGFuY2VzIHRvIHRoZSB1dGlsaXRpZXMgZGVmaW5pdGlvblxuLmZsZXgtLXN0cmV0Y2gge1xuICBmbGV4OiAxO1xufVxuXG4vLyAtLS0gRGlhbG9nIC0tLVxuJG5neC1kaWFsb2ctaGVhZGVyLWhlaWdodDogNDhweDtcbiRuZ3gtZGlhbG9nLWZvb3Rlci1oZWlnaHQ6IDY0cHg7XG5cbi8vIC0tLSBUcmFuc2l0aW9ucyAtLS1cbiR4cG8tdHJhbnNpdGlvbi0yMDA6IGFsbCAyMDBtcyBlYXNlLW91dDtcblxuLy8gLS0tIENvbnRleHR1YWwgSGVhZGVyIC0tLVxuJG5neC1Db250ZXh0dWFsSGVhZGVyLXNlcGFyYXRvci0tY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuXG5cbkBtaXhpbiBkaWFsb2ctaGVhZGVyLS1wcmltYXJ5KCkge1xuICAkX2RpYWxvZy1oZWFkZXJQYWRkaW5nOiAyNHB4O1xuICAkX2RpYWxvZy1ob3Jpem9udGFsTWFyZ2luOiAyNHB4O1xuICAkX2RpYWxvZy1saW5lSGVpZ2h0OiAyOHB4O1xuXG4gIGNvbG9yOiAkeHBvLWJsYWNrO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXNocmluazogMDtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS14eGxhcmdlO1xuICBsaW5lLWhlaWdodDogJF9kaWFsb2ctbGluZUhlaWdodDtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW46IDAgJF9kaWFsb2ctaG9yaXpvbnRhbE1hcmdpbjtcbiAgcGFkZGluZy1ib3R0b206ICRfZGlhbG9nLWhlYWRlclBhZGRpbmcgLyAyO1xuICBwYWRkaW5nLXRvcDogJF9kaWFsb2ctaGVhZGVyUGFkZGluZztcbn1cblxuXG5AbWl4aW4geHBvLWRpYWxvZy10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUpO1xuICAkX2RpYWxvZy1zcGFjaW5nOiAyNHB4O1xuXG4gIG1hdC1kaWFsb2ctY29udGFpbmVyLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgLnhwby1EaWFsb2ctY29udGFpbmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIFttYXQtZGlhbG9nLXRpdGxlXS5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICAgIEBpbmNsdWRlIGRpYWxvZy1oZWFkZXItLXByaW1hcnkoKTtcblxuICAgICAgJjpub3QoLnhwby1Db25maXJtRGlhbG9nLWhlYWRlcikge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW21hdC1kaWFsb2ctY29udGVudF0ubWF0LWRpYWxvZy1jb250ZW50LFxuICAgIG1hdC1kaWFsb2ctY29udGVudC5tYXQtZGlhbG9nLWNvbnRlbnQge1xuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTUwO1xuICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLWJhc2U7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICBwYWRkaW5nOiAkX2RpYWxvZy1zcGFjaW5nIC8gMiAkX2RpYWxvZy1zcGFjaW5nICRfZGlhbG9nLXNwYWNpbmc7XG4gICAgICBwOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRfZGlhbG9nLXNwYWNpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW21hdC1kaWFsb2ctYWN0aW9uc10ubWF0LWRpYWxvZy1hY3Rpb25zLFxuICAgIG1hdC1kaWFsb2ctYWN0aW9ucy5tYXQtZGlhbG9nLWFjdGlvbnMge1xuICAgICAgJF9kaWFsb2ctc3BhY2luZy1idXR0b246IDI4cHg7XG5cbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDsgXG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIG1hcmdpbjogMCAkX2RpYWxvZy1zcGFjaW5nO1xuICAgICAgbWluLWhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6ICRfZGlhbG9nLXNwYWNpbmcgMCAkX2RpYWxvZy1zcGFjaW5nLWJ1dHRvbjtcblxuICAgICAgLnhwby1CdXR0b25Hcm91cCA+IC5tYXQtYnV0dG9uLWJhc2Uge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBvdmVycmlkZXMgc3R5bGVzIGluIG9yZGVyIGZvciB0aGUgZXhwYW5zaW9uLXBhbmVsIHRvIG1hdGNoIHRoZVxuLy8gbmd4LWx0bC1jb3JlIGRlc2lnbiBndWlkZWxpbmVzLlxuQG1peGluIHhwby1leHBhbnNpb24tcGFuZWwtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdGhlbWUoJHRoZW1lKTtcblxuICAkX21hdEV4cGFuc2lvbi1oZWFkZXJUaXRsZS1wYWRkaW5nTGVmdDogMTBweDtcbiAgJF9wYW5lbE1hdEljb24tZm9udFNpemU6IDIwcHg7XG4gICRfbWF0RXhwYW5zaW9uUGFuZWxCb2R5LXBhZGRpbmc6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyIDM5cHggJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICRfbWF0RXhwYW5zaW9uUGFuZWxIZWFkZXItU3RhdHVzSW5kaWNhdG9yLWZvbnRTaXplOiAxMHB4O1xuXG4gIC5tYXQtYWNjb3JkaW9uID4gLm1hdC1leHBhbnNpb24tcGFuZWwsXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgICAvLyBGaXggc2Nyb2xsaW5nIHdoZW4gb3BlbmluZyBwYW5lbCBhbmQgb3RoZXIgcGFuZWwgaXMgYWxyZWFkeSBvcGVuZWRcbiAgICBtYXJnaW46IDAuMXB4O1xuXG4gICAgJixcbiAgICAmOm5vdChbY2xhc3MqPSdtYXQtZWxldmF0aW9uLXonXSkge1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICAubWF0LWNvbnRlbnQ6OmJlZm9yZSAge1xuICAgICAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWxpbmVIZWlnaHQtLWJhc2U7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWV4cGFuZGVkID4gLm1hdC1jb250ZW50OjpiZWZvcmUgIHtcbiAgICAgICAgY29udGVudDogJ3JlbW92ZSc7XG4gICAgICB9XG5cbiAgICAgICY6bm90KC5tYXQtZXhwYW5kZWQpID4gLm1hdC1jb250ZW50OjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnYWRkJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkX3BhbmVsTWF0SWNvbi1mb250U2l6ZTtcbiAgICB9XG5cbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1ib2R5IHtcbiAgICAgIHBhZGRpbmc6ICRfbWF0RXhwYW5zaW9uUGFuZWxCb2R5LXBhZGRpbmc7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgIHAge1xuICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXJvb3Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudCB7XG4gICAgICAubWF0LWNlbGwge1xuICAgICAgICA+IC5tYXQtaWNvbiB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY29udGVudCB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tYmFzZTtcblxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMiAkX21hdEV4cGFuc2lvbi1oZWFkZXJUaXRsZS1wYWRkaW5nTGVmdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgueHBvLUV4cGFuc2lvblBhbmVsRGFyay0td3JhcCkge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuXG4gICAgICBtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgICAgICYubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuXG4gICAgICAgICAgJjpub3QoW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSkge1xuICAgICAgICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tYXQtY29udGVudDo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTMwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICZbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnhwby1FeHBhbnNpb25QYW5lbERhcmstLXdyYXAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICY6bm90KC5tYXQtZXhwYW5kZWQpIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWV4cGFuZGVkIHtcbiAgICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudCB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgICAgICAmW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgICAgICAgLm1hdC1jb250ZW50IHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTgwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1leHBhbmRlZCB7XG4gICAgICAgICAgLm1hdC1jb250ZW50OjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS05NTA7XG4gICAgICAgICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5tYXQtY29udGVudCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTkwMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgICAgICAgICAmID4gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxuICAgICAgICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLm1hdC1leHBhbmRlZCkge1xuICAgICAgICAgIC5tYXQtY29udGVudCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTgwO1xuICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMTAwMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTUwO1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgIHBhZGRpbmc6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICAgICYubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgICAgICA6OmJlZm9yZSxcbiAgICAgICAgLm1hdC1pY29uLFxuICAgICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4gICAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgOjpiZWZvcmUge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICAgICAgICAgIEBpbmNsdWRlIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1zbWFsbCgpO1xuXG4gICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLWJhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgICAgIEBpbmNsdWRlIFRleHRUcmVhdG1lbnQtLXNtYWxsKCk7XG5cbiAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAueHBvLVN0YXR1c0luZGljYXRvciB7XG4gICAgICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLXRhZyB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRfbWF0RXhwYW5zaW9uUGFuZWxIZWFkZXItU3RhdHVzSW5kaWNhdG9yLWZvbnRTaXplO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWV4cGFuZGVkIHtcbiAgICAgICYubWF0LWV4cGFuc2lvbi1wYW5lbC1zcGFjaW5nIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSk6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmluZyBib3JkZXItcmFkaXVzIG9uIG5lc3RlZCBhY2NvcmRpb25zLlxuICAvLyBNb3ZpbmcgaXQgb3V0IG9mIHRoZSBtYWluIHdyYXBwZXIgYmVjYXVzZSB3ZSBuZWVkIHRvIGFkZCB0aGUgc3BlY2lmaWNpdHksXG4gIC8vIGluIG9yZGVyIHRvIG92ZXJyaWRlIE1hdGVyaWFsJ3Mgc3R5bGVzLlxuICAubWF0LWFjY29yZGlvbiBtYXQtZXhwYW5zaW9uLXBhbmVsLm1hdC1leHBhbnNpb24tcGFuZWw6bGFzdC1vZi10eXBlIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbkBtaXhpbiB4cG8tZm9ybS1maWVsZC1sYWJlbCgpIHtcbiAgJF9sYWJlbC10b3A6IC0yNHB4O1xuXG4gIG1hdC1mb3JtLWZpZWxkIHtcbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCB7XG4gICAgICAgICYubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsIHtcbiAgICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgICAgLy8gT3ZlcnJpZGluZyBtYXRlcmlhbCB0cmFuc2Zvcm0gc2luY2UgdGhleSBzY2FsZSB0aGUgZm9ybSBsYWJlbCBmb3IgXCJzb21lXCIgcmVhc29uIChQcm9iYWJseSBiZWNhdXNlIG9mIHRoZWlyIGZhbmN5XG4gICAgICAgICAgICAvLyBhbmltYXRpb25zKSB0byBjaGFuZ2UgaXQncyBmb250IHNpemUgYW5kIHRoYXQgY2F1c2VzIGxvdCBvZiBub2lzZSAoWW91IGNhbid0IHNldCBhIHByb3BlciBmb250LXNpemUgc2luY2UgXG4gICAgICAgICAgICAvLyBpdCdsbCBuZXZlciByZWZsZWN0IHRoZSByZWFsIHNpemUpLiBBbHNvIG9wZW5lZCBhbiBpc3N1ZSB0byB1bmRlcnN0YW5kIHdoeTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9pc3N1ZXMvMjM5NDAgXG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXJvb3Q7XG4gICAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05MDAgIWltcG9ydGFudDsgLy8gVGhlIHJlYXNvbiBvZiB0aGUgIWltcG9ydGFudCBpcyB0aGUgYmx1ZSBjb2xvciBvbiBmb2N1c1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcblxuICAgICAgICAgICAgbWF0LWxhYmVsIHtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgICAgICAgICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6ICRfbGFiZWwtdG9wO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vIFRoZSBvdmVycmlkZXMgaW4gb3JkZXIgZm9yIHRoZSBmb3JtIGZpZWxkIHRvIG1hdGNoIHRoZVxuLy8gICBkZXNpZ24gc3BlY2lmaWNhdGlvbnMuXG4vLyBBcyBhIG5vdGU6IFRoaXMgZG9lcyBub3QgY29udGFpbiB0aGUgc3R5bGVzIGZvciB0aGUgaW5wdXRzXG4vLyAgIHRoZW1zZWx2ZXMuIFRob3NlIGNhbiBiZSBmb3VuZCBpbiB0aGUgaW5wdXQgdGhlbWUuIFdoaWxlXG4vLyAgIG1vc3Qgb2YgdGhlIHN0eWxpbmcgZm9yIGlucHV0cyBpcyBoZXJlLCB0ZWNobmljYWxseSBpdCdzXG4vLyAgIHRoZSBcImZvcm0tZmllbGRcIiB0aGF0IGlzIGJlaW5nIHN0eWxlZCBoZXJlLlxuLy9cbi8vIEFkZGl0aW9uYWwgTm90ZTogUGxlYXNlIGNvbnRpbnVlIHRvIHVzZSBFTXMgZm9yIHNpemluZy5cbi8vICAgVGhpcyBhbGxvd3MgdGhlIGlucHV0cyB0byBiZSBzY2FsZWQgb3V0c2lkZSBvZiB0aGVcbi8vICAgY29tcG9uZW50cyBhcm91bmQgaXQuIFRoaXMgaXMgd2hhdCBNYXRlcmlhbCBkb2VzIGFuZFxuLy8gICBpdCBoYXMgYmVlbiBrZXB0IGZ1bmN0aW9uaW5nIGJ5IGtlZXBpbmcgdGhlIHRyZW5kLlxuLy9cbi8vIEBhdXRob3IgICAgUGV0ZXIgUmFtc2luZyA8cGV0ZXIucmFtc2luZ0B4cG8uY29tPlxuLy9cbi8vIEB0aGFua3MgICAgQWxsaXNvbiwgUGV0ZXIncyB3aWZlLCB3aG8gc3BlbnQgYSBsb25lbHlcbi8vICAgICAgICAgICAgIHdlZWtlbmQgd2hpbGUgaGUgY29kZWQgdGhpcyBpbiB0aGUgb2ZmaWNlLlxuLy9cbi8vIFRPRE86IEZpZ3VyZSBvdXQgdGhlIEBhdC1yb290IG9yZ2FuaXphdGlvbiBoZXJlLiBUaGVcbi8vICAgICAgICBjb21waWxhdGlvbiBpcyBhIGJpdCB3b25reS5cbi8vL1xuXG4vKlxuICAgIDEuIFRoYW5rcyB0byBzdWItcGl4ZWxzIGFuZCBob3cgdGhleSByZW5kZXIgdGhpcyBjYXVzZWQgc29tZSBuYXN0eVxuICAgICAgICBibHVyLiBFdyEgV2hhdCBvbmUgY2FuIGRvIGlzIHN0YXJ0IHRvIGFkZCBzdWItcGl4ZWxzIGluIGFsb25nXG4gICAgICAgIHdpdGggdGhlIFwiZW1cIiAob3IgcmVtLCBvciBwb2ludHMsIG9yIPCfp4A7IGl0IGRvZXNuJ3QgcmVhbGx5XG4gICAgICAgIG1hdHRlcikuIFRoaXMgaXMgc3ViLXBpeGVsIHB1c2hpbmcgc28gSSBqdXN0IHVzZWQgbXkgZXllIG9uXG4gICAgICAgIGEgbG93LXJleiBtb25pdG9yIGFuZCBnb3QgaXQgYXMgY2xvc2UgYXMgSSBjb3VsZC4gQmVjYXVzZVxuICAgICAgICBgY2FsY2Agd2FzIHVzZXMgdGhpcyB3aWxsIGJlIGhhbmRsZWQgb24gdGhlIERPTSBpbnN0ZWFkIG9mXG4gICAgICAgIGR1cmluZyB0aGUgU0NTUyBjb21waWxhdGlvbiB3aGljaCBzaG91bGQgZ2l2ZSB0aGUgcmVuZGVyaW5nXG4gICAgICAgIGVuZ2luZSB0aGUgYmVzdCBjaGFuY2UgdG8gbWFrZSB0aGUgY29ycmVjdCBkZWNpc2lvbi5cbiAgICAyLiBUaGlzIGlzIHRvIHN1cHBvcnQgdGhlIHRleHQgd2VpZ2h0IGNoYW5naW5nIGZyb20gdGhlIGxhYmVsXG4gICAgICAgIGNoYW5naW5nIHdlaWdodHMgYXMgd2Ugd2FudCB0byBhbmltYXRlIHRoaXMgY2hhbmdlIGluc3RlYWRcbiAgICAgICAgb2YgYSBzbmFwcGluZyBjaGFuZ2UuXG4gICAgMy4gVGhpcyBsYXJnZSBiaXQgb2YgY2xhc3NlcyBpcyB0byBpZGVudGlmeSBpZiBhIHByZWZpeCBpcyBhdHRhY2hlZFxuICAgICAgICB0byB0aGUgaW5wdXQgc28gdGhhdCB3ZSBjYW4gbW92ZSB0aGUgbGFiZWwgYmV0dGVyLlxuICAgIDQuIE1hdGVyaWFsIGhhcyB0aGlzIHNldCB0byAxMzMuMzMzJSBiZWNhdXNlIHRoZXkgc2NhbGUgdGhlIGxhYmVsLlxuICAgICAgICBXZSdyZSBjaGFuZ2luZyB0aGF0IHNjYWxlIHNvIHdlIG5lZWQgdG8gY2hhbmdlIHRoZSBzaXplIG9mIGl0LlxuKi9cblxuQG1peGluIHhwby1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tZm9ybS1maWVsZC1sYWJlbCgpO1xuXG4gIC8vIElOUFVUIFNUWUxFXG4gIG1hdC1mb3JtLWZpZWxkIHtcbiAgICAmLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LWlucHV0IHtcbiAgICAgICRfbGFiZWwtdG9wOiAtMjRweDtcbiAgICAgICRfZm9ybUZpZWxkLW1hcmdpblRvcDogMjRweDtcbiAgICAgICRfZGVmYXVsdEZvcm1GaWVsZFdyYXBwZXItdG9wOiAtMTJweDtcbiAgICAgICRfZGVmYXVsdEZvcm1GaWVsZFdyYXBwZXItbGVmdDogOXB4O1xuICAgICAgJF9mb3JtLWZpZWxkLWJvcmRlclJhZGl1czogMnB4O1xuICAgICAgJF9mb3JtRmllbGQtc3VmZml4UHJlZml4LW1hcmdpbjogNnB4O1xuICAgICAgJF9mb3JtRmllbGQtaWNvbi1zaXplOiAxNnB4O1xuICAgICAgJF9mb3JtRmllbGQtaWNvbi1mb250U2l6ZTogMjBweDtcbiAgICAgICRfZm9ybUZpZWxkLXN1ZmZpeFByZWZpeC1sb2FkZXItLXNpemU6IDI0cHg7XG5cbiAgICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICBtYXJnaW4tdG9wOiAkX2Zvcm1GaWVsZC1tYXJnaW5Ub3A7XG5cbiAgICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIElucHV0IGRlZmF1bHQgYmVoYXZpb3JcbiAgICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuXG4gICAgICAgICYubWF0LWZvcm0tZmllbGQtaGlkZS1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgICAgICAgICBsZWZ0OiAkX2RlZmF1bHRGb3JtRmllbGRXcmFwcGVyLWxlZnQ7XG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICAgIHRvcDogJF9kZWZhdWx0Rm9ybUZpZWxkV3JhcHBlci10b3A7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRm9jdXNlZCBvciB3aXRoIHZhbHVlXG4gICAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQge1xuICAgICAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtOyAvL1RoaXMgc2l6ZSBpbiAxOHB4IGJlY2F1c2UgdGhlIGRlZmF1bHQgbGFiZWwgd2l0aCBzY2FsZSgwLjc1KVxuICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSxcbiAgICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICAgICRfaW5uZXJJbnB1dC1sZWZ0UGFkZGluZzogMC4yNWVtO1xuICAgICAgICAkX2lubmVySW5wdXQtcmlnaHRQYWRkaW5nOiAwLjI1ZW07XG4gICAgICAgICRfaW5wdXQtYm9yZGVyQ29sb3ItLWZvY3VzZWQ6ICRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms7XG5cbiAgICAgICAgLy8gU2V0cyB0aGUgYm9yZGVyIGNvbG9yIHdoZW4gaW52YWxpZFxuICAgICAgICAmLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1jb2xvci0tZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubmd4LUZvcm1GaWVsZC0taW5saW5lIHtcbiAgICAgICAgICAmLFxuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtaGludCB7XG4gICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZXJyb3Ige1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBmb250LXNpemU6ICRfZm9ybUZpZWxkLWljb24tZm9udFNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCb3JkZXJsZXNzXG4gICAgICAgIC8vIFRoaXMgY2xhc3MgaGFzIHRoZSBvbGQgZm9ybWF0LCB3ZSdyZSBub3QgdXBkYXRpbmcgbm93IGJlY2F1c2UgaXQgbWlnaHQgYmVpbmdcbiAgICAgICAgLy8gdXNlZCBpbiBzZXZlcmFsIGFwcGxpY2F0aW9uc1xuICAgICAgICAmLm5neC1Gb3JtRmllbGQtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJFTU9WQUxTXG4gICAgICAgIC8vIFJlbW92ZXMgdGhlIHVuZGVybGluZVxuICAgICAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bm90KC5tYXQtZm9ybS1maWVsZC1oYXMtbGFiZWwpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgICAgICBib3JkZXI6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICR4cG8tYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICAgICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigwKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICAgIGJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJG5neC1pbnB1dC1jb2xvci1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRfZm9ybS1maWVsZC1ib3JkZXJSYWRpdXM7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCxcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJF9mb3JtRmllbGQtaWNvbi1mb250U2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJF9mb3JtRmllbGQtaWNvbi1zaXplO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJF9mb3JtRmllbGQtaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRfZm9ybUZpZWxkLWljb24tc2l6ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAueHBvLUJ1c3lMb2FkZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRfZm9ybUZpZWxkLXN1ZmZpeFByZWZpeC1sb2FkZXItLXNpemU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6ICRfZm9ybUZpZWxkLXN1ZmZpeFByZWZpeC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRfZm9ybUZpZWxkLXN1ZmZpeFByZWZpeC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgIC5tYXQtaWNvbiArIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogNnB4ICR4cG8tY29udGVudFNwYWNpbmcvMjtcbiAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcblxuICAgICAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tMTAwO1xuICAgICAgICAgICAgICBjb2xvcjogJHhwby1ibGFjaztcbiAgICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MCAhaW1wb3J0YW50OyAvLyBUaGUgcmVhc29uIG9mIHRoZSAhaW1wb3J0YW50IGlzIHRoZSBibHVlIGNvbG9yIG9uIGZvY3VzXG4gICAgICAgIGZvbnQtZmFtaWx5OiAkeHBvLWZvbnRGYW1pbHktLXByaW1hcnk7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlOyAvL1RoaXMgc2l6ZSBpbiAyMHB4IGJlY2F1c2UgdGhlIGRlZmF1bHQgbGFiZWwgd2l0aCBzY2FsZSgwLjc1KVxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgICAgICBtYXQtbGFiZWwge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBYUE8gY3VzdG9tIENvbXBvbmVudHMvRGlyZWN0aXZlc1xuICAgIC54cG8tTGFiZWwtLXdyYXAge1xuICAgICAgLm1hdC1jaGVja2JveC1sYXlvdXQsXG4gICAgICAubWF0LXJhZGlvLWxhYmVsIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHVuc2V0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAueHBvLUZvcm0tLWlubGluZSB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5tYXQtYnV0dG9uLWJhc2UsXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLFxuICAgIC5tYXQtZm9ybS1maWVsZCxcbiAgICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtaW5wdXQ6bm90KC5tYXQtZm9ybS1maWVsZC1oYXMtbGFiZWwpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgJiA+IC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8gVGhlIG92ZXJyaWRlcyBpbiBvcmRlciBmb3IgdGhlIElucHV0IHRvIG1hdGNoIHRoZSBkZXNpZ25cbi8vXG4vLyBBcyBhIG5vdGU6IFRoaXMgaXMganVzdCBmb3IgSW5wdXRzLiBNb3N0IG9mIHRoZSBzdHlsaW5nXG4vLyAgIGZvciBpbnB1dHMgaXMgYWN0dWFsbHkgaGFuZGxlZCBvbiB0aGUgRm9ybSBGaWVsZC5cbi8vXG4vLyBBZGRpdGlvbmFsIE5vdGU6IFBsZWFzZSBjb250aW51ZSB0byB1c2UgRU1zIGZvciBzaXppbmcuXG4vLyAgIFRoaXMgYWxsb3dzIHRoZSBpbnB1dHMgdG8gYmUgc2NhbGVkIG91dHNpZGUgb2YgdGhlXG4vLyAgIGNvbXBvbmVudHMgYXJvdW5kIGl0LiBUaGlzIGlzIHdoYXQgTWF0ZXJpYWwgZG9lcyBhbmRcbi8vICAgaXQgaGFzIGJlZW4ga2VwdCBmdW5jdGlvbmluZyBieSBrZWVwaW5nIHRoZSB0cmVuZC5cbi8vXG4vLyBAYXV0aG9yICAgIFBldGVyIFJhbXNpbmcgPHBldGVyLnJhbXNpbmdAeHBvLmNvbT5cbi8vL1xuXG5AbWl4aW4geHBvLWlucHV0LXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lKTtcblxuICBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6ICR4cG8tZ3JleS0tOTAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogMC4xMzc1ZW07XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8gVGhlIGNvZGUgdG8gbWFrZSB0aGUgYmFzZSBNYXRlcmlhbCBNZW51cyBtYWtlIEJyYWQgaGFwcHlcbi8vXG4vLyAuLi5hbmQgTWFyaW8sIHRvby5cbi8vXG4vLyBAYXV0aG9yICAgIFBldGVyIFJhbXNpbmcgPHBldGVyLnJhbXNpbmdAeHBvLmNvbT5cbi8vXG4vLy9cblxuLypcbiAgICAxLiBUaHJldyBhIGBkaXZgIHRvIHN0YXJ0IHRoaXMgb2ZmIHRvIGdldCB0aGUgc2NvcmUgdG8gMDAxMSBpbiBvcmRlclxuICAgICAgICB0byBiZWF0IE1hdGVyaWFscyAwMDEwLiBNd2FoYWhhaGEuXG4gICAgMi4gVGhpcyBkaXNhYmxlcyB0aGUgY2FyZXQgb24gYW55dGhpbmcgYnV0IHRoZSBmaXJzdCBtZW51IHdoZW4gdGhlcmVcbiAgICAgICAgYXJlIG5lc3RlZCBtZW51cy4gVGhpcyBpcyBzbGlnaHRseSBmcmFnaWxlIGJ1dCBzYWRseSBNYXRlcmlhbFxuICAgICAgICBkb2Vzbid0IGdpdmUgdXMgbXVjaCBvZiBhIGNob2ljZSBoZXJlLiBXZSBrbm93IHRoZSBmaXJzdCBwYW5lbFxuICAgICAgICBpcyB0aGUgc2Vjb25kIGNoaWxkIG9mIHRoZSBvdmVybGF5IGBkaXZgIHNvIHdlIGdldCB0aGUgc2Vjb25kXG4gICAgICAgIHdpdGggYG50aC1vZi10eXBlKDIpYCB3aGljaCBnZXRzIHRoZSBzZWNvbmQgYGRpdmAuLi50aGVuIGFkZFxuICAgICAgICBgOm5vdCgpYCBhbmQgeW91IG5vdyBnZXQgXCJldmVyeXRoaW5nIHRoYXQgaXNuJ3QgdGhlIHNlY29uZCBkaXYuXG4gICAgMy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBmaXJzdCBhbmQgbGFzdCBtZW51IGl0ZW1zIGhhdmUgc3BhY2UgYWRkZWRcbiAgICAgICAgYXJvdW5kIHRoZW0uIFRoZSBjYXJldHMgbmVlZCB0byByZXNwZWN0IHRoYXQgYW5kIGJlY2F1c2UgdGhlXG4gICAgICAgIGFyZWEgcm91bmQgdGhlIGJ1dHRvbnMgbmVlZHMgdG8gYWNjZXB0IHRoZSBob3ZlciBzdGF0ZSB0aGlzXG4gICAgICAgIHRoZXNlIG5lZWQgdG8gYmUgbWFudWFsbHkgbW92ZWQuIEFsbCBvdGhlciBjYXJldHMgYXJlIGp1c3RcbiAgICAgICAgbW92ZWQgNTAlIHdob2xlc2FsZS5cbiAgICA0LiBUaGFua3MgdG8gdGhlIHJlZHVjZWQgcGFkZGluZyB3ZSBuZWVkIHRvIG1vdmUgdGhlIHN1Ym1lbnUgdHJpZ2dlclxuICAgICAgICBpY29uIG92ZXIganVzdCBhIGJpdC5cbiovXG5AaW1wb3J0ICd+QGFuZ3VsYXIvbWF0ZXJpYWwvdGhlbWluZyc7XG5cbkBtaXhpbiB4cG8tbWVudS10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdGhlbWUoJHRoZW1lKTtcblxuICBkaXYubWF0LW1lbnUtcGFuZWwge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm9yZGVyIDogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgIEBpbmNsdWRlIG1hdC1lbGV2YXRpb24oMSk7XG4gICAgbWFyZ2luLXRvcDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG5cblxuICAgIC5tYXQtbWVudS1jb250ZW50Om5vdCg6ZW1wdHkpIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgLm1hdC1tZW51LWl0ZW0ge1xuICAgICAgJF9tZW51LXBhZGRpbmc6IDZweDtcblxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGdhcDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICBoZWlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgKiAyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc207XG4gICAgICBwYWRkaW5nOiAkX21lbnUtcGFkZGluZyAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgLnhwby1JY29uIC5tYXQtaWNvbiB7XG4gICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05NzU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogJHhwby1ncmV5LS0zNTA7XG5cbiAgICAgICAgLnhwby1JY29uIC5tYXQtaWNvbiB7XG4gICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHhwby1ibHVlLS0yMDA7XG4gICAgICB9XG5cbiAgICAgIC8vIFRPRE8gVGhlIG5lc3RlZCBtZW51IGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gYnV0IHRoZSBjbGFzcyBpcyBub3QgcmVtb3ZlZCB0byBhdm9pZCBicmVha2luZyBjaGFuZ2VzLlxuICAgICAgJi1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtN3B4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGEubWF0LW1lbnUtaXRlbSxcbiAgICBhLm1hdC1tZW51LWl0ZW06aG92ZXIsXG4gICAgYS5tYXQtbWVudS1pdGVtOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBUT0RPIFRoZSBkaXZpZGVyIHN0eWxlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gYnV0IHRoZSBjbGFzcyBpcyBub3QgcmVtb3ZlZCB0byBhdm9pZCBicmVha2luZyBjaGFuZ2VzLlxuICAgIC5tYXQtZGl2aWRlciB7IFxuICAgICAgY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE8gVGhlIGNsYXNzIGlzIG5vdCByZW1vdmVkIHRvIGF2b2lkIGJyZWFraW5nIGNoYW5nZXMuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94Om5vdCg6bnRoLW9mLXR5cGUoMikpIHtcbiAgICAubWF0LW1lbnUtcGFuZWw6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB4cG8tbXVsdGktc2VsZWN0LXRoZW1lKCR0aGVtZSkge1xuICAvL1xuICAvLyBNVUxUSSBTRUxFQ1QgRk9STSBGSUVMRFxuICAvL1xuICAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtdHlwZS14cG8tbXVsdGktc2VsZWN0IHtcbiAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1iYXNlO1xuICAgIC8vXG4gICAgLy8gU3R5bGVzIGhlcmUgYXBwbHkgdG8gZGVmYXVsdCBhcHBlYXJhbmNlIGBsZWdhY3lgXG4gICAgLy8gYW5kIHRvIGZsb2F0IGxhYmVsIGBhbHdheXNgXG4gICAgLy9cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCB7XG4gICAgICAkX2Zvcm1GaWVsZC1tYXJnaW5Ub3A6IDI0cHg7XG5cbiAgICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICBtYXJnaW4tdG9wOiAkX2Zvcm1GaWVsZC1tYXJnaW5Ub3A7XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgICAgICAgICRfZm9ybUZpZWxkLWluZml4LWJvcmRlclJhZGl1czogMnB4O1xuICAgICAgICAgICAgJF9mb3JtRmllbGQtaW5maXgtdlBhZGRpbmc6IDJweDtcbiAgICAgICAgICAgICRfZm9ybUZpZWxkLXdpZHRoOiAyNjBweDtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJF9mb3JtRmllbGQtaW5maXgtYm9yZGVyUmFkaXVzO1xuICAgICAgICAgICAgcGFkZGluZzogJF9mb3JtRmllbGQtaW5maXgtdlBhZGRpbmcgJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgICAgICAgICB3aWR0aDogJF9mb3JtRmllbGQtd2lkdGg7XG5cbiAgICAgICAgICAgIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGhpZGVzIHRoZSBmb3JtLWZpZWxkIHVuZGVybGluZSBET00gZWxlbWVudFxuICAgICAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgLm1hdC1lcnJvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgICAgICAkX2ljb24tZm9udFNpemU6IDIwcHg7XG5cbiAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogJF9pY29uLWZvbnRTaXplO1xuICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy9cbiAgICAgIC8vIEZvY3VzZWQgc3RhdGVcbiAgICAgIC8vXG4gICAgICAmLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1mbGV4IC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ibGFjaztcblxuICAgICAgICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vXG4gICAgICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAgICAgLy9cbiAgICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQge1xuICAgICAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtZmxleCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tODA7XG4gICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvL1xuICAvLyBNVUxUSSBTRUxFQ1QgUEFORUxcbiAgLy9cbiAgLm1hdC1zZWxlY3QtcGFuZWwueHBvLVNlbGVjdC1wYW5lbC54cG8tU2VsZWN0LXBhbmVsTXVsdGlwbGUueHBvLU11bHRpU2VsZWN0LXBhbmVsIHtcbiAgICAvLyB0aGlzIGlzIHRoZSBzYW1lIGFzIHRoZSBmb3JtLWZpZWxkIHBhZGRpbmcgdG9wIGFuZCBib3R0b21cbiAgICAvLyB3ZSBuZWVkIHRvIHBsYWNlIHRoZSBwYW5lbCBvcHRpb25zIGp1c3QgYWJvdmUgb3IgYmVsb3cgdGhlIGZvcm0tZmllbGQgXG4gICAgLy8gYW5kIG5vdCBpbiB0aGUgbWF0LXNlbGVjdCBwb3NpdGlvbiAod2hvIHRyaWdnZXJzIHRvIHNob3cgdGhlIHBhbmVsKVxuICAgICRfcGFuZWwtbWFyZ2luOiAycHg7XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWJsYWNrO1xuICAgIG1hcmdpbi10b3A6ICRfcGFuZWwtbWFyZ2luO1xuICAgIG1hcmdpbi1ib3R0b206ICRfcGFuZWwtbWFyZ2luO1xuICAgIFxuICAgIC5tYXQtb3B0aW9uIC5tYXQtb3B0aW9uLXRleHQge1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICAkX2ljb24tbWFyZ2luUmlnaHQ6IDZweDtcblxuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRfaWNvbi1tYXJnaW5SaWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBvdmVycmlkZXMgdGhlIGNoZWNrYm94IGluZGV0ZXJtaW5hdGUgc3R5bGVzIGZvclxuICAgIC8vIHNlbGVjdCBhbGwgb3B0aW9uXG4gICAgLm1hdC1vcHRpb24ueHBvLU11bHRpU2VsZWN0QWxsT3B0aW9uIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICAgYmFja2dyb3VuZDogJHhwby13aGl0ZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tYmxhY2s7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgJF9jaGVja2JveC1hZnRlci1ib3JkZXItd2lkdGg6IDJweDtcbiAgICAgICAgJF9jaGVja2JveC1hZnRlci10b3A6IDNweDtcbiAgICAgICAgJF9jaGVja2JveC1hZnRlci1sZWZ0OiAzcHg7XG5cbiAgICAgICAgYmFja2dyb3VuZDogJHhwby1ibGFjaztcbiAgICAgICAgYm9yZGVyOiAkX2NoZWNrYm94LWFmdGVyLWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLWJsYWNrO1xuICAgICAgICBoZWlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgICBsZWZ0OiAkX2NoZWNrYm94LWFmdGVyLWxlZnQ7XG4gICAgICAgIHRvcDogJF9jaGVja2JveC1hZnRlci10b3A7XG4gICAgICAgIHdpZHRoOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvL1xuICAvLyBNVUxUSSBTRUxFQ1QgVFJJR0dFUlxuICAvL1xuICAvLyBuZWVkIHRvIGZpeCB3cmFwcGVyIHN0eWxlcyB0byBkaXNwbGF5IGluc2lkZSBtYXQtZm9ybS1maWVsZCBhcHByb3ByaWF0ZWx5XG4gIC54cG8tTXVsdGlTZWxlY3RUcmlnZ2VyIC5tYXQtY2hpcC1saXN0IC5tYXQtY2hpcC1saXN0LXdyYXBwZXIge1xuICAgICRfd3JhcHBlci1kZWZhdWx0TWF0ZXJpYWxNYXJnaW46IC00cHg7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBtYXJnaW46ICRfd3JhcHBlci1kZWZhdWx0TWF0ZXJpYWxNYXJnaW4gMDtcblxuICAgIC8vIG5lZWQgdG8gcmVtb3ZlIGdhcCBiZXR3ZWVuIG1hdC1jaGlwc1xuICAgIC8vIGluc3RlYWQgd2UgdXNlIG1hcmdpbnMgdG8gYXBwbHkgdGhlIGhpZGUgYW5kIHNob3cgbG9naWMgYWNjb3JkaW5nIHRoZSBhdmFpbGFibGUgc3BhY2UgaW4gdGhlIGNvbnRhaW5lclxuICAgIGdhcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gc25hY2tiYXItLXdpZHRoLS1icmVha3BvaW50KCkge1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAvLyB0YWJsZXQgbGFuZHNjYXBlXG4gICAgbWluLXdpZHRoOiA4MHZ3O1xuICAgIG1heC1oZWlnaHQ6IDQwdmg7XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLy8gdGFibGV0IHBvcnRyYWl0XG4gICAgbWluLXdpZHRoOiA2MHZ3O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDQwdmg7XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC8vIGRlc2t0b3BcbiAgICBtaW4td2lkdGg6IDQwdnc7XG4gICAgbWF4LWhlaWdodDogNDB2aDtcbiAgfVxufVxuXG5AbWl4aW4gc25hY2tCYXItLWJhY2tncm91bmQoJG5hbWUsICRiYWNrZ3JvdW5kLWNvbG9yKSB7XG4gICYtLSN7JG5hbWV9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gc25hY2tCYXItLXRleHQtLWNvbG9yKCRuYW1lLCAkY29sb3IpIHtcbiAgJi0tI3skbmFtZX0ge1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAueHBvLUxpbmsge1xuICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHNuYWNrQmFyLS1jbG9zZS0tY29sb3IoJG5hbWUsICRjb2xvcikge1xuICAmLS0jeyRuYW1lfSAmLWNsb3NlQnV0dG9uIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHhwby13aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U7XG59XG5cbi8vIFJlZ3VsYXIgdGV4dCBtaXhpbnNcbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG59XG5cblxuLypcbioqID09PT0gQmFzaWMgY29sb3JzID09PT1cbiovXG5cbi8qXG4qKiA9PT09IFhQTyBCcmFuZCBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIFhQTyBSZWRcbiR4cG8tYnJhbmQtcmVkOiAjY2MwMDAwO1xuJHhwby1icmFuZC1yZWQtLTkwMDogJHhwby1icmFuZC1yZWQ7XG4keHBvLWJyYW5kLXJlZC0tODAwOiAjZTQyMTBlO1xuJHhwby1icmFuZC1yZWQtLTcwMDogI2YzMmExMztcbiR4cG8tYnJhbmQtcmVkLS02MDA6ICNmZjMzMTc7XG4keHBvLWJyYW5kLXJlZC0tNTAwOiAjZmYzOTFjO1xuJHhwby1icmFuZC1yZWQtLTQwMDogI2ZmNWUzZDtcbiR4cG8tYnJhbmQtcmVkLS0zMDA6ICNmZjdlNjA7XG4keHBvLWJyYW5kLXJlZC0tMjAwOiAjZmZhNDhlO1xuJHhwby1icmFuZC1yZWQtLTEwMDogI2ZmYzhiYTtcbiR4cG8tYnJhbmQtcmVkLS01MDogI2ZjZThlNjtcblxuLy8gWFBPIEJsYWNrXG4keHBvLWJsYWNrOiAjMDAwMDAwO1xuJHhwby1icmFuZC1ibGFjay0tOTAwOiAkeHBvLWJsYWNrO1xuJHhwby1icmFuZC1ibGFjay0tODAwOiAjMjYyNjI2O1xuJHhwby1icmFuZC1ibGFjay0tNzAwOiAjNTU1NTU1O1xuJHhwby1icmFuZC1ibGFjay0tNjAwOiAjN2I3YjdiO1xuJHhwby1icmFuZC1ibGFjay0tNTAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tNDAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tMzAwOiAjYzRjNGM0O1xuJHhwby1icmFuZC1ibGFjay0tMjAwOiAjZDlkOWQ5O1xuJHhwby1icmFuZC1ibGFjay0tMTAwOiAjZTllOWU5O1xuJHhwby1icmFuZC1ibGFjay0tNTA6ICNmNWY1ZjU7XG5cbi8vIFhQTyBEYXJrIEdyZXlcbiR4cG8tYnJhbmQtZGFyay1ncmV5OiAjNDE0YTRjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTkwMDogIzIyMjgyYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS04MDA6ICR4cG8tYnJhbmQtZGFyay1ncmV5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTcwMDogIzYyNjg2YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS02MDA6ICM3NTdkODE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTAwOiAjYTBhNmFhO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTQwMDogI2JlYzVjOTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0zMDA6ICNlMGU3ZWI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMjAwOiAjZWJmMmY2O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTEwMDogI2YwZjdmYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDogI2Y0ZmNmZjtcblxuLy8gWFBPIE1lZGl1bSBHcmV5XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5OiAjODQ4NDg0O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tOTAwOiAjMmUyZTJlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tODAwOiAjNTA1MDUwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNzAwOiAjNzA3MDcwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNjAwOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTAwOiAjYWZhZmFmO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNDAwOiAjY2RjZGNkO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMzAwOiAjZWVlZWVlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwOiAjZjNmM2YzO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMTAwOiAjZjhmOGY4O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA6ICNmY2ZjZmM7XG5cbi8vIFhQTyBMaWdodCBHcmV5XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXk6ICNkZWRlZGU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTkwMDogIzFmMWYxZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tODAwOiAjM2YzZjNmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS03MDA6ICM1ZTVlNWU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTYwMDogIzcyNzI3MjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTAwOiAjOWE5YTlhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS00MDA6ICNiYWJhYmE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTMwMDogJHhwby1icmFuZC1saWdodC1ncmV5O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0yMDA6ICNlY2VjZWM7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTEwMDogI2Y0ZjRmNDtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTA6ICNmOWY5Zjk7XG5cbi8qXG4qKiA9PT09IE1haW4gQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBCbGFjayBhbmQgR3JleVxuJHhwby1ncmV5LS05NzU6ICMyMTIxMjE7XG4keHBvLWdyZXktLTk1MDogIzMzMzMzMztcbiR4cG8tZ3JleS0tOTAwOiAjNGE0YTRhO1xuJHhwby1ncmV5LS03MDA6ICM2ZjZmNmY7XG4keHBvLWdyZXktLTM1MDogI2JkYmRiZDtcbiR4cG8tZ3JleS0tMzAwOiAjZDhkOGQ4O1xuJHhwby1ncmV5LS04MDogI2Y2ZjZmNjtcbiR4cG8tZ3JleS0tMjU6ICNmYWZhZmE7XG5cbiR4cG8td2hpdGU6ICNmZmZmZmY7XG5cbi8vIExpbmtzLCBCdXR0b25zLCBUYWJzZXQgYW5kIFRhYnBpbGxzXG4keHBvLWJsdWUtLTg1MDogIzBkNDdhMTtcbiR4cG8tYmx1ZS0tODAwOiAjMTk3NmQyO1xuJHhwby1ibHVlLS0zNTA6ICMyMTk2ZjM7XG5cbi8vIEVycm9yIFN0YXRlXG4keHBvLXJlZC0tMjAwOiAjYjcxYzFjO1xuJHhwby1yZWQtLTE1MDogI2QzMmYyZjtcbiR4cG8tcmVkLS01MDogI2ZjZWVlYjtcblxuLy8gU3VjY2VzcyBTdGF0ZVxuJHhwby1ncmVlbi0tNjAwOiAjMzg4ZTNjO1xuJHhwby1ncmVlbi0tNDUwOiAjNGNhZjUwO1xuJHhwby1ncmVlbi0tNTA6ICNmMWY5ZjE7XG5cbi8vIFdhcm5pbmcgU3RhdGVcbiR4cG8teWVsbG93LS0zNTA6ICNmZmQ2MDA7XG5cbiR4cG8tb3JhbmdlLS0zNTA6ICNmZjZkMDA7XG5cbi8vIEluZm8gU3RhdGVcbiR4cG8tYmx1ZS0tNzAwOiAjMDA5MWVhO1xuXG4vLyBUcmFuc2FjdGlvbmFsIENlbGxzXG4keHBvLWdyZXktLTE1MDogI2VjZWZmMTtcblxuJHhwby1ibHVlR3JleS0tNzAwOiAjY2ZkOGRjO1xuXG4vLyBBY2NlbnQgQ29sb3JzXG4keHBvLXBpbmstLTcwMDogI2M1MTE2MjtcblxuJHhwby10ZWFsLS03MDA6ICMwMGJmYTU7XG5cbiR4cG8tYmx1ZS0tODI1OiAjMzA0ZmZlO1xuJHhwby1ibHVlLS0yMDA6ICNlNGVmZmE7XG5cbiR4cG8tYWNjZW50LXJlZC0tNDAwOiAkeHBvLWJyYW5kLXJlZC0tNDAwO1xuJHhwby1hY2NlbnQtcmVkLS0xMDA6ICR4cG8tYnJhbmQtcmVkLS0xMDA7XG5cbiR4cG8tcHVycGxlLS03MDA6ICM2MjAwZWE7XG5cbiR4cG8tZ3JlZW4tLTIwMDogI2E0ZTU5YjtcblxuJHhwby15ZWxsb3ctLTIwMDogI2ZmZjljNDtcblxuLypcbioqID09PT0gREVQUkVDQVRFRCBDT0xPUlMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xMDA6ICNlOGY1ZmU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTE1MDogI2UzZjJmZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMzAwOiAjMGQ5NGY0O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS00MDA6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTkwMDogIzA1M2M2Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0xMDA6ICNmZmY4ZTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMzAwOiAjZmZjZjRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTQwMDogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS03MDA6ICNmZmQ2MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tOTAwOiAjNGQzODAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMTAwOiAjYzhmZmRmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzAwOiAjMWNlODU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzUwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNDAwOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNzAwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tOTAwOiAjMGE2MTIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS01MDogI2ZiZmJmYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjA6ICNmYWZhZmE7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjAwOiAjZTZlNmU2O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yNTA6ICNkZGRkZGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTQwMDogIzliOWI5Yjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjAwOiAjNzU3NTc1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02NTA6ICM4NTg1ODU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTc1MDogIzU3NTc1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTE1OiAjNDM0OTRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MzA6ICM0MjQyNDI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDA6ICMxNzE3MTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTExMDA6ICMyMTIxMjE7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMTAwOiAjZmZlZWVlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTI1MDogI2RkMmMwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0zMDA6ICNmZjIyMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNDAwOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTYwMDogI2NjMDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS03MDA6ICNkMzJmMmY7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tOTAwOiAjNTUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTEwMDogI2ZmZGZjYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0zMDA6ICNmZjk5NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tNDAwOiAjZmY2NDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTkwMDogIzhiMzcwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZm9udENvbG9yLS1saW5rOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1iYWNrZ3JvdW5kQ29sb3ItLWJvZHk6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1lcnJvcjogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXN1Y2Nlc3M6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS13YXJuOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0taW5mbzogIzRhNGE0YTtcblxuLypcbioqID09PT0gQ09MT1JTIEFQUExJRUQgPT09PVxuKi9cbiR4cG8tZm9udENvbG9yLS1wcmltYXJ5OiAkeHBvLWdyZXktLTkwMDtcblxuLypcbioqID09PT0gVHlwb2dyYXBoeSA9PT09XG4qL1xuLy8gUHV0dGluZyBzaXplcyBpbiBtYXBzIHRvIGFsbG93IGR5bmFtaWMgc2l6aW5nIGZvciBleHRlcm5hbFxuLy8gUm9vdCBmb250LXNpemUocykgYWx3YXlzIGluIHB4XG4keHBvLWZvbnRTaXplLS1yb290OiAxNHB4O1xuJHhwby1mb250U2l6ZS0tc21hbGw6IDAuODc1cmVtOyAvLzEycHhcbiR4cG8tZm9udFNpemUtLW1lZGl1bTogMXJlbTsgLy8xNHB4XG4keHBvLWZvbnRTaXplLS1sYXJnZTogMS4xNDNyZW07IC8vMTZweFxuJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTogMS4yODVyZW07IC8vMThweFxuJHhwby1mb250U2l6ZS0teHhsYXJnZTogMS43MTRyZW07IC8vMjRweFxuXG4keHBvLWhlYWRlci1mb250U2l6ZS0teHNtYWxsOiAxcmVtOyAvLzE0cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDogMS4xNDNyZW07IC8vMTZweFxuJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTogMS4yODVyZW07IC8vMThweFxuJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlOiAxLjQyOHJlbTsgLy8yMHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teGxhcmdlOiAxLjU3MXJlbTsgLy8yMnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teHhsYXJnZTogMS44NTdyZW07IC8vMjZweFxuXG4keHBvLWZvbnRGYW1pbHktLXByaW1hcnk6ICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiR4cG8tZm9udEZhbWlseS0tcm9ib3RvV2lkZUJsYWNrOiAnUm9ib3RvIFdpZGUgQmxhY2snLCAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiR4cG8tZm9udFdlaWdodC0tbGlnaHQ6IDMwMDtcbiR4cG8tZm9udFdlaWdodC0tbm9ybWFsOiA0MDA7XG4keHBvLWZvbnRXZWlnaHQtLW1lZGl1bTogNTAwOyAvLyBERVBSRUNBVEVEIHwgZG8gbm90IGRlbGV0ZSBzaW5jZSBpdCBpcyBzdGlsbCBiZWluZyB1c2VkIGluIHNvbWUgcHJvamVjdHNcbiR4cG8tZm9udFdlaWdodC0tYm9sZDogNTAwO1xuJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ6IDYwMDtcbiR4cG8tZm9udFdlaWdodC0tYm9sZGVyOiA3MDA7XG5cbiR4cG8tbGluZUhlaWdodC0teGw6IDIuMjg2cmVtOyAvLyAzMnB4XG4keHBvLWxpbmVIZWlnaHQtLWxnOiAxLjcxNHJlbTsgLy8gMjRweFxuJHhwby1saW5lSGVpZ2h0LS1tZDogMS41NzFyZW07IC8vIDIycHhcbiR4cG8tbGluZUhlaWdodC0tc206IDEuNDI5cmVtOyAvLyAyMHB4XG5cbiR4cG8tbGluZUhlaWdodC0tYmFzZTogMjRweDsgLy8gZm9yIG1lZGl1bSBhbmQgbGFyZ2UgZm9udCBzaXplXG4keHBvLWxpbmVIZWlnaHQtLW1lZGl1bTogMThweDsgLy8gZm9yIG1lZGl1bSBmb250IHNpemVzXG4keHBvLWxpbmVIZWlnaHQtLXNtYWxsOiAxNnB4OyAvLyBmb3Igc21hbGwgZm9udCBzaXplXG5cbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U6IDEuMjg2OyAvLyBERVBSRUNBVEVEXG5cbiR4cG8tbGV0dGVyU3BhY2luZy0tYmFzZTogMC4ycHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDogMC4zcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW06IDAuMzNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlOiAwLjM4cHg7XG5cbi8vID09PT0gTGF5b3V0ID09PT1cbiR4cG8tY29udGVudFNwYWNpbmc6IDE2cHg7XG5cbi8vIEJyZWFrcG9pbnRzXG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsLXhzOiA0ODBweDtcbiR4cG8tYnJlYWtwb2ludC0tc21hbGw6IDYwMHB4O1xuJHhwby1icmVha3BvaW50LS1tZWRpdW06IDc2OHB4O1xuJHhwby1icmVha3BvaW50LS1sYXJnZTogMTAyNXB4O1xuJHhwby1icmVha3BvaW50LS14TGFyZ2U6IDE0NDBweDtcblxuJHhwby1zZWxlY3QtYmFja2dyb3VuZENvbG9yLW9wdGlvbk9uSG92ZXI6ICR4cG8tYmx1ZS0tMjAwO1xuXG4vLyAtLSBOR1gtVUkgU3BlY2lmaWMgLS1cbiRuZ3gtZm9vdGVyLWhlaWdodDogNDJweDtcbiRuZ3gtdGFiLWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4kbmd4LXRhYmxlLXJvdy1oZWlnaHQ6IDMwcHg7XG5cbiRuZ3gtaWNvbi1zaXplOiAyNHB4OyAvLyBUT0RPOiBEZXByZWNhdGUgdGhpcyB2YXJpYWJsZVxuJHhwby1pY29uLXNpemUtLXN0YW5kYXJkOiAyMHB4O1xuJHhwby1pY29uLXNpemUtLXNtYWxsOiAxOHB4O1xuJHhwby1pY29uLXNpemUtLWxhcmdlOiAyNHB4O1xuXG4kbmd4LXRoZUJsYWNrUm9ib3RvOiA5MDA7XG5cbiR4cG8taW5wdXQtaGVpZ2h0LS1kZWZhdWx0OiAzMHB4O1xuJHhwby1pbnB1dC1oZWlnaHQtLXR3b0xpbmVzOiA0NXB4O1xuXG4kbmd4LWlucHV0LWJvcmRlci13aWR0aDogMXB4O1xuXG4kbmd4LWlucHV0LWNvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms6ICR4cG8tYmxhY2s7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1saWdodDogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyOiAkeHBvLWdyZXktLTMwMDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms6ICR4cG8tZ3JleS0tMzUwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlLS1saWdodGVyOiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ6ICR4cG8tZ3JleS0tODA7XG5cbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQ6IDM2cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1zbWFsbDogMjhweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLWxhcmdlOiA0NnB4O1xuJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb246IDIwMG1zO1xuXG4kbmd4LWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4vLyBGb3IgdXNlIHdoZW4gYSBob3ZlciBpcyBuZWVkZWQgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kLlxuJG5neC13aGl0ZUFmZm9yZGFuY2Utb25Ib3Zlci1jb2xvcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yOiAkeHBvLXdoaXRlO1xuXG4vKlxuKiogPT09PSBTTkFDS0JBUiBERVBSRUNBVEVEIFZBUklBQkxFUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tc3VjY2VzczogJHhwby1ncmVlbi0tNDUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tZXJyb3I6ICR4cG8tcmVkLS0xNTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1pbmZvOiAjMDI4OGQxO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0td2FybjogI2ZiYzAyZDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS02MDA7XG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWVycm9yOiAkeHBvLXJlZC0tMjAwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWluZm86ICMwMTU3OWI7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tCYXItbWFyZ2luVG9wOiAzMnB4O1xuXG4vL0JhZGdlXG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLW5lZ2F0aXZlOiAkeHBvLXJlZC0tNTA7XG4kX21hdEJhZGdlQ29udGVudC1jb2xvci0tbmVnYXRpdmU6ICNkZDJjMDA7XG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLXBvc2l0aXZlOiAkeHBvLWdyZWVuLS01MDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDtcbi8vIFVzZWQgYXMgYSBzcGFjZXIgZm9yIGZsZXhlZCBjaGlsZHJlblxuLy8gVE9ETzogTW92ZSBhbGwgaW5zdGFuY2VzIHRvIHRoZSB1dGlsaXRpZXMgZGVmaW5pdGlvblxuLmZsZXgtLXN0cmV0Y2gge1xuICBmbGV4OiAxO1xufVxuXG4vLyAtLS0gRGlhbG9nIC0tLVxuJG5neC1kaWFsb2ctaGVhZGVyLWhlaWdodDogNDhweDtcbiRuZ3gtZGlhbG9nLWZvb3Rlci1oZWlnaHQ6IDY0cHg7XG5cbi8vIC0tLSBUcmFuc2l0aW9ucyAtLS1cbiR4cG8tdHJhbnNpdGlvbi0yMDA6IGFsbCAyMDBtcyBlYXNlLW91dDtcblxuLy8gLS0tIENvbnRleHR1YWwgSGVhZGVyIC0tLVxuJG5neC1Db250ZXh0dWFsSGVhZGVyLXNlcGFyYXRvci0tY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuXG5cbkBtaXhpbiB4cG8tc25hY2stYmFyLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZSk7XG5cbiAgc25hY2stYmFyLWNvbnRhaW5lci5tYXQtc25hY2stYmFyLWNvbnRhaW5lciB7XG4gICAgJF9zbmFja0Jhci1ib3JkZXJSYWRpdXM6IDJweDtcblxuICAgIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG5cbiAgICBiYWNrZ3JvdW5kOiAkeHBvLXdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRfc25hY2tCYXItYm9yZGVyUmFkaXVzO1xuICAgIGNvbG9yOiAkeHBvLWZvbnRDb2xvci0tcHJpbWFyeTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIEBpbmNsdWRlIHNuYWNrYmFyLS13aWR0aC0tYnJlYWtwb2ludCgpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luOiAkeHBvLWNvbnRlbnRTcGFjaW5nICogMjtcblxuICAgIC8vIHNuYWNrLWJhci1jb250YWluZXIgKGZvcm0gTWF0ZXJpYWwgMTEueCksIHJlbmRlcnMgaW5zaWRlIHR3byBgZGl2YCB0YWdzIHdpdGhvdXQgYW55IGNzcyBjbGFzcyBvciB0YWcgbmFtZVxuICAgIC8vIHNvIHdlIG5lZWQgdG8gdXNlIHRoaXMgc2VsZWN0b3IgdG8gc2V0IHRoZSBoZWlnaHQgZm9yIHRoZSBlbGVtZW50cyBpbnNpZGUgb3VyIG5vdGlmaWNhdGlvbi10ZW1wbGF0ZSBjb21wb25lbnRcbiAgICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzXG4gICAgPiBkaXYge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHhwby10YWJsZS10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LXRhYmxlLXRoZW1lKCR0aGVtZSk7XG5cbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTsgLy8gVE9ETzogZm9yIGFsbCBvZiB0aGVzZSB2YXJpYWJsZXMsIGl0IHNob3VsZCBjb21lIGZyb20gdGhlIHBhbGV0dGVcbiAgJF90YWJsZS1zcGFjaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgJF90YWJsZS1ib3JkZXJDb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gICRfdGFibGUtYm9yZGVyOiAxcHggc29saWQgJF90YWJsZS1ib3JkZXJDb2xvcjtcbiAgJF9mb290ZXItYmFja2dyb3VuZENvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHhwby1ncmV5LS03MDAsICR4cG8tZ3JleS0tMjAwKTtcbiAgJF9oZWFkZXItZ3JvdXBCYWNrZ3JvdW5kQ29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkeHBvLWdyZXktLTkwMCwgJHhwby1ncmV5LS0yMDApO1xuICAkX2hlYWRlci1iYWNrZ3JvdW5kQ29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkeHBvLWdyZXktLTcwMCwgJHhwby1ncmV5LS04MCk7XG4gICRfaGVhZGVyLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgd2hpdGUsICR4cG8tZ3JleS0tOTAwKTtcblxuICAvLyBXcmFwcGluZyBhbGwgc3R5bGVzIGFyb3VuZCBgLm1hdC10YWJsZWAgdG8gaW5jcmVhc2Ugc3BlY2lmaWNpdHkgc29cbiAgLy8gdGhlc2Ugc3R5bGVzIHRha2UgcGVyc2lzdGFuY2Ugb3ZlciBtYXRlcmlhbCdzXG4gIC5tYXQtdGFibGUge1xuICAgIGJvcmRlcjogJF90YWJsZS1ib3JkZXI7XG5cbiAgICB0ci5tYXQtaGVhZGVyLXJvdyxcbiAgICB0ci5tYXQtZm9vdGVyLXJvdyxcbiAgICB0ci5tYXQtcm93IHtcbiAgICAgIGhlaWdodDogJG5neC10YWJsZS1yb3ctaGVpZ2h0O1xuICAgIH1cblxuICAgIG1hdC1oZWFkZXItcm93Lm1hdC1oZWFkZXItcm93LFxuICAgIG1hdC1mb290ZXItcm93Lm1hdC1mb290ZXItcm93LFxuICAgIG1hdC1yb3cubWF0LXJvdyB7XG4gICAgICBtaW4taGVpZ2h0OiAkbmd4LXRhYmxlLXJvdy1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gQm9yZGVyIEJvdHRvbSBlbGVtZW50c1xuICAgIG1hdC1yb3cubWF0LXJvdyxcbiAgICBtYXQtaGVhZGVyLXJvdy5tYXQtaGVhZGVyLXJvdyxcbiAgICBtYXQtZm9vdGVyLXJvdy5tYXQtZm9vdGVyLXJvdyxcbiAgICB0aC5tYXQtaGVhZGVyLWNlbGwsXG4gICAgdGQubWF0LWNlbGwsXG4gICAgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRfdGFibGUtYm9yZGVyQ29sb3I7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGJvcmRlciBib3R0b20gY29sb3IgZnJvbSBsYXN0IHJvdyB0byBhdm9pZCBkb3VibGUgYm9yZGVyXG4gICAgbWF0LXJvdy5tYXQtcm93Omxhc3QtY2hpbGQsXG4gICAgbWF0LWZvb3Rlci1yb3cubWF0LWZvb3Rlci1yb3c6bGFzdC1jaGlsZCxcbiAgICB0ci5tYXQtcm93Omxhc3QtY2hpbGQgPiAubWF0LWNlbGwge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLm1hdC1jZWxsIHtcbiAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICA+IC54cG8tSWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEFsbCBDZWxsc1xuICAgIHRoLm1hdC1oZWFkZXItY2VsbCxcbiAgICB0ZC5tYXQtY2VsbCxcbiAgICB0ZC5tYXQtZm9vdGVyLWNlbGwsXG4gICAgbWF0LWNlbGwubWF0LWNlbGwsXG4gICAgbWF0LWhlYWRlci1jZWxsLm1hdC1oZWFkZXItY2VsbCxcbiAgICBtYXQtZm9vdGVyLWNlbGwubWF0LWZvb3Rlci1jZWxsIHtcbiAgICAgICYsXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAvLyBuZWVkZWQgdG8gb3ZlcnJpZGUgbWF0ZXJpYWwncyBzdHlsZXNcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkX3RhYmxlLXNwYWNpbmc7XG4gICAgICB9XG5cbiAgICAgICYsXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIC8vIG5lZWRlZCB0byBvdmVycmlkZSBtYXRlcmlhbCdzIHN0eWxlc1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkX3RhYmxlLXNwYWNpbmc7XG4gICAgICB9XG5cbiAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xuICAgIH1cblxuICAgIC8vIEhlYWRlciByb3dzXG4gICAgdHIubWF0LWhlYWRlci1yb3csXG4gICAgbWF0LWhlYWRlci1yb3cubWF0LWhlYWRlci1yb3cge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9oZWFkZXItYmFja2dyb3VuZENvbG9yO1xuICAgICAgYm94LXNoYWRvdzogMCA0cHggLTJweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcblxuICAgICAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgICAgIGNvbG9yOiAkX2hlYWRlci1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbWVkaXVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZvb3RlciBSb3dzXG4gICAgdHIubWF0LWZvb3Rlci1yb3csXG4gICAgbWF0LWZvb3Rlci1yb3cubWF0LWZvb3Rlci1yb3cge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9mb290ZXItYmFja2dyb3VuZENvbG9yO1xuXG4gICAgICAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbWVkaXVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2VsbCB7XG4gICAgLm1hdC1pY29uIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICA+IC54cG8tSWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgIH1cbiAgfVxuXG4gIC8vIFhwbyBDdXN0b20gQ2xhc3NcbiAgLnhwby1NYXRUYWJsZSB7XG4gICAgLy8gQ29sdW1uIEdyb3VwXG4gICAgJi0td2l0aENvbHVtbkdyb3VwIHtcbiAgICAgIC8vIFByaW1hcnkgaGVhZGVyXG4gICAgICB0ci5tYXQtaGVhZGVyLXJvdzpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9oZWFkZXItZ3JvdXBCYWNrZ3JvdW5kQ29sb3I7XG5cbiAgICAgICAgdGgubWF0LWhlYWRlci1jZWxsIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXVzYWJsZSBDbGFzc2VzXG4gICAgJi0tYm9yZGVyUmlnaHQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkX3RhYmxlLWJvcmRlcjtcbiAgICB9XG5cbiAgICAmLS1ib3JkZXJMZWZ0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkX3RhYmxlLWJvcmRlcjtcbiAgICB9XG5cbiAgICAvLyBDZWxsIENsYXNzZXNcbiAgICAmLWNlbGwge1xuICAgICAgJi0tdGV4dEFsaWduUmlnaHQge1xuICAgICAgICAmLm1hdC1oZWFkZXItY2VsbCxcbiAgICAgICAgJi5tYXQtY2VsbCxcbiAgICAgICAgJi5tYXQtZm9vdGVyLWNlbGwge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi0tdGV4dEFsaWduQ2VudGVyIHtcbiAgICAgICAgJi5tYXQtaGVhZGVyLWNlbGwsXG4gICAgICAgICYubWF0LWNlbGwsXG4gICAgICAgICYubWF0LWZvb3Rlci1jZWxsIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLypcbiogVGhlIGZvbGxvd2luZyBzdHlsZXMgc3R5bGUgdGFicyB0aGF0IGhhdmUgYmVlbiBkZXByZWNhdGVkIG9yIGFyZSBub3QgaW4gdGhlIGRlc2lnbiBzeXN0ZW0gXG4qIGFuZCBhbHNvIHN0eWxlIHRoZSB0YWIgc25pcHBldHMgaW4gdGhlIENvcmUgZG9jdW1lbnRhdGlvbi5cbioqL1xuXG4ubWF0LXByaW1hcnkge1xuICBcbiAgLm1hdC10YWItaGVhZGVyIC5tYXQtdGFiLWxhYmVsLWNvbnRhaW5lciB7XG5cbiAgICAubWF0LWluay1iYXIsXG4gICAgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS0zMDA7XG4gICAgfVxuXG4gIH1cbiAubWF0LXRhYi1sYWJlbCB7XG4gICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgaGVpZ2h0OiAkbmd4LXRhYi1oZWFkZXItaGVpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkbmd4LXRhYi1oZWFkZXItaGVpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvcGFjaXR5OiAxOyAvLyBPdmVycmlkaW5nIG1hdGVyaWFsJ3MgMC42IG9wYWNpdHlcbiAgICBwYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgIH1cblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS0zMDA7XG4gICAgfVxuXG4gICAgLm1hdC10YWItbGluayB7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXRhYi1sYWJlbHMgLm1hdC10YWItbGFiZWwtY29udGVudCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgLm1hdC1jaGlwLnhwby1DaGlwLS1zbWFsbCB7XG4gICAgICAgICRfbWF0Q2hpcC1mb250LXNpemU6IDEycHg7XG5cbiAgICAgICAgQGluY2x1ZGUgY2hpcC1zaXplKCR4cG8tbGluZUhlaWdodC0tc21hbGwsICRfbWF0Q2hpcC1mb250LXNpemUpO1xuXG4gICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgaWNvbi1zaXplKCRfbWF0Q2hpcC1mb250LXNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYgPiAubWF0LWljb24ge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuJF90YWItYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS0zMDA7XG4kX3RhYi1pbmstdGhpY2tuZXNzOiA0cHg7XG5cbi54cG8tQWx0ZXJuYXRlVGFicywgXG4ueHBvLVBpbGxUYWJHcm91cCxcbi54cG8tVmVydGljYWxUYWJzLFxuLnhwby1QcmltYXJ5VGFicyAvLyBUT0RPIFRoaXMgY2xhc3Mgd2lsbCBiZSBkZWxldGVkIGJlY2F1c2UgdGhlIGRpcmVjdGl2ZSBpcyBhbHJlYWR5IGRlcHJlY2F0ZWQuXG57XG4gICYueHBvLVRhYnNXaWRlTmF2IHtcbiAgICAubWF0LXRhYi1oZWFkZXIge1xuICAgICAgJi1wYWdpbmF0aW9uIHtcbiAgICAgICAgJF9wYWdpbmF0aW9uLXdpZGVOYXYtd2lkdGg6IDQwcHg7XG5cbiAgICAgICAgbWluLXdpZHRoOiAkX3BhZ2luYXRpb24td2lkZU5hdi13aWR0aDtcbiAgICAgICAgd2lkdGg6ICRfcGFnaW5hdGlvbi13aWRlTmF2LXdpZHRoO1xuICAgICAgICBwYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLm1hdC10YWItaGVhZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG4gIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgJi1wYWdpbmF0aW9uIHtcbiAgICAgICRfcGFnaW5hdGlvbi1oZWlnaHQ6IDQwcHg7XG4gICAgICAkX3BhZ2luYXRpb24td2lkdGg6IDI0cHg7XG5cbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tODA7XG4gICAgICBib3JkZXI6ICRfdGFiLWJvcmRlcjtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBtaW4td2lkdGg6ICRfcGFnaW5hdGlvbi13aWR0aDtcbiAgICAgIGhlaWdodDogJF9wYWdpbmF0aW9uLWhlaWdodDtcbiAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgIHBhZGRpbmc6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyIDA7XG4gICAgICB3aWR0aDogJF9wYWdpbmF0aW9uLXdpZHRoO1xuXG4gICAgICAmOmhvdmVyOm5vdCgubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgICAmLXBhZ2luYXRpb24tZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogJHhwby1ncmV5LS04MDtcbiAgICB9XG4gICAgJi1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcbiAgICB9XG4gICAgJi1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgICAgaGVpZ2h0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgIHdpZHRoOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgIGJvcmRlci1jb2xvcjogJHhwby1ncmV5LS05MDA7XG5cbiAgICAgICY6aG92ZXI6bm90KC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24pIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWdyZXktLTk3NTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLm1hdC10YWItbGFiZWwtY29udGVudCB7XG4gICAgZ2FwOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICYgPiAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gICAgICB3aWR0aDogJHhwby1pY29uLXNpemUtLXN0YW5kYXJkO1xuICAgICAgaGVpZ2h0OiAkeHBvLWljb24tc2l6ZS0tc3RhbmRhcmQ7XG4gICAgfVxuICAgIC5tYXQtYmFkZ2UubWF0LWJhZGdlLW92ZXJsYXAge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGdhcDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG4gICAgfVxuICAgIC5tYXQtYmFkZ2UtY29udGVudCwgXG4gICAgICAubWF0LWNoaXAgLy8gVGhpcyBzaG91bGRuJ3QgYmUgdXNlZCB3aXRoIHRoZSBuZXcgZGVzaWduLCBidXQgd2Uga2VlcCBpdCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zICh0byBub3QgYWRkIGJyZWFraW5nIGNoYW5nZXMpLlxuICAgIHtcbiAgICAgICRfYmFkZ2UtcmFkaXVzOiAxMHB4O1xuICAgICAgJF9iYWRnZS1taW4taGVpZ2h0OiAxMnB4O1xuICAgICAgJF9iYWRnZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAkX2JhZGdlLXdpZHRoOiAxMDAlO1xuICAgICAgJF9iYWRnZS1taW4td2lkdGg6IDMwcHg7XG4gICAgICAkX2JhZGdlLWZvbnRXZWlnaHQ6IDkwMDtcblxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tODA7XG4gICAgICBib3JkZXI6ICRfdGFiLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRfYmFkZ2UtcmFkaXVzO1xuICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZm9udC13ZWlnaHQ6ICRfYmFkZ2UtZm9udFdlaWdodDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgaGVpZ2h0OiAkX2JhZGdlLWhlaWdodDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkX2JhZGdlLW1pbi1oZWlnaHQ7XG4gICAgICBtaW4td2lkdGg6ICRfYmFkZ2UtbWluLXdpZHRoO1xuICAgICAgb3ZlcmZsb3c6IGluaXRpYWw7XG4gICAgICBwYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gNCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcbiAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgd2lkdGg6ICRfYmFkZ2Utd2lkdGg7XG4gICAgfVxuICB9XG4gIC5tYXQtdGFiLWxpc3QgLm1hdC1pbmstYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCxcbiAgLm1hdC10YWItbGlua3MgLm1hdC10YWItbGluayxcbiAgLm1hdC10YWItbGFiZWxzIC5tYXQtdGFiLWxhYmVsLFxuICAubWF0LXRhYi1uYXYtYmFyIC5tYXQtdGFiLWxpbmsge1xuICAgICRfdGFiLXBhZGRpbmc6IDEwcHg7XG4gICAgJF90YWItaGVpZ2h0OiA0MHB4O1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICBib3JkZXItbGVmdDogJF90YWItYm9yZGVyO1xuICAgIGJvcmRlci10b3A6ICRfdGFiLWJvcmRlcjtcbiAgICBib3JkZXItYm90dG9tOiAkX3RhYi1ib3JkZXI7XG4gICAgY29sb3I6ICR4cG8tZ3JleS0tOTc1O1xuICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGRlcjtcbiAgICBoZWlnaHQ6ICRfdGFiLWhlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwYWRkaW5nOiAkX3RhYi1wYWRkaW5nICR4cG8tY29udGVudFNwYWNpbmc7XG5cbiAgICAmLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkeHBvLXdoaXRlO1xuICAgICAgYm9yZGVyLXRvcDogJF90YWItaW5rLXRoaWNrbmVzcyBzb2xpZCAkeHBvLWJsdWUtLTg1MDtcbiAgICAgIG92ZXJmbG93OiBpbmhlcml0O1xuICAgICAgLm1hdC10YWItbGFiZWwtY29udGVudCB7XG4gICAgICAgICRfYmFkZ2UtbWFyZ2luLWJvdHRvbTogM3B4O1xuXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRfYmFkZ2UtbWFyZ2luLWJvdHRvbTtcbiAgICAgIH1cbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCxcbiAgICAgICAgICAubWF0LWNoaXAgLy8gVGhpcyBzaG91bGRuJ3QgYmUgdXNlZCB3aXRoIHRoZSBuZXcgZGVzaWduLCBidXQgd2Uga2VlcCBpdCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zICh0byBub3QgYWRkIGJyZWFraW5nIGNoYW5nZXMpLlxuICAgICAge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTkwMDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHhwby1ncmV5LS05MDA7XG4gICAgICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgICAmLm1hdC10YWItZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmV5LS04MDtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTMwMDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yaWdodDogJF90YWItYm9yZGVyO1xuICAgIH1cbiAgICAmOmhvdmVyOm5vdCgubWF0LXRhYi1kaXNhYmxlZCk6bm90KC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSkge1xuICAgICAgYm9yZGVyLXRvcDogJF90YWItaW5rLXRoaWNrbmVzcyBzb2xpZCAkeHBvLWJsdWUtLTM1MDtcblxuICAgICAgLm1hdC10YWItbGFiZWwtY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRfdGFiLWluay10aGlja25lc3MgLSAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLm1hdC10YWItbmF2LWJhci54cG8tQWx0ZXJuYXRlVGFicyB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi54cG8tUGlsbFRhYkdyb3VwIHtcbiAgLm1hdC10YWItaGVhZGVyIHtcbiAgICAubWF0LXRhYi1sYWJlbC1jb250YWluZXIgLm1hdC10YWItbGFiZWxzIHtcbiAgICAgIGdhcDogNHB4O1xuICAgIH1cblxuICAgIC5tYXQtdGFiLWxhYmVsLWNvbnRhaW5lciAubWF0LXRhYi1sYWJlbHMgLm1hdC10YWItbGFiZWwsXG4gICAgLm1hdC10YWItbmF2LWJhciAubWF0LXRhYi1saW5rIHtcbiAgICAgICRfcGlsbC10YWItcmFkaXVzOiAyMHB4O1xuICAgICAgJF9waWxsLXRhYi1saW5lLWhlaWdodDogMjBweDtcbiAgICAgICRfcGlsbC10YWItaGVpZ2h0OiAzMnB4O1xuICAgICAgJF9waWxsLXRhYi1wYWRkaW5nOiA2cHg7XG5cbiAgICAgIHBhZGRpbmc6ICRfcGlsbC10YWItcGFkZGluZyAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgICAgYm9yZGVyLXJhZGl1czogJF9waWxsLXRhYi1yYWRpdXM7XG4gICAgICBoZWlnaHQ6ICRfcGlsbC10YWItaGVpZ2h0O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6ICRfcGlsbC10YWItbGluZS1oZWlnaHQ7XG4gICAgICBjb2xvcjogJHhwby1ibHVlLS04MDA7XG4gICAgICAmLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ibHVlLS0yMDA7XG4gICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk3NTtcblxuICAgICAgICAubWF0LXRhYi1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLm1hdC10YWItZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogJHhwby1ncmV5LS0zNTA7XG4gICAgICB9XG4gICAgICAmOmhvdmVyOm5vdCgubWF0LXRhYi1kaXNhYmxlZCk6bm90KC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSkge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNvbG9yOiAkeHBvLWJsdWUtLTg1MDtcbiAgICAgICAgLm1hdC10YWItbGFiZWwtY29udGVudCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4kX3RhYi1ib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiRfdGFiLWluay10aGlja25lc3M6IDRweDtcblxuLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkueHBvLVZlcnRpY2FsVGFicyB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAubWF0LXRhYi1oZWFkZXIge1xuICAgIC5tYXQtdGFiLWxhYmVsLWNvbnRhaW5lciB7XG4gICAgICAubWF0LXRhYi1saXN0IHtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgfVxuICAgICAgLm1hdC10YWItbGFiZWxzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAubWF0LXRhYi1sYWJlbCB7XG4gICAgICAgICAgJF92ZXJ0aWNhbC1oZWlnaHQ6IDMycHg7XG4gICAgICAgICAgJF92ZXJ0aWNhbC1wYWRkaW5nOiA2cHg7XG4gICAgICAgICAgJF92ZXJ0aWNhbC1tYXJnaW46IC0zcHg7XG5cbiAgICAgICAgICBib3JkZXI6ICRfdGFiLWJvcmRlcjtcbiAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICAgIGhlaWdodDogJF92ZXJ0aWNhbC1oZWlnaHQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc207XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICAgICAgICBwYWRkaW5nOiAkX3ZlcnRpY2FsLXBhZGRpbmcgJHhwby1jb250ZW50U3BhY2luZztcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRfdGFiLWJvcmRlcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLWNvbnRlbnQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYtYWN0aXZlIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkX3RhYi1pbmstdGhpY2tuZXNzIHNvbGlkICR4cG8tYmx1ZS0tODUwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYubWF0LXRhYi1sYWJlbC1hY3RpdmUgLm1hdC10YWItbGFiZWwtY29udGVudCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkZXI7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRfdmVydGljYWwtbWFyZ2luO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOmhvdmVyOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRfdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkX3RhYi1pbmstdGhpY2tuZXNzIHNvbGlkICR4cG8tYmx1ZS0tMzUwO1xuXG4gICAgICAgICAgICAubWF0LXRhYi1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRfdmVydGljYWwtbWFyZ2luO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmhvdmVyOm5vdCgubWF0LXRhYi1kaXNhYmxlZCk6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkX3RhYi1pbmstdGhpY2tuZXNzIHNvbGlkICR4cG8tYmx1ZS0tMzUwO1xuXG4gICAgICAgICAgICAubWF0LXRhYi1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRfdmVydGljYWwtbWFyZ2luO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbkBtaXhpbiB4cG8tdGFicy10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LXRhYnMtdGhlbWUoJHRoZW1lKTtcbn1cblxuLy8vXG4vLyBPdmVycmlkZXMgZm9yIHRoZSBTZWxlY3Rcbi8vXG4vLyBAYXV0aG9yOiBQZXRlciBSYW1zaW5nIDxwZXRlci5yYW1zaW5nQHhwby5jb20+XG4vLy9cblxuLypcbiAgICAxLiBNb3ZlcyB0aGUgc2VsZWN0IHRvIHNpdCByaWdodCB1bmRlciB0aGUgdHJpZ2dlclxuKi9cblxuQG1peGluIHhwby1zZWxlY3QtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lKTtcbiAgJF9vcHRpb24taGVpZ2h0OiAyLjNlbTtcbiAgJF9zZWxlY3QtdHdvTGluZXNEZXNjcmlwdGlvbi1mb250U2l6ZTogMTFweDtcbiAgJF9zZWxlY3RQYW5lbC1tYXJnaW5MZWZ0OiA3cHg7XG4gICRfc2VsZWN0UGFuZWwtbWFyZ2luVG9wOiAyNHB4O1xuICAkX3NlbGVjdElucHV0LXBhZGRpbmctLXZlcnRpY2FsOiA2cHg7XG4gICRfZm9ybS1maWVsZC1ib3JkZXJSYWRpdXM6IDJweDtcbiAgJF9mb3JtLWZpZWxkLXN1ZmZpeC1sb2FkZXItLXNpemU6IDI0cHg7XG4gICRfZm9ybS1maWVsZC1zdWZmaXgtcmlnaHQ6IDI0cHg7XG4gICRfZm9ybUZpZWxkLWljb24tc2l6ZTogMTZweDtcbiAgJF9mb3JtRmllbGQtaWNvbi1mb250U2l6ZTogMjBweDtcblxuICAvLyBTZWxlY3Qgd2l0aCBpY29uIGFuZCB0d28gbGluZXNcbiAgLnhwby1TZWxlY3QtdHdvTGluZXNDb250YWluZXIge1xuICAgIGNvbG9yOiAkeHBvLWdyZXktLTExMDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi1sZWZ0OiAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgIC5tYXQtb3B0aW9uLXRleHQge1xuICAgICAgJjpudGgtb2YtdHlwZSgxKSB7XG4gICAgICAgIGNvbG9yOiAkeHBvLWJsYWNrO1xuICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgIH1cblxuICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MDtcbiAgICAgICAgZm9udC1zaXplOiAkX3NlbGVjdC10d29MaW5lc0Rlc2NyaXB0aW9uLWZvbnRTaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogMTJweDtcbiAgICAgICAgcGFkZGluZy10b3A6ICR4cG8tY29udGVudFNwYWNpbmcgLyA0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC54cG8tU2VsZWN0LXR3b0NvbHVtbnNDb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBzcGFuOmZpcnN0LW9mLXR5cGUge1xuICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICBzcGFuOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBmbGV4OiAyO1xuICAgIH1cbiAgfVxuXG4gIC54cG8tU2VsZWN0LXBhbmVsIHtcbiAgICAmLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJG5neC1pbnB1dC1jb2xvci1ib3JkZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBtYXJnaW4tbGVmdDogJF9zZWxlY3RQYW5lbC1tYXJnaW5MZWZ0OyAvLyAjMVxuICAgICAgbWFyZ2luLXRvcDogJF9zZWxlY3RQYW5lbC1tYXJnaW5Ub3A7IC8vICMxXG5cbiAgICAgIC5tYXQtb3B0aW9uLFxuICAgICAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgICAgIGhlaWdodDogJHhwby1pbnB1dC1oZWlnaHQtLWRlZmF1bHQ7IC8vIFRoZSBzdHlsZSBpcyBvdmVyd3JpdHRlbiBieSBkZWZhdWx0IG90aGVyd2lzZVxuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyAvLyBUaGUgc3R5bGUgaXMgb3ZlcndyaXR0ZW4gYnkgZGVmYXVsdCBvdGhlcndpc2VcbiAgICAgICAgcGFkZGluZzogJF9zZWxlY3RJbnB1dC1wYWRkaW5nLS12ZXJ0aWNhbCAkeHBvLWNvbnRlbnRTcGFjaW5nIC8gMjtcblxuICAgICAgICAmOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJHhwby1ncmV5LS0zMDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLnhwby1PcHRpb24ge1xuICAgICAgICAgICYtLXR3b0xpbmVzIHtcbiAgICAgICAgICAgIGhlaWdodDogJHhwby1pbnB1dC1oZWlnaHQtLXR3b0xpbmVzO1xuXG4gICAgICAgICAgICAubWF0LW9wdGlvbi10ZXh0IHtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLWhpZGVEaXZpZGVyOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSxcbiAgICAgICAgJjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkeHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtc2VsZWN0ZWQge1xuICAgICAgICAgICY6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkeHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTkwMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLWRpc2FibGVkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZXktLTgwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1vcHRpb24tdGV4dCB7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBjb2xvcjogJHhwby1ncmV5LS05NTA7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJG5neC1pbnB1dC1jb2xvci1ib3JkZXI7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG5cbiAgICAgICAgICAmLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkeHBvLWdyZXktLTMwMDtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgICAvLyBGb3Igc29tZSBzdHJhbmdlIHJlYXNvbiBBbmd1bGFyIE1hdGVyaWFsIGRvZXNuJ3QgaGF2ZSB0aGVzZSBzdHlsZXNcbiAgICAgICAgICAgICAgLy8gZm9yIHRoZSBkaXNhYmxlZCBvcHRpb25zLCB3ZSBhcmUgYWRkaW5nIGl0IHRvIGVuc3VyZSB0aGF0IHdlIGNhbiBzaG93XG4gICAgICAgICAgICAgIC8vIHNlbGVjdGVkIG9wdGlvbnMgYXMgZGlzYWJsZWQuXG4gICAgICAgICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi1jaGVja2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgLy8gVGhlc2UgdmFsdWVzIGFyZSBuZWVkZWQgdG8gb3ZlcnJpZGUgdGhlIG9uZXMgc2V0IGJ5IE1hdGVyaWFsLFxuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBvdmVycmlkZSB0aGVtIGJlY2F1c2Ugd2UgY2hhbmdlZCB0aGUgYm9yZGVyLXdpdGguXG4gICAgICAgICAgICBsZWZ0OiAycHg7XG4gICAgICAgICAgICB0b3A6IDMuNHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBcHBseWluZyB0aGVzZSBzdHlsZXMgb3V0c2lkZSB0aGUgbWF0LW9wdGlvbiBibG9jaywgc28gaXRcbiAgICAgIC8vIGRvZXNuJ3QgbWl4dXAgb3IgYnJlYWsgdGhlIG1hdC1vcHRpb25cbiAgICAgIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkbmd4LWlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTUwO1xuICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICAgICAgfVxuXG4gICAgICAubWF0LW9wdGdyb3VwIHtcbiAgICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgICAgICAgIGJvcmRlci10b3A6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZhbHNcbiAgLm1hdC1vcHRpb24gLm1hdC1vcHRpb24tcmlwcGxlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQge1xuICAgICYubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtc2VsZWN0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1zZWxlY3Qge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSxcbiAgICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICAgICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7IC8vIFRPRE86IHZhcmlhYmxlcyB1c2luZyB0aGlzIHNob3VsZCBjb21lIGZyb20gcGFsZXR0ZVxuICAgICAgICAkX2lucHV0LWJvcmRlckNvbG9yLS1mb2N1c2VkOiAkbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrO1xuICAgICAgICAkX2lucHV0LWJvcmRlckNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLWJvcmRlcjtcbiAgICAgICAgJF9sYWJlbFZlcnRpY2FsTW92ZW1lbnQ6IC0xLjNlbTtcbiAgICAgICAgJF9wcmVmaXhTdWZmaXhJY29uLXNpemU6IDJlbTtcbiAgICAgICAgJF9pbnB1dC1wbGFjZWhvbGRlclRleHRDb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICR4cG8tZ3JleS0tMTAwLCAkeHBvLWdyZXktLTQwMCk7XG4gICAgICAgICRfaW5wdXQtbGFiZWxUZXh0Q29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkeHBvLWdyZXktLTUwLCAkeHBvLWdyZXktLTcwMCk7XG4gICAgICAgICRfZm9ybUZpZWxkLW1hcmdpblRvcDogMjRweDtcblxuICAgICAgICBtYXJnaW4tYm90dG9tOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgICAgICBtYXJnaW4tdG9wOiAkX2Zvcm1GaWVsZC1tYXJnaW5Ub3A7XG5cbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCB7XG4gICAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tODA7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyLFxuICAgICAgICAgIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgICAgICAgICAgY29sb3I6ICR4cG8tYmxhY2s7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsIC5tYXQtc2VsZWN0Om5vdCgubWF0LXNlbGVjdC1lbXB0eSkgLm1hdC1zZWxlY3QtYXJyb3ctd3JhcHBlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgIC8vIFNldHMgdGhlIGZvY3VzZWQgYm9yZGVyIGNvbG9yIGFuZCBib3ggc2hhZG93XG4gICAgICAgICAgQGF0LXJvb3QgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRfaW5wdXQtYm9yZGVyQ29sb3ItLWZvY3VzZWQgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTZXRzIHRoZSBib3JkZXIgY29sb3Igd2hlbiBpbnZhbGlkXG4gICAgICAgICAgQGF0LXJvb3QgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHhwby1jb2xvci0tZXJyb3IgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJG5neC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJF9pbnB1dC1ib3JkZXJDb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRfZm9ybS1maWVsZC1ib3JkZXJSYWRpdXM7XG4gICAgICAgICAgICBwYWRkaW5nOiAkX3NlbGVjdElucHV0LXBhZGRpbmctLXZlcnRpY2FsICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuXG4gICAgICAgICAgICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1hdC1zZWxlY3QtdmFsdWUtdGV4dCB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTExMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAgICAgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5uZ3gtRm9ybUZpZWxkLS1pbmxpbmUgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgY29sb3I6ICRfaW5wdXQtcGxhY2Vob2xkZXJUZXh0Q29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTk1MDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkX2lucHV0LXBsYWNlaG9sZGVyVGV4dENvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkX2lucHV0LXBsYWNlaG9sZGVyVGV4dENvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyB0aGUgYXN0ZXJpc2sgdGhhdCBpcyBhZGRlZCBpZiBgcmVxdWlyZWRgIGlzIGFkZGVkIHRvIHRoZSBpbnB1dFxuICAgICAgICAubWF0LXBsYWNlaG9sZGVyLXJlcXVpcmVkIHtcbiAgICAgICAgICBjb2xvcjogJHhwby1jb2xvci0tZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWhpbnQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLW5vcm1hbDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXQtZXJyb3Ige1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTtcbiAgICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ub3JtYWw7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJHhwby1jb250ZW50U3BhY2luZyAvIDI7XG5cbiAgICAgICAgICAubWF0LWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBmb250LXNpemU6ICRfZm9ybUZpZWxkLWljb24tZm9udFNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHhwby1jb250ZW50U3BhY2luZyAvIDQ7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWF0LWZvcm0tZmllbGQtcHJlZml4IHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuM2VtO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gICAgICAgICAgaGVpZ2h0OiAkX2Zvcm0tZmllbGQtc3VmZml4LWxvYWRlci0tc2l6ZTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgcmlnaHQ6ICRfZm9ybS1maWVsZC1zdWZmaXgtcmlnaHQ7XG4gICAgICAgICAgd2lkdGg6ICRfZm9ybS1maWVsZC1zdWZmaXgtbG9hZGVyLS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQm9yZGVybGVzc1xuICAgICAgICAmLm5neC1Gb3JtRmllbGQtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJFTU9WQUxTXG4gICAgICAgIC8vIFJlbW92ZXMgdGhlIHVuZGVybGluZVxuICAgICAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIHJlbW92ZSB0aGUgZXh0cmEgd2lkdGggYW5kIHRoZSB0cmFuc2xhdGVYIGlubGluZSBzdHlsZXMsXG4gIC8vIGFkZGVkIGJ5IEFuZ3VsYXIgTWF0ZXJpYWwgdXNpbmcgdmFyaWFibGVzIFNFTEVDVF9QQU5FTF9QQURESU5HX1hcbiAgLy8gYW5kIFNFTEVDVF9NVUxUSVBMRV9QQU5FTF9QQURESU5HX1guXG4gIC8vIEFsdGhvdWdoIFNFTEVDVF9NVUxUSVBMRV9QQU5FTF9QQURESU5HX1ggaXMgcHVibGljIGFuZCByaWdodCBub3cgd2UgY291bGRcbiAgLy8gb3ZlcnJpZGUgaXQsIGl0J3MgbWFya2VkIGFzIGRlcHJlY2F0ZWQsIHNvIHdlIGFyZSBhcHBseWluZyB0aGlzIHNvbHV0aW9uIHRoYXRcbiAgLy8gd2lsbCBiZSB2YWxpZCB1cCB0byBBbmd1bGFyMTIuXG4gIC54cG8tU2VsZWN0LXBhbmVsLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIG1pbi13aWR0aDogY2FsYygxMDAlICsgMThweCkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC54cG8tU2VsZWN0LXBhbmVsTXVsdGlwbGUubWF0LXNlbGVjdC1wYW5lbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMxcHg7XG4gIH1cbn1cblxuQG1peGluIHhwby1zbGlkZS10b2dnbGUtdGhlbWUoJHRoZW1lKSB7XG4gICRfdGh1bWJTaXplOiAyMnB4O1xuXG4gIG1hdC1zbGlkZS10b2dnbGUubWF0LXNsaWRlLXRvZ2dsZSB7XG4gICAgJF9tYXRTbGlkZVRvZ2dsZS13aWR0aC1zbWFsbDogMzJweDtcbiAgICAkX21hdFNsaWRlVG9nZ2xlLWhlaWdodC1zbWFsbDogMTZweDtcbiAgICAkX21hdFNsaWRlVG9nZ2xlLXRodW1iLXNtYWxsOiAxNHB4O1xuICAgICRfbWF0U2xpZGVUb2dnbGUtdGh1bWI6IDIwcHg7XG4gICAgJF9tYXRTbGlkZVRvZ2dsZS1iYXItd2l0aDogMzhweDtcbiAgICAkX21hdFNsaWRlVG9nZ2xlLWJvcmRlci11bnNlbGVjdGVkLWRpc2FibGVkOiAjZTJlMmU0O1xuICAgICRfbWF0U2xpZGVUb2dnbGUtYm9yZGVyLWNoZWNrZWQtZGlzYWJsZWQ6ICNjN2RlYzY7XG4gICAgJF9tYXRTbGlkZVRvZ2dsZS1iYWNrZ3JvdW5kLWJhcjogI2NkZThjYztcblxuICAgICYubWF0LWRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IHVuc2V0O1xuICAgIH1cblxuICAgICYubWF0LWNoZWNrZWQge1xuICAgICAgb3BhY2l0eTogdW5zZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tlZC5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfbWF0U2xpZGVUb2dnbGUtYmFja2dyb3VuZC1iYXI7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkX21hdFNsaWRlVG9nZ2xlLWJvcmRlci1jaGVja2VkLWRpc2FibGVkO1xuICAgIH1cblxuICAgICYubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJF9tYXRTbGlkZVRvZ2dsZS1ib3JkZXItdW5zZWxlY3RlZC1kaXNhYmxlZDtcblxuICAgICAgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJF9tYXRTbGlkZVRvZ2dsZS1ib3JkZXItdW5zZWxlY3RlZC1kaXNhYmxlZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLWdyZWVuLS00NTA7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZWVuLS02MDA7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tODA7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZXktLTMwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICBoZWlnaHQ6ICRfdGh1bWJTaXplO1xuICAgICAgd2lkdGg6ICRfbWF0U2xpZGVUb2dnbGUtYmFyLXdpdGg7XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tlZC5tYXQtZGlzYWJsZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRfbWF0U2xpZGVUb2dnbGUtYm9yZGVyLWNoZWNrZWQtZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgJi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAmLm1hdC1kaXNhYmxlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeHBvLXdoaXRlO1xuICAgIH1cblxuICAgIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iLWNvbnRhaW5lciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwLjFweDtcblxuICAgICAgJi5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby13aGl0ZTtcbiAgICAgICAgaGVpZ2h0OiAkX3RodW1iU2l6ZTtcbiAgICAgICAgd2lkdGg6ICRfdGh1bWJTaXplO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8td2hpdGU7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHhwby1ncmV5LS0zMDA7XG4gICAgfVxuXG4gICAgJi54cG8tU2xpZGVUb2dnbGUtLXNtYWxsIHtcbiAgICAgICYubWF0LWNoZWNrZWQubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfbWF0U2xpZGVUb2dnbGUtYmFja2dyb3VuZC1iYXI7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRfbWF0U2xpZGVUb2dnbGUtYm9yZGVyLWNoZWNrZWQtZGlzYWJsZWQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWRpc2FibGVkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRfbWF0U2xpZGVUb2dnbGUtYm9yZGVyLXVuc2VsZWN0ZWQtZGlzYWJsZWQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHhwby1ncmVlbi0tNDUwO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkeHBvLWdyZWVuLS02MDA7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tODA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgIGhlaWdodDogJF9tYXRTbGlkZVRvZ2dsZS1oZWlnaHQtc21hbGw7XG4gICAgICAgIHdpZHRoOiAkX21hdFNsaWRlVG9nZ2xlLXdpZHRoLXNtYWxsO1xuICAgICAgfVxuXG4gICAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6ICRfbWF0U2xpZGVUb2dnbGUtdGh1bWItc21hbGw7XG4gICAgICAgIHdpZHRoOiAkX21hdFNsaWRlVG9nZ2xlLXRodW1iLXNtYWxsO1xuICAgICAgfVxuXG4gICAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICAgIGhlaWdodDogJF9tYXRTbGlkZVRvZ2dsZS10aHVtYi1zbWFsbDtcbiAgICAgICAgd2lkdGg6ICRfbWF0U2xpZGVUb2dnbGUtdGh1bWItc21hbGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtcmlwcGxlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vL1xuLy8gT3ZlcnJpZGVzIGZvciB0aGUgcmFkaW8gYnV0dG9uXG4vLy9cblxuQG1peGluIHhwby1yYWRpby10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LXJhZGlvLXRoZW1lKCR0aGVtZSk7XG5cbiAgbWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICAubWF0LXJhZGlvLWNvbnRhaW5lciB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG5cbiAgICAgIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyaztcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItd2lkdGg6ICRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDJweDtcbiAgICB9XG5cbiAgICAmLm1hdC1yYWRpby1jaGVja2VkIHtcbiAgICAgIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1saWdodDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNjI1KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1yYWRpby1kaXNhYmxlZCB7XG4gICAgICAubWF0LXJhZGlvLWxhYmVsIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4gICAgICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8vXG4gICAgLy8gUmVtb3ZhbHNcbiAgICAvLy9cbiAgICAubWF0LXJpcHBsZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4geHBvLWhlYWRlci10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAueHBvLUhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBhcHAtYmFyKTtcbiAgICBib3JkZXItYm90dG9tOiBpZigkaXMtZGFyay10aGVtZSwgMnB4LCAxcHgpIHNvbGlkIGlmKCRpcy1kYXJrLXRoZW1lLCB0cmFuc3BhcmVudCwgJHhwby1ncmV5LS0zMDApO1xuICB9XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlO1xufVxuXG4vLyBSZWd1bGFyIHRleHQgbWl4aW5zXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tc21hbGwoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLWxhcmdlO1xufVxuXG5cbi8qXG4qKiA9PT09IEJhc2ljIGNvbG9ycyA9PT09XG4qL1xuXG4vKlxuKiogPT09PSBYUE8gQnJhbmQgQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBYUE8gUmVkXG4keHBvLWJyYW5kLXJlZDogI2NjMDAwMDtcbiR4cG8tYnJhbmQtcmVkLS05MDA6ICR4cG8tYnJhbmQtcmVkO1xuJHhwby1icmFuZC1yZWQtLTgwMDogI2U0MjEwZTtcbiR4cG8tYnJhbmQtcmVkLS03MDA6ICNmMzJhMTM7XG4keHBvLWJyYW5kLXJlZC0tNjAwOiAjZmYzMzE3O1xuJHhwby1icmFuZC1yZWQtLTUwMDogI2ZmMzkxYztcbiR4cG8tYnJhbmQtcmVkLS00MDA6ICNmZjVlM2Q7XG4keHBvLWJyYW5kLXJlZC0tMzAwOiAjZmY3ZTYwO1xuJHhwby1icmFuZC1yZWQtLTIwMDogI2ZmYTQ4ZTtcbiR4cG8tYnJhbmQtcmVkLS0xMDA6ICNmZmM4YmE7XG4keHBvLWJyYW5kLXJlZC0tNTA6ICNmY2U4ZTY7XG5cbi8vIFhQTyBCbGFja1xuJHhwby1ibGFjazogIzAwMDAwMDtcbiR4cG8tYnJhbmQtYmxhY2stLTkwMDogJHhwby1ibGFjaztcbiR4cG8tYnJhbmQtYmxhY2stLTgwMDogIzI2MjYyNjtcbiR4cG8tYnJhbmQtYmxhY2stLTcwMDogIzU1NTU1NTtcbiR4cG8tYnJhbmQtYmxhY2stLTYwMDogIzdiN2I3YjtcbiR4cG8tYnJhbmQtYmxhY2stLTUwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTQwMDogIzlkOWQ5ZDtcbiR4cG8tYnJhbmQtYmxhY2stLTMwMDogI2M0YzRjNDtcbiR4cG8tYnJhbmQtYmxhY2stLTIwMDogI2Q5ZDlkOTtcbiR4cG8tYnJhbmQtYmxhY2stLTEwMDogI2U5ZTllOTtcbiR4cG8tYnJhbmQtYmxhY2stLTUwOiAjZjVmNWY1O1xuXG4vLyBYUE8gRGFyayBHcmV5XG4keHBvLWJyYW5kLWRhcmstZ3JleTogIzQxNGE0YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS05MDA6ICMyMjI4MmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tODAwOiAkeHBvLWJyYW5kLWRhcmstZ3JleTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS03MDA6ICM2MjY4NmM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNjAwOiAjNzU3ZDgxO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwMDogI2EwYTZhYTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS00MDA6ICNiZWM1Yzk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMzAwOiAjZTBlN2ViO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTIwMDogI2ViZjJmNjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0xMDA6ICNmMGY3ZmI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTA6ICNmNGZjZmY7XG5cbi8vIFhQTyBNZWRpdW0gR3JleVxuJHhwby1icmFuZC1tZWRpdW0tZ3JleTogIzg0ODQ4NDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTkwMDogIzJlMmUyZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTgwMDogIzUwNTA1MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTcwMDogIzcwNzA3MDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTYwMDogJHhwby1icmFuZC1tZWRpdW0tZ3JleTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwMDogI2FmYWZhZjtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTQwMDogI2NkY2RjZDtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTMwMDogI2VlZWVlZTtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDogI2YzZjNmMztcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTEwMDogI2Y4ZjhmODtcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwOiAjZmNmY2ZjO1xuXG4vLyBYUE8gTGlnaHQgR3JleVxuJHhwby1icmFuZC1saWdodC1ncmV5OiAjZGVkZWRlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS05MDA6ICMxZjFmMWY7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTgwMDogIzNmM2YzZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNzAwOiAjNWU1ZTVlO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS02MDA6ICM3MjcyNzI7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwMDogIzlhOWE5YTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNDAwOiAjYmFiYWJhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0zMDA6ICR4cG8tYnJhbmQtbGlnaHQtZ3JleTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMjAwOiAjZWNlY2VjO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0xMDA6ICNmNGY0ZjQ7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTUwOiAjZjlmOWY5O1xuXG4vKlxuKiogPT09PSBNYWluIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gQmxhY2sgYW5kIEdyZXlcbiR4cG8tZ3JleS0tOTc1OiAjMjEyMTIxO1xuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7XG4keHBvLWdyZXktLTkwMDogIzRhNGE0YTtcbiR4cG8tZ3JleS0tNzAwOiAjNmY2ZjZmO1xuJHhwby1ncmV5LS0zNTA6ICNiZGJkYmQ7XG4keHBvLWdyZXktLTMwMDogI2Q4ZDhkODtcbiR4cG8tZ3JleS0tODA6ICNmNmY2ZjY7XG4keHBvLWdyZXktLTI1OiAjZmFmYWZhO1xuXG4keHBvLXdoaXRlOiAjZmZmZmZmO1xuXG4vLyBMaW5rcywgQnV0dG9ucywgVGFic2V0IGFuZCBUYWJwaWxsc1xuJHhwby1ibHVlLS04NTA6ICMwZDQ3YTE7XG4keHBvLWJsdWUtLTgwMDogIzE5NzZkMjtcbiR4cG8tYmx1ZS0tMzUwOiAjMjE5NmYzO1xuXG4vLyBFcnJvciBTdGF0ZVxuJHhwby1yZWQtLTIwMDogI2I3MWMxYztcbiR4cG8tcmVkLS0xNTA6ICNkMzJmMmY7XG4keHBvLXJlZC0tNTA6ICNmY2VlZWI7XG5cbi8vIFN1Y2Nlc3MgU3RhdGVcbiR4cG8tZ3JlZW4tLTYwMDogIzM4OGUzYztcbiR4cG8tZ3JlZW4tLTQ1MDogIzRjYWY1MDtcbiR4cG8tZ3JlZW4tLTUwOiAjZjFmOWYxO1xuXG4vLyBXYXJuaW5nIFN0YXRlXG4keHBvLXllbGxvdy0tMzUwOiAjZmZkNjAwO1xuXG4keHBvLW9yYW5nZS0tMzUwOiAjZmY2ZDAwO1xuXG4vLyBJbmZvIFN0YXRlXG4keHBvLWJsdWUtLTcwMDogIzAwOTFlYTtcblxuLy8gVHJhbnNhY3Rpb25hbCBDZWxsc1xuJHhwby1ncmV5LS0xNTA6ICNlY2VmZjE7XG5cbiR4cG8tYmx1ZUdyZXktLTcwMDogI2NmZDhkYztcblxuLy8gQWNjZW50IENvbG9yc1xuJHhwby1waW5rLS03MDA6ICNjNTExNjI7XG5cbiR4cG8tdGVhbC0tNzAwOiAjMDBiZmE1O1xuXG4keHBvLWJsdWUtLTgyNTogIzMwNGZmZTtcbiR4cG8tYmx1ZS0tMjAwOiAjZTRlZmZhO1xuXG4keHBvLWFjY2VudC1yZWQtLTQwMDogJHhwby1icmFuZC1yZWQtLTQwMDtcbiR4cG8tYWNjZW50LXJlZC0tMTAwOiAkeHBvLWJyYW5kLXJlZC0tMTAwO1xuXG4keHBvLXB1cnBsZS0tNzAwOiAjNjIwMGVhO1xuXG4keHBvLWdyZWVuLS0yMDA6ICNhNGU1OWI7XG5cbiR4cG8teWVsbG93LS0yMDA6ICNmZmY5YzQ7XG5cbi8qXG4qKiA9PT09IERFUFJFQ0FURUQgQ09MT1JTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTAwOiAjZThmNWZlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xNTA6ICNlM2YyZmQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTMwMDogIzBkOTRmNDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tNDAwOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS05MDA6ICMwNTNjNjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMTAwOiAjZmZmOGU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTMwMDogI2ZmY2Y0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS00MDA6ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNzAwOiAjZmZkNjAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTkwMDogIzRkMzgwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTEwMDogI2M4ZmZkZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTMwMDogIzFjZTg1NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTM1MDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTQwMDogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTcwMDogIzAwYzg1Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JlZW4tLTkwMDogIzBhNjEyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNTA6ICNmYmZiZmI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwOiAjZmFmYWZhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDA6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTIwMDogI2U2ZTZlNjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjUwOiAjZGRkZGRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS00MDA6ICM5YjliOWI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTYwMDogIzc1NzU3NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjUwOiAjODU4NTg1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS03NTA6ICM1NzU3NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkxNTogIzQzNDk0ZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTMwOiAjNDI0MjQyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMDAwOiAjMTcxNzE3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0xMTAwOiAjMjEyMTIxO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTEwMDogI2ZmZWVlZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0yNTA6ICNkZDJjMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMzAwOiAjZmYyMjIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTQwMDogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS02MDA6ICNjYzAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNzAwOiAjZDMyZjJmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTkwMDogIzU1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0xMDA6ICNmZmRmY2E7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMzAwOiAjZmY5OTU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTQwMDogI2ZmNjQwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS05MDA6ICM4YjM3MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWZvbnRDb2xvci0tbGluazogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5OiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tZXJyb3I6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1zdWNjZXNzOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0td2FybjogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWluZm86ICM0YTRhNGE7XG5cbi8qXG4qKiA9PT09IENPTE9SUyBBUFBMSUVEID09PT1cbiovXG4keHBvLWZvbnRDb2xvci0tcHJpbWFyeTogJHhwby1ncmV5LS05MDA7XG5cbi8qXG4qKiA9PT09IFR5cG9ncmFwaHkgPT09PVxuKi9cbi8vIFB1dHRpbmcgc2l6ZXMgaW4gbWFwcyB0byBhbGxvdyBkeW5hbWljIHNpemluZyBmb3IgZXh0ZXJuYWxcbi8vIFJvb3QgZm9udC1zaXplKHMpIGFsd2F5cyBpbiBweFxuJHhwby1mb250U2l6ZS0tcm9vdDogMTRweDtcbiR4cG8tZm9udFNpemUtLXNtYWxsOiAwLjg3NXJlbTsgLy8xMnB4XG4keHBvLWZvbnRTaXplLS1tZWRpdW06IDFyZW07IC8vMTRweFxuJHhwby1mb250U2l6ZS0tbGFyZ2U6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8tZm9udFNpemUtLWV4dHJhTGFyZ2U6IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8tZm9udFNpemUtLXh4bGFyZ2U6IDEuNzE0cmVtOyAvLzI0cHhcblxuJHhwby1oZWFkZXItZm9udFNpemUtLXhzbWFsbDogMXJlbTsgLy8xNHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw6IDEuMTQzcmVtOyAvLzE2cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW06IDEuMjg1cmVtOyAvLzE4cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTogMS40MjhyZW07IC8vMjBweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXhsYXJnZTogMS41NzFyZW07IC8vMjJweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXh4bGFyZ2U6IDEuODU3cmVtOyAvLzI2cHhcblxuJHhwby1mb250RmFtaWx5LS1wcmltYXJ5OiAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4keHBvLWZvbnRGYW1pbHktLXJvYm90b1dpZGVCbGFjazogJ1JvYm90byBXaWRlIEJsYWNrJywgJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4keHBvLWZvbnRXZWlnaHQtLWxpZ2h0OiAzMDA7XG4keHBvLWZvbnRXZWlnaHQtLW5vcm1hbDogNDAwO1xuJHhwby1mb250V2VpZ2h0LS1tZWRpdW06IDUwMDsgLy8gREVQUkVDQVRFRCB8IGRvIG5vdCBkZWxldGUgc2luY2UgaXQgaXMgc3RpbGwgYmVpbmcgdXNlZCBpbiBzb21lIHByb2plY3RzXG4keHBvLWZvbnRXZWlnaHQtLWJvbGQ6IDUwMDtcbiR4cG8tZm9udFdlaWdodC0tZXh0cmFCb2xkOiA2MDA7XG4keHBvLWZvbnRXZWlnaHQtLWJvbGRlcjogNzAwO1xuXG4keHBvLWxpbmVIZWlnaHQtLXhsOiAyLjI4NnJlbTsgLy8gMzJweFxuJHhwby1saW5lSGVpZ2h0LS1sZzogMS43MTRyZW07IC8vIDI0cHhcbiR4cG8tbGluZUhlaWdodC0tbWQ6IDEuNTcxcmVtOyAvLyAyMnB4XG4keHBvLWxpbmVIZWlnaHQtLXNtOiAxLjQyOXJlbTsgLy8gMjBweFxuXG4keHBvLWxpbmVIZWlnaHQtLWJhc2U6IDI0cHg7IC8vIGZvciBtZWRpdW0gYW5kIGxhcmdlIGZvbnQgc2l6ZVxuJHhwby1saW5lSGVpZ2h0LS1tZWRpdW06IDE4cHg7IC8vIGZvciBtZWRpdW0gZm9udCBzaXplc1xuJHhwby1saW5lSGVpZ2h0LS1zbWFsbDogMTZweDsgLy8gZm9yIHNtYWxsIGZvbnQgc2l6ZVxuXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1zbWFsbDogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLW1lZGl1bTogMS4xNDM7IC8vIERFUFJFQ0FURURcbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLWxhcmdlOiAxLjI4NjsgLy8gREVQUkVDQVRFRFxuXG4keHBvLWxldHRlclNwYWNpbmctLWJhc2U6IDAuMnB4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tc21hbGw6IDAuM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtOiAwLjMzcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1sYXJnZTogMC4zOHB4O1xuXG4vLyA9PT09IExheW91dCA9PT09XG4keHBvLWNvbnRlbnRTcGFjaW5nOiAxNnB4O1xuXG4vLyBCcmVha3BvaW50c1xuJHhwby1icmVha3BvaW50LS1zbWFsbC14czogNDgwcHg7XG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsOiA2MDBweDtcbiR4cG8tYnJlYWtwb2ludC0tbWVkaXVtOiA3NjhweDtcbiR4cG8tYnJlYWtwb2ludC0tbGFyZ2U6IDEwMjVweDtcbiR4cG8tYnJlYWtwb2ludC0teExhcmdlOiAxNDQwcHg7XG5cbiR4cG8tc2VsZWN0LWJhY2tncm91bmRDb2xvci1vcHRpb25PbkhvdmVyOiAkeHBvLWJsdWUtLTIwMDtcblxuLy8gLS0gTkdYLVVJIFNwZWNpZmljIC0tXG4kbmd4LWZvb3Rlci1oZWlnaHQ6IDQycHg7XG4kbmd4LXRhYi1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuJG5neC10YWJsZS1yb3ctaGVpZ2h0OiAzMHB4O1xuXG4kbmd4LWljb24tc2l6ZTogMjRweDsgLy8gVE9ETzogRGVwcmVjYXRlIHRoaXMgdmFyaWFibGVcbiR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDogMjBweDtcbiR4cG8taWNvbi1zaXplLS1zbWFsbDogMThweDtcbiR4cG8taWNvbi1zaXplLS1sYXJnZTogMjRweDtcblxuJG5neC10aGVCbGFja1JvYm90bzogOTAwO1xuXG4keHBvLWlucHV0LWhlaWdodC0tZGVmYXVsdDogMzBweDtcbiR4cG8taW5wdXQtaGVpZ2h0LS10d29MaW5lczogNDVweDtcblxuJG5neC1pbnB1dC1ib3JkZXItd2lkdGg6IDFweDtcblxuJG5neC1pbnB1dC1jb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1kYXJrOiAkeHBvLWJsYWNrO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tbGlnaHQ6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWJvcmRlcjogJHhwby1ncmV5LS0zMDA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1kYXJrOiAkeHBvLWdyZXktLTM1MDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZS0tbGlnaHRlcjogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWxpZ2h0OiAkeHBvLWdyZXktLTgwO1xuXG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0OiAzNnB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tc21hbGw6IDI4cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1sYXJnZTogNDZweDtcbiRuZ3gtYnV0dG9uLWFuaW1hdGlvbkR1cmF0aW9uOiAyMDBtcztcblxuJG5neC1oZWFkZXItaGVpZ2h0OiA0MHB4O1xuLy8gRm9yIHVzZSB3aGVuIGEgaG92ZXIgaXMgbmVlZGVkIG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiRuZ3gtd2hpdGVBZmZvcmRhbmNlLW9uSG92ZXItY29sb3I6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvcjogJHhwby13aGl0ZTtcblxuLypcbioqID09PT0gU05BQ0tCQVIgREVQUkVDQVRFRCBWQVJJQUJMRVMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTQ1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWVycm9yOiAkeHBvLXJlZC0tMTUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0taW5mbzogIzAyODhkMTtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLXdhcm46ICNmYmMwMmQ7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tc3VjY2VzczogJHhwby1ncmVlbi0tNjAwO1xuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1lcnJvcjogJHhwby1yZWQtLTIwMDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1pbmZvOiAjMDE1NzliO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrQmFyLW1hcmdpblRvcDogMzJweDtcblxuLy9CYWRnZVxuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1uZWdhdGl2ZTogJHhwby1yZWQtLTUwO1xuJF9tYXRCYWRnZUNvbnRlbnQtY29sb3ItLW5lZ2F0aXZlOiAjZGQyYzAwO1xuJF9tYXRCYWRnZUNvbnRlbnQtYmFja2dyb3VuZENvbG9yLS1wb3NpdGl2ZTogJHhwby1ncmVlbi0tNTA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA7XG4vLyBVc2VkIGFzIGEgc3BhY2VyIGZvciBmbGV4ZWQgY2hpbGRyZW5cbi8vIFRPRE86IE1vdmUgYWxsIGluc3RhbmNlcyB0byB0aGUgdXRpbGl0aWVzIGRlZmluaXRpb25cbi5mbGV4LS1zdHJldGNoIHtcbiAgZmxleDogMTtcbn1cblxuLy8gLS0tIERpYWxvZyAtLS1cbiRuZ3gtZGlhbG9nLWhlYWRlci1oZWlnaHQ6IDQ4cHg7XG4kbmd4LWRpYWxvZy1mb290ZXItaGVpZ2h0OiA2NHB4O1xuXG4vLyAtLS0gVHJhbnNpdGlvbnMgLS0tXG4keHBvLXRyYW5zaXRpb24tMjAwOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG5cbi8vIC0tLSBDb250ZXh0dWFsIEhlYWRlciAtLS1cbiRuZ3gtQ29udGV4dHVhbEhlYWRlci1zZXBhcmF0b3ItLWNvbG9yOiAkeHBvLWdyZXktLTM1MDtcblxuXG4ueHBvLUZvb3RlciB7XG4gICRfZm9vdGVyTGluay1tYXJnaW46IDAgMTJweDtcblxuICB3aWR0aDogMTAwJTtcblxuICAmLW5hdmJhciB7XG4gICAgJiA+IDpudGgtY2hpbGQobikge1xuICAgICAgbWFyZ2luOiAkX2Zvb3RlckxpbmstbWFyZ2luO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi1ib2xkLXRleHQge1xuICAgIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGRlcjtcbiAgfVxuICAvLyBUT0RPOiBkZWZpbmUgaGVyZSBzdHlsZXMgZm9yIHN0aWNreSB3aGVuIGZvb3RlciBjb21wb25lbnQgaXMgZGVmaW5lZCB0byBiZSBwYXJ0IG9mIHRoZSBzaGVsbCBjb21wb25lbnRcbiAgJi0tc3RpY2t5IHtcbiAgICBib3R0b206IDA7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgfVxufVxuXG5AbWl4aW4geHBvLXNwZWNpYWwtc3RhdHVzLWluZGljYXRvcnMtdGhlbWUoJHRoZW1lKSB7XG4gIC54cG8tU3NpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxuICAgIC54cG8tSWNvbiB7XG4gICAgICB3aWR0aDogYXV0bztcblxuICAgICAgLm1hdC1pY29uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4geHBvLXRhYi1kcmF3ZXItdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLy8gVE9ET1xuICAvLyAueHBvLVRhYkRyYXdlciB7XG5cbiAgLy8gICAmLW5hdixcbiAgLy8gICAmLWJ1dHRvbiAge1xuICAvLyAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgLy8gICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIC8vICAgfVxuICAvLyB9XG59XG5cbkBtaXhpbiB4cG8tdHJheS10aGVtZSgkdGhlbWUpIHtcbiAgLm1hdC1kcmF3ZXIueHBvLVRyYXlEcmF3ZXIge1xuICAgICRfdHJheURyYXdlci0tbWluV2lkdGg6IDUwMHB4O1xuICAgICRfdHJheURyYXdlci0tbWF4V2lkdGg6IDEwJTtcbiAgICAkX3RyYXlEcmF3ZXItLW1heFdpZHRoRXh0ZW5kZWQ6IDkwJTtcbiAgICAkX3RyYXlEcmF3ZXItc2hhZG93LS12T2Zmc2V0OiAzcHg7XG4gICAgJF90cmF5RHJhd2VyLXNoYWRvdy0tYmx1cjogOXB4O1xuICAgICRfdHJheURyYXdlci1zaGFkb3ctLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuXG4gICAgbWF4LXdpZHRoOiAkX3RyYXlEcmF3ZXItLW1heFdpZHRoO1xuICAgIG1pbi13aWR0aDogJF90cmF5RHJhd2VyLS1taW5XaWR0aDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAkX3RyYXlEcmF3ZXItLW1heFdpZHRoO1xuXG4gICAgJi54cG8tVHJheURyYXdlci0tZXh0ZW5kZWQge1xuICAgICAgbWF4LXdpZHRoOiAkX3RyYXlEcmF3ZXItLW1heFdpZHRoRXh0ZW5kZWQ7XG4gICAgICB3aWR0aDogJF90cmF5RHJhd2VyLS1tYXhXaWR0aEV4dGVuZGVkO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtZHJhd2VyLXNpZGUpLFxuICAgICYubWF0LWRyYXdlci1zaWRlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR4cG8tZ3JleS0tMzAwO1xuICAgICAgYm94LXNoYWRvdzogMCAkX3RyYXlEcmF3ZXItc2hhZG93LS12T2Zmc2V0ICRfdHJheURyYXdlci1zaGFkb3ctLWJsdXIgMCAkX3RyYXlEcmF3ZXItc2hhZG93LS1jb2xvcjtcbiAgICB9XG5cbiAgICAubWF0LWRyYXdlci1pbm5lci1jb250YWluZXIge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtaGVhZGVyLS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbWVkaXVtO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLWxhcmdlKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1sYXJnZTtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U7XG59XG5cbi8vIFJlZ3VsYXIgdGV4dCBtaXhpbnNcbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1zbWFsbCgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1tZWRpdW0oKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbWVkaXVtO1xufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tbGFyZ2U7XG59XG5cblxuLypcbioqID09PT0gQmFzaWMgY29sb3JzID09PT1cbiovXG5cbi8qXG4qKiA9PT09IFhQTyBCcmFuZCBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIFhQTyBSZWRcbiR4cG8tYnJhbmQtcmVkOiAjY2MwMDAwO1xuJHhwby1icmFuZC1yZWQtLTkwMDogJHhwby1icmFuZC1yZWQ7XG4keHBvLWJyYW5kLXJlZC0tODAwOiAjZTQyMTBlO1xuJHhwby1icmFuZC1yZWQtLTcwMDogI2YzMmExMztcbiR4cG8tYnJhbmQtcmVkLS02MDA6ICNmZjMzMTc7XG4keHBvLWJyYW5kLXJlZC0tNTAwOiAjZmYzOTFjO1xuJHhwby1icmFuZC1yZWQtLTQwMDogI2ZmNWUzZDtcbiR4cG8tYnJhbmQtcmVkLS0zMDA6ICNmZjdlNjA7XG4keHBvLWJyYW5kLXJlZC0tMjAwOiAjZmZhNDhlO1xuJHhwby1icmFuZC1yZWQtLTEwMDogI2ZmYzhiYTtcbiR4cG8tYnJhbmQtcmVkLS01MDogI2ZjZThlNjtcblxuLy8gWFBPIEJsYWNrXG4keHBvLWJsYWNrOiAjMDAwMDAwO1xuJHhwby1icmFuZC1ibGFjay0tOTAwOiAkeHBvLWJsYWNrO1xuJHhwby1icmFuZC1ibGFjay0tODAwOiAjMjYyNjI2O1xuJHhwby1icmFuZC1ibGFjay0tNzAwOiAjNTU1NTU1O1xuJHhwby1icmFuZC1ibGFjay0tNjAwOiAjN2I3YjdiO1xuJHhwby1icmFuZC1ibGFjay0tNTAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tNDAwOiAjOWQ5ZDlkO1xuJHhwby1icmFuZC1ibGFjay0tMzAwOiAjYzRjNGM0O1xuJHhwby1icmFuZC1ibGFjay0tMjAwOiAjZDlkOWQ5O1xuJHhwby1icmFuZC1ibGFjay0tMTAwOiAjZTllOWU5O1xuJHhwby1icmFuZC1ibGFjay0tNTA6ICNmNWY1ZjU7XG5cbi8vIFhQTyBEYXJrIEdyZXlcbiR4cG8tYnJhbmQtZGFyay1ncmV5OiAjNDE0YTRjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTkwMDogIzIyMjgyYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS04MDA6ICR4cG8tYnJhbmQtZGFyay1ncmV5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTcwMDogIzYyNjg2YztcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS02MDA6ICM3NTdkODE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNTAwOiAjYTBhNmFhO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTQwMDogI2JlYzVjOTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0zMDA6ICNlMGU3ZWI7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMjAwOiAjZWJmMmY2O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTEwMDogI2YwZjdmYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDogI2Y0ZmNmZjtcblxuLy8gWFBPIE1lZGl1bSBHcmV5XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5OiAjODQ4NDg0O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tOTAwOiAjMmUyZTJlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tODAwOiAjNTA1MDUwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNzAwOiAjNzA3MDcwO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNjAwOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTAwOiAjYWZhZmFmO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNDAwOiAjY2RjZGNkO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMzAwOiAjZWVlZWVlO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwOiAjZjNmM2YzO1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMTAwOiAjZjhmOGY4O1xuJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tNTA6ICNmY2ZjZmM7XG5cbi8vIFhQTyBMaWdodCBHcmV5XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXk6ICNkZWRlZGU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTkwMDogIzFmMWYxZjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tODAwOiAjM2YzZjNmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS03MDA6ICM1ZTVlNWU7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTYwMDogIzcyNzI3MjtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTAwOiAjOWE5YTlhO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS00MDA6ICNiYWJhYmE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTMwMDogJHhwby1icmFuZC1saWdodC1ncmV5O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS0yMDA6ICNlY2VjZWM7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTEwMDogI2Y0ZjRmNDtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNTA6ICNmOWY5Zjk7XG5cbi8qXG4qKiA9PT09IE1haW4gQ29sb3IgUGFsZXR0ZSA9PT09XG4qL1xuXG4vLyBCbGFjayBhbmQgR3JleVxuJHhwby1ncmV5LS05NzU6ICMyMTIxMjE7XG4keHBvLWdyZXktLTk1MDogIzMzMzMzMztcbiR4cG8tZ3JleS0tOTAwOiAjNGE0YTRhO1xuJHhwby1ncmV5LS03MDA6ICM2ZjZmNmY7XG4keHBvLWdyZXktLTM1MDogI2JkYmRiZDtcbiR4cG8tZ3JleS0tMzAwOiAjZDhkOGQ4O1xuJHhwby1ncmV5LS04MDogI2Y2ZjZmNjtcbiR4cG8tZ3JleS0tMjU6ICNmYWZhZmE7XG5cbiR4cG8td2hpdGU6ICNmZmZmZmY7XG5cbi8vIExpbmtzLCBCdXR0b25zLCBUYWJzZXQgYW5kIFRhYnBpbGxzXG4keHBvLWJsdWUtLTg1MDogIzBkNDdhMTtcbiR4cG8tYmx1ZS0tODAwOiAjMTk3NmQyO1xuJHhwby1ibHVlLS0zNTA6ICMyMTk2ZjM7XG5cbi8vIEVycm9yIFN0YXRlXG4keHBvLXJlZC0tMjAwOiAjYjcxYzFjO1xuJHhwby1yZWQtLTE1MDogI2QzMmYyZjtcbiR4cG8tcmVkLS01MDogI2ZjZWVlYjtcblxuLy8gU3VjY2VzcyBTdGF0ZVxuJHhwby1ncmVlbi0tNjAwOiAjMzg4ZTNjO1xuJHhwby1ncmVlbi0tNDUwOiAjNGNhZjUwO1xuJHhwby1ncmVlbi0tNTA6ICNmMWY5ZjE7XG5cbi8vIFdhcm5pbmcgU3RhdGVcbiR4cG8teWVsbG93LS0zNTA6ICNmZmQ2MDA7XG5cbiR4cG8tb3JhbmdlLS0zNTA6ICNmZjZkMDA7XG5cbi8vIEluZm8gU3RhdGVcbiR4cG8tYmx1ZS0tNzAwOiAjMDA5MWVhO1xuXG4vLyBUcmFuc2FjdGlvbmFsIENlbGxzXG4keHBvLWdyZXktLTE1MDogI2VjZWZmMTtcblxuJHhwby1ibHVlR3JleS0tNzAwOiAjY2ZkOGRjO1xuXG4vLyBBY2NlbnQgQ29sb3JzXG4keHBvLXBpbmstLTcwMDogI2M1MTE2MjtcblxuJHhwby10ZWFsLS03MDA6ICMwMGJmYTU7XG5cbiR4cG8tYmx1ZS0tODI1OiAjMzA0ZmZlO1xuJHhwby1ibHVlLS0yMDA6ICNlNGVmZmE7XG5cbiR4cG8tYWNjZW50LXJlZC0tNDAwOiAkeHBvLWJyYW5kLXJlZC0tNDAwO1xuJHhwby1hY2NlbnQtcmVkLS0xMDA6ICR4cG8tYnJhbmQtcmVkLS0xMDA7XG5cbiR4cG8tcHVycGxlLS03MDA6ICM2MjAwZWE7XG5cbiR4cG8tZ3JlZW4tLTIwMDogI2E0ZTU5YjtcblxuJHhwby15ZWxsb3ctLTIwMDogI2ZmZjljNDtcblxuLypcbioqID09PT0gREVQUkVDQVRFRCBDT0xPUlMgPT09PVxuKi9cblxuLypcbioqIFdBUk5JTkc6IFRISVMgVkFSSUFCTEVTIFdJTEwgQkUgUkVNT1ZFRCBTT09OXG4qL1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0xMDA6ICNlOGY1ZmU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTE1MDogI2UzZjJmZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMzAwOiAjMGQ5NGY0O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS00MDA6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTkwMDogIzA1M2M2Mztcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0xMDA6ICNmZmY4ZTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tMzAwOiAjZmZjZjRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTQwMDogI2ZmYmEwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS03MDA6ICNmZmQ2MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tOTAwOiAjNGQzODAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMTAwOiAjYzhmZmRmO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzAwOiAjMWNlODU1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tMzUwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNDAwOiAjMTFhNjNiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tNzAwOiAjMDBjODUzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmVlbi0tOTAwOiAjMGE2MTIyO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS01MDogI2ZiZmJmYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjA6ICNmYWZhZmE7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMjAwOiAjZTZlNmU2O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yNTA6ICNkZGRkZGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTQwMDogIzliOWI5Yjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNjAwOiAjNzU3NTc1O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02NTA6ICM4NTg1ODU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTc1MDogIzU3NTc1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tOTE1OiAjNDM0OTRkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MzA6ICM0MjQyNDI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTEwMDA6ICMxNzE3MTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTExMDA6ICMyMTIxMjE7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMTAwOiAjZmZlZWVlO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTI1MDogI2RkMmMwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0zMDA6ICNmZjIyMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNDAwOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTYwMDogI2NjMDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS03MDA6ICNkMzJmMmY7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tOTAwOiAjNTUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTEwMDogI2ZmZGZjYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS0zMDA6ICNmZjk5NTc7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tNDAwOiAjZmY2NDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTkwMDogIzhiMzcwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZm9udENvbG9yLS1saW5rOiAjMDg2OGFjO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1iYWNrZ3JvdW5kQ29sb3ItLWJvZHk6ICNmM2YzZjM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1lcnJvcjogI2Q1MDAwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXN1Y2Nlc3M6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS13YXJuOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0taW5mbzogIzRhNGE0YTtcblxuLypcbioqID09PT0gQ09MT1JTIEFQUExJRUQgPT09PVxuKi9cbiR4cG8tZm9udENvbG9yLS1wcmltYXJ5OiAkeHBvLWdyZXktLTkwMDtcblxuLypcbioqID09PT0gVHlwb2dyYXBoeSA9PT09XG4qL1xuLy8gUHV0dGluZyBzaXplcyBpbiBtYXBzIHRvIGFsbG93IGR5bmFtaWMgc2l6aW5nIGZvciBleHRlcm5hbFxuLy8gUm9vdCBmb250LXNpemUocykgYWx3YXlzIGluIHB4XG4keHBvLWZvbnRTaXplLS1yb290OiAxNHB4O1xuJHhwby1mb250U2l6ZS0tc21hbGw6IDAuODc1cmVtOyAvLzEycHhcbiR4cG8tZm9udFNpemUtLW1lZGl1bTogMXJlbTsgLy8xNHB4XG4keHBvLWZvbnRTaXplLS1sYXJnZTogMS4xNDNyZW07IC8vMTZweFxuJHhwby1mb250U2l6ZS0tZXh0cmFMYXJnZTogMS4yODVyZW07IC8vMThweFxuJHhwby1mb250U2l6ZS0teHhsYXJnZTogMS43MTRyZW07IC8vMjRweFxuXG4keHBvLWhlYWRlci1mb250U2l6ZS0teHNtYWxsOiAxcmVtOyAvLzE0cHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDogMS4xNDNyZW07IC8vMTZweFxuJHhwby1oZWFkZXItZm9udFNpemUtLW1lZGl1bTogMS4yODVyZW07IC8vMThweFxuJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlOiAxLjQyOHJlbTsgLy8yMHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teGxhcmdlOiAxLjU3MXJlbTsgLy8yMnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0teHhsYXJnZTogMS44NTdyZW07IC8vMjZweFxuXG4keHBvLWZvbnRGYW1pbHktLXByaW1hcnk6ICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiR4cG8tZm9udEZhbWlseS0tcm9ib3RvV2lkZUJsYWNrOiAnUm9ib3RvIFdpZGUgQmxhY2snLCAnUm9ib3RvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiR4cG8tZm9udFdlaWdodC0tbGlnaHQ6IDMwMDtcbiR4cG8tZm9udFdlaWdodC0tbm9ybWFsOiA0MDA7XG4keHBvLWZvbnRXZWlnaHQtLW1lZGl1bTogNTAwOyAvLyBERVBSRUNBVEVEIHwgZG8gbm90IGRlbGV0ZSBzaW5jZSBpdCBpcyBzdGlsbCBiZWluZyB1c2VkIGluIHNvbWUgcHJvamVjdHNcbiR4cG8tZm9udFdlaWdodC0tYm9sZDogNTAwO1xuJHhwby1mb250V2VpZ2h0LS1leHRyYUJvbGQ6IDYwMDtcbiR4cG8tZm9udFdlaWdodC0tYm9sZGVyOiA3MDA7XG5cbiR4cG8tbGluZUhlaWdodC0teGw6IDIuMjg2cmVtOyAvLyAzMnB4XG4keHBvLWxpbmVIZWlnaHQtLWxnOiAxLjcxNHJlbTsgLy8gMjRweFxuJHhwby1saW5lSGVpZ2h0LS1tZDogMS41NzFyZW07IC8vIDIycHhcbiR4cG8tbGluZUhlaWdodC0tc206IDEuNDI5cmVtOyAvLyAyMHB4XG5cbiR4cG8tbGluZUhlaWdodC0tYmFzZTogMjRweDsgLy8gZm9yIG1lZGl1bSBhbmQgbGFyZ2UgZm9udCBzaXplXG4keHBvLWxpbmVIZWlnaHQtLW1lZGl1bTogMThweDsgLy8gZm9yIG1lZGl1bSBmb250IHNpemVzXG4keHBvLWxpbmVIZWlnaHQtLXNtYWxsOiAxNnB4OyAvLyBmb3Igc21hbGwgZm9udCBzaXplXG5cbiR4cG8taGVhZGVyLWxpbmVIZWlnaHQtLXNtYWxsOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbWVkaXVtOiAxLjE0MzsgLy8gREVQUkVDQVRFRFxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tbGFyZ2U6IDEuMjg2OyAvLyBERVBSRUNBVEVEXG5cbiR4cG8tbGV0dGVyU3BhY2luZy0tYmFzZTogMC4ycHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1zbWFsbDogMC4zcHg7XG4keHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW06IDAuMzNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLWxhcmdlOiAwLjM4cHg7XG5cbi8vID09PT0gTGF5b3V0ID09PT1cbiR4cG8tY29udGVudFNwYWNpbmc6IDE2cHg7XG5cbi8vIEJyZWFrcG9pbnRzXG4keHBvLWJyZWFrcG9pbnQtLXNtYWxsLXhzOiA0ODBweDtcbiR4cG8tYnJlYWtwb2ludC0tc21hbGw6IDYwMHB4O1xuJHhwby1icmVha3BvaW50LS1tZWRpdW06IDc2OHB4O1xuJHhwby1icmVha3BvaW50LS1sYXJnZTogMTAyNXB4O1xuJHhwby1icmVha3BvaW50LS14TGFyZ2U6IDE0NDBweDtcblxuJHhwby1zZWxlY3QtYmFja2dyb3VuZENvbG9yLW9wdGlvbk9uSG92ZXI6ICR4cG8tYmx1ZS0tMjAwO1xuXG4vLyAtLSBOR1gtVUkgU3BlY2lmaWMgLS1cbiRuZ3gtZm9vdGVyLWhlaWdodDogNDJweDtcbiRuZ3gtdGFiLWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4kbmd4LXRhYmxlLXJvdy1oZWlnaHQ6IDMwcHg7XG5cbiRuZ3gtaWNvbi1zaXplOiAyNHB4OyAvLyBUT0RPOiBEZXByZWNhdGUgdGhpcyB2YXJpYWJsZVxuJHhwby1pY29uLXNpemUtLXN0YW5kYXJkOiAyMHB4O1xuJHhwby1pY29uLXNpemUtLXNtYWxsOiAxOHB4O1xuJHhwby1pY29uLXNpemUtLWxhcmdlOiAyNHB4O1xuXG4kbmd4LXRoZUJsYWNrUm9ib3RvOiA5MDA7XG5cbiR4cG8taW5wdXQtaGVpZ2h0LS1kZWZhdWx0OiAzMHB4O1xuJHhwby1pbnB1dC1oZWlnaHQtLXR3b0xpbmVzOiA0NXB4O1xuXG4kbmd4LWlucHV0LWJvcmRlci13aWR0aDogMXB4O1xuXG4kbmd4LWlucHV0LWNvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTIwMDtcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWRhcms6ICR4cG8tYmxhY2s7XG4kbmd4LWlucHV0LWNvbG9yLW9uQWN0aXZlLS1saWdodDogJHhwby13aGl0ZTtcbiRuZ3gtaW5wdXQtY29sb3ItYm9yZGVyOiAkeHBvLWdyZXktLTMwMDtcbiRuZ3gtaW5wdXQtY29sb3ItZGlzYWJsZWQtLWRhcms6ICR4cG8tZ3JleS0tMzUwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlLS1saWdodGVyOiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tbGlnaHQ6ICR4cG8tZ3JleS0tODA7XG5cbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQ6IDM2cHg7XG4kbmd4LWJ1dHRvbi1saW5lSGVpZ2h0LS1zbWFsbDogMjhweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLWxhcmdlOiA0NnB4O1xuJG5neC1idXR0b24tYW5pbWF0aW9uRHVyYXRpb246IDIwMG1zO1xuXG4kbmd4LWhlYWRlci1oZWlnaHQ6IDQwcHg7XG4vLyBGb3IgdXNlIHdoZW4gYSBob3ZlciBpcyBuZWVkZWQgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kLlxuJG5neC13aGl0ZUFmZm9yZGFuY2Utb25Ib3Zlci1jb2xvcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yOiAkeHBvLXdoaXRlO1xuXG4vKlxuKiogPT09PSBTTkFDS0JBUiBERVBSRUNBVEVEIFZBUklBQkxFUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tc3VjY2VzczogJHhwby1ncmVlbi0tNDUwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0tZXJyb3I6ICR4cG8tcmVkLS0xNTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1pbmZvOiAjMDI4OGQxO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLXN0YXR1cy0td2FybjogI2ZiYzAyZDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1kaXNtaXNzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS02MDA7XG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWVycm9yOiAkeHBvLXJlZC0tMjAwO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLWluZm86ICMwMTU3OWI7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tCYXItbWFyZ2luVG9wOiAzMnB4O1xuXG4vL0JhZGdlXG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLW5lZ2F0aXZlOiAkeHBvLXJlZC0tNTA7XG4kX21hdEJhZGdlQ29udGVudC1jb2xvci0tbmVnYXRpdmU6ICNkZDJjMDA7XG4kX21hdEJhZGdlQ29udGVudC1iYWNrZ3JvdW5kQ29sb3ItLXBvc2l0aXZlOiAkeHBvLWdyZWVuLS01MDtcblxuJG5neC1tZW51LWJhY2tncm91bmRDb2xvci1vbkhvdmVyOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDtcbi8vIFVzZWQgYXMgYSBzcGFjZXIgZm9yIGZsZXhlZCBjaGlsZHJlblxuLy8gVE9ETzogTW92ZSBhbGwgaW5zdGFuY2VzIHRvIHRoZSB1dGlsaXRpZXMgZGVmaW5pdGlvblxuLmZsZXgtLXN0cmV0Y2gge1xuICBmbGV4OiAxO1xufVxuXG4vLyAtLS0gRGlhbG9nIC0tLVxuJG5neC1kaWFsb2ctaGVhZGVyLWhlaWdodDogNDhweDtcbiRuZ3gtZGlhbG9nLWZvb3Rlci1oZWlnaHQ6IDY0cHg7XG5cbi8vIC0tLSBUcmFuc2l0aW9ucyAtLS1cbiR4cG8tdHJhbnNpdGlvbi0yMDA6IGFsbCAyMDBtcyBlYXNlLW91dDtcblxuLy8gLS0tIENvbnRleHR1YWwgSGVhZGVyIC0tLVxuJG5neC1Db250ZXh0dWFsSGVhZGVyLXNlcGFyYXRvci0tY29sb3I6ICR4cG8tZ3JleS0tMzUwO1xuXG5cbi8vL1xuLy8gT3ZlcnJpZGVzIGZvciB0aGUgdG9vbHRpcFxuLy8vXG5cbiR4cG8tdG9vbHRpcC1hcnJvdy1tYXJnaW46IDE4cHg7XG4keHBvLXRvb2x0aXAtYXJyb3ctd2lkdGg6IDEwcHg7XG4keHBvLXRvb2x0aXAtYXJyb3ctaGVpZ2h0OiAxMHB4O1xuXG5AbWl4aW4geHBvLXRvb2x0aXAtdGhlbWUoJHRoZW1lKSB7XG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICAgIC5tYXQtdG9vbHRpcC1wYW5lbCB7XG4gICAgICAubWF0LXRvb2x0aXAge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkeHBvLWdyZXktLTExMDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkeHBvLXdoaXRlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLW1lZGl1bTtcbiAgICAgICAgLy8gbmVlZCB0byB1c2Ugc2FtZSBmb250LXNpemUgZm9yIGxpbmUtaGVpZ2h0XG4gICAgICAgIC8vIHRvIGtlZXAgdGhlIHNwYWNlcyBiZXR3ZWVuIHRleHQgYW5kIGJveCBib3JkZXIgYXMgdGhleSBhcmUgaW4gdGhlIHZpc3VhbCBzcGVjc1xuICAgICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1tZWRpdW07XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBwYWRkaW5nOiAkeHBvLWNvbnRlbnRTcGFjaW5nO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgICAgIH1cblxuICAgICAgLy9cbiAgICAgIC8vIFNlbGVjdG9ycyB0byBmaW5kIHRoZSBlbGVtZW50IHRoYXQgaXMgcG9zaXRpb25lZCBcImFib3ZlXCIsIFwiYmVsb3dcIiwgXCJiZWZvcmVcIiwgXCJhZnRlclwiLCBcInJpZ2h0XCIgb3IgXCJsZWZ0XCJcbiAgICAgIC8vIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBiZXR3ZWVuIHRoZSAubWF0LXRvb2x0aXAtcGFuZWwgYW5kIC5tYXQtdG9vbHRpcCBpbmxpbmUgc3R5bGVcbiAgICAgIC8vXG5cbiAgICAgIC8vIFRoaXMgc2VsZWN0b3IgbGV0IHVzIGZpbmQgdGhlIHBvc2l0aW9uIFwiYWJvdmVcIlxuICAgICAgJltzdHlsZSo9J2JvdHRvbSddW3N0eWxlKj0nbGVmdCddIHtcblxuICAgICAgICAvLyBTZWxlY3RvciB0byBmaW5kIHRoZSBlbGVtZW50IHBvc2l0aW9uZWQ6IFwiYWJvdmVcIlxuICAgICAgICAubWF0LXRvb2x0aXBbc3R5bGUqPSdjZW50ZXInXVtzdHlsZSo9J2JvdHRvbSddIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkeHBvLXRvb2x0aXAtYXJyb3ctbWFyZ2luO1xuXG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR4cG8tdG9vbHRpcC1hcnJvdy13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICR4cG8tdG9vbHRpcC1hcnJvdy1oZWlnaHQgc29saWQgJHhwby1ncmV5LS0xMTAwO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVGhpcyBzZWxlY3RvciBsZXQgdXMgZmluZCB0aGUgcG9zaXRpb25zIFwiYmVsb3dcIiwgXCJhZnRlclwiLCBcInJpZ2h0XCJcbiAgICAgICZbc3R5bGUqPSd0b3AnXVtzdHlsZSo9J2xlZnQnXSB7XG5cbiAgICAgICAgLy8gU2VsZWN0b3IgdG8gZmluZCB0aGUgZWxlbWVudCBwb3NpdGlvbmVkOiBcImJlbG93XCJcbiAgICAgICAgLm1hdC10b29sdGlwW3N0eWxlKj0nY2VudGVyJ11bc3R5bGUqPSd0b3AnXSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJHhwby10b29sdGlwLWFycm93LW1hcmdpbjtcblxuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkeHBvLXRvb2x0aXAtYXJyb3ctaGVpZ2h0IHNvbGlkICR4cG8tZ3JleS0tMTEwMDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR4cG8tdG9vbHRpcC1hcnJvdy13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC8vIFNlbGVjdG9yIHRvIGZpbmQgdGhlIGVsZW1lbnQgcG9zaXRpb25lZDogIFwiYWZ0ZXJcIiwgXCJyaWdodFwiXG4gICAgICAgIC5tYXQtdG9vbHRpcFtzdHlsZSo9J2NlbnRlciddW3N0eWxlKj0nbGVmdCddIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogJHhwby10b29sdGlwLWFycm93LW1hcmdpbjtcblxuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJHhwby10b29sdGlwLWFycm93LWhlaWdodCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHhwby10b29sdGlwLWFycm93LWhlaWdodCBzb2xpZCAkeHBvLWdyZXktLTExMDA7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gLy8gU2VsZWN0b3IgdG8gZmluZCB0aGUgZWxlbWVudCBwb3NpdGlvbmVkOiBcImJlZm9yZVwiLCBcImxlZnRcIlxuICAgICAgJltzdHlsZSo9J3RvcCddW3N0eWxlKj0ncmlnaHQnXSB7XG5cbiAgICAgICAgLy9wb3NpdGlvbiBiZWZvcmUsIGxlZnRcbiAgICAgICAgLm1hdC10b29sdGlwW3N0eWxlKj0nY2VudGVyJ11bc3R5bGUqPSdyaWdodCddIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR4cG8tdG9vbHRpcC1hcnJvdy1tYXJnaW47XG5cbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJHhwby10b29sdGlwLWFycm93LWhlaWdodCBzb2xpZCAkeHBvLWdyZXktLTExMDA7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR4cG8tdG9vbHRpcC1hcnJvdy1oZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkeHBvLXRvb2x0aXAtYXJyb3ctd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gVGV4dFRyZWF0bWVudC1oZWFkZXItLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1zbWFsbDtcbiAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tYm9sZDtcbiAgbGV0dGVyLXNwYWNpbmc6ICR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw7XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbWVkaXVtKCkge1xuICBmb250LXNpemU6ICR4cG8taGVhZGVyLWZvbnRTaXplLS1tZWRpdW07XG4gIGZvbnQtd2VpZ2h0OiAkeHBvLWZvbnRXZWlnaHQtLWJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAkeHBvLWhlYWRlci1sZXR0ZXJTcGFjaW5nLS1tZWRpdW07XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LWhlYWRlci0tbGFyZ2UoKSB7XG4gIGZvbnQtc2l6ZTogJHhwby1oZWFkZXItZm9udFNpemUtLWxhcmdlO1xuICBmb250LXdlaWdodDogJHhwby1mb250V2VpZ2h0LS1ib2xkO1xuICBsZXR0ZXItc3BhY2luZzogJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiAkeHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTtcbn1cblxuLy8gUmVndWxhciB0ZXh0IG1peGluc1xuQG1peGluIFRleHRUcmVhdG1lbnQtLXNtYWxsKCkge1xuICBmb250LXNpemU6ICR4cG8tZm9udFNpemUtLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbWFsbDtcbn1cblxuQG1peGluIFRleHRUcmVhdG1lbnQtLW1lZGl1bSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1tZWRpdW07XG59XG5cbkBtaXhpbiBUZXh0VHJlYXRtZW50LS1sYXJnZSgpIHtcbiAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1sYXJnZTtcbn1cblxuXG4vKlxuKiogPT09PSBCYXNpYyBjb2xvcnMgPT09PVxuKi9cblxuLypcbioqID09PT0gWFBPIEJyYW5kIENvbG9yIFBhbGV0dGUgPT09PVxuKi9cblxuLy8gWFBPIFJlZFxuJHhwby1icmFuZC1yZWQ6ICNjYzAwMDA7XG4keHBvLWJyYW5kLXJlZC0tOTAwOiAkeHBvLWJyYW5kLXJlZDtcbiR4cG8tYnJhbmQtcmVkLS04MDA6ICNlNDIxMGU7XG4keHBvLWJyYW5kLXJlZC0tNzAwOiAjZjMyYTEzO1xuJHhwby1icmFuZC1yZWQtLTYwMDogI2ZmMzMxNztcbiR4cG8tYnJhbmQtcmVkLS01MDA6ICNmZjM5MWM7XG4keHBvLWJyYW5kLXJlZC0tNDAwOiAjZmY1ZTNkO1xuJHhwby1icmFuZC1yZWQtLTMwMDogI2ZmN2U2MDtcbiR4cG8tYnJhbmQtcmVkLS0yMDA6ICNmZmE0OGU7XG4keHBvLWJyYW5kLXJlZC0tMTAwOiAjZmZjOGJhO1xuJHhwby1icmFuZC1yZWQtLTUwOiAjZmNlOGU2O1xuXG4vLyBYUE8gQmxhY2tcbiR4cG8tYmxhY2s6ICMwMDAwMDA7XG4keHBvLWJyYW5kLWJsYWNrLS05MDA6ICR4cG8tYmxhY2s7XG4keHBvLWJyYW5kLWJsYWNrLS04MDA6ICMyNjI2MjY7XG4keHBvLWJyYW5kLWJsYWNrLS03MDA6ICM1NTU1NTU7XG4keHBvLWJyYW5kLWJsYWNrLS02MDA6ICM3YjdiN2I7XG4keHBvLWJyYW5kLWJsYWNrLS01MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS00MDA6ICM5ZDlkOWQ7XG4keHBvLWJyYW5kLWJsYWNrLS0zMDA6ICNjNGM0YzQ7XG4keHBvLWJyYW5kLWJsYWNrLS0yMDA6ICNkOWQ5ZDk7XG4keHBvLWJyYW5kLWJsYWNrLS0xMDA6ICNlOWU5ZTk7XG4keHBvLWJyYW5kLWJsYWNrLS01MDogI2Y1ZjVmNTtcblxuLy8gWFBPIERhcmsgR3JleVxuJHhwby1icmFuZC1kYXJrLWdyZXk6ICM0MTRhNGM7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tOTAwOiAjMjIyODJiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTgwMDogJHhwby1icmFuZC1kYXJrLWdyZXk7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNzAwOiAjNjI2ODZjO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTYwMDogIzc1N2Q4MTtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS01MDA6ICNhMGE2YWE7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tNDAwOiAjYmVjNWM5O1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTMwMDogI2UwZTdlYjtcbiR4cG8tYnJhbmQtZGFyay1ncmV5LS0yMDA6ICNlYmYyZjY7XG4keHBvLWJyYW5kLWRhcmstZ3JleS0tMTAwOiAjZjBmN2ZiO1xuJHhwby1icmFuZC1kYXJrLWdyZXktLTUwOiAjZjRmY2ZmO1xuXG4vLyBYUE8gTWVkaXVtIEdyZXlcbiR4cG8tYnJhbmQtbWVkaXVtLWdyZXk6ICM4NDg0ODQ7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS05MDA6ICMyZTJlMmU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS04MDA6ICM1MDUwNTA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS03MDA6ICM3MDcwNzA7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS02MDA6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXk7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDA6ICNhZmFmYWY7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS00MDA6ICNjZGNkY2Q7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0zMDA6ICNlZWVlZWU7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA6ICNmM2YzZjM7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0xMDA6ICNmOGY4Zjg7XG4keHBvLWJyYW5kLW1lZGl1bS1ncmV5LS01MDogI2ZjZmNmYztcblxuLy8gWFBPIExpZ2h0IEdyZXlcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleTogI2RlZGVkZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tOTAwOiAjMWYxZjFmO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS04MDA6ICMzZjNmM2Y7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTcwMDogIzVlNWU1ZTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tNjAwOiAjNzI3MjcyO1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDA6ICM5YTlhOWE7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTQwMDogI2JhYmFiYTtcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMzAwOiAkeHBvLWJyYW5kLWxpZ2h0LWdyZXk7XG4keHBvLWJyYW5kLWxpZ2h0LWdyZXktLTIwMDogI2VjZWNlYztcbiR4cG8tYnJhbmQtbGlnaHQtZ3JleS0tMTAwOiAjZjRmNGY0O1xuJHhwby1icmFuZC1saWdodC1ncmV5LS01MDogI2Y5ZjlmOTtcblxuLypcbioqID09PT0gTWFpbiBDb2xvciBQYWxldHRlID09PT1cbiovXG5cbi8vIEJsYWNrIGFuZCBHcmV5XG4keHBvLWdyZXktLTk3NTogIzIxMjEyMTtcbiR4cG8tZ3JleS0tOTUwOiAjMzMzMzMzO1xuJHhwby1ncmV5LS05MDA6ICM0YTRhNGE7XG4keHBvLWdyZXktLTcwMDogIzZmNmY2ZjtcbiR4cG8tZ3JleS0tMzUwOiAjYmRiZGJkO1xuJHhwby1ncmV5LS0zMDA6ICNkOGQ4ZDg7XG4keHBvLWdyZXktLTgwOiAjZjZmNmY2O1xuJHhwby1ncmV5LS0yNTogI2ZhZmFmYTtcblxuJHhwby13aGl0ZTogI2ZmZmZmZjtcblxuLy8gTGlua3MsIEJ1dHRvbnMsIFRhYnNldCBhbmQgVGFicGlsbHNcbiR4cG8tYmx1ZS0tODUwOiAjMGQ0N2ExO1xuJHhwby1ibHVlLS04MDA6ICMxOTc2ZDI7XG4keHBvLWJsdWUtLTM1MDogIzIxOTZmMztcblxuLy8gRXJyb3IgU3RhdGVcbiR4cG8tcmVkLS0yMDA6ICNiNzFjMWM7XG4keHBvLXJlZC0tMTUwOiAjZDMyZjJmO1xuJHhwby1yZWQtLTUwOiAjZmNlZWViO1xuXG4vLyBTdWNjZXNzIFN0YXRlXG4keHBvLWdyZWVuLS02MDA6ICMzODhlM2M7XG4keHBvLWdyZWVuLS00NTA6ICM0Y2FmNTA7XG4keHBvLWdyZWVuLS01MDogI2YxZjlmMTtcblxuLy8gV2FybmluZyBTdGF0ZVxuJHhwby15ZWxsb3ctLTM1MDogI2ZmZDYwMDtcblxuJHhwby1vcmFuZ2UtLTM1MDogI2ZmNmQwMDtcblxuLy8gSW5mbyBTdGF0ZVxuJHhwby1ibHVlLS03MDA6ICMwMDkxZWE7XG5cbi8vIFRyYW5zYWN0aW9uYWwgQ2VsbHNcbiR4cG8tZ3JleS0tMTUwOiAjZWNlZmYxO1xuXG4keHBvLWJsdWVHcmV5LS03MDA6ICNjZmQ4ZGM7XG5cbi8vIEFjY2VudCBDb2xvcnNcbiR4cG8tcGluay0tNzAwOiAjYzUxMTYyO1xuXG4keHBvLXRlYWwtLTcwMDogIzAwYmZhNTtcblxuJHhwby1ibHVlLS04MjU6ICMzMDRmZmU7XG4keHBvLWJsdWUtLTIwMDogI2U0ZWZmYTtcblxuJHhwby1hY2NlbnQtcmVkLS00MDA6ICR4cG8tYnJhbmQtcmVkLS00MDA7XG4keHBvLWFjY2VudC1yZWQtLTEwMDogJHhwby1icmFuZC1yZWQtLTEwMDtcblxuJHhwby1wdXJwbGUtLTcwMDogIzYyMDBlYTtcblxuJHhwby1ncmVlbi0tMjAwOiAjYTRlNTliO1xuXG4keHBvLXllbGxvdy0tMjAwOiAjZmZmOWM0O1xuXG4vKlxuKiogPT09PSBERVBSRUNBVEVEIENPTE9SUyA9PT09XG4qL1xuXG4vKlxuKiogV0FSTklORzogVEhJUyBWQVJJQUJMRVMgV0lMTCBCRSBSRU1PVkVEIFNPT05cbiovXG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTEwMDogI2U4ZjVmZTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tMTUwOiAjZTNmMmZkO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ibHVlLS0zMDA6ICMwZDk0ZjQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJsdWUtLTQwMDogIzA4NjhhYztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tYmx1ZS0tOTAwOiAjMDUzYzYzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTEwMDogI2ZmZjhlNTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS0zMDA6ICNmZmNmNGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLXllbGxvdy0tNDAwOiAjZmZiYTAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby15ZWxsb3ctLTcwMDogI2ZmZDYwMDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8teWVsbG93LS05MDA6ICM0ZDM4MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0xMDA6ICNjOGZmZGY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zMDA6ICMxY2U4NTU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS0zNTA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS00MDA6ICMxMWE2M2I7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS03MDA6ICMwMGM4NTM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZWVuLS05MDA6ICMwYTYxMjI7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTUwOiAjZmJmYmZiO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDogI2ZhZmFmYTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwOiAjZjNmM2YzO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS0yMDA6ICNlNmU2ZTY7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTI1MDogI2RkZGRkZDtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNDAwOiAjOWI5YjliO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS02MDA6ICM3NTc1NzU7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTY1MDogIzg1ODU4NTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tNzUwOiAjNTc1NzU3O1xuLy8gRGVwcmVjYXRlZFxuJHhwby1ncmV5LS05MTU6ICM0MzQ5NGQ7XG4vLyBEZXByZWNhdGVkXG4keHBvLWdyZXktLTkzMDogIzQyNDI0Mjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTAwMDogIzE3MTcxNztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tZ3JleS0tMTEwMDogIzIxMjEyMTtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS0xMDA6ICNmZmVlZWU7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tMjUwOiAjZGQyYzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTMwMDogI2ZmMjIyMjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS00MDA6ICNkNTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLXJlZC0tNjAwOiAjY2MwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1yZWQtLTcwMDogI2QzMmYyZjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tcmVkLS05MDA6ICM1NTAwMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tMTAwOiAjZmZkZmNhO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1vcmFuZ2UtLTMwMDogI2ZmOTk1Nztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tb3JhbmdlLS00MDA6ICNmZjY0MDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLW9yYW5nZS0tOTAwOiAjOGIzNzAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1mb250Q29sb3ItLWxpbms6ICMwODY4YWM7XG4vLyBEZXByZWNhdGVkXG4keHBvLWJhY2tncm91bmRDb2xvci0tYm9keTogI2YzZjNmMztcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLWVycm9yOiAjZDUwMDAwO1xuLy8gRGVwcmVjYXRlZFxuJHhwby1jb2xvci0tc3VjY2VzczogIzExYTYzYjtcbi8vIERlcHJlY2F0ZWRcbiR4cG8tY29sb3ItLXdhcm46ICNmZmJhMDA7XG4vLyBEZXByZWNhdGVkXG4keHBvLWNvbG9yLS1pbmZvOiAjNGE0YTRhO1xuXG4vKlxuKiogPT09PSBDT0xPUlMgQVBQTElFRCA9PT09XG4qL1xuJHhwby1mb250Q29sb3ItLXByaW1hcnk6ICR4cG8tZ3JleS0tOTAwO1xuXG4vKlxuKiogPT09PSBUeXBvZ3JhcGh5ID09PT1cbiovXG4vLyBQdXR0aW5nIHNpemVzIGluIG1hcHMgdG8gYWxsb3cgZHluYW1pYyBzaXppbmcgZm9yIGV4dGVybmFsXG4vLyBSb290IGZvbnQtc2l6ZShzKSBhbHdheXMgaW4gcHhcbiR4cG8tZm9udFNpemUtLXJvb3Q6IDE0cHg7XG4keHBvLWZvbnRTaXplLS1zbWFsbDogMC44NzVyZW07IC8vMTJweFxuJHhwby1mb250U2l6ZS0tbWVkaXVtOiAxcmVtOyAvLzE0cHhcbiR4cG8tZm9udFNpemUtLWxhcmdlOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWZvbnRTaXplLS1leHRyYUxhcmdlOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWZvbnRTaXplLS14eGxhcmdlOiAxLjcxNHJlbTsgLy8yNHB4XG5cbiR4cG8taGVhZGVyLWZvbnRTaXplLS14c21hbGw6IDFyZW07IC8vMTRweFxuJHhwby1oZWFkZXItZm9udFNpemUtLXNtYWxsOiAxLjE0M3JlbTsgLy8xNnB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbWVkaXVtOiAxLjI4NXJlbTsgLy8xOHB4XG4keHBvLWhlYWRlci1mb250U2l6ZS0tbGFyZ2U6IDEuNDI4cmVtOyAvLzIwcHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14bGFyZ2U6IDEuNTcxcmVtOyAvLzIycHhcbiR4cG8taGVhZGVyLWZvbnRTaXplLS14eGxhcmdlOiAxLjg1N3JlbTsgLy8yNnB4XG5cbiR4cG8tZm9udEZhbWlseS0tcHJpbWFyeTogJ1JvYm90bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHhwby1mb250RmFtaWx5LS1yb2JvdG9XaWRlQmxhY2s6ICdSb2JvdG8gV2lkZSBCbGFjaycsICdSb2JvdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuJHhwby1mb250V2VpZ2h0LS1saWdodDogMzAwO1xuJHhwby1mb250V2VpZ2h0LS1ub3JtYWw6IDQwMDtcbiR4cG8tZm9udFdlaWdodC0tbWVkaXVtOiA1MDA7IC8vIERFUFJFQ0FURUQgfCBkbyBub3QgZGVsZXRlIHNpbmNlIGl0IGlzIHN0aWxsIGJlaW5nIHVzZWQgaW4gc29tZSBwcm9qZWN0c1xuJHhwby1mb250V2VpZ2h0LS1ib2xkOiA1MDA7XG4keHBvLWZvbnRXZWlnaHQtLWV4dHJhQm9sZDogNjAwO1xuJHhwby1mb250V2VpZ2h0LS1ib2xkZXI6IDcwMDtcblxuJHhwby1saW5lSGVpZ2h0LS14bDogMi4yODZyZW07IC8vIDMycHhcbiR4cG8tbGluZUhlaWdodC0tbGc6IDEuNzE0cmVtOyAvLyAyNHB4XG4keHBvLWxpbmVIZWlnaHQtLW1kOiAxLjU3MXJlbTsgLy8gMjJweFxuJHhwby1saW5lSGVpZ2h0LS1zbTogMS40MjlyZW07IC8vIDIwcHhcblxuJHhwby1saW5lSGVpZ2h0LS1iYXNlOiAyNHB4OyAvLyBmb3IgbWVkaXVtIGFuZCBsYXJnZSBmb250IHNpemVcbiR4cG8tbGluZUhlaWdodC0tbWVkaXVtOiAxOHB4OyAvLyBmb3IgbWVkaXVtIGZvbnQgc2l6ZXNcbiR4cG8tbGluZUhlaWdodC0tc21hbGw6IDE2cHg7IC8vIGZvciBzbWFsbCBmb250IHNpemVcblxuJHhwby1oZWFkZXItbGluZUhlaWdodC0tc21hbGw6IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1tZWRpdW06IDEuMTQzOyAvLyBERVBSRUNBVEVEXG4keHBvLWhlYWRlci1saW5lSGVpZ2h0LS1sYXJnZTogMS4yODY7IC8vIERFUFJFQ0FURURcblxuJHhwby1sZXR0ZXJTcGFjaW5nLS1iYXNlOiAwLjJweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLXNtYWxsOiAwLjNweDtcbiR4cG8taGVhZGVyLWxldHRlclNwYWNpbmctLW1lZGl1bTogMC4zM3B4O1xuJHhwby1oZWFkZXItbGV0dGVyU3BhY2luZy0tbGFyZ2U6IDAuMzhweDtcblxuLy8gPT09PSBMYXlvdXQgPT09PVxuJHhwby1jb250ZW50U3BhY2luZzogMTZweDtcblxuLy8gQnJlYWtwb2ludHNcbiR4cG8tYnJlYWtwb2ludC0tc21hbGwteHM6IDQ4MHB4O1xuJHhwby1icmVha3BvaW50LS1zbWFsbDogNjAwcHg7XG4keHBvLWJyZWFrcG9pbnQtLW1lZGl1bTogNzY4cHg7XG4keHBvLWJyZWFrcG9pbnQtLWxhcmdlOiAxMDI1cHg7XG4keHBvLWJyZWFrcG9pbnQtLXhMYXJnZTogMTQ0MHB4O1xuXG4keHBvLXNlbGVjdC1iYWNrZ3JvdW5kQ29sb3Itb3B0aW9uT25Ib3ZlcjogJHhwby1ibHVlLS0yMDA7XG5cbi8vIC0tIE5HWC1VSSBTcGVjaWZpYyAtLVxuJG5neC1mb290ZXItaGVpZ2h0OiA0MnB4O1xuJG5neC10YWItaGVhZGVyLWhlaWdodDogNDBweDtcbiRuZ3gtdGFibGUtcm93LWhlaWdodDogMzBweDtcblxuJG5neC1pY29uLXNpemU6IDI0cHg7IC8vIFRPRE86IERlcHJlY2F0ZSB0aGlzIHZhcmlhYmxlXG4keHBvLWljb24tc2l6ZS0tc3RhbmRhcmQ6IDIwcHg7XG4keHBvLWljb24tc2l6ZS0tc21hbGw6IDE4cHg7XG4keHBvLWljb24tc2l6ZS0tbGFyZ2U6IDI0cHg7XG5cbiRuZ3gtdGhlQmxhY2tSb2JvdG86IDkwMDtcblxuJHhwby1pbnB1dC1oZWlnaHQtLWRlZmF1bHQ6IDMwcHg7XG4keHBvLWlucHV0LWhlaWdodC0tdHdvTGluZXM6IDQ1cHg7XG5cbiRuZ3gtaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiRuZ3gtaW5wdXQtY29sb3Itb25Ib3ZlcjogJHhwby1icmFuZC1tZWRpdW0tZ3JleS0tMjAwO1xuJG5neC1pbnB1dC1jb2xvci1vbkFjdGl2ZS0tZGFyazogJHhwby1ibGFjaztcbiRuZ3gtaW5wdXQtY29sb3Itb25BY3RpdmUtLWxpZ2h0OiAkeHBvLXdoaXRlO1xuJG5neC1pbnB1dC1jb2xvci1ib3JkZXI6ICR4cG8tZ3JleS0tMzAwO1xuJG5neC1pbnB1dC1jb2xvci1kaXNhYmxlZC0tZGFyazogJHhwby1ncmV5LS0zNTA7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGUtLWxpZ2h0ZXI6ICR4cG8td2hpdGU7XG4kbmd4LWlucHV0LWNvbG9yLWRpc2FibGVkLS1saWdodDogJHhwby1ncmV5LS04MDtcblxuJG5neC1idXR0b24tbGluZUhlaWdodDogMzZweDtcbiRuZ3gtYnV0dG9uLWxpbmVIZWlnaHQtLXNtYWxsOiAyOHB4O1xuJG5neC1idXR0b24tbGluZUhlaWdodC0tbGFyZ2U6IDQ2cHg7XG4kbmd4LWJ1dHRvbi1hbmltYXRpb25EdXJhdGlvbjogMjAwbXM7XG5cbiRuZ3gtaGVhZGVyLWhlaWdodDogNDBweDtcbi8vIEZvciB1c2Ugd2hlbiBhIGhvdmVyIGlzIG5lZWRlZCBvbiBhIHdoaXRlIGJhY2tncm91bmQuXG4kbmd4LXdoaXRlQWZmb3JkYW5jZS1vbkhvdmVyLWNvbG9yOiAkeHBvLWJyYW5kLW1lZGl1bS1ncmV5LS0yMDA7XG5cbiRuZ3gtbWVudS1iYWNrZ3JvdW5kQ29sb3I6ICR4cG8td2hpdGU7XG5cbi8qXG4qKiA9PT09IFNOQUNLQkFSIERFUFJFQ0FURUQgVkFSSUFCTEVTID09PT1cbiovXG5cbi8qXG4qKiBXQVJOSU5HOiBUSElTIFZBUklBQkxFUyBXSUxMIEJFIFJFTU9WRUQgU09PTlxuKi9cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1zdWNjZXNzOiAkeHBvLWdyZWVuLS00NTA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS1lcnJvcjogJHhwby1yZWQtLTE1MDtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja2Jhci1zdGF0dXMtLWluZm86ICMwMjg4ZDE7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItc3RhdHVzLS13YXJuOiAjZmJjMDJkO1xuXG4vLyBEZXByZWNhdGVkXG4kbmd4LVNuYWNrYmFyLWRpc21pc3MtLXN1Y2Nlc3M6ICR4cG8tZ3JlZW4tLTYwMDtcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0tZXJyb3I6ICR4cG8tcmVkLS0yMDA7XG5cbi8vIERlcHJlY2F0ZWRcbiRuZ3gtU25hY2tiYXItZGlzbWlzcy0taW5mbzogIzAxNTc5YjtcblxuLy8gRGVwcmVjYXRlZFxuJG5neC1TbmFja0Jhci1tYXJnaW5Ub3A6IDMycHg7XG5cbi8vQmFkZ2VcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tbmVnYXRpdmU6ICR4cG8tcmVkLS01MDtcbiRfbWF0QmFkZ2VDb250ZW50LWNvbG9yLS1uZWdhdGl2ZTogI2RkMmMwMDtcbiRfbWF0QmFkZ2VDb250ZW50LWJhY2tncm91bmRDb2xvci0tcG9zaXRpdmU6ICR4cG8tZ3JlZW4tLTUwO1xuXG4kbmd4LW1lbnUtYmFja2dyb3VuZENvbG9yLW9uSG92ZXI6ICR4cG8tYnJhbmQtbWVkaXVtLWdyZXktLTUwO1xuLy8gVXNlZCBhcyBhIHNwYWNlciBmb3IgZmxleGVkIGNoaWxkcmVuXG4vLyBUT0RPOiBNb3ZlIGFsbCBpbnN0YW5jZXMgdG8gdGhlIHV0aWxpdGllcyBkZWZpbml0aW9uXG4uZmxleC0tc3RyZXRjaCB7XG4gIGZsZXg6IDE7XG59XG5cbi8vIC0tLSBEaWFsb2cgLS0tXG4kbmd4LWRpYWxvZy1oZWFkZXItaGVpZ2h0OiA0OHB4O1xuJG5neC1kaWFsb2ctZm9vdGVyLWhlaWdodDogNjRweDtcblxuLy8gLS0tIFRyYW5zaXRpb25zIC0tLVxuJHhwby10cmFuc2l0aW9uLTIwMDogYWxsIDIwMG1zIGVhc2Utb3V0O1xuXG4vLyAtLS0gQ29udGV4dHVhbCBIZWFkZXIgLS0tXG4kbmd4LUNvbnRleHR1YWxIZWFkZXItc2VwYXJhdG9yLS1jb2xvcjogJHhwby1ncmV5LS0zNTA7XG5cblxuQG1peGluIHhwby1lcnJvci1wYWdlcy10aGVtZSgkdGhlbWUpIHtcbiAgLnhwby1FcnJvclBhZ2VzIHsgICAgXG4gICAgJi10aXRsZSB7XG4gICAgICAkX3RpdGxlLWZvbnRTaXplOiAyOHB4O1xuXG4gICAgICAvLyBUT0RPOiB0aGlzIHdpbGwgYmUgbm90IG5lY2Vzc2FyeSB3aGVuIFtOR1hMVEwtMTMyNV0gaXMgcmVzb2x2ZWRcbiAgICAgIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAkX3RpdGxlLWZvbnRTaXplO1xuICAgICAgfVxuICAgIH1cbiAgICAmLWRlc2NyaXB0aW9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR4cG8tY29udGVudFNwYWNpbmc7XG4gICAgICBwIHtcbiAgICAgICAgZm9udC1zaXplOiAkeHBvLWZvbnRTaXplLS1leHRyYUxhcmdlO1xuICAgICAgfVxuICAgIH1cbiAgICAmLWFjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHhwby1jb250ZW50U3BhY2luZyAqIDI7XG4gICAgICBnYXA6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgIH1cbiAgICAmLWZvb3RlciB7XG4gICAgICAkX2Zvb3Rlci13aWR0aDogMTAwJTtcbiAgICAgIFxuICAgICAgd2lkdGg6ICRfZm9vdGVyLXdpZHRoO1xuICAgIH1cbiAgfVxufVxuXG5cblxuQG1peGluIHhwby10aW1lLXBpY2tlci10aGVtZSgkdGhlbWUpIHtcbiAgJF90aW1lUGlja2VyLXdpZHRoOiA5NnB4O1xuICAkX3RpbWVQaWNrZXItbWFyZ2luVG9wOiAyNHB4O1xuICAkX3RpbWVQaWNrZXItbWFyZ2luQm90dG9tOiA2cHg7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUteHBvLXRpbWUtcGlja2VyICB7XG4gICAgd2lkdGg6ICRfdGltZVBpY2tlci13aWR0aDtcbiAgICBtYXJnaW4tYm90dG9tOiAkX3RpbWVQaWNrZXItbWFyZ2luQm90dG9tO1xuICAgIG1hcmdpbi10b3A6ICRfdGltZVBpY2tlci1tYXJnaW5Ub3A7XG5cbiAgICAueHBvLUljb24gLm1hdC1pY29uIHtcbiAgICAgIGNvbG9yOiAkeHBvLWdyZXktLTkwMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHhwby1ncmV5LS00MDA7IC8vVE9ETyBEb2VzIGV4aXN0IGluIGZpZ21hIEkgdXNlIHRoZSBzYW1lIGNvbG9yIHRvIGRhdGUgcmFuZ2UtZGF0ZSByYW5nZSBwaWNrZXJcbiAgICAgIH1cbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICR4cG8tZ3JleS0tOTAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC54cG8tVGltZVBpY2tlciB7XG4gICAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICR4cG8tYmxhY2s7XG4gICAgICB9XG4gICAgICAmLm5nLXRvdWNoZWQubmctaW52YWxpZCB7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICR4cG8tcmVkLS0xNTA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4cG8tZ3JleS0tMTAwO1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgZm9udC13ZWlnaHQ6ICR4cG8tZm9udFdlaWdodC0tbm9ybWFsO1xuICAgICAgfi54cG8tSWNvbiAubWF0LWljb24ge1xuICAgICAgICBjb2xvcjogJHhwby1ncmV5LS0zNTA7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG4gICAgXG4gICAgJi5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkeHBvLWxpbmVIZWlnaHQtLXNtYWxsO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsXG4gICAgICAubWF0LWZvcm0tZmllbGQtZmxleFxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAkX3RpbWVQaWNrZXItaGVpZ2h0OiAyMHB4O1xuXG4gICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbTtcbiAgICAgIGhlaWdodDogJF90aW1lUGlja2VyLWhlaWdodDtcbiAgICB9XG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICAgIGNvbG9yOiAkeHBvLXJlZC0tMTUwO1xuICAgIH1cbiAgICAubWF0LWVycm9yIHtcbiAgICAgIGNvbG9yOiAkeHBvLXJlZC0tMTUwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZvbnQtc2l6ZTogJHhwby1mb250U2l6ZS0tc21hbGw7XG4gICAgICBnYXA6ICR4cG8tY29udGVudFNwYWNpbmcgLyAyO1xuICAgICAgbGluZS1oZWlnaHQ6ICR4cG8tbGluZUhlaWdodC0tc21hbGw7XG4gICAgICB3aWR0aDogJF90aW1lUGlja2VyLXdpZHRoO1xuXG4gICAgICAueHBvLUljb24gLm1hdC1pY29uIHtcbiAgICAgICAgY29sb3I6ICR4cG8tcmVkLS0xNTA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgfVxuICAgICAgPiAubWF0LWljb24ge1xuICAgICAgICBjb2xvcjogJHhwby1yZWQtLTE1MDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZvbnQtc2l6ZTogJHhwby1pY29uLXNpemUtLXN0YW5kYXJkO1xuICAgICAgICBoZWlnaHQ6ICR4cG8taWNvbi1zaXplLS1zdGFuZGFyZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbC5tYXQtYXV0b2NvbXBsZXRlLXZpc2libGUueHBvLVRpbWVQaWNrZXItcGFuZWwge1xuICAgICRfdGltZVBpY2tlci1yaWdodDogMXB4O1xuICAgICRfdGltZVBpY2tlci10b3A6IC0xcHg7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggJHhwby1ibGFjaztcbiAgICBtaW4td2lkdGg6ICRfdGltZVBpY2tlci13aWR0aDtcbiAgICByaWdodDogJF90aW1lUGlja2VyLXJpZ2h0O1xuICAgIHRvcDogJF90aW1lUGlja2VyLXRvcDtcbiAgICB3aWR0aDogJF90aW1lUGlja2VyLXdpZHRoO1xuICBcbiAgICAubWF0LW9wdGlvbiB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBjb2xvcjogJHhwby1ncmV5LS05MDA7XG4gICAgICBsaW5lLWhlaWdodDogJHhwby1saW5lSGVpZ2h0LS1zbTtcblxuICAgICAgJi5tYXQtYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHhwby1ibHVlLS0yMDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8gQ3JlYXRlIGEgdGhlbWUuXG5AbWl4aW4geHBvLW1hdGVyaWFsLWludGVybmFsLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSB4cG8tbWF0LWNvcmUtdGhlbWUoJHRoZW1lKTtcblxuICBAaW5jbHVkZSB4cG8tY2FyZC10aGVtZSgkdGhlbWUpO1xuXG4gIEBpbmNsdWRlIHhwby1idXR0b24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWFwcGxpY2F0aW9uU3dpdGNoZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tYmFkZ2UtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWJ1dHRvbi10b2dnbGUtZ3JvdXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1jaGlwcy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tY29udGV4dHVhbC1oZWFkZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWRhdGVQaWNrZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWRhdGUtcmFuZ2UtcGlja2VyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1kaWFsb2ctdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tZm9ybS1maWVsZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8taW5wdXQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLWxpbmstdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLW1lbnUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLW11bHRpLXNlbGVjdC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tc25hY2stYmFyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby10YWJsZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tdGFicy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tcmFkaW8tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXNlbGVjdC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1zcGVjaWFsLXN0YXR1cy1pbmRpY2F0b3JzLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby10cmF5LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby10b29sdGlwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1lcnJvci1wYWdlcy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSB4cG8tdGltZS1waWNrZXItdGhlbWUoJHRoZW1lKTtcblxuICAvLyBYcG8gQ29tcG9uZW50IHRoZW1lc1xuICBAaW5jbHVkZSB4cG8tZG93bmxvYWQtYnV0dG9uLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIHhwby1oZWFkZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgeHBvLXRhYi1kcmF3ZXItdGhlbWUoJHRoZW1lKTtcblxuICAvLyBNYXRlcmlhbCB0aGVtZXMgdGhhdCBkb250IG5lZWQgb3ZlcnJpZGVzIHNpbmNlIHRoZXkgbWF0Y2ggb3VyIHN0eWxlIGFscmVhZHlcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUpO1xuXG4gIC8vIFRPRE86IHJlbW92ZSB3aGVuIHhwby10aGVtZWRcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJhZGdlLXRoZW1lKCR0aGVtZSk7XG5cbiAgbWF0LWRpYWxvZy1jb250YWluZXIubWF0LWRpYWxvZy1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8gVE9ETzogaW50cm9kdWNlIG91ciBncmV5cz9cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuXG4kbGlnaHQtcHJpbWFyeS10ZXh0OiB3aGl0ZTtcbiRsaWdodC1zZWNvbmRhcnktdGV4dDogcmdiYSh3aGl0ZSwgMC43KTtcbiRsaWdodC1kaXNhYmxlZC10ZXh0OiByZ2JhKHdoaXRlLCAwLjUpO1xuJGxpZ2h0LWRpdmlkZXJzOiByZ2JhKHdoaXRlLCAwLjEyKTtcbiRsaWdodC1mb2N1c2VkOiByZ2JhKHdoaXRlLCAwLjEyKTtcblxuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7IC8vIFRPRE86IHRoaXMgaXMgd2hhdCBpcyBzcGVjJ2Qgb3V0IGZvciBkYXJrIGNhcmQgYmFja2dyb3VuZHMsIGJ1dCBpdHMgbm90IGluIG91ciB2YXIgbGlzdFxuXG4keHBvLWJsdWUtcGFsZXR0ZTogKFxuICAxMDA6ICR4cG8tYmx1ZS0tMTAwLFxuICAzMDA6ICR4cG8tYmx1ZS0tMTAwLFxuICA0MDA6ICR4cG8tYmx1ZS0tNDAwLFxuICA5MDA6ICR4cG8tYmx1ZS0tOTAwLFxuICBjb250cmFzdDogKFxuICAgIDEwMDogJHhwby13aGl0ZSxcbiAgICAzMDA6ICR4cG8td2hpdGUsXG4gICAgNDAwOiAkeHBvLXdoaXRlLFxuICAgIDkwMDogJHhwby13aGl0ZSxcbiAgKSxcbik7XG5cbiR4cG8tZ3JleS1wYWxldHRlOiAoXG4gIDEwMDogJHhwby1ncmV5LS0xMDAsXG4gIDMwMDogJHhwby1ncmV5LS0zMDAsXG4gIDQwMDogJHhwby1ncmV5LS00MDAsXG4gIDkwMDogJHhwby1ncmV5LS05MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgMTAwOiAkeHBvLWdyZXktLTkwMCxcbiAgICAzMDA6ICR4cG8tZ3JleS0tOTAwLFxuICAgIDQwMDogJHhwby1ncmV5LS05MDAsXG4gICAgOTAwOiAkeHBvLXdoaXRlLFxuICApLFxuKTtcblxuJHhwby1yZWQtcGFsZXR0ZTogKFxuICAxMDA6ICR4cG8tcmVkLS0xMDAsXG4gIDMwMDogJHhwby1yZWQtLTMwMCxcbiAgNDAwOiAkeHBvLXJlZC0tNDAwLFxuICA5MDA6ICR4cG8tcmVkLS05MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgMTAwOiAkeHBvLXdoaXRlLFxuICAgIDMwMDogJHhwby13aGl0ZSxcbiAgICA0MDA6ICR4cG8td2hpdGUsXG4gICAgOTAwOiAkeHBvLXdoaXRlLFxuICApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBsaWdodCB0aGVtZXMuXG4keHBvLWxpZ2h0LXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogbWFwX2dldCgkbWF0LWdyZXksIDMwMCksXG4gIGFwcC1iYXI6ICR4cG8td2hpdGUsXG4gIGJhY2tncm91bmQ6ICR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5LFxuICBob3ZlcjogcmdiYShibGFjaywgMC4wNCksXG4gIGNhcmQ6IHdoaXRlLFxuICBkaWFsb2c6IHdoaXRlLFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEoYmxhY2ssIDAuMTIpLFxuICByYWlzZWQtYnV0dG9uOiB3aGl0ZSxcbiAgZm9jdXNlZC1idXR0b246ICRkYXJrLWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDMwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDQwMCksXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogbWFwX2dldCgkbWF0LWdyZXksIDIwMCksXG4pO1xuXG4vLyBCYWNrZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJHhwby1kYXJrLXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogYmxhY2ssXG4gIGFwcC1iYXI6ICR4cG8tZ3JleS0tOTUwLFxuICBiYWNrZ3JvdW5kOiAkeHBvLWdyZXktLTEwMDAsXG4gIGhvdmVyOiByZ2JhKHdoaXRlLCAwLjA0KSxcbiAgY2FyZDogJHhwby1ncmV5LS05NTAsXG4gIGRpYWxvZzogJHhwby1ncmV5LS05NTAsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYSh3aGl0ZSwgMC4xMiksXG4gIHJhaXNlZC1idXR0b246ICR4cG8tZ3JleS0tOTUwLFxuICBmb2N1c2VkLWJ1dHRvbjogJGxpZ2h0LWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDkwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogJHhwby1ncmV5LS05NTAsXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IGJsYWNrLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcF9nZXQoJG1hdC1ncmV5LCA3MDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogYmxhY2ssXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGxpZ2h0IHRoZW1lcy5cbiR4cG8tbGlnaHQtdGhlbWUtZm9yZWdyb3VuZDogKFxuICBiYXNlOiBibGFjayxcbiAgZGl2aWRlcjogJGRhcmstZGl2aWRlcnMsXG4gIGRpdmlkZXJzOiAkZGFyay1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogYmxhY2ssXG4gIGhpbnQtdGV4dDogJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICRkYXJrLXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6IHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW1pbjogcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1vZmY6IHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJHhwby1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogd2hpdGUsXG4gIGRpdmlkZXI6ICRsaWdodC1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICRsaWdodC1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEod2hpdGUsIDAuMyksXG4gIGRpc2FibGVkLXRleHQ6ICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246IGJsYWNrLFxuICBoaW50LXRleHQ6ICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiB3aGl0ZSxcbiAgaWNvbnM6IHdoaXRlLFxuICB0ZXh0OiB3aGl0ZSxcbiAgc2xpZGVyLW1pbjogd2hpdGUsXG4gIHNsaWRlci1vZmY6IHJnYmEod2hpdGUsIDAuMyksXG4gIHNsaWRlci1vZmYtYWN0aXZlOiByZ2JhKHdoaXRlLCAwLjMpLFxuKTtcblxuLy8gVE9ETzogaW50cm9kdWNlIG91ciBncmV5cz9cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuXG4kbGlnaHQtcHJpbWFyeS10ZXh0OiB3aGl0ZTtcbiRsaWdodC1zZWNvbmRhcnktdGV4dDogcmdiYSh3aGl0ZSwgMC43KTtcbiRsaWdodC1kaXNhYmxlZC10ZXh0OiByZ2JhKHdoaXRlLCAwLjUpO1xuJGxpZ2h0LWRpdmlkZXJzOiByZ2JhKHdoaXRlLCAwLjEyKTtcbiRsaWdodC1mb2N1c2VkOiByZ2JhKHdoaXRlLCAwLjEyKTtcblxuJHhwby1ncmV5LS05NTA6ICMzMzMzMzM7IC8vIFRPRE86IHRoaXMgaXMgd2hhdCBpcyBzcGVjJ2Qgb3V0IGZvciBkYXJrIGNhcmQgYmFja2dyb3VuZHMsIGJ1dCBpdHMgbm90IGluIG91ciB2YXIgbGlzdFxuXG4keHBvLWJsdWUtcGFsZXR0ZTogKFxuICAxMDA6ICR4cG8tYmx1ZS0tMTAwLFxuICAzMDA6ICR4cG8tYmx1ZS0tMTAwLFxuICA0MDA6ICR4cG8tYmx1ZS0tNDAwLFxuICA5MDA6ICR4cG8tYmx1ZS0tOTAwLFxuICBjb250cmFzdDogKFxuICAgIDEwMDogJHhwby13aGl0ZSxcbiAgICAzMDA6ICR4cG8td2hpdGUsXG4gICAgNDAwOiAkeHBvLXdoaXRlLFxuICAgIDkwMDogJHhwby13aGl0ZSxcbiAgKSxcbik7XG5cbiR4cG8tZ3JleS1wYWxldHRlOiAoXG4gIDEwMDogJHhwby1ncmV5LS0xMDAsXG4gIDMwMDogJHhwby1ncmV5LS0zMDAsXG4gIDQwMDogJHhwby1ncmV5LS00MDAsXG4gIDkwMDogJHhwby1ncmV5LS05MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgMTAwOiAkeHBvLWdyZXktLTkwMCxcbiAgICAzMDA6ICR4cG8tZ3JleS0tOTAwLFxuICAgIDQwMDogJHhwby1ncmV5LS05MDAsXG4gICAgOTAwOiAkeHBvLXdoaXRlLFxuICApLFxuKTtcblxuJHhwby1yZWQtcGFsZXR0ZTogKFxuICAxMDA6ICR4cG8tcmVkLS0xMDAsXG4gIDMwMDogJHhwby1yZWQtLTMwMCxcbiAgNDAwOiAkeHBvLXJlZC0tNDAwLFxuICA5MDA6ICR4cG8tcmVkLS05MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgMTAwOiAkeHBvLXdoaXRlLFxuICAgIDMwMDogJHhwby13aGl0ZSxcbiAgICA0MDA6ICR4cG8td2hpdGUsXG4gICAgOTAwOiAkeHBvLXdoaXRlLFxuICApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBsaWdodCB0aGVtZXMuXG4keHBvLWxpZ2h0LXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogbWFwX2dldCgkbWF0LWdyZXksIDMwMCksXG4gIGFwcC1iYXI6ICR4cG8td2hpdGUsXG4gIGJhY2tncm91bmQ6ICR4cG8tYmFja2dyb3VuZENvbG9yLS1ib2R5LFxuICBob3ZlcjogcmdiYShibGFjaywgMC4wNCksXG4gIGNhcmQ6IHdoaXRlLFxuICBkaWFsb2c6IHdoaXRlLFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEoYmxhY2ssIDAuMTIpLFxuICByYWlzZWQtYnV0dG9uOiB3aGl0ZSxcbiAgZm9jdXNlZC1idXR0b246ICRkYXJrLWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDMwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDQwMCksXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogbWFwX2dldCgkbWF0LWdyZXksIDIwMCksXG4pO1xuXG4vLyBCYWNrZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJHhwby1kYXJrLXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogYmxhY2ssXG4gIGFwcC1iYXI6ICR4cG8tZ3JleS0tOTUwLFxuICBiYWNrZ3JvdW5kOiAkeHBvLWdyZXktLTEwMDAsXG4gIGhvdmVyOiByZ2JhKHdoaXRlLCAwLjA0KSxcbiAgY2FyZDogJHhwby1ncmV5LS05NTAsXG4gIGRpYWxvZzogJHhwby1ncmV5LS05NTAsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYSh3aGl0ZSwgMC4xMiksXG4gIHJhaXNlZC1idXR0b246ICR4cG8tZ3JleS0tOTUwLFxuICBmb2N1c2VkLWJ1dHRvbjogJGxpZ2h0LWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDkwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogJHhwby1ncmV5LS05NTAsXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IGJsYWNrLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcF9nZXQoJG1hdC1ncmV5LCA3MDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogYmxhY2ssXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGxpZ2h0IHRoZW1lcy5cbiR4cG8tbGlnaHQtdGhlbWUtZm9yZWdyb3VuZDogKFxuICBiYXNlOiBibGFjayxcbiAgZGl2aWRlcjogJGRhcmstZGl2aWRlcnMsXG4gIGRpdmlkZXJzOiAkZGFyay1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogYmxhY2ssXG4gIGhpbnQtdGV4dDogJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICRkYXJrLXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6IHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW1pbjogcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1vZmY6IHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJHhwby1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogd2hpdGUsXG4gIGRpdmlkZXI6ICRsaWdodC1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICRsaWdodC1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEod2hpdGUsIDAuMyksXG4gIGRpc2FibGVkLXRleHQ6ICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246IGJsYWNrLFxuICBoaW50LXRleHQ6ICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiB3aGl0ZSxcbiAgaWNvbnM6IHdoaXRlLFxuICB0ZXh0OiB3aGl0ZSxcbiAgc2xpZGVyLW1pbjogd2hpdGUsXG4gIHNsaWRlci1vZmY6IHJnYmEod2hpdGUsIDAuMyksXG4gIHNsaWRlci1vZmYtYWN0aXZlOiByZ2JhKHdoaXRlLCAwLjMpLFxuKTtcblxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBsaWdodCB0aGVtZSB0byBiZSBnaXZlbiB0byBpbmRpdmlkdWFsIGNvbXBvbmVudCB0aGVtZSBtaXhpbnMuXG5AZnVuY3Rpb24geHBvLWxpZ2h0LXRoZW1lKCRwcmltYXJ5LCAkYWNjZW50LCAkd2Fybikge1xuICBAcmV0dXJuIChwcmltYXJ5OiAkcHJpbWFyeSwgYWNjZW50OiAkYWNjZW50LCB3YXJuOiAkd2FybiwgaXMtZGFyazogZmFsc2UsIGZvcmVncm91bmQ6ICR4cG8tbGlnaHQtdGhlbWUtZm9yZWdyb3VuZCwgYmFja2dyb3VuZDogJHhwby1saWdodC10aGVtZS1iYWNrZ3JvdW5kKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgZGFyayB0aGVtZSB0byBiZSBnaXZlbiB0byBpbmRpdmlkdWFsIGNvbXBvbmVudCB0aGVtZSBtaXhpbnMuXG5AZnVuY3Rpb24geHBvLWRhcmstdGhlbWUoJHByaW1hcnksICRhY2NlbnQsICR3YXJuKSB7XG4gIEByZXR1cm4gKHByaW1hcnk6ICRwcmltYXJ5LCBhY2NlbnQ6ICRhY2NlbnQsIHdhcm46ICR3YXJuLCBpcy1kYXJrOiB0cnVlLCBmb3JlZ3JvdW5kOiAkeHBvLWRhcmstdGhlbWUtZm9yZWdyb3VuZCwgYmFja2dyb3VuZDogJHhwby1kYXJrLXRoZW1lLWJhY2tncm91bmQpO1xufVxuXG5cbi8vIEluY2x1ZGUgbm9uLXRoZW1lIHN0eWxlcyBmb3IgY29yZS5cbkBpbmNsdWRlIHhwby1tYXQtY29yZSgpO1xuXG4vLyBEZWZpbmUgYSB0aGVtZS5cbiRwcmltYXJ5OiBtYXQtcGFsZXR0ZSgkeHBvLWJsdWUtcGFsZXR0ZSwgNDAwLCAzMDAsIDkwMCk7XG4kYWNjZW50OiBtYXQtcGFsZXR0ZSgkeHBvLWdyZXktcGFsZXR0ZSwgOTAwLCA0MDAsIDkwMCk7XG4kd2FybjogbWF0LXBhbGV0dGUoJHhwby1yZWQtcGFsZXR0ZSwgNDAwLCAzMDAsIDkwMCk7XG5cbiR0aGVtZTogeHBvLWxpZ2h0LXRoZW1lKCRwcmltYXJ5LCAkYWNjZW50LCAkd2Fybik7XG5cbi8vIEluY2x1ZGUgYWxsIHRoZW1lIHN0eWxlcyBmb3IgdGhlIGNvbXBvbmVudHMuXG5AaW5jbHVkZSB4cG8tbWF0ZXJpYWwtaW50ZXJuYWwtdGhlbWUoJHRoZW1lKTtcblxuLy8gVEhJUyBJUyBKVVNUIEhFUkUgVU5USUwgV0UgQ0FOIEdFVCBUSEVNIElOIEFSQ1xuLy8gVE9ETzogQW55dGhpbmcgaGVyZSBzaG91bGQgYmUgYmFjay1wb3J0ZWQgdG8gQVJDXG4udS1mbGV4LS1maWxsU3BhY2Uge1xuICBmbGV4OiAxO1xufVxuXG4udS1mbGV4LS1zcGFjZUJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4iLCIvLyBGaWxlIGZvciB3aGljaCBhbGwgaW1wb3J0cyBhcmUgcmVzb2x2ZWQgYW5kIGJ1bmRsZWQuIFRoaXMgaXMgdGhlIGVudHJ5LXBvaW50IGZvclxuLy8gdGhlIGBAYW5ndWxhci9tYXRlcmlhbGAgdGhlbWluZyBTYXNzIGJ1bmRsZS4gU2VlIGAvL3NyYy9tYXRlcmlhbDp0aGVtaW5nX2J1bmRsZWAuXG5cbi8vIEltcG9ydCBhbGwgdGhlIHRoZW1pbmcgZnVuY3Rpb25hbGl0eS5cbi8vIFdlIHdhbnQgb3ZlcmxheXMgdG8gYWx3YXlzIGFwcGVhciBvdmVyIHVzZXIgY29udGVudCwgc28gc2V0IGEgYmFzZWxpbmVcbi8vIHZlcnkgaGlnaCB6LWluZGV4IGZvciB0aGUgb3ZlcmxheSBjb250YWluZXIsIHdoaWNoIGlzIHdoZXJlIHdlIGNyZWF0ZSB0aGUgbmV3XG4vLyBzdGFja2luZyBjb250ZXh0IGZvciBhbGwgb3ZlcmxheXMuXG4kY2RrLXotaW5kZXgtb3ZlcmxheS1jb250YWluZXI6IDEwMDAgIWRlZmF1bHQ7XG4kY2RrLXotaW5kZXgtb3ZlcmxheTogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5LWJhY2tkcm9wOiAxMDAwICFkZWZhdWx0O1xuXG4vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBhbGwgb2YgdGhlIGJhY2tkcm9wc1xuJGNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AtYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMyKSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBiYWNrZHJvcCBhbmltYXRpb24gaXMgYmFzZWQgb24gdGhlIE1hdGVyaWFsIERlc2lnbiBzd2lmdC1lYXNlLW91dC5cbiRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb246IDQwMG1zICFkZWZhdWx0O1xuJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuXG5cbkBtaXhpbiBjZGstb3ZlcmxheSgpIHtcbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICAvLyBEaXNhYmxlIGV2ZW50cyBmcm9tIGJlaW5nIGNhcHR1cmVkIG9uIHRoZSBvdmVybGF5IGNvbnRhaW5lci5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIC8vIFRoZSBjb250YWluZXIgc2hvdWxkIGJlIHRoZSBzaXplIG9mIHRoZSB2aWV3cG9ydC5cbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBUaGUgb3ZlcmxheS1jb250YWluZXIgaXMgYW4gaW52aXNpYmxlIGVsZW1lbnQgd2hpY2ggY29udGFpbnMgYWxsIGluZGl2aWR1YWwgb3ZlcmxheXMuXG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheS1jb250YWluZXI7XG5cbiAgICAmOmVtcHR5IHtcbiAgICAgIC8vIEhpZGUgdGhlIGVsZW1lbnQgd2hlbiBpdCBkb2Vzbid0IGhhdmUgYW55IGNoaWxkIG5vZGVzLiBUaGlzIGRvZXNuJ3RcbiAgICAgIC8vIGluY2x1ZGUgb3ZlcmxheXMgdGhhdCBoYXZlIGJlZW4gZGV0YWNoZWQsIHJhdGhlciB0aGFuIGRpc3Bvc2VkLlxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSB1c2UgYW4gZXh0cmEgd3JhcHBlciBlbGVtZW50IGluIG9yZGVyIHRvIHVzZSBtYWtlIHRoZSBvdmVybGF5IGl0c2VsZiBhIGZsZXggaXRlbS5cbiAgLy8gVGhpcyBtYWtlcyBjZW50ZXJpbmcgdGhlIG92ZXJsYXkgZWFzeSB3aXRob3V0IHJ1bm5pbmcgaW50byB0aGUgc3VicGl4ZWwgcmVuZGVyaW5nXG4gIC8vIHByb2JsZW1zIHRpZWQgdG8gdXNpbmcgYHRyYW5zZm9ybWAgYW5kIHdpdGhvdXQgaW50ZXJmZXJpbmcgd2l0aCB0aGUgb3RoZXIgcG9zaXRpb25cbiAgLy8gc3RyYXRlZ2llcy5cbiAgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcbiAgfVxuXG4gIC8vIEEgc2luZ2xlIG92ZXJsYXkgcGFuZS5cbiAgLmNkay1vdmVybGF5LXBhbmUge1xuICAgIC8vIE5vdGU6IGl0J3MgaW1wb3J0YW50IGZvciB0aGlzIG9uZSB0byBzdGFydCBvZmYgYGFic29sdXRlYCxcbiAgICAvLyBpbiBvcmRlciBmb3IgdXMgdG8gYmUgYWJsZSB0byBtZWFzdXJlIGl0IGNvcnJlY3RseS5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcblxuICAgIC8vIEZvciBjb25uZWN0ZWQtcG9zaXRpb24gb3ZlcmxheXMsIHdlIHNldCBgZGlzcGxheTogZmxleGAgaW5cbiAgICAvLyBvcmRlciB0byBmb3JjZSBgbWF4LXdpZHRoYCBhbmQgYG1heC1oZWlnaHRgIHRvIHRha2UgZWZmZWN0LlxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktYmFja2Ryb3Age1xuICAgIC8vIFRPRE8oamVsYm91cm4pOiByZXVzZSBzaWRlbmF2IGZ1bGxzY3JlZW4gbWl4aW4uXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcblxuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWJhY2tkcm9wO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uICRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uO1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgLy8gTm90ZSB0aGF0IHdlIGNhbid0IGltcG9ydCBhbmQgdXNlIHRoZSBgaGlnaC1jb250cmFzdGAgbWl4aW4gZnJvbSBgX2ExMXkuc2Nzc2AsIGJlY2F1c2VcbiAgICAgIC8vIHRoaXMgZmlsZSB3aWxsIGJlIGNvcGllZCB0byB0aGUgdG9wLWxldmVsIGBjZGtgIHBhY2thZ2Ugd2hlbiBwdXR0aW5nIHRvZ2V0aGVyIHRoZSBmaWxlc1xuICAgICAgLy8gZm9yIG5wbS4gQW55IHJlbGF0aXZlIGltcG9ydCBwYXRocyB3ZSB1c2UgaGVyZSB3aWxsIGJlY29tZSBpbnZhbGlkIG9uY2UgdGhlIGZpbGUgaXMgY29waWVkLlxuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAmIHtcbiAgICAgICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByZ2JhIGJhY2tncm91bmQgd2lsbCBiZWNvbWUgc29saWRcbiAgICAgICAgLy8gc28gd2UgbmVlZCB0byBmYWxsIGJhY2sgdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuXG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gICAgYmFja2dyb3VuZDogJGNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AtYmFja2dyb3VuZDtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCB7XG4gICAgLy8gTm90ZTogYXMgb2YgRmlyZWZveCA1NywgaGF2aW5nIHRoZSBiYWNrZHJvcCBiZSBgYmFja2dyb3VuZDogbm9uZWAgd2lsbCBwcmV2ZW50IGl0IGZyb21cbiAgICAvLyBjYXB0dXJpbmcgdGhlIHVzZXIncyBtb3VzZSBzY3JvbGwgZXZlbnRzLiBTaW5jZSB3ZSBhbHNvIGNhbid0IHVzZSBzb21ldGhpbmcgbGlrZVxuICAgIC8vIGByZ2JhKDAsIDAsIDAsIDApYCwgd2Ugd29yayBhcm91bmQgdGhlIGluY29uc2lzdGVuY3kgYnkgbm90IHNldHRpbmcgdGhlIGJhY2tncm91bmQgYXRcbiAgICAvLyBhbGwgYW5kIHVzaW5nIGBvcGFjaXR5YCB0byBtYWtlIHRoZSBlbGVtZW50IHRyYW5zcGFyZW50LlxuICAgICYsICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIE92ZXJsYXkgcGFyZW50IGVsZW1lbnQgdXNlZCB3aXRoIHRoZSBjb25uZWN0ZWQgcG9zaXRpb24gc3RyYXRlZ3kuIFVzZWQgdG8gY29uc3RyYWluIHRoZVxuICAvLyBvdmVybGF5IGVsZW1lbnQncyBzaXplIHRvIGZpdCB3aXRoaW4gdGhlIHZpZXdwb3J0LlxuICAuY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gV2UgdXNlIGBkaXNwbGF5OiBmbGV4YCBvbiB0aGlzIGVsZW1lbnQgZXhjbHVzaXZlbHkgZm9yIGNlbnRlcmluZyBjb25uZWN0ZWQgb3ZlcmxheXMuXG4gICAgLy8gV2hlbiAqbm90KiBjZW50ZXJpbmcsIGEgdG9wL2xlZnQvYm90dG9tL3JpZ2h0IHdpbGwgYmUgc2V0IHdoaWNoIG92ZXJyaWRlcyB0aGUgbm9ybWFsXG4gICAgLy8gZmxleCBsYXlvdXQuXG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC8vIFdlIHVzZSB0aGUgYGNvbHVtbmAgZGlyZWN0aW9uIGhlcmUgdG8gYXZvaWQgc29tZSBmbGV4Ym94IGlzc3VlcyBpbiBFZGdlXG4gICAgLy8gd2hlbiB1c2luZyB0aGUgXCJncm93IGFmdGVyIG9wZW5cIiBvcHRpb25zLlxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAvLyBBZGQgc29tZSBkaW1lbnNpb25zIHNvIHRoZSBlbGVtZW50IGhhcyBhbiBgaW5uZXJUZXh0YCB3aGljaCBzb21lIHBlb3BsZSBkZXBlbmQgb24gaW4gdGVzdHMuXG4gICAgbWluLXdpZHRoOiAxcHg7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICB9XG5cbiAgLy8gVXNlZCB3aGVuIGRpc2FibGluZyBnbG9iYWwgc2Nyb2xsaW5nLlxuICAuY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuXG4gICAgLy8gTmVjZXNzYXJ5IGZvciB0aGUgY29udGVudCBub3QgdG8gbG9zZSBpdHMgd2lkdGguIE5vdGUgdGhhdCB3ZSdyZSB1c2luZyAxMDAlLCBpbnN0ZWFkIG9mXG4gICAgLy8gMTAwdncsIGJlY2F1c2UgMTAwdncgaW5jbHVkZXMgdGhlIHdpZHRoIHBsdXMgdGhlIHNjcm9sbGJhciwgd2hlcmVhcyAxMDAlIGlzIHRoZSB3aWR0aFxuICAgIC8vIHRoYXQgdGhlIGVsZW1lbnQgaGFkIGJlZm9yZSB3ZSBtYWRlIGl0IGBmaXhlZGAuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAvLyBOb3RlOiB0aGlzIHdpbGwgYWx3YXlzIGFkZCBhIHNjcm9sbGJhciB0byB3aGF0ZXZlciBlbGVtZW50IGl0IGlzIG9uLCB3aGljaCBjYW5cbiAgICAvLyBwb3RlbnRpYWxseSByZXN1bHQgaW4gZG91YmxlIHNjcm9sbGJhcnMuIEl0IHNob3VsZG4ndCBiZSBhbiBpc3N1ZSwgYmVjYXVzZSB3ZSB3b24ndFxuICAgIC8vIGJsb2NrIHNjcm9sbGluZyBvbiBhIHBhZ2UgdGhhdCBkb2Vzbid0IGhhdmUgYSBzY3JvbGxiYXIgaW4gdGhlIGZpcnN0IHBsYWNlLlxuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgfVxufVxuXG5AbWl4aW4gY2RrLWExMXkge1xuICAuY2RrLXZpc3VhbGx5LWhpZGRlbiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcblxuICAgIC8vIFRoaXMgd29ya3MgYXJvdW5kIGEgQ2hyb21lIGJ1ZyB0aGF0IGNhbiBjYXVzZSB0aGUgdGFiIHRvIGNyYXNoIHdoZW4gbGFyZ2UgYW1vdW50cyBvZlxuICAgIC8vIG5vbi1FbmdsaXNoIHRleHQgZ2V0IHdyYXBwZWQ6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTEyMDE0NDRcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgb3V0bGluZTogMDtcblxuICAgIC8vIEF2b2lkIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgd2lsbCBzdGlsbCByZW5kZXIgdGhlIG5hdGl2ZSBjb250cm9scyAoc2VlICM5MDQ5KS5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG59XG5cbi8vLyBFbWl0cyB0aGUgbWl4aW4ncyBjb250ZW50IG5lc3RlZCB1bmRlciBgJHNlbGVjdG9yLWNvbnRleHRgIGlmIGAkc2VsZWN0b3ItY29udGV4dGBcbi8vLyBpcyBub24tZW1wdHkuXG4vLy8gQHBhcmFtIHNlbGVjdG9yLWNvbnRleHQgVGhlIHNlbGVjdG9yIHVuZGVyIHdoaWNoIHRvIG5lc3QgdGhlIG1peGluJ3MgY29udGVudC5cbkBtaXhpbiBfY2RrLW9wdGlvbmFsbHktbmVzdC1jb250ZW50KCRzZWxlY3Rvci1jb250ZXh0KSB7XG4gIEBpZiAoJHNlbGVjdG9yLWNvbnRleHQgPT0gJycpIHtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSB7XG4gICAgI3skc2VsZWN0b3ItY29udGV4dH0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgdXNlcnMgaW4gaGlnaCBjb250cmFzdCBtb2RlLiBOb3RlIHRoYXQgdGhpcyBvbmx5IGFwcGxpZXNcbi8vLyB0byBNaWNyb3NvZnQgYnJvd3NlcnMuIENocm9tZSBjYW4gYmUgaW5jbHVkZWQgYnkgY2hlY2tpbmcgZm9yIHRoZSBgaHRtbFtoY11gXG4vLy8gYXR0cmlidXRlLCBob3dldmVyIENocm9tZSBoYW5kbGVzIGhpZ2ggY29udHJhc3QgZGlmZmVyZW50bHkuXG4vLy9cbi8vLyBAcGFyYW0gdGFyZ2V0IFdoaWNoIGtpbmQgb2YgaGlnaCBjb250cmFzdCBzZXR0aW5nIHRvIHRhcmdldC4gRGVmYXVsdHMgdG8gYGFjdGl2ZWAsIGNhbiBiZVxuLy8vICAgIGB3aGl0ZS1vbi1ibGFja2Agb3IgYGJsYWNrLW9uLXdoaXRlYC5cbi8vLyBAcGFyYW0gZW5jYXBzdWxhdGlvbiBXaGV0aGVyIHRvIGVtaXQgc3R5bGVzIGZvciB2aWV3IGVuY2Fwc3VsYXRpb24uIFZhbHVlcyBhcmU6XG4vLy8gICAgICogYG9uYCAtIHdvcmtzIGZvciBgRW11bGF0ZWRgLCBgTmF0aXZlYCwgYW5kIGBTaGFkb3dEb21gXG4vLy8gICAgICogYG9mZmAgLSB3b3JrcyBmb3IgYE5vbmVgXG4vLy8gICAgICogYGFueWAgLSB3b3JrcyBmb3IgYWxsIGVuY2Fwc3VsYXRpb24gbW9kZXMgYnkgZW1pdHRpbmcgdGhlIENTUyB0d2ljZSAoZGVmYXVsdCkuXG5AbWl4aW4gY2RrLWhpZ2gtY29udHJhc3QoJHRhcmdldDogYWN0aXZlLCAkZW5jYXBzdWxhdGlvbjogJ2FueScpIHtcbiAgQGlmICgkdGFyZ2V0ICE9ICdhY3RpdmUnIGFuZCAkdGFyZ2V0ICE9ICdibGFjay1vbi13aGl0ZScgYW5kICR0YXJnZXQgIT0gJ3doaXRlLW9uLWJsYWNrJykge1xuICAgIEBlcnJvciAnVW5rbm93biBjZGstaGlnaC1jb250cmFzdCB2YWx1ZSBcIiN7JHRhcmdldH1cIiBwcm92aWRlZC4gJyArXG4gICAgICAgICAgICdBbGxvd2VkIHZhbHVlcyBhcmUgXCJhY3RpdmVcIiwgXCJibGFjay1vbi13aGl0ZVwiLCBhbmQgXCJ3aGl0ZS1vbi1ibGFja1wiJztcbiAgfVxuXG4gIEBpZiAoJGVuY2Fwc3VsYXRpb24gIT0gJ29uJyBhbmQgJGVuY2Fwc3VsYXRpb24gIT0gJ29mZicgYW5kICRlbmNhcHN1bGF0aW9uICE9ICdhbnknKSB7XG4gICAgQGVycm9yICdVbmtub3duIGNkay1oaWdoLWNvbnRyYXN0IGVuY2Fwc3VsYXRpb24gXCIjeyRlbmNhcHN1bGF0aW9ufVwiIHByb3ZpZGVkLiAnICtcbiAgICAgICAgICAgJ0FsbG93ZWQgdmFsdWVzIGFyZSBcIm9uXCIsIFwib2ZmXCIsIGFuZCBcImFueVwiJztcbiAgfVxuXG4gIC8vIElmIHRoZSBzZWxlY3RvciBjb250ZXh0IGhhcyBtdWx0aXBsZSBwYXJ0cywgc3VjaCBhcyBgLnNlY3Rpb24sIC5yZWdpb25gLCBqdXN0IGRvaW5nXG4gIC8vIGAuY2RrLWhpZ2gtY29udHJhc3QteHh4ICN7Jn1gIHdpbGwgb25seSBhcHBseSB0aGUgcGFyZW50IHNlbGVjdG9yIHRvIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZVxuICAvLyBjb250ZXh0LiBXZSBhZGRyZXNzIHRoaXMgYnkgbmVzdGluZyB0aGUgc2VsZWN0b3IgY29udGV4dCB1bmRlciAuY2RrLWhpZ2gtY29udHJhc3QuXG4gIEBhdC1yb290IHtcbiAgICAkc2VsZWN0b3ItY29udGV4dDogI3smfTtcblxuICAgIEBpZiAoJGVuY2Fwc3VsYXRpb24gIT0gJ29uJykge1xuICAgICAgLy8gTm90ZSB0aGF0IGlmIHRoaXMgc2VsZWN0b3IgaXMgdXBkYXRlZCwgdGhlIHNhbWUgY2hhbmdlIGhhcyB0byBiZSBtYWRlIGluc2lkZVxuICAgICAgLy8gYF9vdmVybGF5LnNjc3NgIHdoaWNoIGNhbid0IGRlcGVuZCBvbiB0aGlzIG1peGluIGR1ZSB0byBzb21lIGluZnJhc3RydWN0dXJlIGxpbWl0YXRpb25zLlxuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LSN7JHRhcmdldH0ge1xuICAgICAgICBAaW5jbHVkZSBfY2RrLW9wdGlvbmFsbHktbmVzdC1jb250ZW50KCRzZWxlY3Rvci1jb250ZXh0KSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCRlbmNhcHN1bGF0aW9uICE9ICdvZmYnKSB7XG4gICAgICAuY2RrLWhpZ2gtY29udHJhc3QtI3skdGFyZ2V0fSA6aG9zdCB7XG4gICAgICAgIEBpbmNsdWRlIF9jZGstb3B0aW9uYWxseS1uZXN0LWNvbnRlbnQoJHNlbGVjdG9yLWNvbnRleHQpIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBDb3JlIHN0eWxlcyB0aGF0IGVuYWJsZSBtb25pdG9yaW5nIGF1dG9maWxsIHN0YXRlIG9mIHRleHQgZmllbGRzLlxuQG1peGluIGNkay10ZXh0LWZpZWxkIHtcbiAgLy8gS2V5ZnJhbWVzIHRoYXQgYXBwbHkgbm8gc3R5bGVzLCBidXQgYWxsb3cgdXMgdG8gbW9uaXRvciB3aGVuIGFuIHRleHQgZmllbGQgYmVjb21lcyBhdXRvZmlsbGVkXG4gIC8vIGJ5IHdhdGNoaW5nIGZvciB0aGUgYW5pbWF0aW9uIGV2ZW50cyB0aGF0IGFyZSBmaXJlZCB3aGVuIHRoZXkgc3RhcnQuIE5vdGU6IHRoZSAvKiEqLyBjb21tZW50IGlzXG4gIC8vIG5lZWRlZCB0byBwcmV2ZW50IExpYlNhc3MgZnJvbSBzdHJpcHBpbmcgdGhlIGtleWZyYW1lcyBvdXQuXG4gIC8vIEJhc2VkIG9uOiBodHRwczovL21lZGl1bS5jb20vQGJydW5uL2RldGVjdGluZy1hdXRvZmlsbGVkLWZpZWxkcy1pbi1qYXZhc2NyaXB0LWFlZDU5OGQyNWRhN1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IHsvKiEqL31cbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgey8qISovfVxuXG4gIC5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgLy8gU2luY2UgQ2hyb21lIDgwIHdlIG5lZWQgYSAxbXMgZGVsYXksIG9yIHRoZSBhbmltYXRpb25zdGFydCBldmVudCB3b24ndCBmaXJlLlxuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgMHMgMW1zO1xuICB9XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDpub3QoOi13ZWJraXQtYXV0b2ZpbGwpIHtcbiAgICAvLyBTaW5jZSBDaHJvbWUgODAgd2UgbmVlZCBhIDFtcyBkZWxheSwgb3IgdGhlIGFuaW1hdGlvbnN0YXJ0IGV2ZW50IHdvbid0IGZpcmUuXG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgMHMgMW1zO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSByZXNpemUgaGFuZGxlIG9uIGF1dG9zaXppbmcgdGV4dGFyZWFzLCBiZWNhdXNlIHdoYXRldmVyIGhlaWdodFxuICAvLyB0aGUgdXNlciByZXNpemVkIHRvIHdpbGwgYmUgb3ZlcndyaXR0ZW4gb25jZSB0aGV5IHN0YXJ0IHR5cGluZyBhZ2Fpbi5cbiAgdGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplIHtcbiAgICByZXNpemU6IG5vbmU7XG4gIH1cblxuICAvLyBUaGlzIGNsYXNzIGlzIHRlbXBvcmFyaWx5IGFwcGxpZWQgdG8gdGhlIHRleHRhcmVhIHdoZW4gaXQgaXMgYmVpbmcgbWVhc3VyZWQuIEl0IGlzIGltbWVkaWF0ZWx5XG4gIC8vIHJlbW92ZWQgd2hlbiBtZWFzdXJpbmcgaXMgY29tcGxldGUuIFdlIHVzZSBgIWltcG9ydGFudGAgcnVsZXMgaGVyZSB0byBtYWtlIHN1cmUgdXNlci1zcGVjaWZpZWRcbiAgLy8gcnVsZXMgZG8gbm90IGludGVyZmVyZSB3aXRoIHRoZSBtZWFzdXJlbWVudC5cbiAgdGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZyB7XG4gICAgQGluY2x1ZGUgX2Nkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctYmFzZTtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBTaW1pbGFyIHRvIHRoZSBgY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZ2AgY2xhc3MsIGJ1dCBvbmx5IGFwcGxpZWQgb24gRmlyZWZveC4gV2UgbmVlZFxuICAvLyB0byB1c2UgdGhpcyBjbGFzcywgYmVjYXVzZSBGaXJlZm94IGhhcyBhIGJ1ZyB3aGVyZSBjaGFuZ2luZyB0aGUgYG92ZXJmbG93YCBicmVha3MgdGhlIHVzZXInc1xuICAvLyBhYmlsaXR5IHRvIHVuZG8vcmVkbyB3aGF0IHRoZXkgd2VyZSB0eXBpbmcgKHNlZSAjMTY2MjkpLiBUaGlzIGNsYXNzIGlzIG9ubHkgc2NvcGVkIHRvIEZpcmVmb3gsXG4gIC8vIGJlY2F1c2UgdGhlIG1lYXN1cmVtZW50cyB0aGVyZSBkb24ndCBzZWVtIHRvIGJlIGFmZmVjdGVkIGJ5IHRoZSBgaGVpZ2h0OiAwYCwgd2hlcmVhcyBvbiBvdGhlclxuICAvLyBicm93c2VycyB0aGV5IGFyZSwgZS5nLiBDaHJvbWUgZGV0ZWN0cyBsb25nZXIgdGV4dCBhbmQgSUUgZG9lcyd0IHJlc2l6ZSBiYWNrIHRvIG5vcm1hbC5cbiAgLy8gSWRlbnRpY2FsIGlzc3VlIHJlcG9ydDogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ4Nzg0XG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctZmlyZWZveCB7XG4gICAgQGluY2x1ZGUgX2Nkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctYmFzZTtcbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gX2Nkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmctYmFzZSB7XG4gIC8vIEhhdmluZyAycHggdG9wIGFuZCBib3R0b20gcGFkZGluZyBzZWVtcyB0byBmaXggYSBidWcgd2hlcmUgQ2hyb21lIGdldHMgYW4gaW5jb3JyZWN0XG4gIC8vIG1lYXN1cmVtZW50LiBXZSBqdXN0IGhhdmUgdG8gYWNjb3VudCBmb3IgaXQgbGF0ZXIgYW5kIHN1YnRyYWN0IGl0IG9mZiB0aGUgZmluYWwgcmVzdWx0LlxuICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xufVxuXG4vLyBVc2VkIHRvIGdlbmVyYXRlIFVJRHMgZm9yIGtleWZyYW1lcyB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dCBmaWVsZCBhdXRvZmlsbCBzdHlsZXMuXG4kY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnQ6IDA7XG5cbi8vIE1peGluIHVzZWQgdG8gYXBwbHkgY3VzdG9tIGJhY2tncm91bmQgYW5kIGZvcmVncm91bmQgY29sb3JzIHRvIGFuIGF1dG9maWxsZWQgdGV4dCBmaWVsZC5cbi8vIEJhc2VkIG9uOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yNzgxNTQ5L1xuLy8gcmVtb3ZpbmctaW5wdXQtYmFja2dyb3VuZC1jb2xvdXItZm9yLWNocm9tZS1hdXRvY29tcGxldGUjYW5zd2VyLTM3NDMyMjYwXG5AbWl4aW4gY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3IoJGJhY2tncm91bmQsICRmb3JlZ3JvdW5kOicnKSB7XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9IHtcbiAgICB0byB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgIEBpZiAkZm9yZWdyb3VuZCAhPSAnJyB7IGNvbG9yOiAkZm9yZWdyb3VuZDsgfVxuICAgIH1cbiAgfVxuXG4gICY6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH0gYm90aDtcbiAgfVxuXG4gICYuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIC8vIFNpbmNlIENocm9tZSA4MCB3ZSBuZWVkIGEgMW1zIGRlbGF5IGZvciBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCwgb3IgdGhlIGFuaW1hdGlvbnN0YXJ0XG4gICAgLy8gZXZlbnQgd29uJ3QgZmlyZS5cbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtcyxcbiAgICAgICAgICAgICAgIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSBib3RoO1xuICB9XG5cbiAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OlxuICAgICAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50ICsgMSAhZ2xvYmFsO1xufVxuXG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgbWF0ZXJpYWwgZGVzaWduIHRyZWF0bWVudHMgdG8gYW55IGVsZW1lbnQuXG4vLyBNZWRpYSBxdWVyaWVzXG4vLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBDaGFuZ2UgJG1hdC14c21hbGwgYW5kICRtYXQtc21hbGwgdXNhZ2VzIHRvIHJlbHkgb24gQnJlYWtwb2ludE9ic2VydmVyLFxuJG1hdC14c21hbGw6ICdtYXgtd2lkdGg6IDU5OXB4JztcbiRtYXQtc21hbGw6ICdtYXgtd2lkdGg6IDk1OXB4JztcblxuLy8gVE9ETzogUmV2aXNpdCBhbGwgei1pbmRpY2VzIGJlZm9yZSBiZXRhXG4vLyB6LWluZGV4IG1hc3RlciBsaXN0XG5cbiR6LWluZGV4LWZhYjogMjAgIWRlZmF1bHQ7XG4kei1pbmRleC1kcmF3ZXI6IDEwMCAhZGVmYXVsdDtcblxuLy8gR2xvYmFsIGNvbnN0YW50c1xuJHBpOiAzLjE0MTU5MjY1O1xuXG4vLyBQYWRkaW5nIGJldHdlZW4gaW5wdXQgdG9nZ2xlcyBhbmQgdGhlaXIgbGFiZWxzXG4kbWF0LXRvZ2dsZS1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4vLyBXaWR0aCBhbmQgaGVpZ2h0IG9mIGlucHV0IHRvZ2dsZXNcbiRtYXQtdG9nZ2xlLXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vIEVhc2luZyBDdXJ2ZXNcbi8vIFRPRE8oamVsYm91cm4pOiBhbGwgb2YgdGhlc2UgbmVlZCB0byBiZSByZXZpc2l0ZWRcblxuLy8gVGhlIGRlZmF1bHQgYW5pbWF0aW9uIGN1cnZlcyB1c2VkIGJ5IG1hdGVyaWFsIGRlc2lnbi5cbiRtYXQtbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKSAhZGVmYXVsdDtcbiRtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LWxpbmVhci1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuXG4kZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2Utb3V0OiBhbGwgJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uICRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLWR1cmF0aW9uOiAzMDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMikgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbjogYWxsICRzd2lmdC1lYXNlLWluLWR1cmF0aW9uICRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2UtaW4tb3V0LWR1cmF0aW9uOiA1MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb246ICRlYXNlLWluLW91dC1jdXJ2ZS1mdW5jdGlvbiAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dDogYWxsICRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtbGluZWFyLWR1cmF0aW9uOiA4MG1zICFkZWZhdWx0O1xuJHN3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXI6IGFsbCAkc3dpZnQtbGluZWFyLWR1cmF0aW9uICRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG5cblxuLy8gQSBjb2xsZWN0aW9uIG9mIG1peGlucyBhbmQgQ1NTIGNsYXNzZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBlbGV2YXRpb24gdG8gYSBtYXRlcmlhbFxuLy8gZWxlbWVudC5cbi8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vZW52aXJvbm1lbnQvZWxldmF0aW9uLmh0bWxcbi8vIEV4YW1wbGVzOlxuLy9cbi8vXG4vLyAubWF0LWZvbyB7XG4vLyAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDIpO1xuLy9cbi8vICAgJjphY3RpdmUge1xuLy8gICAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDgpO1xuLy8gICB9XG4vLyB9XG4vL1xuLy8gPGRpdiBpZD1cImV4dGVybmFsLWNhcmRcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejJcIj48cD5Tb21lIGNvbnRlbnQ8L3A+PC9kaXY+XG4vL1xuLy8gRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNpZ24gYmVoaW5kIGhvdyBlbGV2YXRpb24gaXMgaW1wbGVtZW50ZWQsIHNlZSB0aGUgZGVzaWduIGRvYyBhdFxuLy8gaHR0cHM6Ly9nb28uZ2wvS3EwazlaLlxuXG4vLyBDb2xvcnMgZm9yIHVtYnJhLCBwZW51bWJyYSwgYW5kIGFtYmllbnQgc2hhZG93cy4gQXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLCBlYWNoIGVsZXZhdGlvblxuLy8gbGV2ZWwgaXMgY3JlYXRlZCB1c2luZyBhIHNldCBvZiAzIHNoYWRvdyB2YWx1ZXMsIG9uZSBmb3IgdW1icmEgKHRoZSBzaGFkb3cgcmVwcmVzZW50aW5nIHRoZVxuLy8gc3BhY2UgY29tcGxldGVseSBvYnNjdXJlZCBieSBhbiBvYmplY3QgcmVsYXRpdmUgdG8gaXRzIGxpZ2h0IHNvdXJjZSksIG9uZSBmb3IgcGVudW1icmEgKHRoZVxuLy8gc3BhY2UgcGFydGlhbGx5IG9ic2N1cmVkIGJ5IGFuIG9iamVjdCksIGFuZCBvbmUgZm9yIGFtYmllbnQgKHRoZSBzcGFjZSB3aGljaCBjb250YWlucyB0aGUgb2JqZWN0XG4vLyBpdHNlbGYpLiBGb3IgYSBmdXJ0aGVyIGV4cGxhbmF0aW9uIG9mIHRoZXNlIHRlcm1zIGFuZCB0aGVpciBtZWFuaW5ncywgc2VlXG4vLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VbWJyYSxfcGVudW1icmFfYW5kX2FudHVtYnJhLlxuXG4vLyBNYXBzIGZvciB0aGUgZGlmZmVyZW50IHNoYWRvdyBzZXRzIGFuZCB0aGVpciB2YWx1ZXMgd2l0aGluIGVhY2ggei1zcGFjZS4gVGhlc2UgdmFsdWVzIHdlcmVcbi8vIGNyZWF0ZWQgYnkgdGFraW5nIGEgZmV3IHJlZmVyZW5jZSBzaGFkb3cgc2V0cyBjcmVhdGVkIGJ5IEdvb2dsZSdzIERlc2lnbmVycyBhbmQgaW50ZXJwb2xhdGluZ1xuLy8gYWxsIG9mIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGVtLlxuXG5AZnVuY3Rpb24gX2dldC11bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMiksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDJweCAxcHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDNweCAxcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDNweCAzcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDJweCA0cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDRweCA1cHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDVweCA1cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDVweCA2cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCA2cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggNnB4IDdweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDdweCA4cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggN3B4IDlweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDhweCA5cHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCA4cHggMTBweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDhweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggOXB4IDExcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCA5cHggMTJweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDEwcHggMTRweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDExcHggMTRweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDExcHggMTVweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LXBlbnVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4xNCksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDFweCAxcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggMnB4IDJweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggNHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDRweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggNXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCA2cHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA3cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA4cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA5cHggMTJweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggMTBweCAxNHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCAxMXB4IDE1cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDEycHggMTdweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggMTNweCAxOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCAxNHB4IDIxcHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDE1cHggMjJweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggMTZweCAyNHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCAxN3B4IDI2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDE4cHggMjhweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggMTlweCAyOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAyMHB4IDMxcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDIxcHggMzNweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggMjJweCAzNXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAyM3B4IDM2cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDI0cHggMzhweCAzcHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuQGZ1bmN0aW9uIF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggM3B4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDFweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggMXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAxcHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAxcHggMTRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAxcHggMThweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCAycHggMTZweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCAzcHggMTRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCAzcHggMTZweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNHB4IDE4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDRweCAyMHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA1cHggMjJweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggNXB4IDI0cHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDVweCAyNnB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA2cHggMjhweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggNnB4IDMwcHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDZweCAzMnB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCA3cHggMzRweCA2cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggN3B4IDM2cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDhweCAzOHB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCA4cHggNDBweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggOHB4IDQycHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDlweCA0NHB4IDhweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCA5cHggNDZweCA4cHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuLy8gVGhlIGRlZmF1bHQgZHVyYXRpb24gdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb246IDI4MG1zICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBlYXNpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uO1xuXG4vLyBUaGUgZGVmYXVsdCBjb2xvciBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IG9wYWNpdHkgc2NhbGluZyB2YWx1ZSBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1vcGFjaXR5OiAxICFkZWZhdWx0O1xuXG4vLyBQcmVmaXggZm9yIGVsZXZhdGlvbi1yZWxhdGVkIHNlbGVjdG9ycy5cbiRtYXQtZWxldmF0aW9uLXByZWZpeDogJ21hdC1lbGV2YXRpb24teic7XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgY3NzIHJ1bGVzIHRvIGFuIGVsZW1lbnQgdG8gZ2l2ZSBpdCB0aGUgZWxldmF0aW9uIHNwZWNpZmllZCBieSAkelZhbHVlLlxuLy8gVGhlICR6VmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0LlxuQG1peGluIG1hdC1lbGV2YXRpb24oJHpWYWx1ZSwgJGNvbG9yOiAkbWF0LWVsZXZhdGlvbi1jb2xvciwgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgQGlmIHR5cGUtb2YoJHpWYWx1ZSkgIT0gbnVtYmVyIG9yIG5vdCB1bml0bGVzcygkelZhbHVlKSB7XG4gICAgQGVycm9yICckelZhbHVlIG11c3QgYmUgYSB1bml0bGVzcyBudW1iZXInO1xuICB9XG4gIEBpZiAkelZhbHVlIDwgMCBvciAkelZhbHVlID4gMjQge1xuICAgIEBlcnJvciAnJHpWYWx1ZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjQnO1xuICB9XG5cbiAgYm94LXNoYWRvdzogI3ttYXAtZ2V0KF9nZXQtdW1icmEtbWFwKCRjb2xvciwgJG9wYWNpdHkpLCAkelZhbHVlKX0sXG4gICAgICAgICAgICAgICN7bWFwLWdldChfZ2V0LXBlbnVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9LFxuICAgICAgICAgICAgICAje21hcC1nZXQoX2dldC1hbWJpZW50LW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9O1xufVxuXG4vLyBBcHBsaWVzIHRoZSBlbGV2YXRpb24gdG8gYW4gZWxlbWVudCBpbiBhIG1hbm5lciB0aGF0IGFsbG93c1xuLy8gY29uc3VtZXJzIHRvIG92ZXJyaWRlIGl0IHZpYSB0aGUgTWF0ZXJpYWwgZWxldmF0aW9uIGNsYXNzZXMuXG5AbWl4aW4gbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbihcbiAgICAkelZhbHVlLFxuICAgICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsXG4gICAgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJjpub3QoW2NsYXNzKj0nI3skbWF0LWVsZXZhdGlvbi1wcmVmaXh9J10pIHtcbiAgICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRjb2xvciwgJG9wYWNpdHkpO1xuICB9XG59XG5cbi8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgdmFsdWUgZm9yIGEgdHJhbnNpdGlvbiBwcm9wZXJ0eSBmb3IgZWxldmF0aW9uLlxuLy8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGlzIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGEgY29tcG9uZW50IG5lZWRzIHRvIHRyYW5zaXRpb25cbi8vIG1vcmUgdGhhbiBvbmUgcHJvcGVydHkuXG4vL1xuLy8gLmZvbyB7XG4vLyAgIHRyYW5zaXRpb246IG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZSgpLCBvcGFjaXR5IDEwMG1zIGVhc2U7XG4vLyB9XG5AZnVuY3Rpb24gbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKFxuICAgICRkdXJhdGlvbjogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAkZWFzaW5nOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikge1xuICBAcmV0dXJuIGJveC1zaGFkb3cgI3skZHVyYXRpb259ICN7JGVhc2luZ307XG59XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgY3NzIHJ1bGVzIG5lZWRlZCB0byBoYXZlIGFuIGVsZW1lbnQgdHJhbnNpdGlvbiBiZXR3ZWVuIGVsZXZhdGlvbnMuXG4vLyBUaGlzIG1peGluIHNob3VsZCBiZSBhcHBsaWVkIHRvIGVsZW1lbnRzIHdob3NlIGVsZXZhdGlvbiB2YWx1ZXMgd2lsbCBjaGFuZ2UgZGVwZW5kaW5nIG9uIHRoZWlyXG4vLyBjb250ZXh0IChlLmcuIHdoZW4gYWN0aXZlIG9yIGRpc2FibGVkKS5cbi8vXG4vLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBCb3RoIHRoaXMgbWl4aW4gYW5kIHRoZSBhYm92ZSBmdW5jdGlvbiB1c2UgZGVmYXVsdCBwYXJhbWV0ZXJzIHNvIHRoZXkgY2FuXG4vLyBiZSB1c2VkIGluIHRoZSBzYW1lIHdheSBieSBjbGllbnRzLlxuQG1peGluIG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbihcbiAgICAkZHVyYXRpb246ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgJGVhc2luZzogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pIHtcbiAgdHJhbnNpdGlvbjogbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKCRkdXJhdGlvbiwgJGVhc2luZyk7XG59XG5cblxuQG1peGluIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkY29uZmlnLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG5AbWl4aW4gbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKCR6VmFsdWUsICRjb25maWcsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkZWxldmF0aW9uLWNvbG9yOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBlbGV2YXRpb24pO1xuICAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQ6IGlmKCRlbGV2YXRpb24tY29sb3IgPT0gbnVsbCwgJG1hdC1lbGV2YXRpb24tY29sb3IsICRlbGV2YXRpb24tY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0LCAkb3BhY2l0eSk7XG59XG5cbi8vIElmIHRoZSBtYXQtYW5pbWF0aW9uLW5vb3AgY2xhc3MgaXMgcHJlc2VudCBvbiB0aGUgY29tcG9uZW50cyByb290IGVsZW1lbnQsXG4vLyBwcmV2ZW50IG5vbiBjc3MgYW5pbWF0aW9ucyBmcm9tIHJ1bm5pbmcuXG4vLyBOT1RFOiBDdXJyZW50bHkgdGhpcyBtaXhpbiBzaG91bGQgb25seSBiZSB1c2VkIHdpdGggY29tcG9uZW50cyB0aGF0IGRvIG5vdFxuLy8gaGF2ZSBhbnkgcHJvamVjdGVkIGNvbnRlbnQuXG5AbWl4aW4gbWF0LXByaXZhdGUtYW5pbWF0aW9uLW5vb3AoKSB7XG4gIC8vIEBhdC1yb290IGlzIHVzZWQgdG8gc3RlcHMgb3V0c2lkZSBvZiB0aGUgaGllcmFyY2h5IG9mIHRoZSBzY3NzIHJ1bGVzLiBUaGlzIGlzXG4gIC8vIGRvbmUgdG8gYWxsb3cgYSBjbGFzcyB0byBiZSBhZGRlZCB0byBiZSBhZGRlZCB0byBiYXNlIG9mIHRoZSBzY3NzIG5lc3RpbmdcbiAgLy8gY29udGV4dC5cbiAgLy8gRm9yIGV4YW1wbGU6XG4gIC8vIC5teS1yb290IHtcbiAgLy8gICAubXktc3ViY2xhc3Mge1xuICAvLyAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLWFuaW1hdGlvbi1ub29wKCk7XG4gIC8vICAgIH1cbiAgLy8gfVxuICAvLyByZXN1bHRzIGluOlxuICAvLyAuX21hdC1hbmltYXRpb24tbm9vcGFibGUubXktcm9vdCAubXktc3ViY2xhc3MgeyAuLi4gfVxuICBAYXQtcm9vdCAuX21hdC1hbmltYXRpb24tbm9vcGFibGUjeyZ9IHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBDb2xvciBwYWxldHRlcyBmcm9tIHRoZSBNYXRlcmlhbCBEZXNpZ24gc3BlYy5cbi8vIFNlZSBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi9jb2xvci9cbi8vXG4vLyBDb250cmFzdCBjb2xvcnMgYXJlIGhhcmQtY29kZWQgYmVjYXVzZSBpdCBpcyB0b28gZGlmZmljdWx0IChwcm9iYWJseSBpbXBvc3NpYmxlKSB0b1xuLy8gY2FsY3VsYXRlIHRoZW0uIFRoZXNlIGNvbnRyYXN0IGNvbG9ycyBhcmUgcHVsbGVkIGZyb20gdGhlIHB1YmxpYyBNYXRlcmlhbCBEZXNpZ24gc3BlYyBzd2F0Y2hlcy5cbi8vIFdoaWxlIHRoZSBjb250cmFzdCBjb2xvcnMgaW4gdGhlIHNwZWMgYXJlIG5vdCBwcmVzY3JpcHRpdmUsIHdlIHVzZSB0aGVtIGZvciBjb252ZW5pZW5jZS5cblxuXG4vLyBAZGVwcmVjYXRlZCByZW5hbWVkIHRvICRkYXJrLXByaW1hcnktdGV4dC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay04Ny1vcGFjaXR5OiByZ2JhKGJsYWNrLCAwLjg3KTtcbi8vIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gJGxpZ2h0LXByaW1hcnktdGV4dC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiR3aGl0ZS04Ny1vcGFjaXR5OiByZ2JhKHdoaXRlLCAwLjg3KTtcbi8vIEBkZXByZWNhdGVkIHVzZSAkZGFyay1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTEyLW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuMTIpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRsaWdodC1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTEyLW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuMTIpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRkYXJrLVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stNi1vcGFjaXR5OiByZ2JhKGJsYWNrLCAwLjA2KTtcbi8vIEBkZXByZWNhdGVkIHVzZSAkbGlnaHQtW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiR3aGl0ZS02LW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuMDYpO1xuXG4kZGFyay1wcmltYXJ5LXRleHQ6IHJnYmEoYmxhY2ssIDAuODcpO1xuJGRhcmstc2Vjb25kYXJ5LXRleHQ6IHJnYmEoYmxhY2ssIDAuNTQpO1xuJGRhcmstZGlzYWJsZWQtdGV4dDogcmdiYShibGFjaywgMC4zOCk7XG4kZGFyay1kaXZpZGVyczogcmdiYShibGFjaywgMC4xMik7XG4kZGFyay1mb2N1c2VkOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRsaWdodC1wcmltYXJ5LXRleHQ6IHdoaXRlO1xuJGxpZ2h0LXNlY29uZGFyeS10ZXh0OiByZ2JhKHdoaXRlLCAwLjcpO1xuJGxpZ2h0LWRpc2FibGVkLXRleHQ6IHJnYmEod2hpdGUsIDAuNSk7XG4kbGlnaHQtZGl2aWRlcnM6IHJnYmEod2hpdGUsIDAuMTIpO1xuJGxpZ2h0LWZvY3VzZWQ6IHJnYmEod2hpdGUsIDAuMTIpO1xuXG4kbWF0LXJlZDogKFxuICA1MDogI2ZmZWJlZSxcbiAgMTAwOiAjZmZjZGQyLFxuICAyMDA6ICNlZjlhOWEsXG4gIDMwMDogI2U1NzM3MyxcbiAgNDAwOiAjZWY1MzUwLFxuICA1MDA6ICNmNDQzMzYsXG4gIDYwMDogI2U1MzkzNSxcbiAgNzAwOiAjZDMyZjJmLFxuICA4MDA6ICNjNjI4MjgsXG4gIDkwMDogI2I3MWMxYyxcbiAgQTEwMDogI2ZmOGE4MCxcbiAgQTIwMDogI2ZmNTI1MixcbiAgQTQwMDogI2ZmMTc0NCxcbiAgQTcwMDogI2Q1MDAwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXBpbms6IChcbiAgNTA6ICNmY2U0ZWMsXG4gIDEwMDogI2Y4YmJkMCxcbiAgMjAwOiAjZjQ4ZmIxLFxuICAzMDA6ICNmMDYyOTIsXG4gIDQwMDogI2VjNDA3YSxcbiAgNTAwOiAjZTkxZTYzLFxuICA2MDA6ICNkODFiNjAsXG4gIDcwMDogI2MyMTg1YixcbiAgODAwOiAjYWQxNDU3LFxuICA5MDA6ICM4ODBlNGYsXG4gIEExMDA6ICNmZjgwYWIsXG4gIEEyMDA6ICNmZjQwODEsXG4gIEE0MDA6ICNmNTAwNTcsXG4gIEE3MDA6ICNjNTExNjIsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1wdXJwbGU6IChcbiAgNTA6ICNmM2U1ZjUsXG4gIDEwMDogI2UxYmVlNyxcbiAgMjAwOiAjY2U5M2Q4LFxuICAzMDA6ICNiYTY4YzgsXG4gIDQwMDogI2FiNDdiYyxcbiAgNTAwOiAjOWMyN2IwLFxuICA2MDA6ICM4ZTI0YWEsXG4gIDcwMDogIzdiMWZhMixcbiAgODAwOiAjNmExYjlhLFxuICA5MDA6ICM0YTE0OGMsXG4gIEExMDA6ICNlYTgwZmMsXG4gIEEyMDA6ICNlMDQwZmIsXG4gIEE0MDA6ICNkNTAwZjksXG4gIEE3MDA6ICNhYTAwZmYsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWRlZXAtcHVycGxlOiAoXG4gIDUwOiAjZWRlN2Y2LFxuICAxMDA6ICNkMWM0ZTksXG4gIDIwMDogI2IzOWRkYixcbiAgMzAwOiAjOTU3NWNkLFxuICA0MDA6ICM3ZTU3YzIsXG4gIDUwMDogIzY3M2FiNyxcbiAgNjAwOiAjNWUzNWIxLFxuICA3MDA6ICM1MTJkYTgsXG4gIDgwMDogIzQ1MjdhMCxcbiAgOTAwOiAjMzExYjkyLFxuICBBMTAwOiAjYjM4OGZmLFxuICBBMjAwOiAjN2M0ZGZmLFxuICBBNDAwOiAjNjUxZmZmLFxuICBBNzAwOiAjNjIwMGVhLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1pbmRpZ286IChcbiAgNTA6ICNlOGVhZjYsXG4gIDEwMDogI2M1Y2FlOSxcbiAgMjAwOiAjOWZhOGRhLFxuICAzMDA6ICM3OTg2Y2IsXG4gIDQwMDogIzVjNmJjMCxcbiAgNTAwOiAjM2Y1MWI1LFxuICA2MDA6ICMzOTQ5YWIsXG4gIDcwMDogIzMwM2Y5ZixcbiAgODAwOiAjMjgzNTkzLFxuICA5MDA6ICMxYTIzN2UsXG4gIEExMDA6ICM4YzllZmYsXG4gIEEyMDA6ICM1MzZkZmUsXG4gIEE0MDA6ICMzZDVhZmUsXG4gIEE3MDA6ICMzMDRmZmUsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWJsdWU6IChcbiAgNTA6ICNlM2YyZmQsXG4gIDEwMDogI2JiZGVmYixcbiAgMjAwOiAjOTBjYWY5LFxuICAzMDA6ICM2NGI1ZjYsXG4gIDQwMDogIzQyYTVmNSxcbiAgNTAwOiAjMjE5NmYzLFxuICA2MDA6ICMxZTg4ZTUsXG4gIDcwMDogIzE5NzZkMixcbiAgODAwOiAjMTU2NWMwLFxuICA5MDA6ICMwZDQ3YTEsXG4gIEExMDA6ICM4MmIxZmYsXG4gIEEyMDA6ICM0NDhhZmYsXG4gIEE0MDA6ICMyOTc5ZmYsXG4gIEE3MDA6ICMyOTYyZmYsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1saWdodC1ibHVlOiAoXG4gIDUwOiAjZTFmNWZlLFxuICAxMDA6ICNiM2U1ZmMsXG4gIDIwMDogIzgxZDRmYSxcbiAgMzAwOiAjNGZjM2Y3LFxuICA0MDA6ICMyOWI2ZjYsXG4gIDUwMDogIzAzYTlmNCxcbiAgNjAwOiAjMDM5YmU1LFxuICA3MDA6ICMwMjg4ZDEsXG4gIDgwMDogIzAyNzdiZCxcbiAgOTAwOiAjMDE1NzliLFxuICBBMTAwOiAjODBkOGZmLFxuICBBMjAwOiAjNDBjNGZmLFxuICBBNDAwOiAjMDBiMGZmLFxuICBBNzAwOiAjMDA5MWVhLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWN5YW46IChcbiAgNTA6ICNlMGY3ZmEsXG4gIDEwMDogI2IyZWJmMixcbiAgMjAwOiAjODBkZWVhLFxuICAzMDA6ICM0ZGQwZTEsXG4gIDQwMDogIzI2YzZkYSxcbiAgNTAwOiAjMDBiY2Q0LFxuICA2MDA6ICMwMGFjYzEsXG4gIDcwMDogIzAwOTdhNyxcbiAgODAwOiAjMDA4MzhmLFxuICA5MDA6ICMwMDYwNjQsXG4gIEExMDA6ICM4NGZmZmYsXG4gIEEyMDA6ICMxOGZmZmYsXG4gIEE0MDA6ICMwMGU1ZmYsXG4gIEE3MDA6ICMwMGI4ZDQsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC10ZWFsOiAoXG4gIDUwOiAjZTBmMmYxLFxuICAxMDA6ICNiMmRmZGIsXG4gIDIwMDogIzgwY2JjNCxcbiAgMzAwOiAjNGRiNmFjLFxuICA0MDA6ICMyNmE2OWEsXG4gIDUwMDogIzAwOTY4OCxcbiAgNjAwOiAjMDA4OTdiLFxuICA3MDA6ICMwMDc5NmIsXG4gIDgwMDogIzAwNjk1YyxcbiAgOTAwOiAjMDA0ZDQwLFxuICBBMTAwOiAjYTdmZmViLFxuICBBMjAwOiAjNjRmZmRhLFxuICBBNDAwOiAjMWRlOWI2LFxuICBBNzAwOiAjMDBiZmE1LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZ3JlZW46IChcbiAgNTA6ICNlOGY1ZTksXG4gIDEwMDogI2M4ZTZjOSxcbiAgMjAwOiAjYTVkNmE3LFxuICAzMDA6ICM4MWM3ODQsXG4gIDQwMDogIzY2YmI2YSxcbiAgNTAwOiAjNGNhZjUwLFxuICA2MDA6ICM0M2EwNDcsXG4gIDcwMDogIzM4OGUzYyxcbiAgODAwOiAjMmU3ZDMyLFxuICA5MDA6ICMxYjVlMjAsXG4gIEExMDA6ICNiOWY2Y2EsXG4gIEEyMDA6ICM2OWYwYWUsXG4gIEE0MDA6ICMwMGU2NzYsXG4gIEE3MDA6ICMwMGM4NTMsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpZ2h0LWdyZWVuOiAoXG4gIDUwOiAjZjFmOGU5LFxuICAxMDA6ICNkY2VkYzgsXG4gIDIwMDogI2M1ZTFhNSxcbiAgMzAwOiAjYWVkNTgxLFxuICA0MDA6ICM5Y2NjNjUsXG4gIDUwMDogIzhiYzM0YSxcbiAgNjAwOiAjN2NiMzQyLFxuICA3MDA6ICM2ODlmMzgsXG4gIDgwMDogIzU1OGIyZixcbiAgOTAwOiAjMzM2OTFlLFxuICBBMTAwOiAjY2NmZjkwLFxuICBBMjAwOiAjYjJmZjU5LFxuICBBNDAwOiAjNzZmZjAzLFxuICBBNzAwOiAjNjRkZDE3LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpbWU6IChcbiAgNTA6ICNmOWZiZTcsXG4gIDEwMDogI2YwZjRjMyxcbiAgMjAwOiAjZTZlZTljLFxuICAzMDA6ICNkY2U3NzUsXG4gIDQwMDogI2Q0ZTE1NyxcbiAgNTAwOiAjY2RkYzM5LFxuICA2MDA6ICNjMGNhMzMsXG4gIDcwMDogI2FmYjQyYixcbiAgODAwOiAjOWU5ZDI0LFxuICA5MDA6ICM4Mjc3MTcsXG4gIEExMDA6ICNmNGZmODEsXG4gIEEyMDA6ICNlZWZmNDEsXG4gIEE0MDA6ICNjNmZmMDAsXG4gIEE3MDA6ICNhZWVhMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXllbGxvdzogKFxuICA1MDogI2ZmZmRlNyxcbiAgMTAwOiAjZmZmOWM0LFxuICAyMDA6ICNmZmY1OWQsXG4gIDMwMDogI2ZmZjE3NixcbiAgNDAwOiAjZmZlZTU4LFxuICA1MDA6ICNmZmViM2IsXG4gIDYwMDogI2ZkZDgzNSxcbiAgNzAwOiAjZmJjMDJkLFxuICA4MDA6ICNmOWE4MjUsXG4gIDkwMDogI2Y1N2YxNyxcbiAgQTEwMDogI2ZmZmY4ZCxcbiAgQTIwMDogI2ZmZmYwMCxcbiAgQTQwMDogI2ZmZWEwMCxcbiAgQTcwMDogI2ZmZDYwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1hbWJlcjogKFxuICA1MDogI2ZmZjhlMSxcbiAgMTAwOiAjZmZlY2IzLFxuICAyMDA6ICNmZmUwODIsXG4gIDMwMDogI2ZmZDU0ZixcbiAgNDAwOiAjZmZjYTI4LFxuICA1MDA6ICNmZmMxMDcsXG4gIDYwMDogI2ZmYjMwMCxcbiAgNzAwOiAjZmZhMDAwLFxuICA4MDA6ICNmZjhmMDAsXG4gIDkwMDogI2ZmNmYwMCxcbiAgQTEwMDogI2ZmZTU3ZixcbiAgQTIwMDogI2ZmZDc0MCxcbiAgQTQwMDogI2ZmYzQwMCxcbiAgQTcwMDogI2ZmYWIwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1vcmFuZ2U6IChcbiAgNTA6ICNmZmYzZTAsXG4gIDEwMDogI2ZmZTBiMixcbiAgMjAwOiAjZmZjYzgwLFxuICAzMDA6ICNmZmI3NGQsXG4gIDQwMDogI2ZmYTcyNixcbiAgNTAwOiAjZmY5ODAwLFxuICA2MDA6ICNmYjhjMDAsXG4gIDcwMDogI2Y1N2MwMCxcbiAgODAwOiAjZWY2YzAwLFxuICA5MDA6ICNlNjUxMDAsXG4gIEExMDA6ICNmZmQxODAsXG4gIEEyMDA6ICNmZmFiNDAsXG4gIEE0MDA6ICNmZjkxMDAsXG4gIEE3MDA6ICNmZjZkMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6IGJsYWNrLFxuICApXG4pO1xuXG4kbWF0LWRlZXAtb3JhbmdlOiAoXG4gIDUwOiAjZmJlOWU3LFxuICAxMDA6ICNmZmNjYmMsXG4gIDIwMDogI2ZmYWI5MSxcbiAgMzAwOiAjZmY4YTY1LFxuICA0MDA6ICNmZjcwNDMsXG4gIDUwMDogI2ZmNTcyMixcbiAgNjAwOiAjZjQ1MTFlLFxuICA3MDA6ICNlNjRhMTksXG4gIDgwMDogI2Q4NDMxNSxcbiAgOTAwOiAjYmYzNjBjLFxuICBBMTAwOiAjZmY5ZTgwLFxuICBBMjAwOiAjZmY2ZTQwLFxuICBBNDAwOiAjZmYzZDAwLFxuICBBNzAwOiAjZGQyYzAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1icm93bjogKFxuICA1MDogI2VmZWJlOSxcbiAgMTAwOiAjZDdjY2M4LFxuICAyMDA6ICNiY2FhYTQsXG4gIDMwMDogI2ExODg3ZixcbiAgNDAwOiAjOGQ2ZTYzLFxuICA1MDA6ICM3OTU1NDgsXG4gIDYwMDogIzZkNGM0MSxcbiAgNzAwOiAjNWQ0MDM3LFxuICA4MDA6ICM0ZTM0MmUsXG4gIDkwMDogIzNlMjcyMyxcbiAgQTEwMDogI2Q3Y2NjOCxcbiAgQTIwMDogI2JjYWFhNCxcbiAgQTQwMDogIzhkNmU2MyxcbiAgQTcwMDogIzVkNDAzNyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ncmV5OiAoXG4gIDUwOiAjZmFmYWZhLFxuICAxMDA6ICNmNWY1ZjUsXG4gIDIwMDogI2VlZWVlZSxcbiAgMzAwOiAjZTBlMGUwLFxuICA0MDA6ICNiZGJkYmQsXG4gIDUwMDogIzllOWU5ZSxcbiAgNjAwOiAjNzU3NTc1LFxuICA3MDA6ICM2MTYxNjEsXG4gIDgwMDogIzQyNDI0MixcbiAgOTAwOiAjMjEyMTIxLFxuICBBMTAwOiAjZmZmZmZmLFxuICBBMjAwOiAjZWVlZWVlLFxuICBBNDAwOiAjYmRiZGJkLFxuICBBNzAwOiAjNjE2MTYxLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbi8vIEFsaWFzIGZvciBhbHRlcm5hdGUgc3BlbGxpbmcuXG4kbWF0LWdyYXk6ICRtYXQtZ3JleTtcblxuJG1hdC1ibHVlLWdyZXk6IChcbiAgNTA6ICNlY2VmZjEsXG4gIDEwMDogI2NmZDhkYyxcbiAgMjAwOiAjYjBiZWM1LFxuICAzMDA6ICM5MGE0YWUsXG4gIDQwMDogIzc4OTA5YyxcbiAgNTAwOiAjNjA3ZDhiLFxuICA2MDA6ICM1NDZlN2EsXG4gIDcwMDogIzQ1NWE2NCxcbiAgODAwOiAjMzc0NzRmLFxuICA5MDA6ICMyNjMyMzgsXG4gIEExMDA6ICNjZmQ4ZGMsXG4gIEEyMDA6ICNiMGJlYzUsXG4gIEE0MDA6ICM3ODkwOWMsXG4gIEE3MDA6ICM0NTVhNjQsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuLy8gQWxpYXMgZm9yIGFsdGVybmF0ZSBzcGVsbGluZy5cbiRtYXQtYmx1ZS1ncmF5OiAkbWF0LWJsdWUtZ3JleTtcblxuXG4vLyBCYWNrZ3JvdW5kIHBhbGV0dGUgZm9yIGxpZ2h0IHRoZW1lcy5cbiRtYXQtbGlnaHQtdGhlbWUtYmFja2dyb3VuZDogKFxuICBzdGF0dXMtYmFyOiBtYXAtZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgYXBwLWJhcjogICAgbWFwLWdldCgkbWF0LWdyZXksIDEwMCksXG4gIGJhY2tncm91bmQ6IG1hcC1nZXQoJG1hdC1ncmV5LCA1MCksXG4gIGhvdmVyOiAgICAgIHJnYmEoYmxhY2ssIDAuMDQpLCAvLyBUT0RPKGthcmEpOiBjaGVjayBzdHlsZSB3aXRoIE1hdGVyaWFsIERlc2lnbiBVWFxuICBjYXJkOiAgICAgICB3aGl0ZSxcbiAgZGlhbG9nOiAgICAgd2hpdGUsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYShibGFjaywgMC4xMiksXG4gIHJhaXNlZC1idXR0b246IHdoaXRlLFxuICBmb2N1c2VkLWJ1dHRvbjogJGRhcmstZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXAtZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXAtZ2V0KCRtYXQtZ3JleSwgNDAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogbWFwLWdldCgkbWF0LWdyZXksIDIwMCksXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwLWdldCgkbWF0LWdyZXksIDMwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBtYXAtZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbiAgdG9vbHRpcDogbWFwLWdldCgkbWF0LWdyZXksIDcwMCksXG4pO1xuXG4vLyBCYWNrZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJG1hdC1kYXJrLXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogYmxhY2ssXG4gIGFwcC1iYXI6ICAgIG1hcC1nZXQoJG1hdC1ncmV5LCA5MDApLFxuICBiYWNrZ3JvdW5kOiAjMzAzMDMwLFxuICBob3ZlcjogICAgICByZ2JhKHdoaXRlLCAwLjA0KSwgLy8gVE9ETyhrYXJhKTogY2hlY2sgc3R5bGUgd2l0aCBNYXRlcmlhbCBEZXNpZ24gVVhcbiAgY2FyZDogICAgICAgbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGRpYWxvZzogICAgIG1hcC1nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEod2hpdGUsIDAuMTIpLFxuICByYWlzZWQtYnV0dG9uOiBtYXAtZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZm9jdXNlZC1idXR0b246ICRsaWdodC1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcC1nZXQoJG1hdC1ncmV5LCA5MDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcC1nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBibGFjayxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXAtZ2V0KCRtYXQtZ3JleSwgNzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IGJsYWNrLFxuICB0b29sdGlwOiBtYXAtZ2V0KCRtYXQtZ3JleSwgNzAwKSxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICBibGFjayxcbiAgZGl2aWRlcjogICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGRhcmstZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAgICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGRhcmstc2Vjb25kYXJ5LXRleHQsXG4gIGljb246ICAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6ICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1taW46ICAgICAgICByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW9mZjogICAgICAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJG1hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogICAgICAgICAgICAgIHdoaXRlLFxuICBkaXZpZGVyOiAgICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogICByZ2JhKHdoaXRlLCAwLjMpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogICAgICAgICBibGFjayxcbiAgaGludC10ZXh0OiAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgd2hpdGUsXG4gIGljb25zOiAgICAgICAgICAgICB3aGl0ZSxcbiAgdGV4dDogICAgICAgICAgICAgIHdoaXRlLFxuICBzbGlkZXItbWluOiAgICAgICAgd2hpdGUsXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKHdoaXRlLCAwLjMpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYSh3aGl0ZSwgMC4zKSxcbik7XG5cbi8vIE5vdGUgdGhhdCB0aGlzIGZpbGUgaXMgY2FsbGVkIGBwcml2YXRlYCwgYmVjYXVzZSB0aGUgQVBJcyBpbiBpdCBhcmVuJ3QgcHVibGljIHlldC5cbi8vIE9uY2UgdGhleSdyZSBtYWRlIGF2YWlsYWJsZSwgdGhlIGNvZGUgc2hvdWxkIGJlIG1vdmVkIG91dCBpbnRvIGFuIGBpbmRleC5zY3NzYC5cblxuLy8gVGFrZW4gZnJvbSBtYXQtZGVuc2l0eSB3aXRoIHNtYWxsIG1vZGlmaWNhdGlvbnMgdG8gbm90IHJlbHkgb24gdGhlIG5ldyBTYXNzIG1vZHVsZVxuLy8gc3lzdGVtLCBhbmQgdG8gc3VwcG9ydCBhcmJpdHJhcnkgcHJvcGVydGllcyBpbiBhIGRlbnNpdHkgY29uZmlndXJhdGlvbi5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRlcmlhbC1jb21wb25lbnRzL21hdGVyaWFsLWNvbXBvbmVudHMtd2ViL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL21kYy1kZW5zaXR5XG5cbiRfbWF0LWRlbnNpdHktaW50ZXJ2YWw6IDRweCAhZGVmYXVsdDtcbiRfbWF0LWRlbnNpdHktbWluaW11bS1zY2FsZTogbWluaW11bSAhZGVmYXVsdDtcbiRfbWF0LWRlbnNpdHktbWF4aW11bS1zY2FsZTogbWF4aW11bSAhZGVmYXVsdDtcbiRfbWF0LWRlbnNpdHktc3VwcG9ydGVkLXNjYWxlczogKGRlZmF1bHQsIG1pbmltdW0sIG1heGltdW0pICFkZWZhdWx0O1xuJF9tYXQtZGVuc2l0eS1kZWZhdWx0LXNjYWxlOiAwICFkZWZhdWx0O1xuXG4vLyBXaGV0aGVyIGRlbnNpdHkgc2hvdWxkIGJlIGdlbmVyYXRlZCBhdCByb290LiBUaGlzIHdpbGwgYmUgdGVtcG9yYXJpbHkgc2V0IHRvIGB0cnVlYFxuLy8gd2hlbmV2ZXIgZGVuc2l0eSBzdHlsZXMgZm9yIGxlZ2FjeSB0aGVtZXMgYXJlIGdlbmVyYXRlZC5cbiRtYXQtcHJpdmF0ZS1kZW5zaXR5LWdlbmVyYXRlLWF0LXJvb3Q6IGZhbHNlO1xuLy8gV2hldGhlciBkZW5zaXR5IHN0eWxlcyBzaG91bGQgYmUgZ2VuZXJhdGVkLiBUaGlzIHdpbGwgYmUgdGVtcG9yYXJpbHkgc2V0IHRvIGBmYWxzZWAgaWZcbi8vIGR1cGxpY2F0ZSBkZW5zaXR5IHN0eWxlcyBmb3IgYSBsZWdhY3kgdGhlbWUgd291bGQgYmUgZ2VuZXJhdGVkLiBGb3IgbGVnYWN5IHRoZW1lcyxcbi8vIHdlIGFsd2F5cyBnZW5lcmF0ZSB0aGUgZGVmYXVsdCBkZW5zaXR5ICoqb25seSBvbmNlKiogYXQgcm9vdC5cbiRtYXQtcHJpdmF0ZS1kZW5zaXR5LWdlbmVyYXRlLXN0eWxlczogdHJ1ZTtcblxuLy8gTWl4aW4gdGhhdCBjYW4gYmUgdXNlZCB0byB3cmFwIGRlbnNpdHkgc3R5bGVzIG9mIGdpdmVuIGNvbXBvbmVudHMuIFRoZSBtaXhpbiB3aWxsXG4vLyBtb3ZlIHRoZSBkZW5zaXR5IHN0eWxlcyB0byByb290IGlmIHRoZSBgJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtYXQtcm9vdGAgZ2xvYmFsIHZhcmlhYmxlXG4vLyBpcyBzZXQuIElmIGAkbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1zdHlsZXNgIGlzIHNldCB0byBgZmFsc2VgLCBnZW5lcmF0aW9uIG9mIGRlbnNpdHlcbi8vIHN0eWxlcyB3cmFwcGVkIGluIHRoaXMgbWl4aW4gaXMgc2tpcHBlZC4gVGhpcyBtaXhpbiBleGlzdHMgdG8gaW1wcm92ZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuLy8gb2YgdGhlIG5ldyB0aGVtaW5nIEFQSSB3aGVyZSBkZW5zaXR5IHN0eWxlcyBhcmUgaW5jbHVkZWQgYXMgcGFydCBvZiB0aGVtZXMuIFByZXZpb3VzbHksXG4vLyBkZW5zaXR5IHN0eWxlcyBvZiBjb21wb25lbnRzIHdlcmUgcGFydCBvZiB0aGVpciBiYXNlIHN0eWxlcy4gV2l0aCB0aGUgbmV3IEFQSSwgdGhleSBhcmVcbi8vIHBhcnQgb2YgdGhlIHRoZW1pbmcgc3lzdGVtLiBUaGUgYDwuLj4tdGhlbWVgIG1peGlucyBnZW5lcmF0ZSBkZW5zaXR5IGJ5IGRlZmF1bHQgdW5sZXNzXG4vLyB0aGUgZGVuc2l0eSBjb25maWd1cmF0aW9uIGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkIGFzIHBlciBuZXcgQVBJLiBUaGlzIG1lYW5zLCB0aGF0IHByb2plY3RzXG4vLyB1c2luZyBgPC4uPi10aGVtZWAgbWl4aW5zIGZvciBzZXBhcmF0ZSB0aGVtZXMgKGxpa2UgYC5kYXJrLXRoZW1lYCkgd2lsbCBjYXVzZSBkdXBsaWNhdGVcbi8vIGRlbnNpdHkgc3R5bGVzLiBUaGlzIGlzIGJyZWFraW5nIGFzIGl0IGluY3JlYXNlcyBzcGVjaWZpY2l0eSBvZiBkZW5zaXR5IHN0eWxlcy4gVGhpcyBtaXhpblxuLy8gcHJvdmlkZXMgYW4gQVBJIHRvIGNvbnRyb2wgZ2VuZXJhdGlvbiBvZiBkZW5zaXR5IHN0eWxlcyBzbyB0aGF0IHdlIGNhbiBlbnN1cmUgdGhleSBhcmUgb25seVxuLy8gY3JlYXRlZCAqb25jZSogYW5kIGF0IHJvb3QuXG5AbWl4aW4gbWF0LXByaXZhdGUtZGVuc2l0eS1sZWdhY3ktY29tcGF0aWJpbGl0eSgpIHtcbiAgQGlmICRtYXQtcHJpdmF0ZS1kZW5zaXR5LWdlbmVyYXRlLXN0eWxlcyBhbmQgJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtYXQtcm9vdCB7XG4gICAgQGF0LXJvb3Qge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRtYXQtcHJpdmF0ZS1kZW5zaXR5LWdlbmVyYXRlLXN0eWxlcyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZSgkZGVuc2l0eS1jb25maWcsICRkZW5zaXR5LXNjYWxlLCAkcHJvcGVydHktbmFtZSkge1xuICBAaWYgKHR5cGUtb2YoJGRlbnNpdHktc2NhbGUpID09ICdzdHJpbmcnIGFuZFxuICAgICAgaW5kZXgoJGxpc3Q6ICRfbWF0LWRlbnNpdHktc3VwcG9ydGVkLXNjYWxlcywgJHZhbHVlOiAkZGVuc2l0eS1zY2FsZSkgPT0gbnVsbCkge1xuICAgIEBlcnJvciAnbWF0LWRlbnNpdHk6IFN1cHBvcnRlZCBkZW5zaXR5IHNjYWxlcyAjeyRfbWF0LWRlbnNpdHktc3VwcG9ydGVkLXNjYWxlc30sICcgICtcbiAgICAgICdidXQgcmVjZWl2ZWQgI3skZGVuc2l0eS1zY2FsZX0uJztcbiAgfVxuXG4gICR2YWx1ZTogbnVsbDtcbiAgJHByb3BlcnR5LXNjYWxlLW1hcDogbWFwLWdldCgkZGVuc2l0eS1jb25maWcsICRwcm9wZXJ0eS1uYW1lKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJHByb3BlcnR5LXNjYWxlLW1hcCwgJGRlbnNpdHktc2NhbGUpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJHByb3BlcnR5LXNjYWxlLW1hcCwgJGRlbnNpdHktc2NhbGUpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJHByb3BlcnR5LXNjYWxlLW1hcCwgZGVmYXVsdCkgKyAkZGVuc2l0eS1zY2FsZSAqICRfbWF0LWRlbnNpdHktaW50ZXJ2YWw7XG4gIH1cblxuICAkbWluLXZhbHVlOiBtYXAtZ2V0KCRwcm9wZXJ0eS1zY2FsZS1tYXAsICRfbWF0LWRlbnNpdHktbWluaW11bS1zY2FsZSk7XG4gICRtYXgtdmFsdWU6IG1hcC1nZXQoJHByb3BlcnR5LXNjYWxlLW1hcCwgJF9tYXQtZGVuc2l0eS1tYXhpbXVtLXNjYWxlKTtcblxuICBAaWYgKCR2YWx1ZSA8ICRtaW4tdmFsdWUgb3IgJHZhbHVlID4gJG1heC12YWx1ZSkge1xuICAgIEBlcnJvciAnbWF0LWRlbnNpdHk6ICN7JHByb3BlcnR5LW5hbWV9IG11c3QgYmUgYmV0d2VlbiAjeyRtaW4tdmFsdWV9IGFuZCAnICtcbiAgICAgICcjeyRtYXgtdmFsdWV9IChpbmNsdXNpdmUpLCBidXQgcmVjZWl2ZWQgI3skdmFsdWV9Lic7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLyBXaGV0aGVyIGR1cGxpY2F0aW9uIHdhcm5pbmdzIHNob3VsZCBiZSBkaXNhYmxlZC4gV2FybmluZ3MgZW5hYmxlZCBieSBkZWZhdWx0LlxuJG1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3M6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBXaGV0aGVyIGRlbnNpdHkgc2hvdWxkIGJlIGdlbmVyYXRlZCBieSBkZWZhdWx0LlxuJF9tYXQtdGhlbWUtZ2VuZXJhdGUtZGVmYXVsdC1kZW5zaXR5OiB0cnVlICFkZWZhdWx0O1xuXG4vLyBXYXJuaW5nIHRoYXQgd2lsbCBiZSBwcmludGVkIGlmIGR1cGxpY2F0ZWQgc3R5bGVzIGFyZSBnZW5lcmF0ZWQgYnkgYSB0aGVtZS5cbiRfbWF0LXRoZW1lLWR1cGxpY2F0ZS13YXJuaW5nOiAnUmVhZCBtb3JlIGFib3V0IGhvdyBzdHlsZSBkdXBsaWNhdGlvbiBjYW4gYmUgYXZvaWRlZCBpbiBhICcgK1xuICAnZGVkaWNhdGVkIGd1aWRlLiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFzdGVyL2d1aWRlcy9kdXBsaWNhdGUtdGhlbWluZy1zdHlsZXMubWQnO1xuXG4vLyBUaGVzZSB2YXJpYWJsZSBhcmUgbm90IGludGVuZGVkIHRvIGJlIG92ZXJyaWRkZW4gZXh0ZXJuYWxseS4gVGhleSB1c2UgYCFkZWZhdWx0YCB0b1xuLy8gYXZvaWQgYmVpbmcgcmVzZXQgZXZlcnkgdGltZSB0aGlzIGZpbGUgaXMgaW1wb3J0ZWQuXG4kX21hdC10aGVtZS1lbWl0dGVkLWNvbG9yOiAoKSAhZGVmYXVsdDtcbiRfbWF0LXRoZW1lLWVtaXR0ZWQtdHlwb2dyYXBoeTogKCkgIWRlZmF1bHQ7XG4kX21hdC10aGVtZS1lbWl0dGVkLWRlbnNpdHk6ICgpICFkZWZhdWx0O1xuXG4vLyBGb3IgYSBnaXZlbiBodWUgaW4gYSBwYWxldHRlLCByZXR1cm4gdGhlIGNvbnRyYXN0IGNvbG9yIGZyb20gdGhlIG1hcCBvZiBjb250cmFzdCBwYWxldHRlcy5cbi8vIEBwYXJhbSAkcGFsZXR0ZVxuLy8gQHBhcmFtICRodWVcbkBmdW5jdGlvbiBtYXQtY29udHJhc3QoJHBhbGV0dGUsICRodWUpIHtcbiAgQHJldHVybiBtYXAtZ2V0KG1hcC1nZXQoJHBhbGV0dGUsIGNvbnRyYXN0KSwgJGh1ZSk7XG59XG5cblxuLy8gQ3JlYXRlcyBhIG1hcCBvZiBodWVzIHRvIGNvbG9ycyBmb3IgYSB0aGVtZS4gVGhpcyBpcyB1c2VkIHRvIGRlZmluZSBhIHRoZW1lIHBhbGV0dGUgaW4gdGVybXNcbi8vIG9mIHRoZSBNYXRlcmlhbCBEZXNpZ24gaHVlcy5cbi8vIEBwYXJhbSAkYmFzZS1wYWxldHRlXG4vLyBAcGFyYW0gJGRlZmF1bHRcbi8vIEBwYXJhbSAkbGlnaHRlclxuLy8gQHBhcmFtICRkYXJrZXJcbi8vIEBwYXJhbSAkdGV4dFxuQGZ1bmN0aW9uIG1hdC1wYWxldHRlKCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0OiA1MDAsICRsaWdodGVyOiAxMDAsICRkYXJrZXI6IDcwMCwgJHRleHQ6ICRkZWZhdWx0KSB7XG4gICRyZXN1bHQ6IG1hcC1tZXJnZSgkYmFzZS1wYWxldHRlLCAoXG4gICAgZGVmYXVsdDogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkZGVmYXVsdCksXG4gICAgbGlnaHRlcjogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkbGlnaHRlciksXG4gICAgZGFya2VyOiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRkYXJrZXIpLFxuICAgIHRleHQ6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJHRleHQpLFxuXG4gICAgZGVmYXVsdC1jb250cmFzdDogbWF0LWNvbnRyYXN0KCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0KSxcbiAgICBsaWdodGVyLWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGxpZ2h0ZXIpLFxuICAgIGRhcmtlci1jb250cmFzdDogbWF0LWNvbnRyYXN0KCRiYXNlLXBhbGV0dGUsICRkYXJrZXIpXG4gICkpO1xuXG4gIC8vIEZvciBlYWNoIGh1ZSBpbiB0aGUgcGFsZXR0ZSwgYWRkIGEgXCItY29udHJhc3RcIiBjb2xvciB0byB0aGUgbWFwLlxuICBAZWFjaCAkaHVlLCAkY29sb3IgaW4gJGJhc2UtcGFsZXR0ZSB7XG4gICAgJHJlc3VsdDogbWFwLW1lcmdlKCRyZXN1bHQsIChcbiAgICAgICcjeyRodWV9LWNvbnRyYXN0JzogbWF0LWNvbnRyYXN0KCRiYXNlLXBhbGV0dGUsICRodWUpXG4gICAgKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cblxuLy8gR2V0cyBhIGNvbG9yIGZyb20gYSB0aGVtZSBwYWxldHRlICh0aGUgb3V0cHV0IG9mIG1hdC1wYWxldHRlKS5cbi8vIFRoZSBodWUgY2FuIGJlIG9uZSBvZiB0aGUgc3RhbmRhcmQgdmFsdWVzICg1MDAsIEE0MDAsIGV0Yy4pLCBvbmUgb2YgdGhlIHRocmVlIHByZWNvbmZpZ3VyZWRcbi8vIGh1ZXMgKGRlZmF1bHQsIGxpZ2h0ZXIsIGRhcmtlciksIG9yIGFueSBvZiB0aGUgYWZvcmVtZW50aW9uZWQgcHJlZml4ZWQgd2l0aCBcIi1jb250cmFzdFwiLlxuLy9cbi8vIEBwYXJhbSAkcGFsZXR0ZSBUaGUgdGhlbWUgcGFsZXR0ZSAob3V0cHV0IG9mIG1hdC1wYWxldHRlKS5cbi8vIEBwYXJhbSAkaHVlIFRoZSBodWUgZnJvbSB0aGUgcGFsZXR0ZSB0byB1c2UuIElmIHRoaXMgaXMgYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEsIGl0IHdpbGxcbi8vICAgICBiZSB0cmVhdGVkIGFzIG9wYWNpdHkuXG4vLyBAcGFyYW0gJG9wYWNpdHkgVGhlIGFscGhhIGNoYW5uZWwgdmFsdWUgZm9yIHRoZSBjb2xvci5cbkBmdW5jdGlvbiBtYXQtY29sb3IoJHBhbGV0dGUsICRodWU6IGRlZmF1bHQsICRvcGFjaXR5OiBudWxsKSB7XG4gIC8vIElmIGh1ZUtleSBpcyBhIG51bWJlciBiZXR3ZWVuIHplcm8gYW5kIG9uZSwgdGhlbiBpdCBhY3R1YWxseSBjb250YWlucyBhblxuICAvLyBvcGFjaXR5IHZhbHVlLCBzbyByZWNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoIHRoZSBkZWZhdWx0IGh1ZSBhbmQgdGhhdCBnaXZlbiBvcGFjaXR5LlxuICBAaWYgdHlwZS1vZigkaHVlKSA9PSBudW1iZXIgYW5kICRodWUgPj0gMCBhbmQgJGh1ZSA8PSAxIHtcbiAgICBAcmV0dXJuIG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdCwgJGh1ZSk7XG4gIH1cblxuICAkY29sb3I6IG1hcC1nZXQoJHBhbGV0dGUsICRodWUpO1xuXG4gIEBpZiAodHlwZS1vZigkY29sb3IpICE9IGNvbG9yKSB7XG4gICAgLy8gSWYgdGhlICRjb2xvciByZXNvbHZlZCB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gYSBjb2xvciAoZS5nLiBhIENTUyB2YXJpYWJsZSksXG4gICAgLy8gd2UgY2FuJ3QgYXBwbHkgdGhlIG9wYWNpdHkgYW55d2F5IHNvIHdlIHJldHVybiB0aGUgdmFsdWUgYXMgaXMsIG90aGVyd2lzZSBTYXNzIGNhblxuICAgIC8vIHRocm93IGFuIGVycm9yIG9yIG91dHB1dCBzb21ldGhpbmcgaW52YWxpZC5cbiAgICBAcmV0dXJuICRjb2xvcjtcbiAgfVxuXG4gIEByZXR1cm4gcmdiYSgkY29sb3IsIGlmKCRvcGFjaXR5ID09IG51bGwsIG9wYWNpdHkoJGNvbG9yKSwgJG9wYWNpdHkpKTtcbn1cblxuLy8gVmFsaWRhdGVzIHRoZSBzcGVjaWZpZWQgdGhlbWUgYnkgZW5zdXJpbmcgdGhhdCB0aGUgb3B0aW9uYWwgY29sb3IgY29uZmlnIGRlZmluZXNcbi8vIGEgcHJpbWFyeSwgYWNjZW50IGFuZCB3YXJuIHBhbGV0dGUuIFJldHVybnMgdGhlIHRoZW1lIGlmIG5vIGZhaWx1cmVzIHdlcmUgZm91bmQuXG5AZnVuY3Rpb24gX21hdC12YWxpZGF0ZS10aGVtZSgkdGhlbWUpIHtcbiAgQGlmIG1hcC1nZXQoJHRoZW1lLCBjb2xvcikge1xuICAgICRjb2xvcjogbWFwLWdldCgkdGhlbWUsIGNvbG9yKTtcbiAgICBAaWYgbm90IG1hcC1nZXQoJGNvbG9yLCBwcmltYXJ5KSB7XG4gICAgICBAZXJyb3IgJ1RoZW1lIGRvZXMgbm90IGRlZmluZSBhIHZhbGlkIFwicHJpbWFyeVwiIHBhbGV0dGUuJztcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90IG1hcC1nZXQoJGNvbG9yLCBhY2NlbnQpIHtcbiAgICAgIEBlcnJvciAnVGhlbWUgZG9lcyBub3QgZGVmaW5lIGEgdmFsaWQgXCJhY2NlbnRcIiBwYWxldHRlLic7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtZ2V0KCRjb2xvciwgd2Fybikge1xuICAgICAgQGVycm9yICdUaGVtZSBkb2VzIG5vdCBkZWZpbmUgYSB2YWxpZCBcIndhcm5cIiBwYWxldHRlLic7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJHRoZW1lO1xufVxuXG4vLyBDcmVhdGVzIGEgbGlnaHQtdGhlbWVkIGNvbG9yIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgc3BlY2lmaWVkXG4vLyBwcmltYXJ5LCBhY2NlbnQgYW5kIHdhcm4gcGFsZXR0ZXMuXG5AZnVuY3Rpb24gX21hdC1jcmVhdGUtbGlnaHQtY29sb3ItY29uZmlnKCRwcmltYXJ5LCAkYWNjZW50LCAkd2FybjogbnVsbCkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogaWYoJHdhcm4gIT0gbnVsbCwgJHdhcm4sIG1hdC1wYWxldHRlKCRtYXQtcmVkKSksXG4gICAgaXMtZGFyazogZmFsc2UsXG4gICAgZm9yZWdyb3VuZDogJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGRhcmstdGhlbWVkIGNvbG9yIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgc3BlY2lmaWVkXG4vLyBwcmltYXJ5LCBhY2NlbnQgYW5kIHdhcm4gcGFsZXR0ZXMuXG5AZnVuY3Rpb24gX21hdC1jcmVhdGUtZGFyay1jb2xvci1jb25maWcoJHByaW1hcnksICRhY2NlbnQsICR3YXJuOiBudWxsKSB7XG4gIEByZXR1cm4gKFxuICAgIHByaW1hcnk6ICRwcmltYXJ5LFxuICAgIGFjY2VudDogJGFjY2VudCxcbiAgICB3YXJuOiBpZigkd2FybiAhPSBudWxsLCAkd2FybiwgbWF0LXBhbGV0dGUoJG1hdC1yZWQpKSxcbiAgICBpcy1kYXJrOiB0cnVlLFxuICAgIGZvcmVncm91bmQ6ICRtYXQtZGFyay10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kLFxuICApO1xufVxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBsaWdodCB0aGVtZSB0byBiZSBnaXZlbiB0byBpbmRpdmlkdWFsIGNvbXBvbmVudCB0aGVtZSBtaXhpbnMuXG4vLyBUT0RPOiBSZW1vdmUgbGVnYWN5IEFQSSBhbmQgcmVuYW1lIGAkcHJpbWFyeWAgdG8gYCRjb25maWdgLiBDdXJyZW50bHkgaXQgY2Fubm90IGJlIHJlbmFtZWRcbi8vIGFzIGl0IHdvdWxkIGJyZWFrIGV4aXN0aW5nIGFwcHMgdGhhdCBzZXQgdGhlIHBhcmFtZXRlciBieSBuYW1lLlxuQGZ1bmN0aW9uIG1hdC1saWdodC10aGVtZSgkcHJpbWFyeSwgJGFjY2VudDogbnVsbCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICAvLyBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IGZvciB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLiBDb25zdW1lcnNcbiAgLy8gY2FuIGNvbnN0cnVjdCBzdWNoIGFuIG9iamVjdCBieSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIG9yIGJ5IGJ1aWxkaW5nIHRoZSBvYmplY3QgbWFudWFsbHkuXG4gIC8vIFRoZXJlIGFyZSB0d28gcG9zc2libGUgd2F5cyB0byBpbnZva2UgdGhpcyBmdW5jdGlvbiBpbiBvcmRlciB0byBjcmVhdGUgc3VjaCBhbiBvYmplY3Q6XG4gIC8vXG4gIC8vICAgICgxKSBQYXNzaW5nIGluIGEgbWFwIHRoYXQgaG9sZHMgb3B0aW9uYWwgY29uZmlndXJhdGlvbnMgZm9yIGluZGl2aWR1YWwgcGFydHMgb2YgdGhlXG4gIC8vICAgICAgICB0aGVtaW5nIHN5c3RlbS4gRm9yIGBjb2xvcmAgY29uZmlndXJhdGlvbnMsIHRoZSBmdW5jdGlvbiBvbmx5IGV4cGVjdHMgdGhlIHBhbGV0dGVzXG4gIC8vICAgICAgICBmb3IgYHByaW1hcnlgIGFuZCBgYWNjZW50YCAoYW5kIG9wdGlvbmFsbHkgYHdhcm5gKS4gVGhlIGZ1bmN0aW9uIHdpbGwgZXhwYW5kIHRoZVxuICAvLyAgICAgICAgc2hvcnRoYW5kIGludG8gYW4gYWN0dWFsIGNvbmZpZ3VyYXRpb24gdGhhdCBjYW4gYmUgY29uc3VtZWQgaW4gYC1jb2xvcmAgbWl4aW5zLlxuICAvLyAgICAoMikgTGVnYWN5IHBhdHRlcm46IFBhc3NpbmcgaW4gdGhlIHBhbGV0dGVzIGFzIHBhcmFtZXRlcnMuIFRoaXMgaXMgbm90IGFzIGZsZXhpYmxlXG4gIC8vICAgICAgICBhcyBwYXNzaW5nIGluIGEgY29uZmlndXJhdGlvbiBtYXAgYmVjYXVzZSBvbmx5IHRoZSBgY29sb3JgIHN5c3RlbSBjYW4gYmUgY29uZmlndXJlZC5cbiAgLy9cbiAgLy8gSWYgdGhlIGxlZ2FjeSBwYXR0ZXJuIGlzIHVzZWQsIHdlIGdlbmVyYXRlIGEgY29udGFpbmVyIG9iamVjdCBvbmx5IHdpdGggYSBsaWdodC10aGVtZWRcbiAgLy8gY29uZmlndXJhdGlvbiBmb3IgdGhlIGBjb2xvcmAgdGhlbWluZyBwYXJ0LlxuICBAaWYgJGFjY2VudCAhPSBudWxsIHtcbiAgICBAcmV0dXJuIG1hdC1wcml2YXRlLWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZShfbWF0LXZhbGlkYXRlLXRoZW1lKChcbiAgICAgIF9pcy1sZWdhY3ktdGhlbWU6IHRydWUsXG4gICAgICBjb2xvcjogX21hdC1jcmVhdGUtbGlnaHQtY29sb3ItY29uZmlnKCRwcmltYXJ5LCAkYWNjZW50LCAkd2FybiksXG4gICAgKSkpO1xuICB9XG4gIC8vIElmIHRoZSBtYXAgcGF0dGVybiBpcyB1c2VkICgxKSwgd2UganVzdCBwYXNzLXRocm91Z2ggdGhlIGNvbmZpZ3VyYXRpb25zIGZvciBpbmRpdmlkdWFsXG4gIC8vIHBhcnRzIG9mIHRoZSB0aGVtaW5nIHN5c3RlbSwgYnV0IHVwZGF0ZSB0aGUgYGNvbG9yYCBjb25maWd1cmF0aW9uIGlmIHNldC4gQXMgZXhwbGFpbmVkXG4gIC8vIGFib3ZlLCB0aGUgY29sb3Igc2hvcnRoYW5kIHdpbGwgYmUgZXhwYW5kZWQgdG8gYW4gYWN0dWFsIGxpZ2h0LXRoZW1lZCBjb2xvciBjb25maWd1cmF0aW9uLlxuICAkcmVzdWx0OiAkcHJpbWFyeTtcbiAgQGlmIG1hcC1nZXQoJHByaW1hcnksIGNvbG9yKSB7XG4gICAgJGNvbG9yLXNldHRpbmdzOiBtYXAtZ2V0KCRwcmltYXJ5LCBjb2xvcik7XG4gICAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbG9yLXNldHRpbmdzLCBwcmltYXJ5KTtcbiAgICAkYWNjZW50OiBtYXAtZ2V0KCRjb2xvci1zZXR0aW5ncywgYWNjZW50KTtcbiAgICAkd2FybjogbWFwLWdldCgkY29sb3Itc2V0dGluZ3MsIHdhcm4pO1xuICAgICRyZXN1bHQ6IG1hcC1tZXJnZSgkcmVzdWx0LCAoY29sb3I6IF9tYXQtY3JlYXRlLWxpZ2h0LWNvbG9yLWNvbmZpZygkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm4pKSk7XG4gIH1cbiAgQHJldHVybiBtYXQtcHJpdmF0ZS1jcmVhdGUtYmFja3dhcmRzLWNvbXBhdGliaWxpdHktdGhlbWUoX21hdC12YWxpZGF0ZS10aGVtZSgkcmVzdWx0KSk7XG59XG5cbi8vIENyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IGZvciBhIGRhcmsgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuLy8gVE9ETzogUmVtb3ZlIGxlZ2FjeSBBUEkgYW5kIHJlbmFtZSBgJHByaW1hcnlgIHRvIGAkY29uZmlnYC4gQ3VycmVudGx5IGl0IGNhbm5vdCBiZSByZW5hbWVkXG4vLyBhcyBpdCB3b3VsZCBicmVhayBleGlzdGluZyBhcHBzIHRoYXQgc2V0IHRoZSBwYXJhbWV0ZXIgYnkgbmFtZS5cbkBmdW5jdGlvbiBtYXQtZGFyay10aGVtZSgkcHJpbWFyeSwgJGFjY2VudDogbnVsbCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICAvLyBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IGZvciB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLiBDb25zdW1lcnNcbiAgLy8gY2FuIGNvbnN0cnVjdCBzdWNoIGFuIG9iamVjdCBieSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIG9yIGJ5IGJ1aWxkaW5nIHRoZSBvYmplY3QgbWFudWFsbHkuXG4gIC8vIFRoZXJlIGFyZSB0d28gcG9zc2libGUgd2F5cyB0byBpbnZva2UgdGhpcyBmdW5jdGlvbiBpbiBvcmRlciB0byBjcmVhdGUgc3VjaCBhbiBvYmplY3Q6XG4gIC8vXG4gIC8vICAgICgxKSBQYXNzaW5nIGluIGEgbWFwIHRoYXQgaG9sZHMgb3B0aW9uYWwgY29uZmlndXJhdGlvbnMgZm9yIGluZGl2aWR1YWwgcGFydHMgb2YgdGhlXG4gIC8vICAgICAgICB0aGVtaW5nIHN5c3RlbS4gRm9yIGBjb2xvcmAgY29uZmlndXJhdGlvbnMsIHRoZSBmdW5jdGlvbiBvbmx5IGV4cGVjdHMgdGhlIHBhbGV0dGVzXG4gIC8vICAgICAgICBmb3IgYHByaW1hcnlgIGFuZCBgYWNjZW50YCAoYW5kIG9wdGlvbmFsbHkgYHdhcm5gKS4gVGhlIGZ1bmN0aW9uIHdpbGwgZXhwYW5kIHRoZVxuICAvLyAgICAgICAgc2hvcnRoYW5kIGludG8gYW4gYWN0dWFsIGNvbmZpZ3VyYXRpb24gdGhhdCBjYW4gYmUgY29uc3VtZWQgaW4gYC1jb2xvcmAgbWl4aW5zLlxuICAvLyAgICAoMikgTGVnYWN5IHBhdHRlcm46IFBhc3NpbmcgaW4gdGhlIHBhbGV0dGVzIGFzIHBhcmFtZXRlcnMuIFRoaXMgaXMgbm90IGFzIGZsZXhpYmxlXG4gIC8vICAgICAgICBhcyBwYXNzaW5nIGluIGEgY29uZmlndXJhdGlvbiBtYXAgYmVjYXVzZSBvbmx5IHRoZSBgY29sb3JgIHN5c3RlbSBjYW4gYmUgY29uZmlndXJlZC5cbiAgLy9cbiAgLy8gSWYgdGhlIGxlZ2FjeSBwYXR0ZXJuIGlzIHVzZWQsIHdlIGdlbmVyYXRlIGEgY29udGFpbmVyIG9iamVjdCBvbmx5IHdpdGggYSBkYXJrLXRoZW1lZFxuICAvLyBjb25maWd1cmF0aW9uIGZvciB0aGUgYGNvbG9yYCB0aGVtaW5nIHBhcnQuXG4gIEBpZiAkYWNjZW50ICE9IG51bGwge1xuICAgIEByZXR1cm4gbWF0LXByaXZhdGUtY3JlYXRlLWJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LXRoZW1lKF9tYXQtdmFsaWRhdGUtdGhlbWUoKFxuICAgICAgX2lzLWxlZ2FjeS10aGVtZTogdHJ1ZSxcbiAgICAgIGNvbG9yOiBfbWF0LWNyZWF0ZS1kYXJrLWNvbG9yLWNvbmZpZygkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm4pLFxuICAgICkpKTtcbiAgfVxuICAvLyBJZiB0aGUgbWFwIHBhdHRlcm4gaXMgdXNlZCAoMSksIHdlIGp1c3QgcGFzcy10aHJvdWdoIHRoZSBjb25maWd1cmF0aW9ucyBmb3IgaW5kaXZpZHVhbFxuICAvLyBwYXJ0cyBvZiB0aGUgdGhlbWluZyBzeXN0ZW0sIGJ1dCB1cGRhdGUgdGhlIGBjb2xvcmAgY29uZmlndXJhdGlvbiBpZiBzZXQuIEFzIGV4cGxhaW5lZFxuICAvLyBhYm92ZSwgdGhlIGNvbG9yIHNob3J0aGFuZCB3aWxsIGJlIGV4cGFuZGVkIHRvIGFuIGFjdHVhbCBkYXJrLXRoZW1lZCBjb2xvciBjb25maWd1cmF0aW9uLlxuICAkcmVzdWx0OiAkcHJpbWFyeTtcbiAgQGlmIG1hcC1nZXQoJHByaW1hcnksIGNvbG9yKSB7XG4gICAgJGNvbG9yLXNldHRpbmdzOiBtYXAtZ2V0KCRwcmltYXJ5LCBjb2xvcik7XG4gICAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbG9yLXNldHRpbmdzLCBwcmltYXJ5KTtcbiAgICAkYWNjZW50OiBtYXAtZ2V0KCRjb2xvci1zZXR0aW5ncywgYWNjZW50KTtcbiAgICAkd2FybjogbWFwLWdldCgkY29sb3Itc2V0dGluZ3MsIHdhcm4pO1xuICAgICRyZXN1bHQ6IG1hcC1tZXJnZSgkcmVzdWx0LCAoY29sb3I6IF9tYXQtY3JlYXRlLWRhcmstY29sb3ItY29uZmlnKCRwcmltYXJ5LCAkYWNjZW50LCAkd2FybikpKTtcbiAgfVxuICBAcmV0dXJuIG1hdC1wcml2YXRlLWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZShfbWF0LXZhbGlkYXRlLXRoZW1lKCRyZXN1bHQpKTtcbn1cblxuLy8vIEdldHMgdGhlIGNvbG9yIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgZ2l2ZW4gdGhlbWUgb3IgY29uZmlndXJhdGlvbi5cbkBmdW5jdGlvbiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUsICRkZWZhdWx0OiBudWxsKSB7XG4gIC8vIElmIGEgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBwYXNzZWQsIHJldHVybiB0aGUgY29uZmlnIGRpcmVjdGx5LlxuICBAaWYgbm90IG1hdC1wcml2YXRlLWlzLXRoZW1lLW9iamVjdCgkdGhlbWUpIHtcbiAgICBAcmV0dXJuICR0aGVtZTtcbiAgfVxuICAvLyBJZiB0aGUgdGhlbWUgaGFzIGJlZW4gY29uc3RydWN0ZWQgdGhyb3VnaCB0aGUgbGVnYWN5IHRoZW1pbmcgQVBJLCB3ZSB1c2UgdGhlIHRoZW1lIG9iamVjdFxuICAvLyBhcyBjb2xvciBjb25maWd1cmF0aW9uIGluc3RlYWQgb2YgdGhlIGRlZGljYXRlZCBgY29sb3JgIHByb3BlcnR5LiBXZSBkbyB0aGlzIGJlY2F1c2UgZm9yXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB3ZSBjb3BpZWQgdGhlIGNvbG9yIGNvbmZpZ3VyYXRpb24gZnJvbSBgJHRoZW1lLmNvbG9yYCB0byBgJHRoZW1lYC5cbiAgLy8gSGVuY2UgZGV2ZWxvcGVycyBjb3VsZCBjdXN0b21pemUgdGhlIGNvbG9ycyBhdCB0b3AtbGV2ZWwgYW5kIHdhbnQgdG8gcmVzcGVjdCB0aGVzZSBjaGFuZ2VzXG4gIC8vIFRPRE86IFJlbW92ZSB3aGVuIGxlZ2FjeSB0aGVtaW5nIEFQSSBpcyByZW1vdmVkLlxuICBAaWYgbWF0LXByaXZhdGUtaXMtbGVnYWN5LWNvbnN0cnVjdGVkLXRoZW1lKCR0aGVtZSkge1xuICAgIEByZXR1cm4gJHRoZW1lO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkdGhlbWUsIGNvbG9yKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCR0aGVtZSwgY29sb3IpO1xuICB9XG4gIEByZXR1cm4gJGRlZmF1bHQ7XG59XG5cbi8vLyBHZXRzIHRoZSBkZW5zaXR5IGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgZ2l2ZW4gdGhlbWUgb3IgY29uZmlndXJhdGlvbi5cbkBmdW5jdGlvbiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZS1vci1jb25maWcsICRkZWZhdWx0OiAwKSB7XG4gIC8vIElmIGEgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBwYXNzZWQsIHJldHVybiB0aGUgY29uZmlnIGRpcmVjdGx5LlxuICBAaWYgbm90IG1hdC1wcml2YXRlLWlzLXRoZW1lLW9iamVjdCgkdGhlbWUtb3ItY29uZmlnKSB7XG4gICAgQHJldHVybiAkdGhlbWUtb3ItY29uZmlnO1xuICB9XG4gIC8vIEluIGNhc2UgYSB0aGVtZSBoYXMgYmVlbiBwYXNzZWQsIGV4dHJhY3QgdGhlIGNvbmZpZ3VyYXRpb24gaWYgcHJlc2VudCxcbiAgLy8gb3IgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IGRlbnNpdHkgY29uZmlnLlxuICBAaWYgbWFwLWhhcy1rZXkoJHRoZW1lLW9yLWNvbmZpZywgZGVuc2l0eSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkdGhlbWUtb3ItY29uZmlnLCBkZW5zaXR5KTtcbiAgfVxuICBAcmV0dXJuICRkZWZhdWx0O1xufVxuXG4vLy8gR2V0cyB0aGUgdHlwb2dyYXBoeSBjb25maWd1cmF0aW9uIGZyb20gdGhlIGdpdmVuIHRoZW1lIG9yIGNvbmZpZ3VyYXRpb24uXG4vLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB0eXBvZ3JhcGh5IGlzIG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LlxuQGZ1bmN0aW9uIG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lLW9yLWNvbmZpZywgJGRlZmF1bHQ6IG51bGwpIHtcbiAgLy8gSWYgYSBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHBhc3NlZCwgcmV0dXJuIHRoZSBjb25maWcgZGlyZWN0bHkuXG4gIEBpZiBub3QgbWF0LXByaXZhdGUtaXMtdGhlbWUtb2JqZWN0KCR0aGVtZS1vci1jb25maWcpIHtcbiAgICBAcmV0dXJuICR0aGVtZS1vci1jb25maWc7XG4gIH1cbiAgLy8gSW4gY2FzZSBhIHRoZW1lIGhhcyBiZWVuIHBhc3NlZCwgZXh0cmFjdCB0aGUgY29uZmlndXJhdGlvbiBpZiBwcmVzZW50LFxuICAvLyBvciBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgdHlwb2dyYXBoeSBjb25maWcuXG4gIEBpZiAobWFwLWhhcy1rZXkoJHRoZW1lLW9yLWNvbmZpZywgdHlwb2dyYXBoeSkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHRoZW1lLW9yLWNvbmZpZywgdHlwb2dyYXBoeSk7XG4gIH1cbiAgQHJldHVybiAkZGVmYXVsdDtcbn1cblxuXG4vL1xuLy8gUHJpdmF0ZSBBUElzXG4vL1xuXG4vLyBDaGVja3MgaWYgY29uZmlndXJhdGlvbnMgdGhhdCBoYXZlIGJlZW4gZGVjbGFyZWQgaW4gdGhlIGdpdmVuIHRoZW1lIGhhdmUgYmVlbiBnZW5lcmF0ZWRcbi8vIGJlZm9yZS4gSWYgc28sIHdhcm5pbmdzIHdpbGwgYmUgcmVwb3J0ZWQuIFRoaXMgc2hvdWxkIG5vdGlmeSBkZXZlbG9wZXJzIGluIGNhc2UgZHVwbGljYXRlXG4vLyBzdHlsZXMgYXJlIGFjY2lkZW50YWxseSBnZW5lcmF0ZWQgZHVlIHRvIHdyb25nIHVzYWdlIG9mIHRoZSBhbGwtdGhlbWUgbWl4aW5zLlxuLy9cbi8vIEFkZGl0aW9uYWxseSwgdGhpcyBtaXhpbiBjb250cm9scyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGRlbnNpdHkgY29uZmlndXJhdGlvbi4gQnlcbi8vIGRlZmF1bHQsIGRlbnNpdHkgc3R5bGVzIGFyZSBnZW5lcmF0ZWQgYXQgc2NhbGUgemVyby4gSWYgdGhlIHNhbWUgZGVuc2l0eSBzdHlsZXMgd291bGQgYmVcbi8vIGdlbmVyYXRlZCBhIHNlY29uZCB0aW1lIHRob3VnaCwgdGhlIGRlZmF1bHQgdmFsdWUgd2lsbCBjaGFuZ2UgdG8gYXZvaWQgZHVwbGljYXRlIHN0eWxlcy5cbi8vXG4vLyBUaGUgbWl4aW4ga2VlcHMgdHJhY2sgb2YgYWxsIGNvbmZpZ3VyYXRpb25zIGluIGEgbGlzdCB0aGF0IGlzIHNjb3BlZCB0byB0aGUgc3BlY2lmaWVkXG4vLyBpZC4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBhIGdpdmVuIHRoZW1lIGNhbiBiZSBwYXNzZWQgdG8gbXVsdGlwbGUgZGlzam9pbnQgdGhlbWUgbWl4aW5zXG4vLyAoZS5nLiBgYW5ndWxhci1tYXRlcmlhbC10aGVtZWAgYW5kIGBhbmd1bGFyLW1hdGVyaWFsLW1kYy10aGVtZWApIHdpdGhvdXQgY2F1c2luZyBhbnlcbi8vIHN0eWxlIGR1cGxpY2F0aW9uLlxuQG1peGluIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZywgJGlkKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgJGNvbG9yLWNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgJGRlbnNpdHktY29uZmlnOiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICR0eXBvZ3JhcGh5LWNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuICAvLyBMaXN0cyBvZiBwcmV2aW91cyBgY29sb3JgLCBgZGVuc2l0eWAgYW5kIGB0eXBvZ3JhcGh5YCBjb25maWd1cmF0aW9ucy5cbiAgJHByZXZpb3VzLWNvbG9yOiBtYXAtZ2V0KCRfbWF0LXRoZW1lLWVtaXR0ZWQtY29sb3IsICRpZCkgb3IgKCk7XG4gICRwcmV2aW91cy10eXBvZ3JhcGh5OiBtYXAtZ2V0KCRfbWF0LXRoZW1lLWVtaXR0ZWQtdHlwb2dyYXBoeSwgJGlkKSBvciAoKTtcbiAgJHByZXZpb3VzLWRlbnNpdHk6IG1hcC1nZXQoJF9tYXQtdGhlbWUtZW1pdHRlZC1kZW5zaXR5LCAkaWQpIG9yICgpO1xuICAvLyBXaGV0aGVyIGR1cGxpY2F0ZSBsZWdhY3kgZGVuc2l0eSBzdHlsZXMgd291bGQgYmUgZ2VuZXJhdGVkLlxuICAkZHVwbGljYXRlLWxlZ2FjeS1kZW5zaXR5OiBmYWxzZTtcblxuICAvLyBDaGVjayBpZiB0aGUgY29sb3IgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBnZW5lcmF0ZWQgYmVmb3JlLlxuICBAaWYgJGNvbG9yLWNvbmZpZyAhPSBudWxsIHtcbiAgICBAaWYgaW5kZXgoJHByZXZpb3VzLWNvbG9yLCAkY29sb3ItY29uZmlnKSAhPSBudWxsIGFuZFxuICAgICAgICBub3QgJG1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3Mge1xuICAgICAgQHdhcm4gJ1RoZSBzYW1lIGNvbG9yIHN0eWxlcyBhcmUgZ2VuZXJhdGVkIG11bHRpcGxlIHRpbWVzLiAnICtcbiAgICAgICAgICAkX21hdC10aGVtZS1kdXBsaWNhdGUtd2FybmluZztcbiAgICB9XG4gICAgJHByZXZpb3VzLWNvbG9yOiBhcHBlbmQoJHByZXZpb3VzLWNvbG9yLCAkY29sb3ItY29uZmlnKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSB0eXBvZ3JhcGh5IGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gZ2VuZXJhdGVkIGJlZm9yZS5cbiAgQGlmICR0eXBvZ3JhcGh5LWNvbmZpZyAhPSBudWxsIHtcbiAgICBAaWYgaW5kZXgoJHByZXZpb3VzLXR5cG9ncmFwaHksICR0eXBvZ3JhcGh5LWNvbmZpZykgIT0gbnVsbCBhbmRcbiAgICAgICAgbm90ICRtYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzIHtcbiAgICAgIEB3YXJuICdUaGUgc2FtZSB0eXBvZ3JhcGh5IHN0eWxlcyBhcmUgZ2VuZXJhdGVkIG11bHRpcGxlIHRpbWVzLiAnICtcbiAgICAgICAgICAkX21hdC10aGVtZS1kdXBsaWNhdGUtd2FybmluZztcbiAgICB9XG4gICAgJHByZXZpb3VzLXR5cG9ncmFwaHk6IGFwcGVuZCgkcHJldmlvdXMtdHlwb2dyYXBoeSwgJHR5cG9ncmFwaHktY29uZmlnKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBkZW5zaXR5IGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gZ2VuZXJhdGVkIGJlZm9yZS5cbiAgQGlmICRkZW5zaXR5LWNvbmZpZyAhPSBudWxsIHtcbiAgICBAaWYgaW5kZXgoJHByZXZpb3VzLWRlbnNpdHksICRkZW5zaXR5LWNvbmZpZykgIT0gbnVsbCB7XG4gICAgICAvLyBPbmx5IHJlcG9ydCBhIHdhcm5pbmcgaWYgZGVuc2l0eSBzdHlsZXMgd291bGQgYmUgZHVwbGljYXRlZCBmb3Igbm9uLWxlZ2FjeSB0aGVtZVxuICAgICAgLy8gZGVmaW5pdGlvbnMuIEZvciBsZWdhY3kgdGhlbWVzLCB3ZSBoYXZlIGNvbXBhdGliaWxpdHkgbG9naWMgdGhhdCBhdm9pZHMgZHVwbGljYXRpb25cbiAgICAgIC8vIG9mIGRlZmF1bHQgZGVuc2l0eSBzdHlsZXMuIFdlIGRvbid0IHdhbnQgdG8gcmVwb3J0IGEgd2FybmluZyBpbiB0aG9zZSBjYXNlcy5cbiAgICAgIEBpZiBtYXQtcHJpdmF0ZS1pcy1sZWdhY3ktY29uc3RydWN0ZWQtdGhlbWUoJHRoZW1lKSB7XG4gICAgICAgICRkdXBsaWNhdGUtbGVnYWN5LWRlbnNpdHk6IHRydWU7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiBub3QgJG1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3Mge1xuICAgICAgICBAd2FybiAnVGhlIHNhbWUgZGVuc2l0eSBzdHlsZXMgYXJlIGdlbmVyYXRlZCBtdWx0aXBsZSB0aW1lcy4gJyArXG4gICAgICAgICAgICRfbWF0LXRoZW1lLWR1cGxpY2F0ZS13YXJuaW5nO1xuICAgICAgfVxuICAgIH1cbiAgICAkcHJldmlvdXMtZGVuc2l0eTogYXBwZW5kKCRwcmV2aW91cy1kZW5zaXR5LCAkZGVuc2l0eS1jb25maWcpO1xuICB9XG5cbiAgJF9tYXQtdGhlbWUtZW1pdHRlZC1jb2xvcjogbWFwLW1lcmdlKFxuICAgICAgJF9tYXQtdGhlbWUtZW1pdHRlZC1jb2xvciwgKCRpZDogJHByZXZpb3VzLWNvbG9yKSkgIWdsb2JhbDtcbiAgJF9tYXQtdGhlbWUtZW1pdHRlZC1kZW5zaXR5OiBtYXAtbWVyZ2UoXG4gICAgICAkX21hdC10aGVtZS1lbWl0dGVkLWRlbnNpdHksICgkaWQ6ICRwcmV2aW91cy1kZW5zaXR5KSkgIWdsb2JhbDtcbiAgJF9tYXQtdGhlbWUtZW1pdHRlZC10eXBvZ3JhcGh5OiBtYXAtbWVyZ2UoXG4gICAgICAkX21hdC10aGVtZS1lbWl0dGVkLXR5cG9ncmFwaHksICgkaWQ6ICRwcmV2aW91cy10eXBvZ3JhcGh5KSkgIWdsb2JhbDtcblxuICAvLyBPcHRpb25hbGx5LCBjb25zdW1lcnMgb2YgdGhpcyBtaXhpbiBjYW4gd3JhcCBjb250ZW50cyBpbnNpZGUgc28gdGhhdCBuZXN0ZWRcbiAgLy8gZHVwbGljYXRlIHN0eWxlIGNoZWNrcyBkbyBub3QgcmVwb3J0IGFub3RoZXIgd2FybmluZy4gZS5nLiBpZiBkZXZlbG9wZXJzIGluY2x1ZGVcbiAgLy8gdGhlIGBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lYCBtaXhpbiB0d2ljZSwgb25seSB0aGUgdG9wLWxldmVsIGR1cGxpY2F0ZSBzdHlsZXMgY2hlY2tcbiAgLy8gc2hvdWxkIHJlcG9ydCBhIHdhcm5pbmcuIE5vdCBhbGwgaW5kaXZpZHVhbCBjb21wb25lbnRzIHNob3VsZCByZXBvcnQgYSB3YXJuaW5nIHRvby5cbiAgJG9yaWctbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5nczogJG1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3M7XG4gICRtYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzOiB0cnVlICFnbG9iYWw7XG5cbiAgLy8gSWYgZHVwbGljYXRlIGRlZmF1bHQgZGVuc2l0eSBzdHlsZXMgd291bGQgYmUgZ2VuZXJhdGVkIGZvciBhIGxlZ2FjeSBjb25zdHJ1Y3RlZCB0aGVtZSxcbiAgLy8gd2UgYWRqdXN0IHRoZSBkZW5zaXR5IGdlbmVyYXRpb24gc28gdGhhdCBubyBkZW5zaXR5IHN0eWxlcyBhcmUgZ2VuZXJhdGVkIGJ5IGRlZmF1bHQuXG4gIC8vIElmIG5vIGRlZmF1bHQgZGVuc2l0eSBzdHlsZXMgaGF2ZSBiZWVuIGdlbmVyYXRlZCB5ZXQsIHdlIGVuc3VyZSB0aGF0IHRoZSBzdHlsZXNcbiAgLy8gYXJlIGdlbmVyYXRlZCBhdCByb290LiBGb3IgbGVnYWN5IHRoZW1lcyBvdXIgZ29hbCBpcyB0byBnZW5lcmF0ZSBkZWZhdWx0IGRlbnNpdHlcbiAgLy8gc3R5bGVzICoqb25jZSoqIGFuZCBhdCByb290LiBUaGlzIG1hdGNoZXMgdGhlIG9sZCBiZWhhdmlvciB3aGVyZSBkZW5zaXR5IHN0eWxlcyB3ZXJlXG4gIC8vIHBhcnQgb2YgdGhlIGJhc2UgY29tcG9uZW50IHN0eWxlcyAodGhhdCBkaWQgbm90IHVzZSB2aWV3IGVuY2Fwc3VsYXRpb24pLlxuICAvLyBUT0RPOiBSZW1vdmUgdGhpcyBjb21wYXRpYmlsaXR5IGxvZ2ljIHdoZW4gdGhlIGxlZ2FjeSB0aGVtaW5nIEFQSSBpcyByZW1vdmVkLlxuICAkbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1hdC1yb290OiBtYXQtcHJpdmF0ZS1pcy1sZWdhY3ktY29uc3RydWN0ZWQtdGhlbWUoJHRoZW1lKSAhZ2xvYmFsO1xuICAkbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1zdHlsZXM6IG5vdCAkZHVwbGljYXRlLWxlZ2FjeS1kZW5zaXR5ICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG4gICRtYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzOiAkb3JpZy1tYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzICFnbG9iYWw7XG5cbiAgJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtYXQtcm9vdDogZmFsc2UgIWdsb2JhbDtcbiAgJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtc3R5bGVzOiB0cnVlICFnbG9iYWw7XG59XG5cbi8vIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSByZXNvbHZlcyB0byBhIHRoZW1lIG9iamVjdC4gVGhlbWUgb2JqZWN0cyBhcmUgYWx3YXlzXG4vLyBvZiB0eXBlIGBtYXBgIGFuZCBjYW4gb3B0aW9uYWxseSBvbmx5IHNwZWNpZnkgYGNvbG9yYCwgYGRlbnNpdHlgIG9yIGB0eXBvZ3JhcGh5YC5cbkBmdW5jdGlvbiBtYXQtcHJpdmF0ZS1pcy10aGVtZS1vYmplY3QoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpID09ICdtYXAnIGFuZCAoXG4gICAgbWFwLWhhcy1rZXkoJHZhbHVlLCBjb2xvcikgb3JcbiAgICBtYXAtaGFzLWtleSgkdmFsdWUsIGRlbnNpdHkpIG9yXG4gICAgbWFwLWhhcy1rZXkoJHZhbHVlLCB0eXBvZ3JhcGh5KSBvclxuICAgIGxlbmd0aCgkdmFsdWUpID09IDBcbiAgKTtcbn1cblxuLy8gQ2hlY2tzIHdoZXRoZXIgYSBnaXZlbiB2YWx1ZSBjb3JyZXNwb25kcyB0byBhIGxlZ2FjeSBjb25zdHJ1Y3RlZCB0aGVtZS5cbkBmdW5jdGlvbiBtYXQtcHJpdmF0ZS1pcy1sZWdhY3ktY29uc3RydWN0ZWQtdGhlbWUoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpID09ICdtYXAnIGFuZCBtYXAtZ2V0KCR2YWx1ZSwgJ19pcy1sZWdhY3ktdGhlbWUnKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGJhY2t3YXJkcyBjb21wYXRpYmxlIHRoZW1lLiBQcmV2aW91c2x5IGluIEFuZ3VsYXIgTWF0ZXJpYWwsIHRoZW1lIG9iamVjdHNcbi8vIGNvbnRhaW5lZCB0aGUgY29sb3IgY29uZmlndXJhdGlvbiBkaXJlY3RseS4gV2l0aCB0aGUgcmVjZW50IHJlZmFjdG9yaW5nIG9mIHRoZSB0aGVtaW5nXG4vLyBzeXN0ZW0gdG8gYWxsb3cgZm9yIGRlbnNpdHkgYW5kIHR5cG9ncmFwaHkgY29uZmlndXJhdGlvbnMsIHRoaXMgaXMgbm8gbG9uZ2VyIHRoZSBjYXNlLlxuLy8gVG8gZW5zdXJlIHRoYXQgY29uc3RydWN0ZWQgdGhlbWVzIHdoaWNoIHdpbGwgYmUgcGFzc2VkIHRvIGN1c3RvbSB0aGVtZSBtaXhpbnMgZG8gbm90IGJyZWFrLFxuLy8gd2UgY29weSB0aGUgY29sb3IgY29uZmlndXJhdGlvbiBhbmQgcHV0IGl0cyBwcm9wZXJ0aWVzIGF0IHRoZSB0b3AtbGV2ZWwgb2YgdGhlIHRoZW1lIG9iamVjdC5cbi8vIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiBhIHBhdHRlcm4gdGhhdCBzaG91bGQgc3RpbGwgd29yayB1bnRpbCBpdCdzIG9mZmljaWFsbHkgbWFya2VkIGFzIGFcbi8vIGJyZWFraW5nIGNoYW5nZTpcbi8vXG4vLyAgICBAbWl4aW4gbXktY3VzdG9tLWNvbXBvbmVudC10aGVtZSgkdGhlbWUpIHtcbi8vICAgICAgLm15LWNvbXAge1xuLy8gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSkpO1xuLy8gICAgICB9XG4vLyAgICB9XG4vL1xuLy8gTm90ZSB0aGF0IHRoZSBgJHRoZW1lLnByaW1hcnlgIGtleSBkb2VzIHVzdWFsbHkgbm90IGV4aXN0IHNpbmNlIHRoZSBjb2xvciBjb25maWd1cmF0aW9uXG4vLyBpcyBzdG9yZWQgaW4gYCR0aGVtZS5jb2xvcmAgd2hpY2ggY29udGFpbnMgYSBwcm9wZXJ0eSBmb3IgYHByaW1hcnlgLiBUaGlzIG1ldGhvZCBjb3BpZXNcbi8vIHRoZSBtYXAgZnJvbSBgJHRoZW1lLmNvbG9yYCB0byBgJHRoZW1lYCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtY3JlYXRlLWJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LXRoZW1lKCR0aGVtZSkge1xuICBAaWYgbm90IG1hcC1nZXQoJHRoZW1lLCBjb2xvcikge1xuICAgIEByZXR1cm4gJHRoZW1lO1xuICB9XG4gICRjb2xvcjogbWFwLWdldCgkdGhlbWUsIGNvbG9yKTtcbiAgQHJldHVybiBtYXAtbWVyZ2UoJHRoZW1lLCAkY29sb3IpO1xufVxuXG4vLyBHZXRzIHRoZSB0aGVtZSBmcm9tIHRoZSBnaXZlbiB2YWx1ZSB0aGF0IGlzIGVpdGhlciBhbHJlYWR5IGEgdGhlbWUsIG9yIGEgY29sb3IgY29uZmlndXJhdGlvbi5cbi8vIFRoaXMgaGFuZGxlcyB0aGUgbGVnYWN5IGNhc2Ugd2hlcmUgZGV2ZWxvcGVycyBwYXNzIGEgY29sb3IgY29uZmlndXJhdGlvbiBkaXJlY3RseSB0byB0aGVcbi8vIHRoZW1lIG1peGluLiBCZWZvcmUgd2UgaW50cm9kdWNlZCB0aGUgbmV3IHBhdHRlcm4gZm9yIGNvbnN0cnVjdGluZyBhIHRoZW1lLCBkZXZlbG9wZXJzIHBhc3NlZFxuLy8gdGhlIGNvbG9yIGNvbmZpZ3VyYXRpb24gZGlyZWN0bHkgdG8gdGhlIHRoZW1lIG1peGlucy4gVGhpcyBjYW4gYmUgc3RpbGwgdGhlIGNhc2UgaWYgZGV2ZWxvcGVyc1xuLy8gY29uc3RydWN0IGEgdGhlbWUgbWFudWFsbHkgYW5kIHBhc3MgaXQgdG8gYSB0aGVtZS4gV2Ugc3VwcG9ydCB0aGlzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbi8vIFRPRE8oZGV2dmVyc2lvbik6IHJlbW92ZSB0aGlzIGluIHRoZSBmdXR1cmUuIENvbnN0cnVjdGluZyB0aGVtZXMgbWFudWFsbHkgaXMgcmFyZSxcbi8vIGFuZCB0aGUgY29kZSBjYW4gYmUgZWFzaWx5IHVwZGF0ZWQgdG8gdGhlIG5ldyBBUEkuXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gIEBpZiBtYXQtcHJpdmF0ZS1pcy10aGVtZS1vYmplY3QoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAgIEByZXR1cm4gJHRoZW1lLW9yLWNvbG9yLWNvbmZpZztcbiAgfVxuICBAcmV0dXJuIG1hdC1wcml2YXRlLWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZSgoXG4gICAgX2lzLWxlZ2FjeS10aGVtZTogdHJ1ZSxcbiAgICBjb2xvcjogJHRoZW1lLW9yLWNvbG9yLWNvbmZpZ1xuICApKTtcbn1cblxuXG5cbiRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHk6IDAuMTtcblxuQG1peGluIG1hdC1yaXBwbGUoKSB7XG5cbiAgLy8gVGhlIGhvc3QgZWxlbWVudCBvZiBhbiBtYXQtcmlwcGxlIGRpcmVjdGl2ZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBwb3NpdGlvbiBvZiBcImFic29sdXRlXCIgb3JcbiAgLy8gXCJyZWxhdGl2ZVwiIHNvIHRoYXQgdGhlIHJpcHBsZXMgaW5zaWRlIGFyZSBjb3JyZWN0bHkgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjb250YWluZXIuXG4gIC5tYXQtcmlwcGxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgZXZlcnkgcmlwcGxlIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBwb3NpdGlvbjogcmVsYXRpdmUgaW4gZmF2b3Igb2YgY3JlYXRpbmcgYW5cbiAgICAvLyBlYXN5IEFQSSBmb3IgZGV2ZWxvcGVycyB1c2luZyB0aGUgTWF0UmlwcGxlIGRpcmVjdGl2ZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvLyBQcm9tb3RlIGNvbnRhaW5lcnMgdGhhdCBoYXZlIHJpcHBsZXMgdG8gYSBuZXcgbGF5ZXIuIFdlIHdhbnQgdG8gdGFyZ2V0IGA6bm90KDplbXB0eSlgLFxuICAgIC8vIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCBhbGwgcmlwcGxlIGNvbnRhaW5lcnMgdG8gaGF2ZSB0aGVpciBvd24gbGF5ZXIgc2luY2UgdGhleSdyZSB1c2VkIGluIGFcbiAgICAvLyBsb3Qgb2YgcGxhY2VzIGFuZCB0aGUgbGF5ZXIgaXMgb25seSByZWxldmFudCB3aGlsZSBhbmltYXRpbmcuIE5vdGUgdGhhdCBpZGVhbGx5IHdlJ2QgdXNlXG4gICAgLy8gdGhlIGBjb250YWluYCBwcm9wZXJ0eSBoZXJlIChzZWUgIzEzMTc1KSwgYmVjYXVzZSBgOmVtcHR5YCBjYW4gYmUgYnJva2VuIGJ5IGhhdmluZyBleHRyYVxuICAgIC8vIHRleHQgaW5zaWRlIHRoZSBlbGVtZW50LCBidXQgaXQgaXNuJ3QgdmVyeSB3ZWxsIHN1cHBvcnRlZCB5ZXQuXG4gICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWQge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIHRyYW5zaXRpb246IG9wYWNpdHksIHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcblxuICAgIC8vIEluIGhpZ2ggY29udHJhc3QgbW9kZSB0aGUgcmlwcGxlIGlzIG9wYXF1ZSwgY2F1c2luZyBpdCB0byBvYnN0cnVjdCB0aGUgY29udGVudC5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdChhY3RpdmUsIG9mZikge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLyogQ29sb3JzIGZvciB0aGUgcmlwcGxlIGVsZW1lbnRzLiovXG5AbWl4aW4gbWF0LXJpcHBsZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQtYmFzZTogbWFwLWdldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgLy8gSWYgdGhlIHJpcHBsZSBjb2xvciBpcyByZXNvbHZlcyB0byBhIGNvbG9yICp0eXBlKiwgd2UgY2FuIHVzZSBpdCBkaXJlY3RseSwgb3RoZXJ3aXNlXG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgY29sb3IgYW5kIHNldHRpbmcgYW4gb3BhY2l0eS5cbiAgICBAaWYgKHR5cGUtb2YoJGZvcmVncm91bmQtYmFzZSkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGZvcmVncm91bmQtYmFzZSwgJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JlZ3JvdW5kLWJhc2U7XG4gICAgICBvcGFjaXR5OiAkbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtcmlwcGxlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXJpcHBsZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFRoaXMgbWl4aW4gZW5zdXJlcyBhbiBlbGVtZW50IHNwYW5zIHRvIGZpbGwgdGhlIG5lYXJlc3QgYW5jZXN0b3Igd2l0aCBkZWZpbmVkIHBvc2l0aW9uaW5nLlxuQG1peGluIG1hdC1maWxsIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cblxuLy8vIE1peGluIHRoYXQgdHVybnMgb24gc3Ryb25nIGZvY3VzIGluZGljYXRvcnMuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vICAgLm15LWFwcCB7XG4vLy8gICAgIEBpbmNsdWRlIG1hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnKTtcbi8vLyAgIH1cbkBtaXhpbiBtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZzogKCkpIHtcbiAgLy8gRGVmYXVsdCBmb2N1cyBpbmRpY2F0b3IgY29uZmlnLlxuICAkZGVmYXVsdC1jb25maWc6IChcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkLFxuICAgIGJvcmRlci13aWR0aDogM3B4LFxuICAgIGJvcmRlci1yYWRpdXM6IDRweCxcbiAgKTtcblxuICAvLyBNZXJnZSBkZWZhdWx0IGNvbmZpZyB3aXRoIHVzZXIgY29uZmlnLlxuICAkY29uZmlnOiBtYXAtbWVyZ2UoJGRlZmF1bHQtY29uZmlnLCAkY29uZmlnKTtcbiAgJGJvcmRlci1zdHlsZTogbWFwLWdldCgkY29uZmlnLCBib3JkZXItc3R5bGUpO1xuICAkYm9yZGVyLXdpZHRoOiBtYXAtZ2V0KCRjb25maWcsIGJvcmRlci13aWR0aCk7XG4gICRib3JkZXItcmFkaXVzOiBtYXAtZ2V0KCRjb25maWcsIGJvcmRlci1yYWRpdXMpO1xuXG4gIC8vIEJhc2Ugc3R5bGVzIGZvciBmb2N1cyBpbmRpY2F0b3JzLlxuICAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBtYXQtZmlsbCgpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoICRib3JkZXItc3R5bGUgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIH1cblxuICAvLyBCeSBkZWZhdWx0LCBhbGwgZm9jdXMgaW5kaWNhdG9ycyBhcmUgZmx1c2ggd2l0aCB0aGUgYm91bmRpbmcgYm94IG9mIHRoZWlyXG4gIC8vIGhvc3QgZWxlbWVudC4gRm9yIHBhcnRpY3VsYXIgZWxlbWVudHMgKGxpc3RlZCBiZWxvdyksIGRlZmF1bHQgaW5zZXQvb2Zmc2V0XG4gIC8vIHZhbHVlcyBhcmUgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IHRoZSBmb2N1cyBpbmRpY2F0b3IgaXMgc3VmZmljaWVudGx5XG4gIC8vIGNvbnRyYXN0aXZlIGFuZCByZW5kZXJzIGFwcHJvcHJpYXRlbHkuXG5cbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LWZsYXQtYnV0dG9uOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1yYWlzZWQtYnV0dG9uOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1mYWI6OmJlZm9yZSxcbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LW1pbmktZmFiOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1jaGlwOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1zb3J0LWhlYWRlci1jb250YWluZXI6OmJlZm9yZSB7XG4gICAgbWFyZ2luOiAtKCRib3JkZXItd2lkdGggKyAycHgpO1xuICB9XG5cbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LXN0cm9rZWQtYnV0dG9uOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDo6YmVmb3JlIHtcbiAgICBtYXJnaW46IC0oJGJvcmRlci13aWR0aCArIDNweCk7XG4gIH1cblxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtdGFiLWxpbms6OmJlZm9yZSxcbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LXRhYi1sYWJlbDo6YmVmb3JlIHtcbiAgICBtYXJnaW46IDVweDtcbiAgfVxuXG4gIC8vIFJlbmRlciB0aGUgZm9jdXMgaW5kaWNhdG9yIG9uIGZvY3VzLiBEZWZpbmluZyBhIHBzZXVkbyBlbGVtZW50J3NcbiAgLy8gY29udGVudCB3aWxsIGNhdXNlIGl0IHRvIHJlbmRlci5cblxuICAvLyBDaGVja2JveGVzLCByYWRpb3MsIGFuZCBzbGlkZSB0b2dnbGVzIHJlbmRlciBmb2N1cyBpbmRpY2F0b3JzIHdoZW4gdGhlXG4gIC8vIGFzc29jaWF0ZWQgdmlzdWFsbHktaGlkZGVuIGlucHV0IGlzIGZvY3VzZWQuXG4gIC5tYXQtY2hlY2tib3gtaW5wdXQ6Zm9jdXMgfiAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLFxuICAubWF0LXJhZGlvLWlucHV0OmZvY3VzIH4gLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxcbiAgLm1hdC1zbGlkZS10b2dnbGUtaW5wdXQ6Zm9jdXMgfiAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxcblxuICAvLyBGb3Igb3B0aW9ucywgcmVuZGVyIHRoZSBmb2N1cyBpbmRpY2F0b3Igd2hlbiB0aGUgY2xhc3MgLm1hdC1hY3RpdmVcbiAgLy8gaXMgcHJlc2VudC5cbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LW9wdGlvbi5tYXQtYWN0aXZlOjpiZWZvcmUsXG5cbiAgLy8gRm9yIGNhbGVuZGFyIGNlbGxzLCByZW5kZXIgdGhlIGZvY3VzIGluZGljYXRvciB3aGVuIHRoZSBwYXJlbnQgY2VsbCBpc1xuICAvLyBmb2N1c2VkLlxuICAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpmb2N1cyAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLFxuXG4gIC8vIEZvciBhbGwgb3RoZXIgY29tcG9uZW50cywgcmVuZGVyIHRoZSBmb2N1cyBpbmRpY2F0b3Igb24gZm9jdXMuXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yOmZvY3VzOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG59XG5cbi8vIE1peGluIHRoYXQgYXBwbGllcyB0aGUgYm9yZGVyIGNvbG9yIGZvciB0aGUgZm9jdXMgaW5kaWNhdG9ycy5cbkBtaXhpbiBfbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWJvcmRlci1jb2xvcigkY29sb3IpIHtcbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICBAaW5jbHVkZSBfbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWJvcmRlci1jb2xvcihtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KSkpO1xufVxuXG4vLy8gTWl4aW4gdGhhdCBzZXRzIHRoZSBjb2xvciBvZiB0aGUgZm9jdXMgaW5kaWNhdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Y29sb3J8bWFwfSAkdGhlbWUtb3ItY29sb3Jcbi8vLyAgIElmIHRoZW1lLCBmb2N1cyBpbmRpY2F0b3JzIGFyZSBzZXQgdG8gdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIHRoZW1lLiBJZlxuLy8vICAgY29sb3IsIGZvY3VzIGluZGljYXRvcnMgYXJlIHNldCB0byB0aGF0IGNvbG9yLlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyAgIC5kZW1vLWRhcmstdGhlbWUge1xuLy8vICAgICBAaW5jbHVkZSBtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtdGhlbWUoJGRhcmstdGhlbWUtbWFwKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gICAuZGVtby1yZWQtdGhlbWUge1xuLy8vICAgICBAaW5jbHVkZSBtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtdGhlbWUoI2YwMCk7XG4vLy8gICB9XG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF0ZXJpYWwvdGhlbWUtbWl4aW4tYXBpICovXG5AbWl4aW4gbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lKCR0aGVtZS1vci1jb2xvcikge1xuICBAaWYgdHlwZS1vZigkdGhlbWUtb3ItY29sb3IpICE9ICdtYXAnIHtcbiAgICBAaW5jbHVkZSBfbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWJvcmRlci1jb2xvcigkdGhlbWUtb3ItY29sb3IpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yKTtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycycpIHtcbiAgICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICAgIEBpbmNsdWRlIG1hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBNaXhpbiB0aGF0IGVuc3VyZXMgZm9jdXMgaW5kaWNhdG9yIGhvc3QgZWxlbWVudHMgYXJlIHBvc2l0aW9uZWQgc28gdGhhdCB0aGUgZm9jdXMgaW5kaWNhdG9yXG4vLyBwc2V1ZG8gZWxlbWVudCB3aXRoaW4gaXMgcG9zaXRpb25lZCByZWxhdGl2ZSB0byB0aGUgaG9zdC4gUHJpdmF0ZSBtaXhpbiBpbmNsdWRlZCB3aXRoaW5cbi8vIGBtYXQtY29yZWAuXG5AbWl4aW4gbWF0LXByaXZhdGUtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtcG9zaXRpb25pbmcoKSB7XG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbn1cblxuXG5cbi8vIFV0aWxpdHkgZm9yIGZldGNoaW5nIGEgbmVzdGVkIHZhbHVlIGZyb20gYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgJG5hbWUpIHtcbiAgQHJldHVybiBtYXAtZ2V0KG1hcC1nZXQoJGNvbmZpZywgJGxldmVsKSwgJG5hbWUpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250IHNpemUgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1zaXplKTtcbn1cblxuLy8gR2V0cyB0aGUgbGluZSBoZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBsaW5lLWhlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgd2VpZ2h0IGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1mb250LXdlaWdodCgkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC13ZWlnaHQpO1xufVxuXG4vLyBHZXRzIHRoZSBsZXR0ZXIgc3BhY2luZyBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGV0dGVyLXNwYWNpbmcoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxldHRlci1zcGFjaW5nKTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udC1mYW1pbHkgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnIGFuZCByZW1vdmVzIHRoZSBxdW90ZXMgYXJvdW5kIGl0LlxuQGZ1bmN0aW9uIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCAkbGV2ZWw6IG51bGwpIHtcbiAgJGZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRjb25maWcsIGZvbnQtZmFtaWx5KTtcblxuICBAaWYgJGxldmVsICE9IG51bGwge1xuICAgICRmb250LWZhbWlseTogX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGZvbnQtZmFtaWx5KTtcbiAgfVxuXG4gIC8vIEd1YXJkIGFnYWluc3QgdW5xdW90aW5nIG5vbi1zdHJpbmcgdmFsdWVzLCBiZWNhdXNlIGl0J3MgZGVwcmVjYXRlZC5cbiAgQHJldHVybiBpZih0eXBlLW9mKCRmb250LWZhbWlseSkgPT0gc3RyaW5nLCB1bnF1b3RlKCRmb250LWZhbWlseSksICRmb250LWZhbWlseSk7XG59XG5cbi8vIE91dHB1dHMgdGhlIHNob3J0aGFuZCBgZm9udGAgQ1NTIHByb3BlcnR5LCBiYXNlZCBvbiBhIHNldCBvZiB0eXBvZ3JhcGh5IHZhbHVlcy4gRmFsbHMgYmFjayB0b1xuLy8gdGhlIGluZGl2aWR1YWwgcHJvcGVydGllcyBpZiBhIHZhbHVlIHRoYXQgaXNuJ3QgYWxsb3dlZCBpbiB0aGUgc2hvcnRoYW5kIGlzIHBhc3NlZCBpbi5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KSB7XG4gIC8vIElmIGFueSBvZiB0aGUgdmFsdWVzIGFyZSBzZXQgdG8gYGluaGVyaXRgLCB3ZSBjYW4ndCB1c2UgdGhlIHNob3J0aGFuZFxuICAvLyBzbyB3ZSBmYWxsIGJhY2sgdG8gcGFzc2luZyBpbiB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzLlxuICBAaWYgKCRmb250LXNpemUgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LXdlaWdodCA9PSBpbmhlcml0IG9yXG4gICAgICAgJGxpbmUtaGVpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkZm9udC1mYW1pbHkgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LXNpemUgPT0gbnVsbCBvclxuICAgICAgICRmb250LXdlaWdodCA9PSBudWxsIG9yXG4gICAgICAgJGxpbmUtaGVpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkZm9udC1mYW1pbHkgPT0gbnVsbCkge1xuXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBPdGhlcndpc2UgdXNlIHRoZSBzaG9ydGhhbmQgYGZvbnRgLCBiZWNhdXNlIGl0J3MgdGhlIGxlYXN0IGFtb3VudCBvZiBieXRlcy4gTm90ZVxuICAgIC8vIHRoYXQgd2UgbmVlZCB0byB1c2UgaW50ZXJwb2xhdGlvbiBmb3IgYGZvbnQtc2l6ZS9saW5lLWhlaWdodGAgaW4gb3JkZXIgdG8gcHJldmVudFxuICAgIC8vIFNhc3MgZnJvbSBkaXZpZGluZyB0aGUgdHdvIHZhbHVlcy5cbiAgICBmb250OiAkZm9udC13ZWlnaHQgI3skZm9udC1zaXplfS8jeyRsaW5lLWhlaWdodH0gJGZvbnQtZmFtaWx5O1xuICB9XG59XG5cbi8vIENvbnZlcnRzIGEgdHlwb2dyYXBoeSBsZXZlbCBpbnRvIENTUyBzdHlsZXMuXG5AbWl4aW4gbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsICRsZXZlbCkge1xuICAkZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCk7XG4gICRmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCk7XG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsICRsZXZlbCk7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbCk7XG5cbiAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoJGZvbnQtc2l6ZSwgJGZvbnQtd2VpZ2h0LCAkbGluZS1oZWlnaHQsICRmb250LWZhbWlseSk7XG4gIGxldHRlci1zcGFjaW5nOiBtYXQtbGV0dGVyLXNwYWNpbmcoJGNvbmZpZywgJGxldmVsKTtcbn1cblxuXG5AbWl4aW4gbWF0LW9wdGlvbi1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuXG4gIC5tYXQtb3B0aW9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICY6aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSxcbiAgICAmOmZvY3VzOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgLy8gSW4gbXVsdGlwbGUgbW9kZSB0aGVyZSBpcyBhIGNoZWNrYm94IHRvIHNob3cgdGhhdCB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgICYubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSk6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LXByaW1hcnkgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY2NlbnQgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gIH1cblxuICAubWF0LXdhcm4gLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LW9wdGlvbiB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LW9wdGlvbi1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1vcHRpb24nKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtb3B0aW9uLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtb3B0aW9uLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LW9wdGdyb3VwLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1vcHRncm91cC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtb3B0Z3JvdXAnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtb3B0Z3JvdXAtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1vcHRncm91cC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuQG1peGluIG1hdC1wc2V1ZG8tY2hlY2tib3gtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcblxuICAvLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBXaGlsZSB0aGUgc3BlYyBjYWxscyBmb3IgdHJhbnNsdWNlbnQgYmxhY2tzL3doaXRlcyBmb3IgZGlzYWJsZWQgY29sb3JzLFxuICAvLyB0aGlzIGRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGVsZW1lbnRzIGxheWVyZWQgb24gdG9wIG9mIG9uZSBhbm90aGVyLiBUbyBnZXQgYXJvdW5kIHRoaXMgd2VcbiAgLy8gYmxlbmQgdGhlIGNvbG9ycyB0b2dldGhlciBiYXNlZCBvbiB0aGUgYmFzZSBjb2xvciBhbmQgdGhlIHRoZW1lIGJhY2tncm91bmQuXG4gICR3aGl0ZS0zMHBjdC1vcGFjaXR5LW9uLWRhcms6ICM2ODY4Njg7XG4gICRibGFjay0yNnBjdC1vcGFjaXR5LW9uLWxpZ2h0OiAjYjBiMGIwO1xuICAkZGlzYWJsZWQtY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrLCAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodCk7XG4gICRjb2xvcmVkLWJveC1zZWxlY3RvcjogJy5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUnO1xuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCksIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KSk7XG4gIH1cblxuICAvLyBEZWZhdWx0IHRvIHRoZSBhY2NlbnQgY29sb3IuIE5vdGUgdGhhdCB0aGUgcHNldWRvIGNoZWNrYm94ZXMgYXJlIG1lYW50IHRvIGluaGVyaXQgdGhlXG4gIC8vIHRoZW1lIGZyb20gdGhlaXIgcGFyZW50LCByYXRoZXIgdGhhbiBpbXBsZW1lbnRpbmcgdGhlaXIgb3duIHRoZW1pbmcsIHdoaWNoIGlzIHdoeSB3ZVxuICAvLyBkb24ndCBhdHRhY2ggdG8gdGhlIGBtYXQtKmAgY2xhc3Nlcy4gQWxzbyBub3RlIHRoYXQgdGhpcyBuZWVkcyB0byBiZSBiZWxvdyBgLm1hdC1wcmltYXJ5YFxuICAvLyBpbiBvcmRlciB0byBhbGxvdyBmb3IgdGhlIGNvbG9yIHRvIGJlIG92ZXJ3cml0dGVuIGlmIHRoZSBjaGVja2JveCBpcyBpbnNpZGUgYSBwYXJlbnQgdGhhdFxuICAvLyBoYXMgYG1hdC1hY2NlbnRgIGFuZCBpcyBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcGFyZW50IHRoYXQgaGFzIGBtYXQtcHJpbWFyeWAuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsXG4gIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcihtYXAtZ2V0KCRjb25maWcsIGFjY2VudCkpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCB3YXJuKSk7XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAmLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LXBzZXVkby1jaGVja2JveC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtcHNldWRvLWNoZWNrYm94LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1wc2V1ZG8tY2hlY2tib3gnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHNldWRvLWNoZWNrYm94LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcHNldWRvLWNoZWNrYm94LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHNldWRvLWNoZWNrYm94LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gUmVwcmVzZW50cyBhIHR5cG9ncmFwaHkgbGV2ZWwgZnJvbSB0aGUgTWF0ZXJpYWwgZGVzaWduIHNwZWMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktbGV2ZWwoXG4gICRmb250LXNpemUsXG4gICRsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSxcbiAgJGZvbnQtd2VpZ2h0OiA0MDAsXG4gICRmb250LWZhbWlseTogbnVsbCxcbiAgJGxldHRlci1zcGFjaW5nOiBub3JtYWwpIHtcblxuICBAcmV0dXJuIChcbiAgICBmb250LXNpemU6ICRmb250LXNpemUsXG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodCxcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LFxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHksXG4gICAgbGV0dGVyLXNwYWNpbmc6ICRsZXR0ZXItc3BhY2luZ1xuICApO1xufVxuXG4vLyBSZXByZXNlbnRzIGEgY29sbGVjdGlvbiBvZiB0eXBvZ3JhcGh5IGxldmVscy5cbi8vIERlZmF1bHRzIGNvbWUgZnJvbSBodHRwczovL21hdGVyaWFsLmlvL2d1aWRlbGluZXMvc3R5bGUvdHlwb2dyYXBoeS5odG1sXG4vLyBOb3RlOiBUaGUgc3BlYyBkb2Vzbid0IG1lbnRpb24gbGV0dGVyIHNwYWNpbmcuIFRoZSB2YWx1ZXMgaGVyZSBjb21lIGZyb21cbi8vIGV5ZWJhbGxpbmcgaXQgdW50aWwgaXQgbG9va2VkIGV4YWN0bHkgbGlrZSB0aGUgc3BlYyBleGFtcGxlcy5cbkBmdW5jdGlvbiBtYXQtdHlwb2dyYXBoeS1jb25maWcoXG4gICRmb250LWZhbWlseTogICAnUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYnLFxuICAkZGlzcGxheS00OiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTEycHgsIDExMnB4LCAzMDAsICRsZXR0ZXItc3BhY2luZzogLTAuMDVlbSksXG4gICRkaXNwbGF5LTM6ICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCg1NnB4LCA1NnB4LCA0MDAsICRsZXR0ZXItc3BhY2luZzogLTAuMDJlbSksXG4gICRkaXNwbGF5LTI6ICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCg0NXB4LCA0OHB4LCA0MDAsICRsZXR0ZXItc3BhY2luZzogLTAuMDA1ZW0pLFxuICAkZGlzcGxheS0xOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMzRweCwgNDBweCwgNDAwKSxcbiAgJGhlYWRsaW5lOiAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDI0cHgsIDMycHgsIDQwMCksXG4gICR0aXRsZTogICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyMHB4LCAzMnB4LCA1MDApLFxuICAkc3ViaGVhZGluZy0yOiAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTZweCwgMjhweCwgNDAwKSxcbiAgJHN1YmhlYWRpbmctMTogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE1cHgsIDI0cHgsIDQwMCksXG4gICRib2R5LTI6ICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNHB4LCAyNHB4LCA1MDApLFxuICAkYm9keS0xOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjBweCwgNDAwKSxcbiAgJGNhcHRpb246ICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDEycHgsIDIwcHgsIDQwMCksXG4gICRidXR0b246ICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNHB4LCAxNHB4LCA1MDApLFxuICAvLyBMaW5lLWhlaWdodCBtdXN0IGJlIHVuaXQtbGVzcyBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplLlxuICAkaW5wdXQ6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoaW5oZXJpdCwgMS4xMjUsIDQwMClcbikge1xuXG4gIC8vIERlY2xhcmUgYW4gaW5pdGlhbCBtYXAgd2l0aCBhbGwgb2YgdGhlIGxldmVscy5cbiAgJGNvbmZpZzogKFxuICAgIGRpc3BsYXktNDogICAgICAkZGlzcGxheS00LFxuICAgIGRpc3BsYXktMzogICAgICAkZGlzcGxheS0zLFxuICAgIGRpc3BsYXktMjogICAgICAkZGlzcGxheS0yLFxuICAgIGRpc3BsYXktMTogICAgICAkZGlzcGxheS0xLFxuICAgIGhlYWRsaW5lOiAgICAgICAkaGVhZGxpbmUsXG4gICAgdGl0bGU6ICAgICAgICAgICR0aXRsZSxcbiAgICBzdWJoZWFkaW5nLTI6ICAgJHN1YmhlYWRpbmctMixcbiAgICBzdWJoZWFkaW5nLTE6ICAgJHN1YmhlYWRpbmctMSxcbiAgICBib2R5LTI6ICAgICAgICAgJGJvZHktMixcbiAgICBib2R5LTE6ICAgICAgICAgJGJvZHktMSxcbiAgICBjYXB0aW9uOiAgICAgICAgJGNhcHRpb24sXG4gICAgYnV0dG9uOiAgICAgICAgICRidXR0b24sXG4gICAgaW5wdXQ6ICAgICAgICAgICRpbnB1dCxcbiAgKTtcblxuICAvLyBMb29wIHRocm91Z2ggdGhlIGxldmVscyBhbmQgc2V0IHRoZSBgZm9udC1mYW1pbHlgIG9mIHRoZSBvbmVzIHRoYXQgZG9uJ3QgaGF2ZSBvbmUgdG8gdGhlIGJhc2UuXG4gIC8vIE5vdGUgdGhhdCBTYXNzIGNhbid0IG1vZGlmeSBtYXBzIGluIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IHdlIG5lZWQgdG8gbWVyZ2UgYW5kIHJlLWFzc2lnbi5cbiAgQGVhY2ggJGtleSwgJGxldmVsIGluICRjb25maWcge1xuICAgIEBpZiBtYXAtZ2V0KCRsZXZlbCwgZm9udC1mYW1pbHkpID09IG51bGwge1xuICAgICAgJG5ldy1sZXZlbDogbWFwLW1lcmdlKCRsZXZlbCwgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbiAgICAgICRjb25maWc6IG1hcC1tZXJnZSgkY29uZmlnLCAoJGtleTogJG5ldy1sZXZlbCkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFkZCB0aGUgYmFzZSBmb250IGZhbWlseSB0byB0aGUgY29uZmlnLlxuICBAcmV0dXJuIG1hcC1tZXJnZSgkY29uZmlnLCAoZm9udC1mYW1pbHk6ICRmb250LWZhbWlseSkpO1xufVxuXG4vLyBXaGV0aGVyIGEgY29uZmlnIGlzIGZvciB0aGUgTWF0ZXJpYWwgRGVzaWduIDIwMTggdHlwb2dyYXBoeSBzeXN0ZW0uXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtdHlwb2dyYXBoeS1pcy0yMDE4LWNvbmZpZygkY29uZmlnKSB7XG4gIEByZXR1cm4gbWFwLWdldCgkY29uZmlnLCBoZWFkbGluZS0xKSAhPSBudWxsO1xufVxuXG4vLyBXaGV0aGVyIGEgY29uZmlnIGlzIGZvciB0aGUgTWF0ZXJpYWwgRGVzaWduIDIwMTQgdHlwb2dyYXBoeSBzeXN0ZW0uXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtdHlwb2dyYXBoeS1pcy0yMDE0LWNvbmZpZygkY29uZmlnKSB7XG4gIEByZXR1cm4gbWFwLWdldCgkY29uZmlnLCBoZWFkbGluZSkgIT0gbnVsbDtcbn1cblxuLy8gR2l2ZW4gYSBjb25maWcgZm9yIGVpdGhlciB0aGUgMjAxNCBvciAyMDE4IE1hdGVyaWFsIERlc2lnbiB0eXBvZ3JhcGh5IHN5c3RlbSxcbi8vIHByb2R1Y2VzIGEgbm9ybWFsaXplZCB0eXBvZ3JhcGh5IGNvbmZpZyBmb3IgdGhlIDIwMTQgTWF0ZXJpYWwgRGVzaWduIHR5cG9ncmFwaHkgc3lzdGVtLlxuLy8gMjAxNCAtIGh0dHBzOi8vbWF0ZXJpYWwuaW8vYXJjaGl2ZS9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbCN0eXBvZ3JhcGh5LXN0eWxlc1xuLy8gMjAxOCAtIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL3R5cG9ncmFwaHkvdGhlLXR5cGUtc3lzdGVtLmh0bWwjdHlwZS1zY2FsZVxuQGZ1bmN0aW9uIG1hdC1wcml2YXRlLXR5cG9ncmFwaHktdG8tMjAxNC1jb25maWcoJGNvbmZpZykge1xuICBAaWYgbWF0LXByaXZhdGUtdHlwb2dyYXBoeS1pcy0yMDE4LWNvbmZpZygkY29uZmlnKSB7XG4gICAgQHJldHVybiBtYXQtdHlwb2dyYXBoeS1jb25maWcoXG4gICAgICAgICRkaXNwbGF5LTQ6IG1hcC1nZXQoJGNvbmZpZywgaGVhZGxpbmUtMSksXG4gICAgICAgICRkaXNwbGF5LTM6IG1hcC1nZXQoJGNvbmZpZywgaGVhZGxpbmUtMiksXG4gICAgICAgICRkaXNwbGF5LTI6IG1hcC1nZXQoJGNvbmZpZywgaGVhZGxpbmUtMyksXG4gICAgICAgICRkaXNwbGF5LTE6IG1hcC1nZXQoJGNvbmZpZywgaGVhZGxpbmUtNCksXG4gICAgICAgICRoZWFkbGluZTogbWFwLWdldCgkY29uZmlnLCBoZWFkbGluZS01KSxcbiAgICAgICAgJHRpdGxlOiBtYXAtZ2V0KCRjb25maWcsIGhlYWRsaW5lLTYpLFxuICAgICAgICAkc3ViaGVhZGluZy0yOiBtYXAtZ2V0KCRjb25maWcsIHN1YnRpdGxlLTEpLFxuICAgICAgICAkc3ViaGVhZGluZy0xOiBtYXAtZ2V0KCRjb25maWcsIHN1YnRpdGxlLTIpLFxuICAgICAgICAkYm9keS0yOiBtYXAtZ2V0KCRjb25maWcsIGJvZHktMSksXG4gICAgICAgICRib2R5LTE6IG1hcC1nZXQoJGNvbmZpZywgYm9keS0yKSxcbiAgICAgICAgJGJ1dHRvbjogbWFwLWdldCgkY29uZmlnLCBidXR0b24pLFxuICAgICAgICAkY2FwdGlvbjogbWFwLWdldCgkY29uZmlnLCBjYXB0aW9uKSxcbiAgICApO1xuICB9XG4gIEByZXR1cm4gJGNvbmZpZztcbn1cblxuLy8gR2l2ZW4gYSBjb25maWcgZm9yIGVpdGhlciB0aGUgMjAxNCBvciAyMDE4IE1hdGVyaWFsIERlc2lnbiB0eXBvZ3JhcGh5IHN5c3RlbSxcbi8vIHByb2R1Y2VzIGEgbm9ybWFsaXplZCB0eXBvZ3JhcGh5IGNvbmZpZyBmb3IgdGhlIDIwMTggTWF0ZXJpYWwgRGVzaWduIHR5cG9ncmFwaHkgc3lzdGVtLlxuLy8gMjAxNCAtIGh0dHBzOi8vbWF0ZXJpYWwuaW8vYXJjaGl2ZS9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbCN0eXBvZ3JhcGh5LXN0eWxlc1xuLy8gMjAxOCAtIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL3R5cG9ncmFwaHkvdGhlLXR5cGUtc3lzdGVtLmh0bWwjdHlwZS1zY2FsZVxuQGZ1bmN0aW9uIG1hdC1wcml2YXRlLXR5cG9ncmFwaHktdG8tMjAxOC1jb25maWcoJGNvbmZpZykge1xuICBAaWYgbWF0LXByaXZhdGUtdHlwb2dyYXBoeS1pcy0yMDE0LWNvbmZpZygkY29uZmlnKSB7XG4gICAgQHJldHVybiAoXG4gICAgICAgIGhlYWRsaW5lLTE6IG1hcC1nZXQoJGNvbmZpZywgZGlzcGxheS00KSxcbiAgICAgICAgaGVhZGxpbmUtMjogbWFwLWdldCgkY29uZmlnLCBkaXNwbGF5LTMpLFxuICAgICAgICBoZWFkbGluZS0zOiBtYXAtZ2V0KCRjb25maWcsIGRpc3BsYXktMiksXG4gICAgICAgIGhlYWRsaW5lLTQ6IG1hcC1nZXQoJGNvbmZpZywgZGlzcGxheS0xKSxcbiAgICAgICAgaGVhZGxpbmUtNTogbWFwLWdldCgkY29uZmlnLCBoZWFkbGluZSksXG4gICAgICAgIGhlYWRsaW5lLTY6IG1hcC1nZXQoJGNvbmZpZywgdGl0bGUpLFxuICAgICAgICBzdWJ0aXRsZS0xOiBtYXAtZ2V0KCRjb25maWcsIHN1YmhlYWRpbmctMiksXG4gICAgICAgIHN1YnRpdGxlLTI6IG1hcC1nZXQoJGNvbmZpZywgc3ViaGVhZGluZy0xKSxcbiAgICAgICAgYm9keS0xOiBtYXAtZ2V0KCRjb25maWcsIGJvZHktMiksXG4gICAgICAgIGJvZHktMjogbWFwLWdldCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgICBidXR0b246IG1hcC1nZXQoJGNvbmZpZywgYnV0dG9uKSxcbiAgICAgICAgY2FwdGlvbjogbWFwLWdldCgkY29uZmlnLCBjYXB0aW9uKSxcbiAgICApO1xuICB9XG4gIEByZXR1cm4gJGNvbmZpZztcbn1cblxuLy8gQWRkcyB0aGUgYmFzZSB0eXBvZ3JhcGh5IHN0eWxlcywgYmFzZWQgb24gYSBjb25maWcuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF0ZXJpYWwvdGhlbWUtbWl4aW4tYXBpICovXG5AbWl4aW4gbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnLCAkc2VsZWN0b3I6ICcubWF0LXR5cG9ncmFwaHknKSB7XG4gIC5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsICN7JHNlbGVjdG9yfSBoMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oMiwgLm1hdC10aXRsZSwgI3skc2VsZWN0b3J9IGgyIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgzLCAubWF0LXN1YmhlYWRpbmctMiwgI3skc2VsZWN0b3J9IGgzIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oNCwgLm1hdC1zdWJoZWFkaW5nLTEsICN7JHNlbGVjdG9yfSBoNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC8vIE5vdGU6IHRoZSBzcGVjIGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyB0aGF0IHdvdWxkIGNvcnJlc3BvbmQgdG8gaDUgYW5kIGg2LCBidXQgd2UgYWRkIHRoZXNlIGZvclxuICAvLyBjb25zaXN0ZW5jeS4gVGhlIGZvbnQgc2l6ZXMgY29tZSBmcm9tIHRoZSBDaHJvbWUgdXNlciBhZ2VudCBzdHlsZXMgd2hpY2ggaGF2ZSBoNSBhdCAwLjgzZW1cbiAgLy8gYW5kIGg2IGF0IDAuNjdlbS5cbiAgLm1hdC1oNSwgI3skc2VsZWN0b3J9IGg1IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC44MyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtaDYsICN7JHNlbGVjdG9yfSBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoXG4gICAgICAgLy8gY2FsYyBpcyB1c2VkIGhlcmUgdG8gc3VwcG9ydCBjc3MgdmFyaWFibGVzXG4gICAgICBjYWxjKCN7bWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpfSAqIDAuNjcpLFxuICAgICAgbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpXG4gICAgKTtcblxuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gIH1cblxuICAubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWJvZHksIC5tYXQtYm9keS0xLCAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc21hbGwsIC5tYXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGNhcHRpb24pO1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTQsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktNCk7XG4gICAgbWFyZ2luOiAwIDAgNTZweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0zLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTMpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMiwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0yKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTEsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMSk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxufVxuXG5cblxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig0LCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgLy8gU2VsZWN0ZWQgb3B0aW9ucyBpbiBhdXRvY29tcGxldGVzIHNob3VsZCBub3QgYmUgZ3JheSwgYnV0IHdlXG4gICAgLy8gb25seSB3YW50IHRvIG92ZXJyaWRlIHRoZSBiYWNrZ3JvdW5kIGZvciBzZWxlY3RlZCBvcHRpb25zIGlmXG4gICAgLy8gdGhleSBhcmUgKm5vdCogaW4gaG92ZXIgb3IgZm9jdXMgc3RhdGUuIFRoaXMgY2hhbmdlIGhhcyB0byBiZVxuICAgIC8vIG1hZGUgaGVyZSBiZWNhdXNlIGJhc2Ugb3B0aW9uIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlXG4gICAgLy8gYXV0b2NvbXBsZXRlIGFuZCB0aGUgc2VsZWN0LlxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAgICY6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LWF1dG9jb21wbGV0ZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1hdXRvY29tcGxldGUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtYXV0b2NvbXBsZXRlLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUaGlzIGNvbnRhaW5zIGFsbCBvZiB0aGUgc3R5bGVzIGZvciB0aGUgYmFkZ2Vcbi8vIHJhdGhlciB0aGFuIGp1c3QgdGhlIGNvbG9yL3RoZW1lIGJlY2F1c2Ugb2Zcbi8vIG5vIHN0eWxlIHNoZWV0IHN1cHBvcnQgZm9yIGRpcmVjdGl2ZXMuXG5cblxuXG5cblxuJG1hdC1iYWRnZS1mb250LXNpemU6IDEycHg7XG4kbWF0LWJhZGdlLWZvbnQtd2VpZ2h0OiA2MDA7XG4kbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZTogMjJweCAhZGVmYXVsdDtcbiRtYXQtYmFkZ2Utc21hbGwtc2l6ZTogJG1hdC1iYWRnZS1kZWZhdWx0LXNpemUgLSA2O1xuJG1hdC1iYWRnZS1sYXJnZS1zaXplOiAkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSArIDY7XG5cbi8vIE1peGluIGZvciBidWlsZGluZyBvZmZzZXQgZ2l2ZW4gZGlmZmVyZW50IHNpemVzXG5AbWl4aW4gX21hdC1iYWRnZS1zaXplKCRzaXplKSB7XG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRzaXplO1xuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYWJvdmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICB0b3A6IC0kc2l6ZSAvIDI7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYmVsb3cge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBib3R0b206IC0kc2l6ZSAvIDI7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgbGVmdDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWJlZm9yZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgcmlnaHQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLW92ZXJsYXAge1xuICAgICYubWF0LWJhZGdlLWJlZm9yZSB7XG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICBsZWZ0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWJlZm9yZSB7XG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogLSRzaXplIC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICByaWdodDogLSRzaXplIC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogLSRzaXplIC8gMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1iYWRnZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwcmltYXJ5KTtcblxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0KGFjdGl2ZSwgb2ZmKSB7XG4gICAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtYWNjZW50IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLXdhcm4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1oaWRkZW4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtZGlzYWJsZWQge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAkYXBwLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2JhY2tncm91bmQnKTtcbiAgICAgICRiYWRnZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuXG4gICAgICAvLyBUaGUgZGlzYWJsZWQgY29sb3IgdXN1YWxseSBoYXMgc29tZSBraW5kIG9mIG9wYWNpdHksIGJ1dCBiZWNhdXNlIHRoZSBiYWRnZSBpcyBvdmVybGF5ZWRcbiAgICAgIC8vIG9uIHRvcCBvZiBzb21ldGhpbmcgZWxzZSwgaXQgd29uJ3QgbG9vayBnb29kIGlmIGl0J3Mgb3BhcXVlLiBJZiBpdCBpcyBhIGNvbG9yICp0eXBlKixcbiAgICAgIC8vIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZCB1c2luZ1xuICAgICAgLy8gdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kIHdoZW5cbiAgICAgIC8vIG1peGluZyB0aGUgY29sb3JzIHRvZ2V0aGVyLlxuICAgICAgQGlmICh0eXBlLW9mKCRiYWRnZS1jb2xvcikgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGFwcC1iYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgICAkYmFkZ2Utb3BhY2l0eTogb3BhY2l0eSgkYmFkZ2UtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGFwcC1iYWNrZ3JvdW5kLCByZ2JhKCRiYWRnZS1jb2xvciwgMSksICgxIC0gJGJhZGdlLW9wYWNpdHkpICogMTAwJSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWRnZS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4gIC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBhY3RpdmUgY2xhc3MgaXMgYWRkZWQgYWZ0ZXIgdGhlIGVsZW1lbnQgaXMgYWRkZWRcbiAgLy8gc28gaXQgY2FuIGFuaW1hdGUgc2NhbGUgdG8gZGVmYXVsdFxuICAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gICAgLy8gU2NhbGUgdG8gYG5vbmVgIGluc3RlYWQgb2YgYDFgIHRvIGF2b2lkIGJsdXJyeSB0ZXh0IGluIHNvbWUgYnJvd3NlcnMuXG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1zbWFsbCB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2Utc21hbGwtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1tZWRpdW0ge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1sYXJnZSB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXdlaWdodDogJG1hdC1iYWRnZS1mb250LXdlaWdodDtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplO1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgLy8gU2V0IHRoZSBmb250IHNpemUgdG8gNzUlIG9mIHRoZSBvcmlnaW5hbC5cbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMC43NTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMjtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1iYWRnZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtYmFkZ2UtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWJhZGdlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJhZGdlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2UtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigxNiwgJGNvbmZpZyk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJvdHRvbS1zaGVldC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1ib3R0b20tc2hlZXQnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtYm90dG9tLXNoZWV0LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbiRfbWF0LWJ1dHRvbi1yaXBwbGUtb3BhY2l0eTogMC4xO1xuXG4vLyBBcHBsaWVzIGEgZm9jdXMgc3R5bGUgdG8gYW4gbWF0LWJ1dHRvbiBlbGVtZW50IGZvciBlYWNoIG9mIHRoZSBzdXBwb3J0ZWQgcGFsZXR0ZXMuXG5AbWl4aW4gX21hdC1idXR0b24tZm9jdXMtb3ZlcmxheS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICB9XG5cbiAgJi5tYXQtYnV0dG9uLWRpc2FibGVkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vIEFwcGxpZXMgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIGEgcmlwcGxlLiBJZiB0aGUgdmFsdWUgcHJvdmlkZWQgaXMgbm90IGEgU2FzcyBjb2xvcixcbi8vIHdlIGFzc3VtZSB0aGF0IHdlJ3ZlIGJlZW4gZ2l2ZW4gYSBDU1MgdmFyaWFibGUuIFNpbmNlIHdlIGNhbid0IHBlcmZvcm0gYWxwaGEtYmxlbmRpbmdcbi8vIG9uIGEgQ1NTIHZhcmlhYmxlLCB3ZSBpbnN0ZWFkIGFkZCB0aGUgb3BhY2l0eSBkaXJlY3RseSB0byB0aGUgcmlwcGxlIGVsZW1lbnQuXG5AbWl4aW4gX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJHBhbGV0dGUsICRodWUsICRvcGFjaXR5KSB7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICRodWUsICRvcGFjaXR5KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIEBpZiAodHlwZS1vZigkYmFja2dyb3VuZC1jb2xvcikgIT0gY29sb3IpIHtcbiAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1idXR0b24tcmlwcGxlLWNvbG9yKCR0aGVtZSwgJGh1ZSwgJG9wYWNpdHk6ICRfbWF0LWJ1dHRvbi1yaXBwbGUtb3BhY2l0eSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1iYWNrZ3JvdW5kKCRwcmltYXJ5LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJGFjY2VudCwgJGh1ZSwgJG9wYWNpdHkpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkd2FybiwgJGh1ZSwgJG9wYWNpdHkpO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgYSBwcm9wZXJ0eSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkdGhlbWUsICRwcm9wZXJ0eSwgJGh1ZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAmLm1hdC1wcmltYXJ5IHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkcHJpbWFyeSwgJGh1ZSk7XG4gIH1cbiAgJi5tYXQtYWNjZW50IHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkYWNjZW50LCAkaHVlKTtcbiAgfVxuICAmLm1hdC13YXJuIHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkd2FybiwgJGh1ZSk7XG4gIH1cblxuICAmLm1hdC1wcmltYXJ5LCAmLm1hdC1hY2NlbnQsICYubWF0LXdhcm4sICYubWF0LWJ1dHRvbi1kaXNhYmxlZCB7XG4gICAgJi5tYXQtYnV0dG9uLWRpc2FibGVkIHtcbiAgICAgICRwYWxldHRlOiBpZigkcHJvcGVydHkgPT0gJ2NvbG9yJywgJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKTtcbiAgICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwYWxldHRlLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYnV0dG9uLCAubWF0LWljb24tYnV0dG9uLCAubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgICAvLyBCdXR0b25zIHdpdGhvdXQgYSBiYWNrZ3JvdW5kIGNvbG9yIHNob3VsZCBpbmhlcml0IHRoZSBmb250IGNvbG9yLiBUaGlzIGlzIG5lY2Vzc2FyeSB0b1xuICAgIC8vIGVuc3VyZSB0aGF0IHRoZSBidXR0b24gaXMgcmVhZGFibGUgb24gY3VzdG9tIGJhY2tncm91bmQgY29sb3JzLiBJdCdzIHdyb25nIHRvIGFsd2F5cyBhc3N1bWVcbiAgICAvLyB0aGF0IHRob3NlIGJ1dHRvbnMgYXJlIGFsd2F5cyBwbGFjZWQgaW5zaWRlIG9mIGNvbnRhaW5lcnMgd2l0aCB0aGUgZGVmYXVsdCBiYWNrZ3JvdW5kXG4gICAgLy8gY29sb3Igb2YgdGhlIHRoZW1lIChlLmcuIHRoZW1lZCB0b29sYmFycykuXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkY29uZmlnLCAnY29sb3InLCB0ZXh0KTtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LWNvbG9yKCRjb25maWcpO1xuXG4gICAgLy8gU2V0dXAgdGhlIHJpcHBsZSBjb2xvciB0byBiZSBiYXNlZCBvbiB0aGUgdGV4dCBjb2xvci4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJpcHBsZXNcbiAgICAvLyBhcmUgbWF0Y2hpbmcgd2l0aCB0aGUgY3VycmVudCB0aGVtZSBwYWxldHRlIGFuZCBhcmUgaW4gY29udHJhc3QgdG8gdGhlIGJhY2tncm91bmQgY29sb3JcbiAgICAvLyAoZS5nIGluIHRoZW1lZCB0b29sYmFycykuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBvcGFjaXR5OiAkX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogbWFwLWdldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gIH1cblxuICAvLyBOb3RlOiB0aGlzIG5lZWRzIGEgYml0IGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHdlJ3JlIG5vdCBndWFyYW50ZWVkIHRoZSBpbmNsdXNpb25cbiAgLy8gb3JkZXIgb2YgdGhlIHRoZW1lIHN0eWxlcyBhbmQgdGhlIGJ1dHRvbiByZXNldCBtYXkgZW5kIHVwIHJlc2V0dGluZyB0aGlzIGFzIHdlbGwuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1mbGF0LWJ1dHRvbiwgLm1hdC1yYWlzZWQtYnV0dG9uLCAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gICAgLy8gRGVmYXVsdCBmb250IGFuZCBiYWNrZ3JvdW5kIGNvbG9yIHdoZW4gbm90IHVzaW5nIGFueSBjb2xvciBwYWxldHRlLlxuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgcmFpc2VkLWJ1dHRvbik7XG5cbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkY29uZmlnLCAnY29sb3InLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkY29uZmlnLCAnYmFja2dyb3VuZC1jb2xvcicsIGRlZmF1bHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1jb2xvcigkY29uZmlnLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b24sIC5tYXQtZmxhdC1idXR0b24ge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigwLCAkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDIsICRjb25maWcpO1xuXG4gICAgJjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oOCwgJGNvbmZpZyk7XG4gICAgfVxuXG4gICAgJi5tYXQtYnV0dG9uLWRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigwLCAkY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDYsICRjb25maWcpO1xuXG4gICAgJjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMTIsICRjb25maWcpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi1kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJGNvbmZpZyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWJ1dHRvbiwgLm1hdC1yYWlzZWQtYnV0dG9uLCAubWF0LWljb24tYnV0dG9uLCAubWF0LXN0cm9rZWQtYnV0dG9uLFxuICAubWF0LWZsYXQtYnV0dG9uLCAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJ1dHRvbik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1idXR0b24nKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYnV0dG9uLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYnV0dG9uLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4kbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtaGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuLy8gTWluaW11bSBoZWlnaHQgZm9yIGhpZ2hlc3QgZGVuc2l0eSBjYW4gdmFyeSBiYXNlZCBvbiB0aGUgY29udGVudCB0aGF0IGRldmVsb3BlcnNcbi8vIHByb2plY3QgaW50byBidXR0b24tdG9nZ2xlJ3MuIFdlIHVzZSBhIG1pbmltdW0gb2YgYDI0cHhgIHRob3VnaCBiZWNhdXNlIGNvbW1vbmx5XG4vLyBpY29ucyBvciB0ZXh0IGFyZSBkaXNwbGF5ZWQuIEljb25zIGJ5IGRlZmF1bHQgaGF2ZSBhIHNpemUgb2YgYDI0cHhgLlxuJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLW1pbmltdW0taGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLW1heGltdW0taGVpZ2h0OiAkbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtaGVpZ2h0ICFkZWZhdWx0O1xuXG4kbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtZGVuc2l0eS1jb25maWc6IChcbiAgaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLWhlaWdodCxcbiAgICBtYXhpbXVtOiAkbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLW1pbmltdW0taGVpZ2h0LFxuICApXG4pICFkZWZhdWx0O1xuXG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRkaXZpZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigyLCAkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBmb2N1c2VkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGZvY3VzZWQtYnV0dG9uLCAxKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBzZWxlY3RlZC1idXR0b24pO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24tdG9nZ2xlKTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRzdGFuZGFyZC1oZWlnaHQ6IG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZShcbiAgICAgICRtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGhlaWdodCk7XG5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZGVuc2l0eS1sZWdhY3ktY29tcGF0aWJpbGl0eSgpIHtcbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgICBsaW5lLWhlaWdodDogJHN0YW5kYXJkLWhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdG9nZ2xlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1idXR0b24tdG9nZ2xlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWNhcmQtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtY2FyZCB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDEsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAvLyBOZWVkcyBleHRyYSBzcGVjaWZpY2l0eSB0byBiZSBhYmxlIHRvIG92ZXJyaWRlIHRoZSBlbGV2YXRpb24gc2VsZWN0b3JzLlxuICAgICYubWF0LWNhcmQtZmxhdCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJGNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jYXJkLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWNhcmQge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhcmQtdGl0bGUge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgdGl0bGUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgdGl0bGUpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlLFxuICAubWF0LWNhcmQtY29udGVudCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtY2FyZC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtY2FyZC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtY2FyZCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jYXJkLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtY2FyZC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWNhcmQtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1jaGVja2JveC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuXG4gIC8vIFRoZSBjb2xvciBvZiB0aGUgY2hlY2tib3gncyBjaGVja21hcmsgLyBtaXhlZG1hcmsuXG4gICRjaGVja2JveC1tYXJrLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuXG4gIC8vIE5PVEUodHJhdmlza2F1Zm1hbik6IFdoaWxlIHRoZSBzcGVjIGNhbGxzIGZvciB0cmFuc2x1Y2VudCBibGFja3Mvd2hpdGVzIGZvciBkaXNhYmxlZCBjb2xvcnMsXG4gIC8vIHRoaXMgZG9lcyBub3Qgd29yayB3ZWxsIHdpdGggZWxlbWVudHMgbGF5ZXJlZCBvbiB0b3Agb2Ygb25lIGFub3RoZXIuIFRvIGdldCBhcm91bmQgdGhpcyB3ZVxuICAvLyBibGVuZCB0aGUgY29sb3JzIHRvZ2V0aGVyIGJhc2VkIG9uIHRoZSBiYXNlIGNvbG9yIGFuZCB0aGUgdGhlbWUgYmFja2dyb3VuZC5cbiAgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyazogIzY4Njg2ODtcbiAgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQ6ICNiMGIwYjA7XG4gICRkaXNhYmxlZC1jb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICR3aGl0ZS0zMHBjdC1vcGFjaXR5LW9uLWRhcmssICRibGFjay0yNnBjdC1vcGFjaXR5LW9uLWxpZ2h0KTtcblxuICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja21hcmsge1xuICAgIGZpbGw6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gICAgLy8gIWltcG9ydGFudCBpcyBuZWVkZWQgaGVyZSBiZWNhdXNlIGEgc3Ryb2tlIG11c3QgYmUgc2V0IGFzIGFuXG4gICAgLy8gYXR0cmlidXRlIG9uIHRoZSBTVkcgaW4gb3JkZXIgZm9yIGxpbmUgYW5pbWF0aW9uIHRvIHdvcmsgcHJvcGVybHkuXG4gICAgc3Ryb2tlOiAkY2hlY2tib3gtbWFyay1jb2xvciAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLCAubWF0LWNoZWNrYm94LWNoZWNrZWQge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAmLm1hdC1jaGVja2JveC1jaGVja2VkLFxuICAgICYubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkge1xuICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCksIGJhc2UpO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKSxcbiAgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpIHtcbiAgICAmLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtY2hlY2tib3gge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAvLyBUT0RPKGthcmEpOiBSZW1vdmUgdGhpcyBzdHlsZSB3aGVuIGZpeGluZyB2ZXJ0aWNhbCBiYXNlbGluZVxuICAubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgICBsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtY2hlY2tib3gtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1jaGVja2JveCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jaGVja2JveC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWNoZWNrYm94LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG4kbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTogMThweDtcblxuQG1peGluIF9tYXQtY2hpcC1lbGVtZW50LWNvbG9yKCRmb3JlZ3JvdW5kLCAkYmFja2dyb3VuZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuXG4gIC5tYXQtY2hpcC1yZW1vdmUge1xuICAgIGNvbG9yOiAkZm9yZWdyb3VuZDtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gIH1cbn1cblxuXG4vLyBBcHBsaWVzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciBhIHJpcHBsZSBlbGVtZW50LlxuLy8gSWYgdGhlIGNvbG9yIHZhbHVlIHByb3ZpZGVkIGlzIG5vdCBhIFNhc3MgY29sb3IsXG4vLyB3ZSBhc3N1bWUgdGhhdCB3ZSd2ZSBiZWVuIGdpdmVuIGEgQ1NTIHZhcmlhYmxlLlxuLy8gU2luY2Ugd2UgY2FuJ3QgcGVyZm9ybSBhbHBoYS1ibGVuZGluZyBvbiBhIENTUyB2YXJpYWJsZSxcbi8vIHdlIGluc3RlYWQgYWRkIHRoZSBvcGFjaXR5IGRpcmVjdGx5IHRvIHRoZSByaXBwbGUgZWxlbWVudC5cbkBtaXhpbiBfbWF0LWNoaXBzLXJpcHBsZS1iYWNrZ3JvdW5kKCRwYWxldHRlLCAkZGVmYXVsdC1jb250cmFzdCwgJG9wYWNpdHkpIHtcbiAgJGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJGRlZmF1bHQtY29udHJhc3QsICRvcGFjaXR5KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIEBpZiAodHlwZS1vZigkYmFja2dyb3VuZC1jb2xvcikgIT0gY29sb3IpIHtcbiAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1jaGlwLXRoZW1lLWNvbG9yKCRwYWxldHRlKSB7XG4gIEBpbmNsdWRlIF9tYXQtY2hpcC1lbGVtZW50LWNvbG9yKG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCksIG1hdC1jb2xvcigkcGFsZXR0ZSkpO1xuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtY2hpcHMtcmlwcGxlLWJhY2tncm91bmQoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QsIDAuMSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAkdW5zZWxlY3RlZC1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHVuc2VsZWN0ZWQtY2hpcCk7XG4gICR1bnNlbGVjdGVkLWZvcmVncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgICBAaW5jbHVkZSBfbWF0LWNoaXAtZWxlbWVudC1jb2xvcigkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kLCAkdW5zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcblxuICAgICY6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkge1xuICAgICAgJjphY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oMywgJGNvbmZpZyk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjU0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWNoaXAtZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hcC1nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZCB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWNoaXAtdGhlbWUtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1jaGlwLXRoZW1lLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC1jaGlwLXRoZW1lLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWNoaXAge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcblxuICAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLFxuICAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtY2hpcHMtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWNoaXBzLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1jaGlwcycpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jaGlwcy1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWNoaXBzLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWRpdmlkZXItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1kaXZpZGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kaXZpZGVyLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtZGl2aWRlci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZGl2aWRlcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1kaXZpZGVyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGl2aWRlci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWRpdmlkZXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC10YWJsZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC10YWJsZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC10YWJsZSB0aGVhZCwgLm1hdC10YWJsZSB0Ym9keSwgLm1hdC10YWJsZSB0Zm9vdCxcbiAgbWF0LWhlYWRlci1yb3csIG1hdC1yb3csIG1hdC1mb290ZXItcm93LFxuICBbbWF0LWhlYWRlci1yb3ddLCBbbWF0LXJvd10sIFttYXQtZm9vdGVyLXJvd10sXG4gIC5tYXQtdGFibGUtc3RpY2t5IHtcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICB9XG5cbiAgbWF0LXJvdywgbWF0LWhlYWRlci1yb3csIG1hdC1mb290ZXItcm93LFxuICB0aC5tYXQtaGVhZGVyLWNlbGwsIHRkLm1hdC1jZWxsLCB0ZC5tYXQtZm9vdGVyLWNlbGwge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWhlYWRlci1jZWxsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNlbGwsIC5tYXQtZm9vdGVyLWNlbGwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdGFibGUtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtdGFibGUge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWhlYWRlci1jZWxsIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICB9XG5cbiAgLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWJsZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtdGFibGUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXRhYmxlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRhYmxlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGFibGUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGg6IDFweDtcbiRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudDogMC42O1xuJG1hdC1kYXRlcGlja2VyLXJhbmdlLWZhZGUtYW1vdW50OiAwLjI7XG4kbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQ6IDAuMjtcbiRtYXQtY2FsZW5kYXItYm9keS1mb250LXNpemU6IDEzcHggIWRlZmF1bHQ7XG4kbWF0LWNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplOiAxMXB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gX21hdC1kYXRlcGlja2VyLWNvbG9yKCRwYWxldHRlKSB7XG4gIEBpbmNsdWRlIG1hdC1kYXRlLXJhbmdlLWNvbG9ycyhcbiAgICBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQsICRtYXQtZGF0ZXBpY2tlci1yYW5nZS1mYWRlLWFtb3VudCkpO1xuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgJGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGJhY2tncm91bmQpID09IGNvbG9yKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBmYWRlLW91dCgkYmFja2dyb3VuZCwgJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLWZhZGUtYW1vdW50KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0byBiYWNrZ3JvdW5kIHRvIGEgY29sb3IgKGUuZy4gaXQncyBhIENTUyB2YXJpYWJsZSksXG4gICAgICAvLyBmYWxsIGJhY2sgdG8gZmFkaW5nIHRoZSBjb250ZW50IG91dCB2aWEgYG9wYWNpdHlgLlxuICAgICAgb3BhY2l0eTogJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGhcbiAgICAgICAgICAgICAgICBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIsXG4gIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlLFxuICAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlIHtcbiAgICAmID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItdW5zZWxlY3RlZC1jZWxsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAwLjMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVdGlsaXR5IG1peGluIHRvIHRhcmdldCBjZWxscyB0aGF0IGFyZW4ndCBzZWxlY3RlZC4gVXNlZCB0byBtYWtlIHNlbGVjdG9yIGVhc2llciB0byBmb2xsb3cuXG5AbWl4aW4gX21hdC1kYXRlcGlja2VyLXVuc2VsZWN0ZWQtY2VsbCB7XG4gICY6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtYXQtZGF0ZXBpY2tlci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRkaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcblxuICAubWF0LWNhbGVuZGFyLWFycm93IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGljb24pO1xuICB9XG5cbiAgLy8gVGhlIHByZXYvbmV4dCBidXR0b25zIG5lZWQgYSBiaXQgbW9yZSBzcGVjaWZpY2l0eSB0b1xuICAvLyBhdm9pZCBiZWluZyBvdmVyd3JpdHRlbiBieSB0aGUgLm1hdC1pY29uLWJ1dHRvbi5cbiAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZSxcbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixcbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b24ge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGljb24pO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlci1kaXZpZGVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCxcbiAgLm1hdC1kYXRlLXJhbmdlLWlucHV0LXNlcGFyYXRvciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci11bnNlbGVjdGVkLWNlbGwge1xuICAgICAgY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1kYXRlLXJhbmdlLWlucHV0LXNlcGFyYXRvciB7XG4gICAgY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1wcmV2aWV3IHtcbiAgICAkZGl2aWRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAgIEBpZiB0eXBlLW9mKCRkaXZpZGVyLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgICAvLyBUaGUgZGl2aWRlciBjb2xvciBpcyBzZXQgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCBpdCdsbCBiZSB1c2VkXG4gICAgICAvLyBmb3IgYSBzb2xpZCBib3JkZXIsIGJ1dCBiZWNhdXNlIHdlJ3JlIHVzaW5nIGEgZGFzaGVkIGJvcmRlciBmb3IgdGhlXG4gICAgICAvLyBwcmV2aWV3IHJhbmdlLCB3ZSBuZWVkIHRvIGJ1bXAgaXRzIG9wYWNpdHkgdG8gZW5zdXJlIHRoYXQgaXQncyB2aXNpYmxlLlxuICAgICAgY29sb3I6IHJnYmEoJGRpdmlkZXItY29sb3IsIG1pbihvcGFjaXR5KCRkaXZpZGVyLWNvbG9yKSAqIDIsIDEpKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgY29sb3I6ICRkaXZpZGVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS10b2RheSB7XG4gICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLXVuc2VsZWN0ZWQtY2VsbCB7XG4gICAgICAvLyBOb3RlOiB0aG91Z2ggaXQncyBub3QgdGV4dCwgdGhlIGJvcmRlciBpcyBhIGhpbnQgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIHRvZGF5J3MgZGF0ZSxcbiAgICAgIC8vIHNvIHdlIHVzZSB0aGUgaGludCBjb2xvci5cbiAgICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS10b2RheSB7XG4gICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLXVuc2VsZWN0ZWQtY2VsbCB7XG4gICAgICAkY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcblxuICAgICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBmYWRlLW91dCgkY29sb3IsICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIElmIHRoZSBjb2xvciBkaWRuJ3QgcmVzb2x2ZSB0byBhIGNvbG9yIHZhbHVlLCBidXQgc29tZXRoaW5nIGxpa2UgYSBDU1MgdmFyaWFibGUsIHdlIGNhbid0XG4gICAgICAgIC8vIGZhZGUgaXQgb3V0IHNvIHdlIGZhbGwgYmFjayB0byByZWR1Y2luZyB0aGUgZWxlbWVudCBvcGFjaXR5LiBOb3RlIHRoYXQgd2UgZG9uJ3QgdXNlIHRoZVxuICAgICAgICAvLyAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQsIGJlY2F1c2UgaGludCB0ZXh0IHVzdWFsbHkgaGFzIHNvbWUgb3BhY2l0eSBhcHBsaWVkXG4gICAgICAgIC8vIHRvIGl0IGFscmVhZHkgYW5kIHdlIGRvbid0IHdhbnQgdGhlbSB0byBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci1jb2xvcihtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpKTtcblxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKDQsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkY29uZmlnLCB3YXJuKSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigwLCAkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSksIHRleHQpO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCBhY2NlbnQpLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCB3YXJuKSwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlLXJhbmdlLWlucHV0LWlubmVyW2Rpc2FibGVkXSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kYXRlcGlja2VyLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWNhbGVuZGFyIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5IHtcbiAgICBmb250LXNpemU6ICRtYXQtY2FsZW5kYXItYm9keS1mb250LXNpemU7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwsXG4gIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB0aCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogJG1hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZGF0ZS1yYW5nZS1jb2xvcnMoXG4gICRyYW5nZS1jb2xvcixcbiAgJGNvbXBhcmlzb24tY29sb3I6IHJnYmEoI2Y5YWIwMCwgJG1hdC1kYXRlcGlja2VyLXJhbmdlLWZhZGUtYW1vdW50KSxcbiAgJG92ZXJsYXAtY29sb3I6ICNhOGRhYjUsXG4gICRvdmVybGFwLXNlbGVjdGVkLWNvbG9yOiBkYXJrZW4oJG92ZXJsYXAtY29sb3IsIDMwJSkpIHtcblxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogJHJhbmdlLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLFxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29tcGFyaXNvbi1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3JlLFxuICBbZGlyPSdydGwnXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHJhbmdlLWNvbG9yIDUwJSwgJGNvbXBhcmlzb24tY29sb3IgNTAlKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSxcbiAgW2Rpcj0ncnRsJ10gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAkcmFuZ2UtY29sb3IgNTAlLCAkY29tcGFyaXNvbi1jb2xvciA1MCUpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLFxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICRvdmVybGFwLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkLFxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZSA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZDogJG92ZXJsYXAtc2VsZWN0ZWQtY29sb3I7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtZGF0ZXBpY2tlci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZGF0ZXBpY2tlci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZGF0ZXBpY2tlcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1kYXRlcGlja2VyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGlhbG9nLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpYWxvZy1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigyNCwgJGNvbmZpZyk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWRpYWxvZy10aXRsZSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHRpdGxlKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1kaWFsb2ctZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZGlhbG9nJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWRpYWxvZy1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRpYWxvZy1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWRpYWxvZy10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbi8vIERlZmF1bHQgbWluaW11bSBhbmQgbWF4aW11bSBoZWlnaHQgZm9yIGNvbGxhcHNlZCBwYW5lbCBoZWFkZXJzLlxuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1oZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG4kbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLW1pbmltdW0taGVpZ2h0OiAzNnB4ICFkZWZhdWx0O1xuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1tYXhpbXVtLWhlaWdodDpcbiAgICAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLWhlaWdodCAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBtaW5pbXVtIGFuZCBtYXhpbXVtIGhlaWdodCBmb3IgZXhwYW5kZWQgcGFuZWwgaGVhZGVycy5cbiRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1oZWlnaHQ6IDY0cHggIWRlZmF1bHQ7XG4kbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtbWluaW11bS1oZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG4kbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtbWF4aW11bS1oZWlnaHQ6XG4gICAgJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLWhlaWdodCAhZGVmYXVsdDtcblxuLy8gRGVuc2l0eSBjb25maWd1cmF0aW9uIGZvciB0aGUgZXhwYW5zaW9uIHBhbmVsLiBDYXB0dXJlcyB0aGVcbi8vIGhlaWdodCBmb3IgYm90aCBleHBhbmRlZCBhbmQgY29sbGFwc2VkIHBhbmVsIGhlYWRlcnMuXG4kbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVuc2l0eS1jb25maWc6IChcbiAgY29sbGFwc2VkLWhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtaGVpZ2h0LFxuICAgIG1heGltdW06ICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1taW5pbXVtLWhlaWdodCxcbiAgKSxcbiAgZXhwYW5kZWQtaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLWhlaWdodCxcbiAgICBtYXhpbXVtOiAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLW1pbmltdW0taGVpZ2h0LFxuICApXG4pICFkZWZhdWx0O1xuXG4vLyBOb3RlOiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSBhbmltYXRpb24gdGltaW5nIGZvciB0aGUgdG9nZ2xlIGluZGljYXRvclxuLy8gYW5kIGJvZHkgZXhwYW5zaW9uLiBUaGVzZSBhcmUgYW5pbWF0ZWQgdXNpbmcgQW5ndWxhciBhbmltYXRpb25zLlxuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRyYW5zaXRpb246IDIyNW1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1leHBhbnNpb24tZm9jdXMge1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgJiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY2RrLWtleWJvYXJkLWZvY3VzZWQsXG4gICAgJiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY2RrLXByb2dyYW0tZm9jdXNlZCxcbiAgICAmOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgICAgJjpub3QoW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigyLCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY3Rpb24tcm93IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZXhwYW5zaW9uLWZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgfVxuXG4gIC8vIERpc2FibGUgdGhlIGhvdmVyIG9uIHRvdWNoIGRldmljZXMgc2luY2UgaXQgY2FuIGFwcGVhciBsaWtlIGl0IGlzIHN0dWNrLiBXZSBjYW4ndCB1c2VcbiAgLy8gYEBtZWRpYSAoaG92ZXIpYCBhYm92ZSwgYmVjYXVzZSB0aGUgZGVza3RvcCBzdXBwb3J0IGJyb3dzZXIgc3VwcG9ydCBpc24ndCBncmVhdC5cbiAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSlcbiAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sXG4gIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPSd0cnVlJ10ge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG5cbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgc3ViaGVhZGluZy0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRleHBhbmRlZC1oZWlnaHQ6IG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZShcbiAgICAgICAgJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgZXhwYW5kZWQtaGVpZ2h0KTtcbiAgJGNvbGxhcHNlZC1oZWlnaHQ6IG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZShcbiAgICAgICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGNvbGxhcHNlZC1oZWlnaHQpO1xuXG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWRlbnNpdHktbGVnYWN5LWNvbXBhdGliaWxpdHkoKSB7XG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICAgIGhlaWdodDogJGNvbGxhcHNlZC1oZWlnaHQ7XG5cbiAgICAgICYubWF0LWV4cGFuZGVkIHtcbiAgICAgICAgaGVpZ2h0OiAkZXhwYW5kZWQtaGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZXhwYW5zaW9uLXBhbmVsJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWV4cGFuc2lvbi1wYW5lbC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG4vLyBUaGlzIG1peGluIHdpbGwgZW5zdXJlIHRoYXQgbGluZXMgdGhhdCBvdmVyZmxvdyB0aGUgY29udGFpbmVyIHdpbGwgaGlkZSB0aGUgb3ZlcmZsb3cgYW5kXG4vLyB0cnVuY2F0ZSBuZWF0bHkgd2l0aCBhbiBlbGxpcHNpcy5cbkBtaXhpbiBtYXQtdHJ1bmNhdGUtbGluZSgpIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8vIE1peGluIHRvIHByb3ZpZGUgYWxsIG1hdC1saW5lIHN0eWxlcywgY2hhbmdpbmcgc2Vjb25kYXJ5IGZvbnQgc2l6ZSBiYXNlZCBvbiB3aGV0aGVyIHRoZSBsaXN0XG4vLyBpcyBpbiBkZW5zZSBtb2RlLlxuQG1peGluIG1hdC1saW5lLWJhc2UoJHNlY29uZGFyeS1mb250LXNpemUpIHtcbiAgLm1hdC1saW5lIHtcbiAgICBAaW5jbHVkZSBtYXQtdHJ1bmNhdGUtbGluZSgpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAvLyBhbGwgbGluZXMgYnV0IHRoZSB0b3AgbGluZSBzaG91bGQgaGF2ZSBzbWFsbGVyIHRleHRcbiAgICAmOm50aC1jaGlsZChuKzIpIHtcbiAgICAgIGZvbnQtc2l6ZTogJHNlY29uZGFyeS1mb250LXNpemU7XG4gICAgfVxuICB9XG59XG5cbi8vIFRoaXMgbWl4aW4gbm9ybWFsaXplcyBkZWZhdWx0IGVsZW1lbnQgc3R5bGVzLCBlLmcuIGZvbnQgd2VpZ2h0IGZvciBoZWFkaW5nIHRleHQuXG5AbWl4aW4gbWF0LW5vcm1hbGl6ZS10ZXh0KCkge1xuICAmID4gKiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBwcm92aWRlcyBiYXNlIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgYXJvdW5kIG1hdC1saW5lIGVsZW1lbnRzIGluIGEgbGlzdC5cbkBtaXhpbiBtYXQtbGluZS13cmFwcGVyLWJhc2UoKSB7XG4gIEBpbmNsdWRlIG1hdC1ub3JtYWxpemUtdGV4dCgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gTXVzdCByZW1vdmUgd3JhcHBlciB3aGVuIGxpbmVzIGFyZSBlbXB0eSBvciBpdCB0YWtlcyB1cCBob3Jpem9udGFsXG4gIC8vIHNwYWNlIGFuZCBwdXNoZXMgb3RoZXIgZWxlbWVudHMgdG8gdGhlIHJpZ2h0LlxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlIHRoaXMgZW1wdHkgbWl4aW4gZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIG90aGVyIGNvbXBvbmVudHMuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuICAubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtZ3JpZC1saXN0LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWdyaWQtbGlzdCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1ncmlkLWxpc3QtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5AbWl4aW4gbWF0LWljb24tY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWljb24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1pY29uLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtaWNvbi1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtaWNvbi10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtaWNvbicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1pY29uLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtaWNvbi1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWljb24tdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG4vLyBSZW5kZXJzIGEgZ3JhZGllbnQgZm9yIHNob3dpbmcgdGhlIGRhc2hlZCBsaW5lIHdoZW4gdGhlIGlucHV0IGlzIGRpc2FibGVkLlxuLy8gVW5saWtlIHVzaW5nIGEgYm9yZGVyLCBhIGdyYWRpZW50IGFsbG93cyB1cyB0byBhZGp1c3QgdGhlIHNwYWNpbmcgb2YgdGhlIGRvdHRlZCBsaW5lXG4vLyB0byBtYXRjaCB0aGUgTWF0ZXJpYWwgRGVzaWduIHNwZWMuXG5AbWl4aW4gbWF0LXByaXZhdGUtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJGNvbG9yKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGNvbG9yIDAlLCAkY29sb3IgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuLy8gRmlndXJlcyBvdXQgdGhlIGNvbG9yIG9mIHRoZSBwbGFjZWhvbGRlciBmb3IgYSBmb3JtIGNvbnRyb2wuXG4vLyBVc2VkIHByaW1hcmlseSB0byBwcmV2ZW50IHRoZSB2YXJpb3VzIGZvcm0gY29udHJvbHMgZnJvbVxuLy8gYmVjb21pbmcgb3V0IG9mIHN5bmMgc2luY2UgdGhlc2UgY29sb3JzIGFyZW4ndCBpbiBhIHBhbGV0dGUuXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkY29uZmlnKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcbiAgQHJldHVybiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0LCBpZigkaXMtZGFyay10aGVtZSwgMC41LCAwLjQyKSk7XG59XG5cblxuLyogc3R5bGVsaW50LWRpc2FibGUgbWF0ZXJpYWwvbm8tcHJlZml4ZXMgKi9cbkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWUpIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAtbW96LXVzZXItc2VsZWN0OiAkdmFsdWU7XG4gIC1tcy11c2VyLXNlbGVjdDogJHZhbHVlO1xuICB1c2VyLXNlbGVjdDogJHZhbHVlO1xufVxuXG5AbWl4aW4gaW5wdXQtcGxhY2Vob2xkZXIge1xuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBjdXJzb3ItZ3JhYiB7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xuICBjdXJzb3I6IGdyYWI7XG59XG5cbkBtaXhpbiBjdXJzb3ItZ3JhYmJpbmcge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmc7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2YWx1ZSkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6ICR2YWx1ZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZhbHVlO1xufVxuXG5AbWl4aW4gcG9zaXRpb24tc3RpY2t5KCRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreSAje2lmKCRpbXBvcnRhbnQsICchaW1wb3J0YW50JywgJycpfTtcbiAgcG9zaXRpb246IHN0aWNreSAje2lmKCRpbXBvcnRhbnQsICchaW1wb3J0YW50JywgJycpfTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuXG5cbkBtaXhpbiBtYXQtaW5wdXQtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IG1hdC1wcml2YXRlLWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJGNvbmZpZyk7XG4gICAgfVxuXG4gICAgLy8gT24gZGFyayB0aGVtZXMgd2Ugc2V0IHRoZSBuYXRpdmUgYHNlbGVjdGAgY29sb3IgdG8gc29tZSBzaGFkZSBvZiB3aGl0ZSxcbiAgICAvLyBob3dldmVyIHRoZSBjb2xvciBwcm9wYWdhdGVzIHRvIGFsbCBvZiB0aGUgYG9wdGlvbmAgZWxlbWVudHMsIHdoaWNoIGFyZVxuICAgIC8vIGFsd2F5cyBvbiBhIHdoaXRlIGJhY2tncm91bmQgaW5zaWRlIHRoZSBkcm9wZG93biwgY2F1c2luZyB0aGVtIHRvIGJsZW5kIGluLlxuICAgIC8vIFNpbmNlIHdlIGNhbid0IGNoYW5nZSBiYWNrZ3JvdW5kIG9mIHRoZSBkcm9wZG93biwgd2UgbmVlZCB0byBleHBsaWNpdGx5XG4gICAgLy8gcmVzZXQgdGhlIGNvbG9yIG9mIHRoZSBvcHRpb25zIHRvIHNvbWV0aGluZyBkYXJrLlxuICAgIEBpZiAobWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKSkge1xuICAgICAgb3B0aW9uIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLWRpc2FibGVkLXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbiAgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRzIHNlZW0gdG8gaGF2ZSB0aGVpciBoZWlnaHQgc2V0IHNsaWdodGx5IHRvbyBsYXJnZSBvbiBTYWZhcmkgY2F1c2luZyB0aGUgdGV4dCB0b1xuICAvLyBiZSBtaXNhbGlnbmVkIHcuci50LiB0aGUgcGxhY2Vob2xkZXIuIEFkZGluZyB0aGlzIG1hcmdpbiBjb3JyZWN0cyBpdC5cbiAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IC0kbGluZS1zcGFjaW5nICogMWVtO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWlucHV0LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1pbnB1dC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtaW5wdXQnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtaW5wdXQtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1pbnB1dC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWlucHV0LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWxpc3QtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbGlzdC1iYXNlIHtcbiAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3ViaGVhZGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWxpc3QtaXRlbS1kaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1saXN0LW9wdGlvbik7XG4gIH1cblxuICAubWF0LWxpc3Qtb3B0aW9uLFxuICAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtLFxuICAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtIHtcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2hvdmVyJyk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb24ge1xuICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3ZlciwgMC4xMik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG5cbiAgLm1hdC1saXN0LWl0ZW0ge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cblxuICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlIHtcbiAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSkpO1xuICAgIH1cblxuICAgIC5tYXQtc3ViaGVhZGVyIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlbnNlIGxpc3RcbiAgLm1hdC1saXN0LWJhc2VbZGVuc2VdIHtcbiAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbikpO1xuICAgIH1cblxuICAgIC5tYXQtbGlzdC1vcHRpb24ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1saXN0LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1saXN0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1saXN0Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWxpc3QtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1saXN0LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtbGlzdC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1tZW51LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LW1lbnUtcGFuZWwge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig0LCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ3RleHQnKTtcblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICYsXG4gICAgICAmOjphZnRlcixcbiAgICAgIC5tYXQtaWNvbi1uby1jb2xvciB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdkaXNhYmxlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvcixcbiAgLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtbWVudS1pdGVtOmhvdmVyLFxuICAubWF0LW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkLFxuICAubWF0LW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWQge1xuICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2hvdmVyJyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtbWVudS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1tZW51LWl0ZW0ge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1tZW51LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1tZW51LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1tZW51Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LW1lbnUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1tZW51LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtbWVudS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbiRtYXQtcGFnaW5hdG9yLWhlaWdodDogNTZweCAhZGVmYXVsdDtcbi8vIE1pbmltdW0gaGVpZ2h0IGZvciBwYWdpbmF0b3IncyBpbiB0aGUgaGlnaGVzdCBkZW5zaXR5IGlzIGRldGVybWluZWQgYmFzZWQgb24gaG93XG4vLyBtdWNoIHRoZSBwYWdpbmF0b3IgY2FuIHNocmluayB1bnRpbCB0aGUgY29udGVudCBleGNlZWRzIChpLmUuIG5hdmlnYXRpb24gYnV0dG9ucykuXG4kbWF0LXBhZ2luYXRvci1taW5pbXVtLWhlaWdodDogNDBweCAhZGVmYXVsdDtcbiRtYXQtcGFnaW5hdG9yLW1heGltdW0taGVpZ2h0OiAkbWF0LXBhZ2luYXRvci1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRtYXQtcGFnaW5hdG9yLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtcGFnaW5hdG9yLWhlaWdodCxcbiAgICBtYXhpbXVtOiAkbWF0LXBhZ2luYXRvci1tYXhpbXVtLWhlaWdodCxcbiAgICBtaW5pbXVtOiAkbWF0LXBhZ2luYXRvci1taW5pbXVtLWhlaWdodCxcbiAgKVxuKSAhZGVmYXVsdDtcblxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1wYWdpbmF0b3Ige1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtcGFnaW5hdG9yLFxuICAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuICAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4gIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuICAgIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxcbiAgICAubWF0LXBhZ2luYXRvci1maXJzdCxcbiAgICAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnZGlzYWJsZWQnKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wYWdpbmF0b3ItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtcGFnaW5hdG9yLFxuICAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRoZWlnaHQ6IG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZSgkbWF0LXBhZ2luYXRvci1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGhlaWdodCk7XG5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZGVuc2l0eS1sZWdhY3ktY29tcGF0aWJpbGl0eSgpIHtcbiAgICAubWF0LXBhZ2luYXRvci1jb250YWluZXIge1xuICAgICAgbWluLWhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXBhZ2luYXRvcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gICAgZmlsbDogbWF0LWNvbG9yKCRwcmltYXJ5LCBsaWdodGVyKTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBsaWdodGVyKTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICB9XG5cbiAgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCB7XG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gICAgICBmaWxsOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBsaWdodGVyKTtcbiAgICB9XG5cbiAgICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4ge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCR3YXJuLCBsaWdodGVyKTtcbiAgICB9XG5cbiAgICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBsaWdodGVyKTtcbiAgICB9XG5cbiAgICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLWJhci10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LXByb2dyZXNzLWJhci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3MtYmFyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1wcm9ncmVzcy1iYXInKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcHJvZ3Jlc3MtYmFyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcblxuICAubWF0LXByb2dyZXNzLXNwaW5uZXIsIC5tYXQtc3Bpbm5lciB7XG4gICAgY2lyY2xlIHtcbiAgICAgIHN0cm9rZTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQgY2lyY2xlIHtcbiAgICAgIHN0cm9rZTogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gY2lyY2xlIHtcbiAgICAgIHN0cm9rZTogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtcHJvZ3Jlc3Mtc3Bpbm5lcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLXNwaW5uZXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIF9tYXQtcmFkaW8tY29sb3IoJHBhbGV0dGUpIHtcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4gIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLFxuICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsXG4gICY6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1yYWRpby1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG5lZWRzIGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHRoZSBjbGFzc2VzIGFib3ZlIGFyZSBjb21iaW5lZFxuICAgIC8vIChlLmcuIGAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50YCkgd2hpY2ggaW5jcmVhc2VzIHRoZWlyIHNwZWNpZmljaXR5IGEgbG90LlxuICAgIC8vIFRPRE86IGNvbnNpZGVyIG1ha2luZyB0aGUgc2VsZWN0b3JzIGludG8gZGVzY2VuZGFudHMgKGAubWF0LXByaW1hcnkgLm1hdC1yYWRpby1idXR0b25gKS5cbiAgICAmLm1hdC1yYWRpby1kaXNhYmxlZCB7XG4gICAgICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gICAgLy8gdG8gY29udHJvbCBob3cgb3BhcXVlIHRoZSByaXBwbGUgc2hvdWxkIGJlLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXJhZGlvLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1yYWRpby10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtcmFkaW8nKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcmFkaW8tY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXJhZGlvLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc2VsZWN0LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG5cbiAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBtYXQtcHJpdmF0ZS1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig0LCAkY29uZmlnKTtcblxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIsIDAuMTIpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAmLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAubWF0LXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXNlbGVjdC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc2VsZWN0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zZWxlY3QnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2VsZWN0LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2VsZWN0LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc2lkZW5hdi1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiAgbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgJGRyYXdlci1zaWRlLWJvcmRlcjogc29saWQgMXB4IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1kcmF3ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWRyYXdlci1wdXNoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItcHVzaC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgICAgIC8vIFRoZSBlbGV2YXRpb24gb2Ygei0xNiBpcyBub3RlZCBpbiB0aGUgZGVzaWduIHNwZWNpZmljYXRpb25zLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1kcmF3ZXIuaHRtbFxuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKDE2LCAkY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItcmlnaHQ6ICRkcmF3ZXItc2lkZS1ib3JkZXI7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddIC5tYXQtZHJhd2VyLXNpZGUge1xuICAgIGJvcmRlci1sZWZ0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcblxuICAgICYubWF0LWRyYXdlci1lbmQge1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICBib3JkZXItcmlnaHQ6ICRkcmF3ZXItc2lkZS1ib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93biB7XG4gICAgJG9wYWNpdHk6IDAuNjtcbiAgICAkYmFja2Ryb3AtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCwgJG9wYWNpdHkpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRiYWNrZHJvcC1jb2xvcikgPT0gY29sb3IpIHtcbiAgICAgIC8vIFdlIHVzZSBpbnZlcnQoKSBoZXJlIHRvIGhhdmUgdGhlIGRhcmtlbiB0aGUgYmFja2dyb3VuZCBjb2xvciBleHBlY3RlZCB0byBiZSB1c2VkLiBJZiB0aGVcbiAgICAgIC8vIGJhY2tncm91bmQgaXMgbGlnaHQsIHdlIHVzZSBhIGRhcmsgYmFja2Ryb3AuIElmIHRoZSBiYWNrZ3JvdW5kIGlzIGRhcmssXG4gICAgICAvLyB3ZSB1c2UgYSBsaWdodCBiYWNrZHJvcC5cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGludmVydCgkYmFja2Ryb3AtY29sb3IpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB3ZSBjb3VsZG4ndCByZXNvbHZlIHRoZSBiYWNrZHJvcCBjb2xvciB0byBhIGNvbG9yIHZhbHVlLCBmYWxsIGJhY2sgdG8gdXNpbmdcbiAgICAgIC8vIGBvcGFjaXR5YCB0byBtYWtlIGl0IG9wYXF1ZSBzaW5jZSBpdHMgZW5kIHZhbHVlIGNvdWxkIGJlIGEgc29saWQgY29sb3IuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2Ryb3AtY29sb3I7XG4gICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtc2lkZW5hdi1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc2lkZW5hdicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zaWRlbmF2LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2lkZW5hdi1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNpZGVuYXYtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gX21hdC1zbGlkZS10b2dnbGUtY2hlY2tlZCgkcGFsZXR0ZSwgJHRodW1iLWNoZWNrZWQtaHVlKSB7XG4gICYubWF0LWNoZWNrZWQge1xuICAgIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJHRodW1iLWNoZWNrZWQtaHVlKTtcbiAgICB9XG5cbiAgICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgICAgLy8gT3BhY2l0eSBpcyBkZXRlcm1pbmVkIGZyb20gdGhlIHNwZWNzIGZvciB0aGUgc2VsZWN0aW9uIGNvbnRyb2xzLlxuICAgICAgLy8gU2VlOiBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi9jb21wb25lbnRzL3NlbGVjdGlvbi1jb250cm9scy5odG1sI3NwZWNzXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSwgMC41NCk7XG4gICAgfVxuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICAvLyBTZXQgbm8gb3BhY2l0eSBmb3IgdGhlIHJpcHBsZXMgYmVjYXVzZSB0aGUgcmlwcGxlIG9wYWNpdHkgd2lsbCBiZSBhZGp1c3RlZCBkeW5hbWljYWxseVxuICAgICAgLy8gYmFzZWQgb24gdGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2xpZGUtdG9nZ2xlIChlLmcuIGZvciBob3ZlciwgZm9jdXMpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRpcy1kYXJrOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC8vIENvbG9yIGh1ZXMgYXJlIGJhc2VkIG9uIHRoZSBzcGVjcyB3aGljaCBicmllZmx5IHNob3cgdGhlIGh1ZXMgdGhhdCBhcmUgYXBwbGllZCB0byBhIHN3aXRjaC5cbiAgLy8gVGhlIDIwMTggc3BlY3Mgbm8gbG9uZ2VyIGRlc2NyaWJlIGhvdyBkYXJrIHN3aXRjaGVzIHNob3VsZCBsb29rIGxpa2UuIER1ZSB0byB0aGUgbGFjayBvZlxuICAvLyBpbmZvcm1hdGlvbiBmb3IgZGFyayB0aGVtZWQgc3dpdGNoZXMsIHdlIHBhcnRpYWxseSBrZWVwIHRoZSBvbGQgYmVoYXZpb3IgdGhhdCBpcyBiYXNlZCBvblxuICAvLyB0aGUgcHJldmlvdXMgc3BlY2lmaWNhdGlvbnMuIEZvciB0aGUgY2hlY2tlZCBjb2xvciB3ZSBhbHdheXMgdXNlIHRoZSBgZGVmYXVsdGAgaHVlIGJlY2F1c2VcbiAgLy8gdGhhdCBmb2xsb3dzIE1EQyBhbmQgYWxzbyBtYWtlcyBpdCBlYXNpZXIgZm9yIHBlb3BsZSB0byBjcmVhdGUgYSBjdXN0b20gdGhlbWUgd2l0aG91dCBuZWVkaW5nXG4gIC8vIHRvIHNwZWNpZnkgZWFjaCBodWUgaW5kaXZpZHVhbGx5LlxuICAkdGh1bWItdW5jaGVja2VkLWh1ZTogaWYoJGlzLWRhcmssIDQwMCwgNTApO1xuICAkdGh1bWItY2hlY2tlZC1odWU6IGRlZmF1bHQ7XG5cbiAgJGJhci11bmNoZWNrZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAkcmlwcGxlLXVuY2hlY2tlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlKTtcblxuICAubWF0LXNsaWRlLXRvZ2dsZSB7XG4gICAgQGluY2x1ZGUgX21hdC1zbGlkZS10b2dnbGUtY2hlY2tlZCgkYWNjZW50LCAkdGh1bWItY2hlY2tlZC1odWUpO1xuXG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRwcmltYXJ5LCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1zbGlkZS10b2dnbGUtY2hlY2tlZCgkd2FybiwgJHRodW1iLWNoZWNrZWQtaHVlKTtcbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWNoZWNrZWQpIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJpcHBsZS11bmNoZWNrZWQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigxLCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJG1hdC1ncmV5LCAkdGh1bWItdW5jaGVja2VkLWh1ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXItdW5jaGVja2VkLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXNsaWRlLXRvZ2dsZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zbGlkZS10b2dnbGUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHBhbGV0dGUpIHtcbiAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgLm1hdC1zbGlkZXItdGh1bWIsXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICAkb3BhY2l0eTogMC4yO1xuICAgICRjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LCAkb3BhY2l0eSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuXG4gICAgLy8gYG1hdC1jb2xvcmAgdXNlcyBgcmdiYWAgZm9yIHRoZSBvcGFjaXR5IHdoaWNoIHdvbid0IHdvcmsgd2l0aFxuICAgIC8vIENTUyB2YXJpYWJsZXMgc28gd2UgbmVlZCB0byB1c2UgYG9wYWNpdHlgIGFzIGEgZmFsbGJhY2suXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgIT0gY29sb3IpIHtcbiAgICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gICRtYXQtc2xpZGVyLW9mZi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZi1hY3RpdmUpO1xuICAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW1pbik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci10aWNrLW9wYWNpdHk6IDAuNztcbiAgJG1hdC1zbGlkZXItdGljay1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCAkbWF0LXNsaWRlci10aWNrLW9wYWNpdHkpO1xuICAkbWF0LXNsaWRlci10aWNrLXNpemU6IDJweDtcblxuICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtY29sb3I7XG4gIH1cblxuICAubWF0LXByaW1hcnkge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHByaW1hcnkpO1xuICB9XG5cbiAgLm1hdC1hY2NlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJGFjY2VudCk7XG4gIH1cblxuICAubWF0LXdhcm4ge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHdhcm4pO1xuICB9XG5cbiAgLm1hdC1zbGlkZXI6aG92ZXIsXG4gIC5jZGstZm9jdXNlZCB7XG4gICAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci1kaXNhYmxlZCB7XG4gICAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbiAgICAubWF0LXNsaWRlci10cmFjay1maWxsLFxuICAgIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWRpc2FibGVkLWNvbG9yO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLW1pbi12YWx1ZSB7XG4gICAgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gICAgICAkb3BhY2l0eTogMC4xMjtcbiAgICAgICRjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCAkb3BhY2l0eSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG5cbiAgICAgIC8vIGBtYXQtY29sb3JgIHVzZXMgYHJnYmFgIGZvciB0aGUgb3BhY2l0eSB3aGljaCB3b24ndCB3b3JrIHdpdGhcbiAgICAgIC8vIENTUyB2YXJpYWJsZXMgc28gd2UgbmVlZCB0byB1c2UgYG9wYWNpdHlgIGFzIGEgZmFsbGJhY2suXG4gICAgICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYixcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I7XG4gICAgICB9XG5cbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYixcbiAgICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykge1xuICAgICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgICBib3JkZXItY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmLmNkay1mb2N1c2VkIHtcbiAgICAgICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci1oYXMtdGlja3MgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItdGljay1jb2xvcjtcblxuICAgIC8vIGBtYXQtY29sb3JgIHVzZXMgYHJnYmFgIGZvciB0aGUgb3BhY2l0eSB3aGljaCB3b24ndCB3b3JrIHdpdGhcbiAgICAvLyBDU1MgdmFyaWFibGVzIHNvIHdlIG5lZWQgdG8gdXNlIGBvcGFjaXR5YCBhcyBhIGZhbGxiYWNrLlxuICAgIEBpZiAodHlwZS1vZigkbWF0LXNsaWRlci10aWNrLWNvbG9yKSAhPSBjb2xvcikge1xuICAgICAgb3BhY2l0eTogJG1hdC1zbGlkZXItdGljay1vcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3Mge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRtYXQtc2xpZGVyLXRpY2stY29sb3IsXG4gICAgICAgICRtYXQtc2xpZGVyLXRpY2stY29sb3IgJG1hdC1zbGlkZXItdGljay1zaXplLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG4gICAgLy8gRmlyZWZveCBkb2Vzbid0IGRyYXcgdGhlIGdyYWRpZW50IGNvcnJlY3RseSB3aXRoICd0byByaWdodCdcbiAgICAvLyAoc2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTQzMTkpLlxuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgwLjAwMDFkZWcsICRtYXQtc2xpZGVyLXRpY2stY29sb3IsXG4gICAgICAgICRtYXQtc2xpZGVyLXRpY2stY29sb3IgJG1hdC1zbGlkZXItdGljay1zaXplLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG5cbiAgICAvLyBgbWF0LWNvbG9yYCB1c2VzIGByZ2JhYCBmb3IgdGhlIG9wYWNpdHkgd2hpY2ggd29uJ3Qgd29yayB3aXRoXG4gICAgLy8gQ1NTIHZhcmlhYmxlcyBzbyB3ZSBuZWVkIHRvIHVzZSBgb3BhY2l0eWAgYXMgYSBmYWxsYmFjay5cbiAgICBAaWYgKHR5cGUtb2YoJG1hdC1zbGlkZXItdGljay1jb2xvcikgIT0gY29sb3IpIHtcbiAgICAgIG9wYWNpdHk6ICRtYXQtc2xpZGVyLXRpY2stb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICRtYXQtc2xpZGVyLXRpY2stY29sb3IsXG4gICAgICAgICRtYXQtc2xpZGVyLXRpY2stY29sb3IgJG1hdC1zbGlkZXItdGljay1zaXplLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG5cbiAgICAvLyBgbWF0LWNvbG9yYCB1c2VzIGByZ2JhYCBmb3IgdGhlIG9wYWNpdHkgd2hpY2ggd29uJ3Qgd29yayB3aXRoXG4gICAgLy8gQ1NTIHZhcmlhYmxlcyBzbyB3ZSBuZWVkIHRvIHVzZSBgb3BhY2l0eWAgYXMgYSBmYWxsYmFjay5cbiAgICBAaWYgKHR5cGUtb2YoJG1hdC1zbGlkZXItdGljay1jb2xvcikgIT0gY29sb3IpIHtcbiAgICAgIG9wYWNpdHk6ICRtYXQtc2xpZGVyLXRpY2stb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXNsaWRlci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc2xpZGVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zbGlkZXInKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2xpZGVyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2xpZGVyLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbiRtYXQtc3RlcHBlci1oZWFkZXItaGVpZ2h0OiA3MnB4ICFkZWZhdWx0O1xuLy8gTWluaW11bSBoZWlnaHQgZm9yIGhpZ2hlc3QgZGVuc2l0eSBzdGVwcGVyJ3MgaXMgZGV0ZXJtaW5lZCBiYXNlZCBvbiBob3cgbXVjaFxuLy8gc3RlcHBlciBoZWFkZXJzIGNhbiBzaHJpbmsgdW50aWwgdGhlIHN0ZXAgaWNvbiBvciBzdGVwIGxhYmVsIGV4Y2VlZC4gV2UgY2FuJ3QgdXNlXG4vLyBhIHZhbHVlIGJlbG93IGA0MnB4YCBiZWNhdXNlIHRoZSBvcHRpb25hbCBsYWJlbCBmb3Igc3RlcHMgd291bGQgb3RoZXJ3aXNlIGV4Y2VlZC5cbiRtYXQtc3RlcHBlci1oZWFkZXItbWluaW11bS1oZWlnaHQ6IDQycHggIWRlZmF1bHQ7XG4kbWF0LXN0ZXBwZXItaGVhZGVyLW1heGltdW0taGVpZ2h0OiAkbWF0LXN0ZXBwZXItaGVhZGVyLWhlaWdodCAhZGVmYXVsdDtcblxuJG1hdC1zdGVwcGVyLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtc3RlcHBlci1oZWFkZXItaGVpZ2h0LFxuICAgIG1heGltdW06ICRtYXQtc3RlcHBlci1oZWFkZXItbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC1zdGVwcGVyLWhlYWRlci1taW5pbXVtLWhlaWdodCxcbiAgKVxuKSAhZGVmYXVsdDtcblxuLy8gTm90ZTogVGhlc2UgdmFyaWFibGVzIGFyZSBub3QgZGVub3RlZCB3aXRoIGAhZGVmYXVsdGAgYmVjYXVzZSB0aGV5IGFyZSB1c2VkIGluIHRoZSBub24tdGhlbWVcbi8vIGNvbXBvbmVudCBzdHlsZXMuIE1vZGlmeWluZyB0aGVzZSB2YXJpYWJsZXMgZG9lcyBub3QgaGF2ZSB0aGUgZGVzaXJlZCBlZmZlY3QgZm9yIGNvbnN1bWVycy5cbiRtYXQtc3RlcHBlci1sYWJlbC1oZWFkZXItaGVpZ2h0OiAyNHB4O1xuJG1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbS10b3AtZ2FwOiAxNnB4O1xuJG1hdC1zdGVwcGVyLWxhYmVsLW1pbi13aWR0aDogNTBweDtcblxuJG1hdC12ZXJ0aWNhbC1zdGVwcGVyLWNvbnRlbnQtbWFyZ2luOiAzNnB4O1xuXG4kbWF0LXN0ZXBwZXItc2lkZS1nYXA6IDI0cHg7XG4kbWF0LXN0ZXBwZXItbGluZS13aWR0aDogMXB4O1xuJG1hdC1zdGVwcGVyLWxpbmUtZ2FwOiA4cHg7XG5cbiRtYXQtc3RlcC1zdWItbGFiZWwtZm9udC1zaXplOiAxMnB4O1xuJG1hdC1zdGVwLWhlYWRlci1pY29uLXNpemU6IDE2cHg7XG5cblxuQG1peGluIG1hdC1zdGVwcGVyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG5cbiAgLm1hdC1zdGVwLWhlYWRlciB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyBPbiB0b3VjaCBkZXZpY2VzIHRoZSA6aG92ZXIgc3RhdGUgd2lsbCBsaW5nZXIgb24gdGhlIGVsZW1lbnQgYWZ0ZXIgYSB0YXAuXG4gICAgLy8gUmVzZXQgaXQgdmlhIGBAbWVkaWFgIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiwgYmVjYXVzZSB0aGUgbWVkaWEgcXVlcnkgaXNuJ3RcbiAgICAvLyBzdXBwb3J0ZWQgYnkgYWxsIGJyb3dzZXJzIHlldC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwsXG4gICAgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICAubWF0LXN0ZXAtaWNvbiB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtc3RlcC1pY29uLXNlbGVjdGVkLFxuICAgICAgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxcbiAgICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICAubWF0LXN0ZXAtaWNvbiB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIGRlZmF1bHQtY29udHJhc3QpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsXG4gICAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3Ige1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCwgLm1hdC1zdGVwcGVyLXZlcnRpY2FsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICB9XG5cbiAgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZSB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSxcbiAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbiAgLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCwgLm1hdC1zdGVwcGVyLWhvcml6b250YWwge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXN0ZXAtbGFiZWwge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3Ige1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cblxuICAubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICAgIH07XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkZGVuc2l0eS1zY2FsZTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGhlaWdodDogbWF0LXByaXZhdGUtZGVuc2l0eS1wcm9wLXZhbHVlKCRtYXQtc3RlcHBlci1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGhlaWdodCk7XG4gICR2ZXJ0aWNhbC1wYWRkaW5nOiAoJGhlaWdodCAtICRtYXQtc3RlcHBlci1sYWJlbC1oZWFkZXItaGVpZ2h0KSAvIDI7XG5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZGVuc2l0eS1sZWdhY3ktY29tcGF0aWJpbGl0eSgpIHtcbiAgICAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXIge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cblxuICAgIC5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyLFxuICAgIC5tYXQtdmVydGljYWwtc3RlcHBlci1oZWFkZXIge1xuICAgICAgcGFkZGluZzogJHZlcnRpY2FsLXBhZGRpbmcgJG1hdC1zdGVwcGVyLXNpZGUtZ2FwO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZXMgdGhhdCB0aGUgdmVydGljYWwgbGluZXMgZm9yIHRoZSBzdGVwIGNvbnRlbnQgZXhjZWVkIGludG8gdGhlIHN0ZXBcbiAgICAvLyBoZWFkZXJzIHdpdGggYSBnaXZlbiBkaXN0YW5jZSAoYCRtYXQtc3RlcHBlci1saW5lLWdhcGApIHRvIHRoZSBzdGVwIGljb24uXG4gICAgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZSB7XG4gICAgICB0b3A6ICRtYXQtc3RlcHBlci1saW5lLWdhcCAtICR2ZXJ0aWNhbC1wYWRkaW5nO1xuICAgICAgYm90dG9tOiAkbWF0LXN0ZXBwZXItbGluZS1nYXAgLSAkdmVydGljYWwtcGFkZGluZztcbiAgICB9XG5cbiAgICAvLyBFbnN1cmVzIHRoYXQgdGhlIGhvcml6b250YWwgbGluZXMgZm9yIHRoZSBzdGVwIGhlYWRlciBhcmUgY2VudGVyZWQgdmVydGljYWxseS5cbiAgICAubWF0LXN0ZXBwZXItbGFiZWwtcG9zaXRpb24tYm90dG9tIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlciB7XG4gICAgICAmOjphZnRlciwgJjo6YmVmb3JlIHtcbiAgICAgICAgdG9wOiAkdmVydGljYWwtcGFkZGluZyArICRtYXQtc3RlcHBlci1sYWJlbC1oZWFkZXItaGVpZ2h0IC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbnN1cmVzIHRoYXQgdGhlIGhvcml6b250YWwgbGluZSBmb3IgdGhlIHN0ZXAgY29udGVudCBpcyBhbGlnbmVkIGNlbnRlcmVkIHZlcnRpY2FsbHkuXG4gICAgLm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgICAgIHRvcDogJHZlcnRpY2FsLXBhZGRpbmcgKyAkbWF0LXN0ZXBwZXItbGFiZWwtaGVhZGVyLWhlaWdodCAvIDI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc3RlcHBlci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc3RlcHBlcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zdGVwcGVyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zdGVwcGVyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cbkBtaXhpbiBtYXQtc29ydC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1zb3J0LWhlYWRlci1hcnJvdyB7XG4gICAgJHRhYmxlLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgICAkdGV4dC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG5cbiAgICAvLyBCZWNhdXNlIHRoZSBhcnJvdyBpcyBtYWRlIHVwIG9mIG11bHRpcGxlIGVsZW1lbnRzIHRoYXQgYXJlIHN0YWNrZWQgb24gdG9wIG9mIGVhY2ggb3RoZXIsXG4gICAgLy8gd2UgY2FuJ3QgdXNlIHRoZSBzZW1pLXRyYW5zcGFyZW50IGNvbG9yIGZyb20gdGhlIHRoZW1lIGRpcmVjdGx5LiBJZiB0aGUgdmFsdWUgaXMgYSBjb2xvclxuICAgIC8vICp0eXBlKiwgd2UgY29udmVydCBpdCBpbnRvIGEgc29saWQgY29sb3IgYnkgdGFraW5nIHRoZSBvcGFjaXR5IGZyb20gdGhlIHJnYmEgdmFsdWUgYW5kXG4gICAgLy8gdXNpbmcgdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kXG4gICAgLy8gd2hlbiBtaXhpbmcgdGhlIGNvbG9ycyB0b2dldGhlci4gT3RoZXJ3aXNlLCBpZiBpdCByZXNvbHZlcyB0byBzb21ldGhpbmcgZGlmZmVyZW50XG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpLCB3ZSB1c2UgdGhlIGNvbG9yIGRpcmVjdGx5LlxuICAgIEBpZiAodHlwZS1vZigkdGFibGUtYmFja2dyb3VuZCkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJHRleHQtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAkdGV4dC1vcGFjaXR5OiBvcGFjaXR5KCR0ZXh0LWNvbG9yKTtcbiAgICAgIGNvbG9yOiBtaXgoJHRhYmxlLWJhY2tncm91bmQsIHJnYmEoJHRleHQtY29sb3IsIDEpLCAoMSAtICR0ZXh0LW9wYWNpdHkpICogMTAwJSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zb3J0LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtc29ydC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc29ydC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc29ydCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zb3J0LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc29ydC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNvcnQtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC10YWJzLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRoZWFkZXItYm9yZGVyOiAxcHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LXRhYi1uYXYtYmFyLFxuICAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXItYm9yZGVyO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIHtcbiAgICAubWF0LXRhYi1uYXYtYmFyLFxuICAgIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgICBib3JkZXItdG9wOiAkaGVhZGVyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBoZWFkZXIgYm9yZGVyIHdoZW4gdGhlcmUgaXMgYSBiYWNrZ3JvdW5kIGNvbG9yXG4gIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10gLm1hdC10YWItaGVhZGVyLFxuICAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLCAubWF0LXRhYi1uYXYtYmFyIHtcbiAgICAkdGhlbWUtY29sb3JzOiAoXG4gICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgIGFjY2VudDogJGFjY2VudCxcbiAgICAgIHdhcm46ICR3YXJuXG4gICAgKTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhlIHRhYnNcbiAgICAgICYubWF0LSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvcik7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgaW5rIGJhciB3aGVuIGJhY2tncm91bmQgY29sb3IgaXMgdGhlIHNhbWVcbiAgICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgICAgPiAubWF0LXRhYi1oZWFkZXIsID4gLm1hdC10YWItbGluay1jb250YWluZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkdGhlbWUtY29sb3JzIHtcbiAgICAgIC8vIFNldCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSB0YWJzIGFuZCBvdmVycmlkZSBmb2N1cyBjb2xvclxuICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGFiLWxhYmVsLWZvY3VzKCRjb2xvcik7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGFicy1iYWNrZ3JvdW5kKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LWluay1iYXIoJGNvbG9yLCAkaHVlOiBkZWZhdWx0KSB7XG4gIC5tYXQtaW5rLWJhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRjb2xvciwgJGh1ZSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtdGFiLWxhYmVsLWZvY3VzKCR0YWItZm9jdXMtY29sb3IpIHtcbiAgLm1hdC10YWItbGFiZWwsXG4gIC5tYXQtdGFiLWxpbmsge1xuICAgICYuY2RrLWtleWJvYXJkLWZvY3VzZWQsXG4gICAgJi5jZGstcHJvZ3JhbS1mb2N1c2VkIHtcbiAgICAgICY6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkdGFiLWZvY3VzLWNvbG9yLCBsaWdodGVyLCAwLjMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWJzLWJhY2tncm91bmQoJGJhY2tncm91bmQtY29sb3IpIHtcbiAgLy8gTm90ZSB0aGF0IHRoZXNlIHNlbGVjdG9ycyB0YXJnZXQgZGlyZWN0IGRlc2NlbmRhbnRzIHNvXG4gIC8vIHRoYXQgdGhlIHN0eWxlcyBkb24ndCBhcHBseSB0byBhbnkgbmVzdGVkIHRhYiBncm91cHMuXG5cbiAgLy8gU2V0IGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0YWIgZ3JvdXBcbiAgPiAubWF0LXRhYi1oZWFkZXIsID4gLm1hdC10YWItbGluay1jb250YWluZXIsID4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvcik7XG4gIH1cblxuICAvLyBTZXQgbGFiZWxzIHRvIGNvbnRyYXN0IGFnYWluc3QgYmFja2dyb3VuZFxuICA+IC5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCwgPiAubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBwYWdpbmF0aW9uIGNoZXZyb25zIHRvIGNvbnRyYXN0IGJhY2tncm91bmRcbiAgPiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLFxuICA+IC5tYXQtdGFiLWxpbmtzIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUsXG4gID4gLm1hdC10YWItaGVhZGVyIC5tYXQtZm9jdXMtaW5kaWNhdG9yOjpiZWZvcmUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxuXG4gID4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuNCk7XG4gIH1cblxuICAvLyBTZXQgcmlwcGxlcyBjb2xvciB0byBiZSB0aGUgY29udHJhc3QgY29sb3Igb2YgdGhlIG5ldyBiYWNrZ3JvdW5kLiBPdGhlcndpc2UgdGhlIHJpcHBsZVxuICAvLyBjb2xvciB3aWxsIGJlIGJhc2VkIG9uIHRoZSBhcHAgYmFja2dyb3VuZCBjb2xvci5cbiAgPiAubWF0LXRhYi1oZWFkZXIgLm1hdC1yaXBwbGUtZWxlbWVudCxcbiAgPiAubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuMTIpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdGFicy10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC10YWItZ3JvdXAge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItbGluayB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJ1dHRvbik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYnMtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXRhYnMtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXRhYnMnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdGFicy1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRhYnMtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10YWJzLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuLy8gTWluaW11bSBoZWlnaHQgZm9yIHRvb2xiYXIncyBpbiB0aGUgaGlnaGVzdCBkZW5zaXR5IGlzIGRpZmZpY3VsdCB0byBkZXRlcm1pbmUgYmVjYXVzZVxuLy8gZGV2ZWxvcGVycyBjYW4gcHJvamVjdCBhcmJpdHJhcnkgY29udGVudC4gV2UgdXNlIGEgbWluaW11bSB2YWx1ZSB0aGF0IGVuc3VyZXMgdGhhdCBtb3N0XG4vLyBjb21tb24gY29udGVudCAoZS5nLiBpY29uIGJ1dHRvbnMpIGRvZXMgbm90IGV4Y2VlZCB0aGUgcm93IGJvdW5kYXJpZXMgaW4gaGlnaGVzdCBkZW5zaXR5LlxuJG1hdC10b29sYmFyLW1pbmltdW0taGVpZ2h0OiA0NHB4ICFkZWZhdWx0O1xuXG4kbWF0LXRvb2xiYXItaGVpZ2h0LWRlc2t0b3A6IDY0cHggIWRlZmF1bHQ7XG4kbWF0LXRvb2xiYXItbWF4aW11bS1oZWlnaHQtZGVza3RvcDogJG1hdC10b29sYmFyLWhlaWdodC1kZXNrdG9wICFkZWZhdWx0O1xuJG1hdC10b29sYmFyLW1pbmltdW0taGVpZ2h0LWRlc2t0b3A6ICRtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodCAhZGVmYXVsdDtcblxuJG1hdC10b29sYmFyLWhlaWdodC1tb2JpbGU6IDU2cHggIWRlZmF1bHQ7XG4kbWF0LXRvb2xiYXItbWF4aW11bS1oZWlnaHQtbW9iaWxlOiAkbWF0LXRvb2xiYXItaGVpZ2h0LW1vYmlsZSAhZGVmYXVsdDtcbiRtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodC1tb2JpbGU6ICRtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodCAhZGVmYXVsdDtcblxuJG1hdC10b29sYmFyLWRlc2t0b3AtZGVuc2l0eS1jb25maWc6IChcbiAgaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogJG1hdC10b29sYmFyLWhlaWdodC1kZXNrdG9wLFxuICAgIG1heGltdW06ICRtYXQtdG9vbGJhci1tYXhpbXVtLWhlaWdodC1kZXNrdG9wLFxuICAgIG1pbmltdW06ICRtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodC1kZXNrdG9wLFxuICApXG4pICFkZWZhdWx0O1xuXG4kbWF0LXRvb2xiYXItbW9iaWxlLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtdG9vbGJhci1oZWlnaHQtbW9iaWxlLFxuICAgIG1heGltdW06ICRtYXQtdG9vbGJhci1tYXhpbXVtLWhlaWdodC1tb2JpbGUsXG4gICAgbWluaW11bTogJG1hdC10b29sYmFyLW1pbmltdW0taGVpZ2h0LW1vYmlsZSxcbiAgKVxuKSAhZGVmYXVsdDtcblxuXG5AbWl4aW4gX21hdC10b29sYmFyLWhlaWdodCgkaGVpZ2h0KSB7XG4gIC5tYXQtdG9vbGJhci1tdWx0aXBsZS1yb3dzIHtcbiAgICBtaW4taGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG4gIC5tYXQtdG9vbGJhci1yb3csIC5tYXQtdG9vbGJhci1zaW5nbGUtcm93IHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtdG9vbGJhci1jb2xvcigkcGFsZXR0ZSkge1xuICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbn1cblxuQG1peGluIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcyB7XG4gIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4gIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtc2VsZWN0LXZhbHVlLFxuICAubWF0LXNlbGVjdC1hcnJvdyxcbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRvb2xiYXIge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYXBwLWJhcik7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1jb2xvcigkd2Fybik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWZvcm0tZmllbGQtb3ZlcnJpZGVzO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC10b29sYmFyLFxuICAubWF0LXRvb2xiYXIgaDEsXG4gIC5tYXQtdG9vbGJhciBoMixcbiAgLm1hdC10b29sYmFyIGgzLFxuICAubWF0LXRvb2xiYXIgaDQsXG4gIC5tYXQtdG9vbGJhciBoNSxcbiAgLm1hdC10b29sYmFyIGg2IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRkZW5zaXR5LXNjYWxlOiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaGVpZ2h0LWRlc2t0b3A6IG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZShcbiAgICAgICRtYXQtdG9vbGJhci1kZXNrdG9wLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgaGVpZ2h0KTtcbiAgJGhlaWdodC1tb2JpbGU6IG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZShcbiAgICAgICRtYXQtdG9vbGJhci1tb2JpbGUtZGVuc2l0eS1jb25maWcsICRkZW5zaXR5LXNjYWxlLCBoZWlnaHQpO1xuXG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWRlbnNpdHktbGVnYWN5LWNvbXBhdGliaWxpdHkoKSB7XG4gICAgLy8gU2V0IHRoZSBkZWZhdWx0IGhlaWdodCBmb3IgdGhlIHRvb2xiYXIuXG4gICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWhlaWdodCgkaGVpZ2h0LWRlc2t0b3ApO1xuXG4gICAgLy8gQXMgcGVyIHNwZWNzLCB0b29sYmFycyBzaG91bGQgaGF2ZSBhIGRpZmZlcmVudCBoZWlnaHQgaW4gbW9iaWxlIGRldmljZXMuIFRoaXMgaGFzIGJlZW5cbiAgICAvLyBzcGVjaWZpZWQgaW4gdGhlIG9sZCBndWlkZWxpbmVzIGFuZCBpcyBzdGlsbCBvYnNlcnZhYmxlIGluIHRoZSBuZXcgc3BlY2lmaWNhdGlvbnMgYnlcbiAgICAvLyBsb29raW5nIGF0IHRoZSBzcGVjIGltYWdlcy4gU2VlOiBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi9jb21wb25lbnRzL2FwcC1iYXJzLXRvcC5odG1sI2FuYXRvbXlcbiAgICBAbWVkaWEgKCRtYXQteHNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItaGVpZ2h0KCRoZWlnaHQtbW9iaWxlKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC10b29sYmFyJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRvb2xiYXItY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRvb2xiYXItZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10b29sYmFyLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbiRtYXQtdG9vbHRpcC10YXJnZXQtaGVpZ2h0OiAyMnB4O1xuJG1hdC10b29sdGlwLWZvbnQtc2l6ZTogMTBweDtcbiRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nOiAoJG1hdC10b29sdGlwLXRhcmdldC1oZWlnaHQgLSAkbWF0LXRvb2x0aXAtZm9udC1zaXplKSAvIDI7XG5cbiRtYXQtdG9vbHRpcC1oYW5kc2V0LXRhcmdldC1oZWlnaHQ6IDMwcHg7XG4kbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemU6IDE0cHg7XG4kbWF0LXRvb2x0aXAtaGFuZHNldC12ZXJ0aWNhbC1wYWRkaW5nOlxuICAgICgkbWF0LXRvb2x0aXAtaGFuZHNldC10YXJnZXQtaGVpZ2h0IC0gJG1hdC10b29sdGlwLWhhbmRzZXQtZm9udC1zaXplKSAvIDI7XG5cbkBtaXhpbiBtYXQtdG9vbHRpcC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgdG9vbHRpcCwgMC45KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtdG9vbHRpcCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10b29sdGlwLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC10b29sdGlwJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sdGlwLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zbmFjay1iYXItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcblxuICAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICAgIC8vIFVzZSB0aGUgcHJpbWFyeSB0ZXh0IG9uIHRoZSBkYXJrIHRoZW1lLCBldmVuIHRob3VnaCB0aGUgbGlnaHRlciBvbmUgdXNlc1xuICAgIC8vIGEgc2Vjb25kYXJ5LCBiZWNhdXNlIHRoZSBjb250cmFzdCBvbiB0aGUgbGlnaHQgcHJpbWFyeSB0ZXh0IGlzIHBvb3IuXG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkZGFyay1wcmltYXJ5LXRleHQsICRsaWdodC1zZWNvbmRhcnktdGV4dCk7XG4gICAgYmFja2dyb3VuZDogaWYoJGlzLWRhcmstdGhlbWUsIG1hcC1nZXQoJG1hdC1ncmV5LCA1MCksICMzMjMyMzIpO1xuXG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKDYsICRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgICBjb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsIGluaGVyaXQsIG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbmFjay1iYXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBpbmhlcml0O1xuICAgICAgc2l6ZTogaW5oZXJpdDtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJ1dHRvbik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXNuYWNrLWJhci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zbmFjay1iYXInKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc25hY2stYmFyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIGZpbGwgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuXG4gICRmaWxsLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMSwgMC4wNCkpO1xuICAkZmlsbC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjA1LCAwLjAyKSk7XG4gICR1bmRlcmxpbmUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNSwgMC40MikpO1xuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpbGwtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWxsLWRpc2FibGVkLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBjb2xvcjogJGxhYmVsLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU6IDA7XG5cbi8vIEFwcGxpZXMgYSBmbG9hdGluZyBsYWJlbCBhYm92ZSB0aGUgZm9ybSBmaWVsZCBjb250cm9sIGl0c2VsZi5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZSlcbiAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1maWxsLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIG9uIHRvcCBvZiB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nLXRvcDogMC4yNWVtO1xuICAvLyBUaGUgcGFkZGluZyBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nLWJvdHRvbTogMC43NWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgYW1vdW50IHdlIG9mZnNldCB0aGUgbGFiZWwgZnJvbSB0aGUgaW5wdXQgdGV4dCBpbiB0aGUgZmlsbCBhcHBlYXJhbmNlLlxuICAkZmlsbC1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldDogLTAuNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZy10b3AgMCAkaW5maXgtcGFkZGluZy1ib3R0b20gMDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgdG9wOiAkaW5maXgtbWFyZ2luLXRvcCArICRpbmZpeC1wYWRkaW5nLXRvcDtcbiAgICAgIG1hcmdpbi10b3A6ICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWZpbGwtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZy10b3AgKyAkZmlsbC1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlcnZlci1zaWRlIHJlbmRlcmVkIG1hdElucHV0IHdpdGggYSBsYWJlbCBhdHRyaWJ1dGUgYnV0IGxhYmVsIG5vdCBzaG93blxuICAgICAgLy8gKHVzZWQgYXMgYSBwdXJlIENTUyBzdGFuZC1pbiBmb3IgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KS5cbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLXRvcCArICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtZmlsbC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1maWxsLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1mb3JtLWZpZWxkLWZpbGwnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtZmlsbC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZmlsbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgb25seSBhcHBseSB0byB0aGUgbGVnYWN5IGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1sZWdhY3ktY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuXG4gICRsYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICR1bmRlcmxpbmUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC40MikpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG4gICAgfVxuXG4gICAgLm1hdC1oaW50IHtcbiAgICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkdW5kZXJsaW5lLWNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICAvLyBXZSB1c2UgcGVyc3BlY3RpdmUgdG8gZml4IHRoZSB0ZXh0IGJsdXJyaW5lc3MgYXMgZGVzY3JpYmVkIGhlcmU6XG4gIC8vIGh0dHA6Ly93d3cudXNlcmFnZW50bWFuLmNvbS9ibG9nLzIwMTQvMDUvMDQvZml4aW5nLXR5cG9ncmFwaHktaW5zaWRlLW9mLTItZC1jc3MtdHJhbnNmb3Jtcy9cbiAgLy8gVGhpcyByZXN1bHRzIGluIGEgc21hbGwgaml0dGVyIGFmdGVyIHRoZSBsYWJlbCBmbG9hdHMgb24gRmlyZWZveCwgd2hpY2ggdGhlXG4gIC8vIHRyYW5zbGF0ZVogZml4ZXMuXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZykgc2NhbGUoJGZvbnQtc2NhbGUpIHBlcnNwZWN0aXZlKDEwMHB4KVxuICB0cmFuc2xhdGVaKDAuMDAxcHggKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSk7XG4gIC8vIFRoZSB0cmlja3MgYWJvdmUgdXNlZCB0byBzbW9vdGggb3V0IHRoZSBhbmltYXRpb24gb24gY2hyb21lIGFuZCBmaXJlZm94IGFjdHVhbGx5IG1ha2UgdGhpbmdzXG4gIC8vIHdvcnNlIG9uIElFLCBzbyB3ZSBkb24ndCBpbmNsdWRlIHRoZW0gaW4gdGhlIElFIHZlcnNpb24uXG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSlcbiAgICAgICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcblxuICB3aWR0aDogMTAwJSAvICRmb250LXNjYWxlICsgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG4vLyBTYW1lIGFzIG1peGluIGFib3ZlLCBidXQgb21pdHMgdGhlIHRyYW5zbGF0ZVogZm9yIHByaW50aW5nIHB1cnBvc2VzLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmctcHJpbnQoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbCBqaXR0ZXIgYWZ0ZXIgdGhlIGxhYmVsIGZsb2F0cyBvbiBGaXJlZm94LCB3aGljaCB0aGVcbiAgLy8gdHJhbnNsYXRlWiBmaXhlcy5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUpXG4gICAgICAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIC8vIFRoZSB0cmlja3MgYWJvdmUgdXNlZCB0byBzbW9vdGggb3V0IHRoZSBhbmltYXRpb24gb24gY2hyb21lIGFuZCBmaXJlZm94IGFjdHVhbGx5IG1ha2UgdGhpbmdzXG4gIC8vIHdvcnNlIG9uIElFLCBzbyB3ZSBkb24ndCBpbmNsdWRlIHRoZW0gaW4gdGhlIElFIHZlcnNpb24uXG4gICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuICAvLyBUaGUgYW1vdW50IHRvIHNjYWxlIHRoZSBmb250IGZvciB0aGUgZmxvYXRpbmcgbGFiZWwgYW5kIHN1YnNjcmlwdC5cbiAgJHN1YnNjcmlwdC1mb250LXNjYWxlOiAwLjc1O1xuICAvLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIHRvcCBvZiB0aGUgbGluZSBhbmQgdGhlIHRvcCBvZiB0aGUgYWN0dWFsIHRleHRcbiAgLy8gKGFzIGEgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZSkuXG4gICRsaW5lLXNwYWNpbmc6ICgkbGluZS1oZWlnaHQgLSAxKSAvIDI7XG4gIC8vIFRoZSBwYWRkaW5nIG9uIHRoZSBpbmZpeC4gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCBzZWVtIHRvIG1lYXN1cmUgZnJvbSB0aGUgZWRnZVxuICAvLyBvZiB0aGUgdGV4dCBpdHNlbGYsIG5vdCB0aGUgZWRnZSBvZiB0aGUgbGluZTsgdGhlcmVmb3JlIHdlIHN1YnRyYWN0IG9mZiB0aGUgbGluZSBzcGFjaW5nLlxuICAkaW5maXgtcGFkZGluZzogMC41ZW0gLSAkbGluZS1zcGFjaW5nO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS4gV2UgYWdhaW4gbmVlZCB0byBzdWJ0cmFjdCBvZmYgdGhlIGxpbmUgc3BhY2luZyBzaW5jZSB0aGUgbW9ja3MgbWVhc3VyZSB0byB0aGUgZWRnZSBvZiB0aGVcbiAgLy8gdGV4dCwgbm90IHRoZSAgZWRnZSBvZiB0aGUgbGluZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZSAtICgkbGluZS1zcGFjaW5nICogMik7XG4gIC8vIFRoZSBwYWRkaW5nIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtd3JhcHBlciB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgc3Vic2NyaXB0LCBzaW5jZSBpdCdzXG4gIC8vIGFic29sdXRlbHkgcG9zaXRpb25lZC4gVGhpcyBpcyBhIGNvbWJpbmF0aW9uIG9mIHRoZSBzdWJzY3JpcHQncyBtYXJnaW4gYW5kIGxpbmUtaGVpZ2h0LCBidXQgd2VcbiAgLy8gbmVlZCB0byBtdWx0aXBseSBieSB0aGUgc3Vic2NyaXB0IGZvbnQgc2NhbGUgZmFjdG9yIHNpbmNlIHRoZSB3cmFwcGVyIGhhcyBhIGxhcmdlciBmb250IHNpemUuXG4gICR3cmFwcGVyLXBhZGRpbmctYm90dG9tOiAoJHN1YnNjcmlwdC1tYXJnaW4tdG9wICsgJGxpbmUtaGVpZ2h0KSAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgcGFkZGluZzogJGluZml4LXBhZGRpbmcgMDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wIHdpbGwgcmVseSBvbiBBdXRvZmlsbE1vbml0b3IgaW5zdGVhZC5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlcnZlci1zaWRlIHJlbmRlcmVkIG1hdElucHV0IHdpdGggYSBsYWJlbCBhdHRyaWJ1dGUgYnV0IGxhYmVsIG5vdCBzaG93blxuICAgICAgLy8gKHVzZWQgYXMgYSBwdXJlIENTUyBzdGFuZC1pbiBmb3IgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KS5cbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgdG9wOiAkaW5maXgtbWFyZ2luLXRvcCArICRpbmZpeC1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgLy8gV2Ugd2FudCB0aGUgdW5kZXJsaW5lIHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgICBib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAgIC8vIFdlIHdhbnQgdGhlIHN1YnNjcmlwdCB0byBzdGFydCBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50IGJveCwgbm90IHRoZSBwYWRkaW5nIGJveCxcbiAgICAgIC8vIHNvIHdlIG1vdmUgaXQgdXAgYnkgdGhlIHBhZGRpbmcgYW1vdW50IChhZGp1c3RlZCBmb3IgdGhlIHNtYWxsZXIgZm9udCBzaXplKTtcbiAgICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRyYW5zbGF0ZVogY2F1c2VzIHRoZSBsYWJlbCB0byBub3QgYXBwZWFyIHdoaWxlIHByaW50aW5nLCBzbyB3ZSBvdmVycmlkZSBpdCB0byBub3RcbiAgLy8gYXBwbHkgdHJhbnNsYXRlWiB3aGlsZSBwcmludGluZ1xuICBAbWVkaWEgcHJpbnQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmctcHJpbnQoXG4gICAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wIHdpbGwgcmVseSBvbiBBdXRvZmlsbE1vbml0b3IgaW5zdGVhZC5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNlcnZlci1zaWRlIHJlbmRlcmVkIG1hdElucHV0IHdpdGggYSBsYWJlbCBhdHRyaWJ1dGUgYnV0IGxhYmVsIG5vdCBzaG93blxuICAgICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmctcHJpbnQoXG4gICAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtbGVnYWN5LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZm9ybS1maWVsZC1sZWdhY3knKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1sZWdhY3ktY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZm9ybS1maWVsZC1sZWdhY3ktZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgb25seSBhcHBseSB0byB0aGUgb3V0bGluZSBhcHBlYXJhbmNlIG9mIHRoZSBmb3JtLWZpZWxkLlxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtb3V0bGluZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuXG4gICRsYWJlbC1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgJG91dGxpbmUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMywgMC4xMikpO1xuICAkb3V0bGluZS1jb2xvci1ob3ZlcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMSwgMC44NykpO1xuICAkb3V0bGluZS1jb2xvci1wcmltYXJ5OiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAkb3V0bGluZS1jb2xvci1hY2NlbnQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgJG91dGxpbmUtY29sb3Itd2FybjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgJG91dGxpbmUtY29sb3ItZGlzYWJsZWQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMTUsIDAuMDYpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIHtcbiAgICAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gICAgICBjb2xvcjogJG91dGxpbmUtY29sb3I7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWhvdmVyO1xuICAgIH1cblxuICAgICYubWF0LWZvY3VzZWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3ItcHJpbWFyeTtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWFjY2VudDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci13YXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENsYXNzIHJlcGVhdGVkIHNvIHRoYXQgcnVsZSBpcyBzcGVjaWZpYyBlbm91Z2ggdG8gb3ZlcnJpZGUgZm9jdXNlZCBhY2NlbnQgY29sb3IgY2FzZS5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWludmFsaWQubWF0LWZvcm0tZmllbGQtaW52YWxpZCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci13YXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRsYWJlbC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3ItZGlzYWJsZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFVzZWQgdG8gbWFrZSBpbnN0YW5jZXMgb2YgdGhlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyBtaXhpbiBuZWdsaWdpYmx5IGRpZmZlcmVudCxcbi8vIGFuZCBwcmV2ZW50IEdvb2dsZSdzIENTUyBPcHRpbWl6ZXIgZnJvbSBjb2xsYXBzaW5nIHRoZSBkZWNsYXJhdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ugc29tZVxuLy8gb2YgdGhlIHNlbGVjdG9ycyBjb250YWluIHBzZXVkby1jbGFzc2VzIG5vdCByZWNvZ25pemVkIGluIGFsbCBicm93c2Vycy4gSWYgYSBicm93c2VyIGVuY291bnRlcnNcbi8vIGFuIHVua25vd24gcHNldWRvLWNsYXNzIGl0IHdpbGwgZGlzY2FyZCB0aGUgZW50aXJlIHJ1bGUgc2V0LlxuJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUpXG4gIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIHBhZGRpbmcgYWJvdmUgYW5kIGJlbG93IHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmc6IDFlbTtcbiAgLy8gVGhlIG1hcmdpbiBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLWluZml4IHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBmbG9hdGluZyBsYWJlbC5cbiAgJGluZml4LW1hcmdpbi10b3A6IDFlbSAqICRsaW5lLWhlaWdodCAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHNwYWNlIGJldHdlZW4gdGhlIGJvdHRvbSBvZiB0aGUgLm1hdC1mb3JtLWZpZWxkLWZsZXggYXJlYSBhbmQgdGhlIHN1YnNjcmlwdCB3cmFwcGVyLlxuICAvLyBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHRoaXMgbWFyZ2luIGlzIGFwcGxpZWQgdG8gYW4gZWxlbWVudCB3aXRoIHRoZSBzdWJzY3JpcHRcbiAgLy8gdGV4dCBmb250IHNpemUsIHNvIHdlIG5lZWQgdG8gZGl2aWRlIGJ5IHRoZSBzY2FsZSBmYWN0b3IgdG8gbWFrZSBpdCBoYWxmIG9mIHRoZSBvcmlnaW5hbCB0ZXh0XG4gIC8vIHNpemUuXG4gICRzdWJzY3JpcHQtbWFyZ2luLXRvcDogMC41ZW0gLyAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBwYWRkaW5nIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtd3JhcHBlciB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgc3Vic2NyaXB0LCBzaW5jZSBpdCdzXG4gIC8vIGFic29sdXRlbHkgcG9zaXRpb25lZC4gVGhpcyBpcyBhIGNvbWJpbmF0aW9uIG9mIHRoZSBzdWJzY3JpcHQncyBtYXJnaW4gYW5kIGxpbmUtaGVpZ2h0LCBidXQgd2VcbiAgLy8gbmVlZCB0byBtdWx0aXBseSBieSB0aGUgc3Vic2NyaXB0IGZvbnQgc2NhbGUgZmFjdG9yIHNpbmNlIHRoZSB3cmFwcGVyIGhhcyBhIGxhcmdlciBmb250IHNpemUuXG4gICR3cmFwcGVyLXBhZGRpbmctYm90dG9tOiAoJHN1YnNjcmlwdC1tYXJnaW4tdG9wICsgJGxpbmUtaGVpZ2h0KSAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIGFtb3VudCB3ZSBvZmZzZXQgdGhlIGxhYmVsIGZyb20gdGhlIGlucHV0IHRleHQgaW4gdGhlIG91dGxpbmUgYXBwZWFyYW5jZS5cbiAgJG91dGxpbmUtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ6IC0wLjI1ZW07XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDAgJGluZml4LXBhZGRpbmcgMDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgdG9wOiAkaW5maXgtbWFyZ2luLXRvcCArICRpbmZpeC1wYWRkaW5nO1xuICAgICAgbWFyZ2luLXRvcDogJG91dGxpbmUtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtb3V0bGluZS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nICsgJG91dGxpbmUtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtb3V0bGluZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1mb3JtLWZpZWxkLW91dGxpbmUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtb3V0bGluZS1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBzdGFuZGFyZCBhcHBlYXJhbmNlIG9mIHRoZSBmb3JtLWZpZWxkLlxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuXG4gICR1bmRlcmxpbmUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC40MikpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCR1bmRlcmxpbmUtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXByaXZhdGUtZm9ybS1maWVsZC1zdGFuZGFyZC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZm9ybS1maWVsZC1zdGFuZGFyZCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtc3RhbmRhcmQtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIENvbG9yIHN0eWxlcyB0aGF0IGFwcGx5IHRvIGFsbCBhcHBlYXJhbmNlcyBvZiB0aGUgZm9ybS1maWVsZC5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcblxuICAvLyBMYWJlbCBjb2xvcnMuIFJlcXVpcmVkIGlzIHVzZWQgZm9yIHRoZSBgKmAgc3RhciBzaG93biBpbiB0aGUgbGFiZWwuXG4gICRsYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC42KSk7XG4gICRmb2N1c2VkLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAkcmVxdWlyZWQtbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcblxuICAvLyBVbmRlcmxpbmUgY29sb3JzLlxuICAkdW5kZXJsaW5lLWNvbG9yLWJhc2U6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJHVuZGVybGluZS1jb2xvci1hY2NlbnQ6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgJHVuZGVybGluZS1jb2xvci13YXJuOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1oaW50IHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgY29sb3I6ICRmb2N1c2VkLWxhYmVsLWNvbG9yO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICAgIGNvbG9yOiAkcmVxdWlyZWQtbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWJhc2U7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yO1xuXG4gICAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxpbmcgZm9yIHRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgZm9ybSBmaWVsZC4gTm90ZSB0aGF0IHdoaWxlIHRoZSBzYW1lIGNhbiBiZVxuICAvLyBhY2hpZXZlZCB3aXRoIHRoZSBuZy0qIGNsYXNzZXMsIHdlIHVzZSB0aGlzIGFwcHJvYWNoIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBzYW1lXG4gIC8vIGxvZ2ljIGlzIHVzZWQgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlIGFuZCB0byBzaG93IHRoZSBlcnJvciBtZXNzYWdlcy5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuXG4gICAgICAmLm1hdC1hY2NlbnQsXG4gICAgICAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1lcnJvciB7XG4gICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1jb2xvcigkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtY29sb3IoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtY29sb3IoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtY29sb3IoJGNvbmZpZyk7XG59XG5cbi8vIFVzZWQgdG8gbWFrZSBpbnN0YW5jZXMgb2YgdGhlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyBtaXhpbiBuZWdsaWdpYmx5IGRpZmZlcmVudCxcbi8vIGFuZCBwcmV2ZW50IEdvb2dsZSdzIENTUyBPcHRpbWl6ZXIgZnJvbSBjb2xsYXBzaW5nIHRoZSBkZWNsYXJhdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ugc29tZVxuLy8gb2YgdGhlIHNlbGVjdG9ycyBjb250YWluIHBzZXVkby1jbGFzc2VzIG5vdCByZWNvZ25pemVkIGluIGFsbCBicm93c2Vycy4gSWYgYSBicm93c2VyIGVuY291bnRlcnNcbi8vIGFuIHVua25vd24gcHNldWRvLWNsYXNzIGl0IHdpbGwgZGlzY2FyZCB0aGUgZW50aXJlIHJ1bGUgc2V0LlxuJG1hdC1mb3JtLWZpZWxkLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1kZWR1cGUpXG4gICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuICB3aWR0aDogMTAwJSAvICRmb250LXNjYWxlICsgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAvLyBUaGUgYW1vdW50IHRvIHNjYWxlIHRoZSBmb250IGZvciB0aGUgZmxvYXRpbmcgbGFiZWwgYW5kIHN1YnNjcmlwdC5cbiAgJHN1YnNjcmlwdC1mb250LXNjYWxlOiAwLjc1O1xuICAvLyBUaGUgYW1vdW50IHRvIHNjYWxlIHRoZSBmb250IGZvciB0aGUgcHJlZml4IGFuZCBzdWZmaXggaWNvbnMuXG4gICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zY2FsZTogMS41O1xuXG4gIC8vIFRoZSBwYWRkaW5nIG9uIHRoZSBpbmZpeC4gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUuXG4gICRpbmZpeC1wYWRkaW5nOiAwLjVlbTtcbiAgLy8gVGhlIG1hcmdpbiBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLWluZml4IHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBmbG9hdGluZyBsYWJlbC5cbiAgJGluZml4LW1hcmdpbi10b3A6IDFlbSAqICRsaW5lLWhlaWdodCAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gRm9udCBzaXplIHRvIHVzZSBmb3IgdGhlIGxhYmVsIGFuZCBzdWJzY3JpcHQgdGV4dC5cbiAgJHN1YnNjcmlwdC1mb250LXNpemU6ICRzdWJzY3JpcHQtZm9udC1zY2FsZSAqIDEwMCU7XG4gIC8vIEZvbnQgc2l6ZSB0byB1c2UgZm9yIHRoZSBmb3IgdGhlIHByZWZpeCBhbmQgc3VmZml4IGljb25zLlxuICAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2l6ZTogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMTAwJTtcbiAgLy8gVGhlIHNwYWNlIGJldHdlZW4gdGhlIGJvdHRvbSBvZiB0aGUgLm1hdC1mb3JtLWZpZWxkLWZsZXggYXJlYSBhbmQgdGhlIHN1YnNjcmlwdCB3cmFwcGVyLlxuICAvLyBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHRoaXMgbWFyZ2luIGlzIGFwcGxpZWQgdG8gYW4gZWxlbWVudCB3aXRoIHRoZSBzdWJzY3JpcHRcbiAgLy8gdGV4dCBmb250IHNpemUsIHNvIHdlIG5lZWQgdG8gZGl2aWRlIGJ5IHRoZSBzY2FsZSBmYWN0b3IgdG8gbWFrZSBpdCBoYWxmIG9mIHRoZSBvcmlnaW5hbCB0ZXh0XG4gIC8vIHNpemUuXG4gICRzdWJzY3JpcHQtbWFyZ2luLXRvcDogMC41ZW0gLyAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBwYWRkaW5nIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtd3JhcHBlciB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgc3Vic2NyaXB0LCBzaW5jZSBpdCdzXG4gIC8vIGFic29sdXRlbHkgcG9zaXRpb25lZC4gVGhpcyBpcyBhIGNvbWJpbmF0aW9uIG9mIHRoZSBzdWJzY3JpcHQncyBtYXJnaW4gYW5kIGxpbmUtaGVpZ2h0LCBidXQgd2VcbiAgLy8gbmVlZCB0byBtdWx0aXBseSBieSB0aGUgc3Vic2NyaXB0IGZvbnQgc2NhbGUgZmFjdG9yIHNpbmNlIHRoZSB3cmFwcGVyIGhhcyBhIGxhcmdlciBmb250IHNpemUuXG4gICR3cmFwcGVyLXBhZGRpbmctYm90dG9tOiAoJHN1YnNjcmlwdC1tYXJnaW4tdG9wICsgJGxpbmUtaGVpZ2h0KSAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcblxuICAubWF0LWZvcm0tZmllbGQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBpbnB1dCk7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCxcbiAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gICAgLy8gQWxsb3cgaWNvbnMgaW4gYSBwcmVmaXggb3Igc3VmZml4IHRvIGFkYXB0IHRvIHRoZSBjb3JyZWN0IHNpemUuXG4gICAgLm1hdC1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIH1cblxuICAgIC8vIEFsbG93IGljb24gYnV0dG9ucyBpbiBhIHByZWZpeCBvciBzdWZmaXggdG8gYWRhcHQgdG8gdGhlIGNvcnJlY3Qgc2l6ZS5cbiAgICAubWF0LWljb24tYnV0dG9uIHtcbiAgICAgIGhlaWdodDogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMWVtO1xuICAgICAgd2lkdGg6ICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zY2FsZSAqIDFlbTtcblxuICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgaGVpZ2h0OiAkbGluZS1oZWlnaHQgKiAxZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwO1xuICAgIC8vIFRocm93cyBvZmYgdGhlIGJhc2VsaW5lIGlmIHdlIGRvIGl0IGFzIGEgcmVhbCBtYXJnaW4sIHNvIHdlIGRvIGl0IGFzIGEgYm9yZGVyIGluc3RlYWQuXG4gICAgYm9yZGVyLXRvcDogJGluZml4LW1hcmdpbi10b3Agc29saWQgdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgfVxuXG4gICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgLy8gKHVzZWQgYXMgYSBwdXJlIENTUyBzdGFuZC1pbiBmb3IgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KS5cbiAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgIHRvcDogLSRpbmZpeC1tYXJnaW4tdG9wO1xuICAgIHBhZGRpbmctdG9wOiAkaW5maXgtbWFyZ2luLXRvcDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAkaW5maXgtbWFyZ2luLXRvcCArICRpbmZpeC1wYWRkaW5nO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgLy8gV2Ugd2FudCB0aGUgdW5kZXJsaW5lIHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgIC8vIHNvIHdlIG1vdmUgaXQgdXAgYnkgdGhlIHBhZGRpbmcgYW1vdW50LlxuICAgIGJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICAgIGZvbnQtc2l6ZTogJHN1YnNjcmlwdC1mb250LXNpemU7XG4gICAgbWFyZ2luLXRvcDogJHN1YnNjcmlwdC1tYXJnaW4tdG9wO1xuXG4gICAgLy8gV2Ugd2FudCB0aGUgc3Vic2NyaXB0IHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgIC8vIHNvIHdlIG1vdmUgaXQgdXAgYnkgdGhlIHBhZGRpbmcgYW1vdW50IChhZGp1c3RlZCBmb3IgdGhlIHNtYWxsZXIgZm9udCBzaXplKTtcbiAgICB0b3A6IGNhbGMoMTAwJSAtICN7JHdyYXBwZXItcGFkZGluZy1ib3R0b20gLyAkc3Vic2NyaXB0LWZvbnQtc2NhbGV9KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkZGVuc2l0eS1zY2FsZTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZm9ybS1maWVsZC1sZWdhY3ktZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtc3RhbmRhcmQtZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtZmlsbC1kZW5zaXR5KCRkZW5zaXR5LXNjYWxlKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZm9ybS1maWVsZC1vdXRsaW5lLWRlbnNpdHkoJGRlbnNpdHktc2NhbGUpO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWZvcm0tZmllbGQnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuJG1hdC10cmVlLW5vZGUtaGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuLy8gTWluaW11bSBoZWlnaHQgZm9yIHRyZWUgbm9kZXMgaW4gaGlnaGVzdCBkZW5zaXR5IGlzIGRpZmZpY3VsdCB0byBkZXRlcm1pbmUgYXNcbi8vIGRldmVsb3BlcnMgY2FuIGRpc3BsYXkgYXJiaXRyYXJ5IGNvbnRlbnQuIFdlIHVzZSBhIG1pbmltdW0gaGVpZ2h0IHdoaWNoIGVuc3VyZXNcbi8vIHRoYXQgY29tbW9uIGNvbnRlbnQgcGxhY2VkIGluIHRyZWUgbm9kZXMgZG9lcyBub3QgZXhjZWVkIChlLmcuIGljb25zLCBjaGVja2JveGVzKS5cbiRtYXQtdHJlZS1ub2RlLW1pbmltdW0taGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuJG1hdC10cmVlLW5vZGUtbWF4aW11bS1oZWlnaHQ6ICRtYXQtdHJlZS1ub2RlLWhlaWdodCAhZGVmYXVsdDtcblxuJG1hdC10cmVlLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtdHJlZS1ub2RlLWhlaWdodCxcbiAgICBtYXhpbXVtOiAkbWF0LXRyZWUtbm9kZS1tYXhpbXVtLWhlaWdodCxcbiAgICBtaW5pbXVtOiAkbWF0LXRyZWUtbm9kZS1taW5pbXVtLWhlaWdodCxcbiAgKVxuKSAhZGVmYXVsdDtcblxuXG5AbWl4aW4gbWF0LXRyZWUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdHJlZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXRyZWUge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXRyZWUtbm9kZSxcbiAgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC10cmVlLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkZGVuc2l0eS1zY2FsZTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGhlaWdodDogbWF0LXByaXZhdGUtZGVuc2l0eS1wcm9wLXZhbHVlKCRtYXQtdHJlZS1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGhlaWdodCk7XG5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZGVuc2l0eS1sZWdhY3ktY29tcGF0aWJpbGl0eSgpIHtcbiAgICAubWF0LXRyZWUtbm9kZSB7XG4gICAgICBtaW4taGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRyZWUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXRyZWUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdHJlZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdHJlZS1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRyZWUtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cbi8vIEluY2x1ZGVzIGFsbCBvZiB0aGUgdHlwb2dyYXBoaWMgc3R5bGVzLlxuQG1peGluIGFuZ3VsYXItbWF0ZXJpYWwtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lOiBudWxsKSB7XG4gICRjb25maWc6IGlmKG1hdC1wcml2YXRlLWlzLXRoZW1lLW9iamVjdCgkY29uZmlnLW9yLXRoZW1lKSxcbiAgICAgIG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSksICRjb25maWctb3ItdGhlbWUpO1xuXG4gIC8vIElmIG5vIGFjdHVhbCBjb2xvciBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHNwZWNpZmllZCwgY3JlYXRlIGEgZGVmYXVsdCBvbmUuXG4gIEBpZiBub3QgJGNvbmZpZyB7XG4gICAgJGNvbmZpZzogbWF0LXR5cG9ncmFwaHktY29uZmlnKCk7XG4gIH1cblxuICAvLyBUT0RPOiBDT01QLTMwOTogRG8gbm90IHVzZSBpbmRpdmlkdWFsIG1peGlucy4gSW5zdGVhZCwgdXNlIHRoZSBhbGwtdGhlbWUgbWl4aW4gYW5kIG9ubHlcbiAgLy8gc3BlY2lmeSBhIGB0eXBvZ3JhcGh5YCBjb25maWcgd2hpbGUgc2V0dGluZyBgY29sb3JgIGFuZCBgZGVuc2l0eWAgdG8gYG51bGxgLiBUaGlzIGlzIGN1cnJlbnRseVxuICAvLyBub3QgcG9zc2libGUgYXMgaXQgd291bGQgaW50cm9kdWNlIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSBmb3IgdHlwb2dyYXBoeSBiZWNhdXNlIHRoZSBgbWF0LWNvcmVgXG4gIC8vIG1peGluIHRoYXQgaXMgdHJhbnNpdGl2ZWx5IGxvYWRlZCBieSB0aGUgYGFsbC10aGVtZWAgZmlsZSwgaW1wb3J0cyBgYWxsLXR5cG9ncmFwaHlgIHdoaWNoXG4gIC8vIHdvdWxkIHRoZW4gbG9hZCBgYWxsLXRoZW1lYCBhZ2Fpbi4gVGhpcyB1bHRpbWF0ZWx5IHJlc3VsdHMgYSBjaXJjdWxhciBkZXBlbmRlbmN5LlxuXG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1kaXZpZGVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaWNvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yYWRpby10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFicy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiBtYXQtY29yZSgkdHlwb2dyYXBoeS1jb25maWc6IG51bGwpIHtcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5LWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUoKTtcbiAgQGluY2x1ZGUgY2RrLWExMXkoKTtcbiAgQGluY2x1ZGUgY2RrLW92ZXJsYXkoKTtcbiAgQGluY2x1ZGUgY2RrLXRleHQtZmllbGQoKTtcblxuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1wb3NpdGlvbmluZygpO1xuICBAaW5jbHVkZSBfbWF0LW1kYy1jb3JlKCk7XG59XG5cbkBtaXhpbiBtYXQtY29yZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAvLyBXcmFwcGVyIGVsZW1lbnQgdGhhdCBwcm92aWRlcyB0aGUgdGhlbWUgYmFja2dyb3VuZCB3aGVuIHRoZSB1c2VyJ3MgY29udGVudCBpc24ndFxuICAvLyBpbnNpZGUgb2YgYSBgbWF0LXNpZGVuYXYtY29udGFpbmVyYC4gTm90ZSB0aGF0IHdlIG5lZWQgdG8gZXhjbHVkZSB0aGUgYW1wZXJzYW5kXG4gIC8vIHNlbGVjdG9yIGluIGNhc2UgdGhlIG1peGluIGlzIGluY2x1ZGVkIGF0IHRoZSB0b3AgbGV2ZWwuXG4gIC5tYXQtYXBwLWJhY2tncm91bmQje2lmKCYsICcsICYubWF0LWFwcC1iYWNrZ3JvdW5kJywgJycpfSB7XG4gICAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLy8gUHJvdmlkZXMgZXh0ZXJuYWwgQ1NTIGNsYXNzZXMgZm9yIGVhY2ggZWxldmF0aW9uIHZhbHVlLiBFYWNoIENTUyBjbGFzcyBpcyBmb3JtYXR0ZWQgYXNcbiAgLy8gYG1hdC1lbGV2YXRpb24teiR6VmFsdWVgIHdoZXJlIGAkelZhbHVlYCBjb3JyZXNwb25kcyB0byB0aGUgei1zcGFjZSB0byB3aGljaCB0aGUgZWxlbWVudCBpc1xuICAvLyBlbGV2YXRlZC5cbiAgQGZvciAkelZhbHVlIGZyb20gMCB0aHJvdWdoIDI0IHtcbiAgICAuI3skbWF0LWVsZXZhdGlvbi1wcmVmaXh9I3skelZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgLy8gTWFya2VyIHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdXNlciBoYXMgYWRkZWQgYSB0aGVtZSB0byB0aGVpciBwYWdlLlxuICBAYXQtcm9vdCB7XG4gICAgLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIE1peGluIHRoYXQgcmVuZGVycyBhbGwgb2YgdGhlIGNvcmUgc3R5bGVzIHRoYXQgZGVwZW5kIG9uIHRoZSB0aGVtZS5cbkBtaXhpbiBtYXQtY29yZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgLy8gV3JhcCB0aGUgc3ViLXRoZW1lIGluY2x1ZGVzIGluIHRoZSBkdXBsaWNhdGUgdGhlbWUgc3R5bGVzIG1peGluLiBUaGlzIGVuc3VyZXMgdGhhdFxuICAvLyB0aGVyZSB3b24ndCBiZSBtdWx0aXBsZSB3YXJuaW5ncy4gZS5nLiBpZiBgbWF0LWNvcmUtdGhlbWVgIHJlcG9ydHMgYSB3YXJuaW5nLCB0aGVuXG4gIC8vIHRoZSBpbXBvcnRlZCB0aGVtZXMgKHN1Y2ggYXMgYG1hdC1yaXBwbGUtdGhlbWVgKSBzaG91bGQgbm90IHJlcG9ydCBhZ2Fpbi5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtY29yZScpIHtcbiAgICBAaW5jbHVkZSBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZSk7XG4gICAgQGluY2x1ZGUgbWF0LW9wdGlvbi10aGVtZSgkdGhlbWUpO1xuICAgIEBpbmNsdWRlIG1hdC1vcHRncm91cC10aGVtZSgkdGhlbWUpO1xuICAgIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcblxuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWNvcmUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBNREMgc3R5bGVzLiBQcml2YXRlIG1peGluIGluY2x1ZGVkIHdpdGggYG1hdC1jb3JlYC5cbkBtaXhpbiBfbWF0LW1kYy1jb3JlKCkge1xuICBAaW5jbHVkZSBfbWF0LW1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1wb3NpdGlvbmluZygpO1xufVxuXG4vLyBNaXhpbiB0aGF0IGVuc3VyZXMgZm9jdXMgaW5kaWNhdG9yIGhvc3QgZWxlbWVudHMgYXJlIHBvc2l0aW9uZWQgc28gdGhhdCB0aGUgZm9jdXMgaW5kaWNhdG9yXG4vLyBwc2V1ZG8gZWxlbWVudCB3aXRoaW4gaXMgcG9zaXRpb25lZCByZWxhdGl2ZSB0byB0aGUgaG9zdC4gUHJpdmF0ZSBtaXhpbiBpbmNsdWRlZCB3aXRoaW5cbi8vIGBfbWF0LW1kYy1jb3JlYC5cbkBtaXhpbiBfbWF0LW1kYy1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1wb3NpdGlvbmluZygpIHtcbiAgLm1hdC1tZGMtZm9jdXMtaW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuLy8gQ3JlYXRlIGEgdGhlbWUuXG5AbWl4aW4gYW5ndWxhci1tYXRlcmlhbC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICRkZWR1cGUta2V5OiAnYW5ndWxhci1tYXRlcmlhbC10aGVtZSc7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZywgJGRlZHVwZS1rZXkpIHtcbiAgICBAaW5jbHVkZSBtYXQtY29yZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWNhcmQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtdGFibGUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWljb24tdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWlucHV0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1saXN0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1tZW51LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXNvcnQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXRhYnMtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXRyZWUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgfVxufVxuXG5cblxuLy8gSW5jbHVkZXMgYWxsIG9mIHRoZSBjb2xvciBzdHlsZXMuXG5AbWl4aW4gYW5ndWxhci1tYXRlcmlhbC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gIC8vIEluIGNhc2UgYSB0aGVtZSBvYmplY3QgaGFzIGJlZW4gcGFzc2VkIGluc3RlYWQgb2YgYSBjb25maWd1cmF0aW9uIGZvclxuICAvLyB0aGUgY29sb3Igc3lzdGVtLCBleHRyYWN0IHRoZSBjb2xvciBjb25maWcgZnJvbSB0aGUgdGhlbWUgb2JqZWN0LlxuICAkY29uZmlnOiBpZihtYXQtcHJpdmF0ZS1pcy10aGVtZS1vYmplY3QoJGNvbmZpZy1vci10aGVtZSksXG4gICAgICBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKSwgJGNvbmZpZy1vci10aGVtZSk7XG5cbiAgQGlmICRjb25maWcgPT0gbnVsbCB7XG4gICAgQGVycm9yICdObyBjb2xvciBjb25maWd1cmF0aW9uIHNwZWNpZmllZC4nO1xuICB9XG5cbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10aGVtZSgoXG4gICAgY29sb3I6ICRjb25maWcsXG4gICAgdHlwb2dyYXBoeTogbnVsbCxcbiAgICBkZW5zaXR5OiBudWxsLFxuICApKTtcbn1cblxuXG5cblxuXG5cblxuXG5cblxuLy8gSW5jbHVkZXMgYWxsIG9mIHRoZSBkZW5zaXR5IHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAvLyBJbiBjYXNlIGEgdGhlbWUgb2JqZWN0IGhhcyBiZWVuIHBhc3NlZCBpbnN0ZWFkIG9mIGEgY29uZmlndXJhdGlvbiBmb3JcbiAgLy8gdGhlIGRlbnNpdHkgc3lzdGVtLCBleHRyYWN0IHRoZSBkZW5zaXR5IGNvbmZpZyBmcm9tIHRoZSB0aGVtZSBvYmplY3QuXG4gICRjb25maWc6IGlmKG1hdC1wcml2YXRlLWlzLXRoZW1lLW9iamVjdCgkY29uZmlnLW9yLXRoZW1lKSxcbiAgICAgIG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSksICRjb25maWctb3ItdGhlbWUpO1xuXG4gIEBpZiAkY29uZmlnID09IG51bGwge1xuICAgIEBlcnJvciAnTm8gZGVuc2l0eSBjb25maWd1cmF0aW9uIHNwZWNpZmllZC4nO1xuICB9XG5cbiAgLy8gVE9ETzogQ09NUC0zMDk6IERvIG5vdCB1c2UgaW5kaXZpZHVhbCBtaXhpbnMuIEluc3RlYWQsIHVzZSB0aGUgYWxsLXRoZW1lIG1peGluIGFuZCBvbmx5XG4gIC8vIHNwZWNpZnkgYSBgZGVuc2l0eWAgY29uZmlnIHdoaWxlIHNldHRpbmcgYGNvbG9yYCBhbmQgYHR5cG9ncmFwaHlgIHRvIGBudWxsYC4gVGhpcyBpcyBjdXJyZW50bHlcbiAgLy8gbm90IHBvc3NpYmxlIGFzIGl0IHdvdWxkIGludHJvZHVjZSBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgZm9yIGRlbnNpdHkgYmVjYXVzZSB0aGUgYG1hdC1jb3JlYFxuICAvLyBtaXhpbiB0aGF0IGlzIHRyYW5zaXRpdmVseSBsb2FkZWQgYnkgdGhlIGBhbGwtdGhlbWVgIGZpbGUsIGltcG9ydHMgYGFsbC1kZW5zaXR5YCB3aGljaFxuICAvLyB3b3VsZCB0aGVuIGxvYWQgYGFsbC10aGVtZWAgYWdhaW4uIFRoaXMgdWx0aW1hdGVseSByZXN1bHRzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeS5cblxuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLWRlbnNpdHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zdGVwcGVyLWRlbnNpdHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10b29sYmFyLWRlbnNpdHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10cmVlLWRlbnNpdHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItZGVuc2l0eSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZGVuc2l0eSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtZGVuc2l0eSgkY29uZmlnKTtcbn1cblxuXG5cbiIsIi8vIFdlIHdhbnQgb3ZlcmxheXMgdG8gYWx3YXlzIGFwcGVhciBvdmVyIHVzZXIgY29udGVudCwgc28gc2V0IGEgYmFzZWxpbmVcbi8vIHZlcnkgaGlnaCB6LWluZGV4IGZvciB0aGUgb3ZlcmxheSBjb250YWluZXIsIHdoaWNoIGlzIHdoZXJlIHdlIGNyZWF0ZSB0aGUgbmV3XG4vLyBzdGFja2luZyBjb250ZXh0IGZvciBhbGwgb3ZlcmxheXMuXG4kY2RrLXotaW5kZXgtb3ZlcmxheS1jb250YWluZXI6IDEwMDAgIWRlZmF1bHQ7XG4kY2RrLXotaW5kZXgtb3ZlcmxheTogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5LWJhY2tkcm9wOiAxMDAwICFkZWZhdWx0O1xuXG4vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBhbGwgb2YgdGhlIGJhY2tkcm9wc1xuJGNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AtYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMyKSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBiYWNrZHJvcCBhbmltYXRpb24gaXMgYmFzZWQgb24gdGhlIE1hdGVyaWFsIERlc2lnbiBzd2lmdC1lYXNlLW91dC5cbiRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb246IDQwMG1zICFkZWZhdWx0O1xuJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuXG5cbkBtaXhpbiBjZGstb3ZlcmxheSgpIHtcbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICAvLyBEaXNhYmxlIGV2ZW50cyBmcm9tIGJlaW5nIGNhcHR1cmVkIG9uIHRoZSBvdmVybGF5IGNvbnRhaW5lci5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIC8vIFRoZSBjb250YWluZXIgc2hvdWxkIGJlIHRoZSBzaXplIG9mIHRoZSB2aWV3cG9ydC5cbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBUaGUgb3ZlcmxheS1jb250YWluZXIgaXMgYW4gaW52aXNpYmxlIGVsZW1lbnQgd2hpY2ggY29udGFpbnMgYWxsIGluZGl2aWR1YWwgb3ZlcmxheXMuXG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheS1jb250YWluZXI7XG5cbiAgICAmOmVtcHR5IHtcbiAgICAgIC8vIEhpZGUgdGhlIGVsZW1lbnQgd2hlbiBpdCBkb2Vzbid0IGhhdmUgYW55IGNoaWxkIG5vZGVzLiBUaGlzIGRvZXNuJ3RcbiAgICAgIC8vIGluY2x1ZGUgb3ZlcmxheXMgdGhhdCBoYXZlIGJlZW4gZGV0YWNoZWQsIHJhdGhlciB0aGFuIGRpc3Bvc2VkLlxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSB1c2UgYW4gZXh0cmEgd3JhcHBlciBlbGVtZW50IGluIG9yZGVyIHRvIHVzZSBtYWtlIHRoZSBvdmVybGF5IGl0c2VsZiBhIGZsZXggaXRlbS5cbiAgLy8gVGhpcyBtYWtlcyBjZW50ZXJpbmcgdGhlIG92ZXJsYXkgZWFzeSB3aXRob3V0IHJ1bm5pbmcgaW50byB0aGUgc3VicGl4ZWwgcmVuZGVyaW5nXG4gIC8vIHByb2JsZW1zIHRpZWQgdG8gdXNpbmcgYHRyYW5zZm9ybWAgYW5kIHdpdGhvdXQgaW50ZXJmZXJpbmcgd2l0aCB0aGUgb3RoZXIgcG9zaXRpb25cbiAgLy8gc3RyYXRlZ2llcy5cbiAgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcbiAgfVxuXG4gIC8vIEEgc2luZ2xlIG92ZXJsYXkgcGFuZS5cbiAgLmNkay1vdmVybGF5LXBhbmUge1xuICAgIC8vIE5vdGU6IGl0J3MgaW1wb3J0YW50IGZvciB0aGlzIG9uZSB0byBzdGFydCBvZmYgYGFic29sdXRlYCxcbiAgICAvLyBpbiBvcmRlciBmb3IgdXMgdG8gYmUgYWJsZSB0byBtZWFzdXJlIGl0IGNvcnJlY3RseS5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcblxuICAgIC8vIEZvciBjb25uZWN0ZWQtcG9zaXRpb24gb3ZlcmxheXMsIHdlIHNldCBgZGlzcGxheTogZmxleGAgaW5cbiAgICAvLyBvcmRlciB0byBmb3JjZSBgbWF4LXdpZHRoYCBhbmQgYG1heC1oZWlnaHRgIHRvIHRha2UgZWZmZWN0LlxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktYmFja2Ryb3Age1xuICAgIC8vIFRPRE8oamVsYm91cm4pOiByZXVzZSBzaWRlbmF2IGZ1bGxzY3JlZW4gbWl4aW4uXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcblxuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWJhY2tkcm9wO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uICRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uO1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgLy8gTm90ZSB0aGF0IHdlIGNhbid0IGltcG9ydCBhbmQgdXNlIHRoZSBgaGlnaC1jb250cmFzdGAgbWl4aW4gZnJvbSBgX2ExMXkuc2Nzc2AsIGJlY2F1c2VcbiAgICAgIC8vIHRoaXMgZmlsZSB3aWxsIGJlIGNvcGllZCB0byB0aGUgdG9wLWxldmVsIGBjZGtgIHBhY2thZ2Ugd2hlbiBwdXR0aW5nIHRvZ2V0aGVyIHRoZSBmaWxlc1xuICAgICAgLy8gZm9yIG5wbS4gQW55IHJlbGF0aXZlIGltcG9ydCBwYXRocyB3ZSB1c2UgaGVyZSB3aWxsIGJlY29tZSBpbnZhbGlkIG9uY2UgdGhlIGZpbGUgaXMgY29waWVkLlxuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LWFjdGl2ZSAmIHtcbiAgICAgICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByZ2JhIGJhY2tncm91bmQgd2lsbCBiZWNvbWUgc29saWRcbiAgICAgICAgLy8gc28gd2UgbmVlZCB0byBmYWxsIGJhY2sgdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuXG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gICAgYmFja2dyb3VuZDogJGNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AtYmFja2dyb3VuZDtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCB7XG4gICAgLy8gTm90ZTogYXMgb2YgRmlyZWZveCA1NywgaGF2aW5nIHRoZSBiYWNrZHJvcCBiZSBgYmFja2dyb3VuZDogbm9uZWAgd2lsbCBwcmV2ZW50IGl0IGZyb21cbiAgICAvLyBjYXB0dXJpbmcgdGhlIHVzZXIncyBtb3VzZSBzY3JvbGwgZXZlbnRzLiBTaW5jZSB3ZSBhbHNvIGNhbid0IHVzZSBzb21ldGhpbmcgbGlrZVxuICAgIC8vIGByZ2JhKDAsIDAsIDAsIDApYCwgd2Ugd29yayBhcm91bmQgdGhlIGluY29uc2lzdGVuY3kgYnkgbm90IHNldHRpbmcgdGhlIGJhY2tncm91bmQgYXRcbiAgICAvLyBhbGwgYW5kIHVzaW5nIGBvcGFjaXR5YCB0byBtYWtlIHRoZSBlbGVtZW50IHRyYW5zcGFyZW50LlxuICAgICYsICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIE92ZXJsYXkgcGFyZW50IGVsZW1lbnQgdXNlZCB3aXRoIHRoZSBjb25uZWN0ZWQgcG9zaXRpb24gc3RyYXRlZ3kuIFVzZWQgdG8gY29uc3RyYWluIHRoZVxuICAvLyBvdmVybGF5IGVsZW1lbnQncyBzaXplIHRvIGZpdCB3aXRoaW4gdGhlIHZpZXdwb3J0LlxuICAuY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gV2UgdXNlIGBkaXNwbGF5OiBmbGV4YCBvbiB0aGlzIGVsZW1lbnQgZXhjbHVzaXZlbHkgZm9yIGNlbnRlcmluZyBjb25uZWN0ZWQgb3ZlcmxheXMuXG4gICAgLy8gV2hlbiAqbm90KiBjZW50ZXJpbmcsIGEgdG9wL2xlZnQvYm90dG9tL3JpZ2h0IHdpbGwgYmUgc2V0IHdoaWNoIG92ZXJyaWRlcyB0aGUgbm9ybWFsXG4gICAgLy8gZmxleCBsYXlvdXQuXG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC8vIFdlIHVzZSB0aGUgYGNvbHVtbmAgZGlyZWN0aW9uIGhlcmUgdG8gYXZvaWQgc29tZSBmbGV4Ym94IGlzc3VlcyBpbiBFZGdlXG4gICAgLy8gd2hlbiB1c2luZyB0aGUgXCJncm93IGFmdGVyIG9wZW5cIiBvcHRpb25zLlxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAvLyBBZGQgc29tZSBkaW1lbnNpb25zIHNvIHRoZSBlbGVtZW50IGhhcyBhbiBgaW5uZXJUZXh0YCB3aGljaCBzb21lIHBlb3BsZSBkZXBlbmQgb24gaW4gdGVzdHMuXG4gICAgbWluLXdpZHRoOiAxcHg7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICB9XG5cbiAgLy8gVXNlZCB3aGVuIGRpc2FibGluZyBnbG9iYWwgc2Nyb2xsaW5nLlxuICAuY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuXG4gICAgLy8gTmVjZXNzYXJ5IGZvciB0aGUgY29udGVudCBub3QgdG8gbG9zZSBpdHMgd2lkdGguIE5vdGUgdGhhdCB3ZSdyZSB1c2luZyAxMDAlLCBpbnN0ZWFkIG9mXG4gICAgLy8gMTAwdncsIGJlY2F1c2UgMTAwdncgaW5jbHVkZXMgdGhlIHdpZHRoIHBsdXMgdGhlIHNjcm9sbGJhciwgd2hlcmVhcyAxMDAlIGlzIHRoZSB3aWR0aFxuICAgIC8vIHRoYXQgdGhlIGVsZW1lbnQgaGFkIGJlZm9yZSB3ZSBtYWRlIGl0IGBmaXhlZGAuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAvLyBOb3RlOiB0aGlzIHdpbGwgYWx3YXlzIGFkZCBhIHNjcm9sbGJhciB0byB3aGF0ZXZlciBlbGVtZW50IGl0IGlzIG9uLCB3aGljaCBjYW5cbiAgICAvLyBwb3RlbnRpYWxseSByZXN1bHQgaW4gZG91YmxlIHNjcm9sbGJhcnMuIEl0IHNob3VsZG4ndCBiZSBhbiBpc3N1ZSwgYmVjYXVzZSB3ZSB3b24ndFxuICAgIC8vIGJsb2NrIHNjcm9sbGluZyBvbiBhIHBhZ2UgdGhhdCBkb2Vzbid0IGhhdmUgYSBzY3JvbGxiYXIgaW4gdGhlIGZpcnN0IHBsYWNlLlxuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgfVxufVxuIl19 */
