/**
 * Import Compass
 */
/* ==========================================================================
   Icon Library Mixin
   ========================================================================== */
/* ==========================================================================
   Shadows
   ========================================================================== */
/* ==========================================================================
   Buttons
   ========================================================================== */
/**
 * Core Button Component
 *
 * This is a core button component.  This only contains the relevant structural
 * styles necessary to render a button.  This class can be applied to buttons,
 * links, or input buttons.
 *
 * Example HTML:
 *
 * <button class="t-Button [modifiers]" type="submit">Button Label</button>
 * <a class="t-Button [modifiers]" href="#" role="button">Button Label</a>
 * <input class="t-Button [modifiers]" type="submit" value="Button Label">
 *
 */
/**
 * Button
 *
 * 1. Use proper box-model for button sizing across all browsers
 * 2. Reset webkit based browser appearance
 * 4. Inherit font from ancestor
 * 5. Normalize line-height
 * 6. Prevent text selection on buttons
 * 7. Prevent wrapping of text in buttons
 */
.t-Button {
  box-sizing: border-box;
  /* 1 */
  -webkit-appearance: none;
  /* 2 */
  background: transparent;
  background-clip: padding-box;
  border: .1rem solid;
  cursor: pointer;
  display: inline-block;
  font: inherit;
  /* 4 */
  line-height: normal;
  /* 5 */
  margin: 0;
  padding: .4rem 1.2rem;
  position: relative;
  text-align: center;
  text-decoration: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  /* 6 */
  vertical-align: middle;
  white-space: nowrap;
  /* 7 */ }
  .t-Button .t-Icon {
    vertical-align: top; }
    .apex-icons-fontawesome .t-Button .t-Icon {
      padding: .1rem 0; }

/**
 * Hover, Focus and Click States
 */
.t-Button:hover,
.t-Button:focus,
.t-Button:active {
  text-decoration: none; }

/**
 * Disabled States
 */
.t-Button.is-disabled, .t-Button[disabled],
.a-Button.is-disabled,
.a-Button[disabled] {
  opacity: .5;
  pointer-events: none;
  cursor: not-allowed; }

/**
 * Firefox padding / border issue
 */
.t-Button::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * Spacing between buttons
 */
.t-Button + .t-Button {
  margin-left: .4rem; }
  .u-RTL .t-Button + .t-Button {
    margin-right: .4rem;
    margin-left: 0px; }
  .t-Button + .t-Button.t-Button--pill, .t-Button + .t-Button.t-Button--pillEnd {
    margin-left: -.1rem !important; }
    .u-RTL .t-Button + .t-Button.t-Button--pill, .u-RTL .t-Button + .t-Button.t-Button--pillEnd {
      margin-right: -.1rem !important;
      margin-left: 0px !important; }
  .t-Button + .t-Button.t-Button--stretch {
    margin-left: 0 !important; }
    .u-RTL .t-Button + .t-Button.t-Button--stretch {
      margin-right: 0 !important; }

/**
 * Pill Buttons
 */
.t-Button--pill:not(.t-Button--pillStart):not(.t-Button--pillEnd) {
  border-radius: 0 !important;
  margin-right: -.1rem !important; }

.t-Button--pillStart {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  margin-right: 0 !important; }

.t-Button--pillEnd {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  margin-left: 0 !important; }

.t-Button--pillStart + .t-Button--pillEnd {
  margin-left: -.1rem !important; }

.t-Button--padLeft {
  margin-left: .4rem !important; }

.t-Button--padRight {
  margin-right: .4rem !important; }

.t-Button--gapLeft {
  margin-left: 1.2rem !important; }

.t-Button--gapRight {
  margin-right: 1.2rem !important; }

.t-Button--gapTop {
  margin-top: 1.2rem !important; }

.t-Button--gapBottom {
  margin-bottom: 1.2rem !important; }

.t-Button--padTop {
  margin-top: 0.8rem !important; }

.t-Button--padBottom {
  margin-bottom: 0.8rem !important; }

.t-Button-badge {
  padding: 0 .6rem;
  display: inline-block;
  margin-left: .4rem; }
  .t-Button-badge:empty {
    display: none; }

/**
 * Stretch Button
 */
.t-Button--stretch {
  width: 100%;
  display: block;
  margin-bottom: .8rem; }
  .t-Button--stretch:last-child {
    margin-bottom: 0; }

/**
 * Buttons with Icons or Icon and Text
 */
.t-Button--icon {
  line-height: 1.6rem;
  text-align: center;
  min-width: 4.0rem; }
  .t-Button--icon.t-Button--slim {
    padding-right: .8rem;
    padding-left: .8rem;
    min-width: 3.2rem; }

/**
 * Buttons with Icons or Icon and Text
 */
.t-Button--iconLeft .t-Icon {
  margin-right: .4rem; }
  .u-RTL .t-Button--iconLeft .t-Icon {
    margin-right: 0px;
    margin-left: .4rem; }

.t-Button--iconLeft .t-Icon.t-Icon--right {
  display: none; }

.t-Button--iconRight .t-Icon {
  margin-left: .4rem; }
  .u-RTL .t-Button--iconRight .t-Icon {
    margin-left: 0px;
    margin-right: .4rem; }

.t-Button--iconRight .t-Icon.t-Icon--left {
  display: none; }

.t-Button {
  font-size: 1.2rem;
  line-height: 1.6rem;
  padding: .8rem 1.2rem;
  font-weight: 400; }

.t-Button--hot {
  font-weight: bold; }

/**
 * Button Label
 */
/**
 * Tiny Button
 */
.t-Button--tiny {
  font-size: 1.0rem;
  line-height: 1.2rem;
  padding: 0.4rem 0.6rem; }
  .t-Button--tiny .t-Icon {
    font-size: 1.2rem;
    line-height: 1; }

/**
 * Small Button
 */
.t-Button--small {
  font-size: 1.1rem;
  line-height: 1.6rem;
  padding: .4rem .8rem; }
  .t-Button--small .t-Icon {
    font-size: 1.2rem;
    line-height: inherit; }

.t-Button--tiny,
.t-Button--small {
  min-width: 0; }

/**
 * Hide Show Icon
 */
.t-Button--hideShow {
  font-size: 1.1rem;
  line-height: 1.4rem;
  padding: .4rem;
  min-width: 2.4rem; }
  .t-Button--hideShow.t-Button {
    border-radius: 2.4rem; }

/**
 * Large Button
 */
.t-Button--large {
  padding: 1.2rem 1.6rem;
  line-height: 1.6rem;
  font-size: 1.4rem; }
  .t-Button--large.t-Button--withIcon {
    line-height: 1.6rem;
    padding: 1.2rem 1.4rem; }

/**
 * Nav Control Button
 */
.t-Button.t-Button--header {
  padding: 0.8rem;
  vertical-align: top;
  box-shadow: none;
  text-align: center; }
  .t-Button.t-Button--header + .t-Button.t-Button--header {
    margin: 0; }
  .t-Button.t-Button--header.t-Button--headerRight {
    border-radius: 0; }
  .u-RTL .t-Button.t-Button--header.t-Button--headerRight {
    right: 0px; }
  .apex-icons-fontawesome .t-Button.t-Button--header .t-Icon.fa {
    font-size: 1.4rem; }

.t-Button--navBar {
  min-width: 40px; }
  .t-Button--navBar .t-Button-badge {
    margin-left: 4px;
    font-size: 11px; }
  .t-Button--navBar .t-Icon {
    line-height: 16px; }
    .t-Button--navBar .t-Icon.fa, .t-Button--navBar .t-Icon.a-Icon {
      margin-right: 4px; }
      .u-RTL .t-Button--navBar .t-Icon.fa, .u-RTL .t-Button--navBar .t-Icon.a-Icon {
        margin-right: 0px;
        margin-left: 4px; }

.t-Button--headerUser {
  text-transform: lowercase;
  cursor: default; }

/******************************************************************************
Button in Region Header
******************************************************************************/
.t-Region-headerItems--buttons .t-Button + .js-maximizeButtonContainer {
  margin-left: 1.1rem; }

.js-maximizeButtonContainer .t-Button {
  margin-right: 0.4rem; }

.t-Region-headerItems--buttons .t-Button--icon + .t-Button--icon {
  margin-left: 0; }

.t-Region--hideShow .t-Region-headerItems--buttons .t-Button:last-child {
  margin-right: 1.1rem; }

.t-Button--noUI:not(.t-Button--simple),
.t-Button--noUI:not(.t-Button--simple):hover,
.t-Button--noUI:not(.t-Button--simple):active {
  text-shadow: none;
  background-color: transparent;
  box-shadow: none; }

/* Radio Button Pills
   ========================================================================== */
.apex-button-group label,
.t-Form-fieldContainer--radioButtonGroup .apex-item-radio label {
  min-width: 48px; }

.apex-button-group table.radio_group td + td,
.t-Form-fieldContainer--radioButtonGroup .apex-item-radio table.radio_group td + td {
  margin-left: -1px; }

.apex-button-group table.radio_group tr td,
.t-Form-fieldContainer--radioButtonGroup .apex-item-radio table.radio_group tr td {
  padding: 0; }

.apex-button-group table.radio_group input + label,
.t-Form-fieldContainer--radioButtonGroup .apex-item-radio table.radio_group input + label {
  padding: 4px 8px;
  width: 100%;
  text-align: center; }
  .apex-button-group table.radio_group input + label:before, .apex-button-group table.radio_group input + label:after,
  .t-Form-fieldContainer--radioButtonGroup .apex-item-radio table.radio_group input + label:before,
  .t-Form-fieldContainer--radioButtonGroup .apex-item-radio table.radio_group input + label:after {
    display: none; }

.apex-button-group table.radio_group td label,
.t-Form-fieldContainer--radioButtonGroup .apex-item-radio table.radio_group td label {
  border-radius: 2px;
  margin: 0;
  display: block; }

.apex-button-group table.radio_group td:first-child label,
.t-Form-fieldContainer--radioButtonGroup .apex-item-radio table.radio_group td:first-child label {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0; }

.apex-button-group table.radio_group td:last-child label,
.t-Form-fieldContainer--radioButtonGroup .apex-item-radio table.radio_group td:last-child label {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0; }

.apex-button-group table.radio_group td:not(:last-child):not(:first-child) label,
.t-Form-fieldContainer--radioButtonGroup .apex-item-radio table.radio_group td:not(:last-child):not(:first-child) label {
  border-radius: 0; }

.apex-button-group input + label .t-Icon,
.t-Form-fieldContainer--radioButtonGroup .apex-item-radio input + label .t-Icon {
  vertical-align: top; }

@media only screen and (max-width: 640px) {
  .t-Button--navBar .t-Button-badge {
    position: absolute;
    margin-left: 0;
    top: 4px;
    right: 4px;
    font-size: 10px;
    line-height: 1.4rem;
    padding: 0 0.4rem; }
  .t-Button--navBar .t-Button-label {
    display: none; }
  .t-Button--navBar .a-Icon.icon-down-arrow {
    margin-right: -4px; } }

@media screen and (-ms-high-contrast: active) {
  .t-Button,
  .a-Button {
    border: 1px solid; } }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJ1dHRvbi5zY3NzIiwiLi4vbW9kdWxlcy9fY29tbW9uLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUM0T0g7O2dGQUVnRjtBQWNoRjs7Z0ZBRWdGO0FEM1BoRjs7Z0ZBRWdGO0FBRWhGOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSDs7Ozs7Ozs7O0dBU0c7QUFFSDtFQUNFLHVCQUF1QjtFQUFFLE9BQU87RUFDaEMseUJBQXlCO0VBQUUsT0FBTztFQUNsQyx3QkFBd0I7RUFDeEIsNkJBQTZCO0VBQzdCLG9CQUFvQjtFQUNwQixnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLGNBQWM7RUFBRSxPQUFPO0VBQ3ZCLG9CQUFvQjtFQUFFLE9BQU87RUFDN0IsVUFBVTtFQUNWLHNCQUFzQjtFQUN0QixtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUN0QiwwQkFBa0I7S0FBbEIsdUJBQWtCO01BQWxCLHNCQUFrQjtVQUFsQixrQkFBa0I7RUFBRSxPQUFPO0VBQzNCLHVCQUF1QjtFQUN2QixvQkFBb0I7RUFBRSxPQUFPLEVBUTlCO0VBekJEO0lBb0JJLG9CQUFvQixFQUlyQjtJQ3dMQztNRDFMRSxpQkFBaUIsRUM0TGxCOztBRHZMTDs7R0FFRztBQUVIOzs7RUFHRSxzQkFBc0IsRUFDdkI7O0FBRUQ7O0dBRUc7QUFFSDs7O0VBSUksWUFBWTtFQUNaLHFCQUFxQjtFQUNyQixvQkFBb0IsRUFDckI7O0FBR0g7O0dBRUc7QUFFSDtFQUNFLFVBQVU7RUFDVixXQUFXLEVBQ1o7O0FBRUQ7O0dBRUc7QUFDRjtFQUNDLG1CQUFtQixFQW1CcEI7RUFsQkM7SUFDRSxvQkFBb0I7SUFDcEIsaUJBQWlCLEVBQ2xCO0VBTEY7SUFRQywrQkFBK0IsRUFLOUI7SUFKQztNQUNFLGdDQUFpQztNQUNqQyw0QkFBNEIsRUFDN0I7RUFaSjtJQWVHLDBCQUEwQixFQUkzQjtJQUhDO01BQ0UsMkJBQTJCLEVBQzVCOztBQUlMOztHQUVHO0FBQ0g7RUFDRSw0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O0VBR0ksZ0JBQWdCLEVBQ2pCOztBQUpIOztFQU9NLGtCQUFrQixFQUNuQjs7QUFSTDs7RUFTWSxXQUFXLEVBQUk7O0FBVDNCOztFQVdNLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osbUJBQW1CLEVBS3BCO0VBbEJMOzs7SUFnQlEsY0FBYyxFQUNmOztBQWpCUDs7RUFxQkksbUJBQW1CO0VBQ25CLFVBQVU7RUFDVixlQUFlLEVBQ2hCOztBQXhCSDs7RUEwQkksMkJBQTJCO0VBQzNCLDhCQUE4QixFQUMvQjs7QUE1Qkg7O0VBOEJJLDBCQUEwQjtFQUMxQiw2QkFBNkIsRUFDOUI7O0FBaENIOztFQWtDSSxpQkFBaUIsRUFDbEI7O0FBbkNIOztFQXFDSSxvQkFBb0IsRUFDckI7O0FDaGFDO0VEd1NKO0lBc0JNLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsU0FBUztJQUNULFdBQVc7SUFDWCxnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLGtCQUFrQixFQUVuQjtFQTlCTDtJQWdDTSxjQUFjLEVBQ2Y7RUFqQ0w7SUFtQ00sbUJBQW1CLEVBQ3BCLEVBQUE7O0FBcUNMO0VBQ0U7O0lBRUUsa0JBQWtCLEVBQ25CLEVBQUEiLCJmaWxlIjoiQnV0dG9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW1wb3J0IENvbXBhc3NcbiAqL1xuQGltcG9ydCBcIi4uL21vZHVsZXMvY29tbW9uXCI7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCdXR0b25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcmUgQnV0dG9uIENvbXBvbmVudFxuICpcbiAqIFRoaXMgaXMgYSBjb3JlIGJ1dHRvbiBjb21wb25lbnQuICBUaGlzIG9ubHkgY29udGFpbnMgdGhlIHJlbGV2YW50IHN0cnVjdHVyYWxcbiAqIHN0eWxlcyBuZWNlc3NhcnkgdG8gcmVuZGVyIGEgYnV0dG9uLiAgVGhpcyBjbGFzcyBjYW4gYmUgYXBwbGllZCB0byBidXR0b25zLFxuICogbGlua3MsIG9yIGlucHV0IGJ1dHRvbnMuXG4gKlxuICogRXhhbXBsZSBIVE1MOlxuICpcbiAqIDxidXR0b24gY2xhc3M9XCJ0LUJ1dHRvbiBbbW9kaWZpZXJzXVwiIHR5cGU9XCJzdWJtaXRcIj5CdXR0b24gTGFiZWw8L2J1dHRvbj5cbiAqIDxhIGNsYXNzPVwidC1CdXR0b24gW21vZGlmaWVyc11cIiBocmVmPVwiI1wiIHJvbGU9XCJidXR0b25cIj5CdXR0b24gTGFiZWw8L2E+XG4gKiA8aW5wdXQgY2xhc3M9XCJ0LUJ1dHRvbiBbbW9kaWZpZXJzXVwiIHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIkJ1dHRvbiBMYWJlbFwiPlxuICpcbiAqL1xuXG4vKipcbiAqIEJ1dHRvblxuICpcbiAqIDEuIFVzZSBwcm9wZXIgYm94LW1vZGVsIGZvciBidXR0b24gc2l6aW5nIGFjcm9zcyBhbGwgYnJvd3NlcnNcbiAqIDIuIFJlc2V0IHdlYmtpdCBiYXNlZCBicm93c2VyIGFwcGVhcmFuY2VcbiAqIDQuIEluaGVyaXQgZm9udCBmcm9tIGFuY2VzdG9yXG4gKiA1LiBOb3JtYWxpemUgbGluZS1oZWlnaHRcbiAqIDYuIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gb24gYnV0dG9uc1xuICogNy4gUHJldmVudCB3cmFwcGluZyBvZiB0ZXh0IGluIGJ1dHRvbnNcbiAqL1xuXG4udC1CdXR0b24ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLyogMiAqL1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyOiAuMXJlbSBzb2xpZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDQgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogNSAqL1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IC40cmVtIDEuMnJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IC8qIDYgKi9cbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogNyAqL1xuXG4gIC50LUljb24ge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgQGluY2x1ZGUgaWNvbi1saWIoYXdlc29tZSkge1xuICAgICAgcGFkZGluZzogLjFyZW0gMDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBIb3ZlciwgRm9jdXMgYW5kIENsaWNrIFN0YXRlc1xuICovXG5cbi50LUJ1dHRvbjpob3Zlcixcbi50LUJ1dHRvbjpmb2N1cyxcbi50LUJ1dHRvbjphY3RpdmUge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qKlxuICogRGlzYWJsZWQgU3RhdGVzXG4gKi9cblxuLnQtQnV0dG9uLFxuLmEtQnV0dG9uICB7XG4gICYuaXMtZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAuNTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG59XG5cbi8qKlxuICogRmlyZWZveCBwYWRkaW5nIC8gYm9yZGVyIGlzc3VlXG4gKi9cblxuLnQtQnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFNwYWNpbmcgYmV0d2VlbiBidXR0b25zXG4gKi9cbiAudC1CdXR0b24gKyAudC1CdXR0b24ge1xuICBtYXJnaW4tbGVmdDogLjRyZW07XG4gIC51LVJUTCAmIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC40cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gIH1cbiAgJi50LUJ1dHRvbi0tcGlsbCxcbiAgJi50LUJ1dHRvbi0tcGlsbEVuZCB7XG4gIG1hcmdpbi1sZWZ0OiAtLjFyZW0gIWltcG9ydGFudDtcbiAgICAudS1SVEwgJiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICAtLjFyZW0gIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgJi50LUJ1dHRvbi0tc3RyZXRjaCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAudS1SVEwgJiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBQaWxsIEJ1dHRvbnNcbiAqL1xuLnQtQnV0dG9uLS1waWxsOm5vdCgudC1CdXR0b24tLXBpbGxTdGFydCk6bm90KC50LUJ1dHRvbi0tcGlsbEVuZCkge1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogLS4xcmVtICFpbXBvcnRhbnQ7XG59XG4udC1CdXR0b24tLXBpbGxTdGFydCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLnQtQnV0dG9uLS1waWxsRW5kIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG4udC1CdXR0b24tLXBpbGxTdGFydCArIC50LUJ1dHRvbi0tcGlsbEVuZCB7XG4gIG1hcmdpbi1sZWZ0OiAtLjFyZW0gIWltcG9ydGFudDtcbn1cblxuLy8gRXh0cmEgbWFyZ2luXG4udC1CdXR0b24tLXBhZExlZnQge1xuICBtYXJnaW4tbGVmdDogLjRyZW0gIWltcG9ydGFudDtcbn1cbi50LUJ1dHRvbi0tcGFkUmlnaHQge1xuICBtYXJnaW4tcmlnaHQ6IC40cmVtICFpbXBvcnRhbnQ7XG59XG5cbi50LUJ1dHRvbi0tZ2FwTGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjJyZW0gIWltcG9ydGFudDtcbn1cbi50LUJ1dHRvbi0tZ2FwUmlnaHQge1xuICBtYXJnaW4tcmlnaHQ6IDEuMnJlbSAhaW1wb3J0YW50O1xufVxuXG4udC1CdXR0b24tLWdhcFRvcCB7XG4gIG1hcmdpbi10b3A6IDEuMnJlbSAhaW1wb3J0YW50O1xufVxuLnQtQnV0dG9uLS1nYXBCb3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiAxLjJyZW0gIWltcG9ydGFudDtcbn1cblxuLnQtQnV0dG9uLS1wYWRUb3Age1xuICBtYXJnaW4tdG9wOiAwLjhyZW0gIWltcG9ydGFudDtcbn1cbi50LUJ1dHRvbi0tcGFkQm90dG9tIHtcbiAgbWFyZ2luLWJvdHRvbTogMC44cmVtICFpbXBvcnRhbnQ7XG59XG5cbi50LUJ1dHRvbi1iYWRnZSB7XG4gIHBhZGRpbmc6IDAgLjZyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IC40cmVtO1xuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8qKlxuICogU3RyZXRjaCBCdXR0b25cbiAqL1xuLnQtQnV0dG9uLS1zdHJldGNoIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAuOHJlbTtcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8qKlxuICogQnV0dG9ucyB3aXRoIEljb25zIG9yIEljb24gYW5kIFRleHRcbiAqL1xuLnQtQnV0dG9uLS1pY29uIHtcbiAgbGluZS1oZWlnaHQ6IDEuNnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtaW4td2lkdGg6IDQuMHJlbTtcbiAgJi50LUJ1dHRvbi0tc2xpbSB7XG4gICAgcGFkZGluZy1yaWdodDogLjhyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAuOHJlbTtcbiAgICBtaW4td2lkdGg6IDMuMnJlbTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1dHRvbnMgd2l0aCBJY29ucyBvciBJY29uIGFuZCBUZXh0XG4gKi9cbi50LUJ1dHRvbi0taWNvbkxlZnQge1xuICAudC1JY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC40cmVtO1xuICAgIC51LVJUTCAmIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IC40cmVtO1xuICAgIH1cbiAgfVxuICAudC1JY29uLnQtSWNvbi0tcmlnaHQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnQtQnV0dG9uLS1pY29uUmlnaHQge1xuICAudC1JY29uIHtcbiAgICBtYXJnaW4tbGVmdDogLjRyZW07XG4gICAgLnUtUlRMICYge1xuICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogLjRyZW07XG4gICAgfVxuICB9XG4gIC50LUljb24udC1JY29uLS1sZWZ0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi50LUJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBsaW5lLWhlaWdodDogMS42cmVtO1xuICBwYWRkaW5nOiAuOHJlbSAxLjJyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4udC1CdXR0b24tLWhvdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEJ1dHRvbiBMYWJlbFxuICovXG4udC1CdXR0b24tbGFiZWwge31cblxuLyoqXG4gKiBUaW55IEJ1dHRvblxuICovXG4udC1CdXR0b24tLXRpbnkge1xuICBmb250LXNpemU6IDEuMHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMnJlbTtcbiAgcGFkZGluZzogMC40cmVtIDAuNnJlbTtcbiAgLnQtSWNvbiB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cbn1cblxuLyoqXG4gKiBTbWFsbCBCdXR0b25cbiAqL1xuLnQtQnV0dG9uLS1zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBsaW5lLWhlaWdodDogMS42cmVtO1xuICBwYWRkaW5nOiAuNHJlbSAuOHJlbTtcbiAgLnQtSWNvbiB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cbn1cblxuLnQtQnV0dG9uLS10aW55LFxuLnQtQnV0dG9uLS1zbWFsbCB7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLyoqXG4gKiBIaWRlIFNob3cgSWNvblxuICovXG4udC1CdXR0b24tLWhpZGVTaG93IHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjRyZW07XG4gIHBhZGRpbmc6IC40cmVtO1xuICAmLnQtQnV0dG9uIHtib3JkZXItcmFkaXVzOiAyLjRyZW07fVxuICBtaW4td2lkdGg6IDIuNHJlbTtcbn1cblxuLyoqXG4gKiBMYXJnZSBCdXR0b25cbiAqL1xuLnQtQnV0dG9uLS1sYXJnZSB7XG4gIHBhZGRpbmc6IDEuMnJlbSAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjZyZW07XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICAmLnQtQnV0dG9uLS13aXRoSWNvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNnJlbTtcbiAgICBwYWRkaW5nOiAxLjJyZW0gMS40cmVtO1xuICB9XG59XG4vKipcbiAqIE5hdiBDb250cm9sIEJ1dHRvblxuICovXG4udC1CdXR0b24udC1CdXR0b24tLWhlYWRlciB7XG4gICYgKyAudC1CdXR0b24udC1CdXR0b24tLWhlYWRlciB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIHBhZGRpbmc6IDAuOHJlbTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAmLnQtQnV0dG9uLS1oZWFkZXJSaWdodCB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuICAmLnQtQnV0dG9uLS1oZWFkZXJSaWdodCB7XG4gICAgICAudS1SVEwgJiB7XG4gICAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgIH1cbiAgfVxuICBAaW5jbHVkZSBpY29uLWxpYihhd2Vzb21lKSB7XG4gICAgLnQtSWNvbi5mYSB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICB9XG4gIH1cbn1cbi50LUJ1dHRvbi0tbmF2QmFyIHtcbiAgbWluLXdpZHRoOiA0MHB4O1xuICAudC1CdXR0b24tYmFkZ2Uge1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICB9XG4gIC50LUJ1dHRvbi1sYWJlbCB7XG4gIH1cbiAgLnQtSWNvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgJi5mYSxcbiAgICAmLmEtSWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgIC51LVJUTCAmIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10byh4c3Mtc2NyZWVucykge1xuICAgIC50LUJ1dHRvbi1iYWRnZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIHRvcDogNHB4O1xuICAgICAgcmlnaHQ6IDRweDtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XG4gICAgICBwYWRkaW5nOiAwIDAuNHJlbTtcblxuICAgIH1cbiAgICAudC1CdXR0b24tbGFiZWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmEtSWNvbi5pY29uLWRvd24tYXJyb3cge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xuICAgIH1cbiAgfVxufVxuLnQtQnV0dG9uLS1oZWFkZXJVc2VyIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5CdXR0b24gaW4gUmVnaW9uIEhlYWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnQtUmVnaW9uLWhlYWRlckl0ZW1zLS1idXR0b25zIC50LUJ1dHRvbiArIC5qcy1tYXhpbWl6ZUJ1dHRvbkNvbnRhaW5lciB7XG4gIG1hcmdpbi1sZWZ0OiAxLjFyZW07XG59XG4uanMtbWF4aW1pemVCdXR0b25Db250YWluZXIge1xuICAudC1CdXR0b24ge1xuICAgIG1hcmdpbi1yaWdodDogMC40cmVtO1xuICB9XG59XG4udC1SZWdpb24taGVhZGVySXRlbXMtLWJ1dHRvbnMge1xuICAudC1CdXR0b24tLWljb24gKyAudC1CdXR0b24tLWljb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG4udC1SZWdpb24tLWhpZGVTaG93IC50LVJlZ2lvbi1oZWFkZXJJdGVtcy0tYnV0dG9ucyAudC1CdXR0b246bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMS4xcmVtO1xufVxuXG5cbi50LUJ1dHRvbi0tbm9VSTpub3QoLnQtQnV0dG9uLS1zaW1wbGUpLFxuLnQtQnV0dG9uLS1ub1VJOm5vdCgudC1CdXR0b24tLXNpbXBsZSk6aG92ZXIsXG4udC1CdXR0b24tLW5vVUk6bm90KC50LUJ1dHRvbi0tc2ltcGxlKTphY3RpdmUge1xuICB0ZXh0LXNoYWRvdzogbm9uZTsgIFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLnQtQnV0dG9uLFxuICAuYS1CdXR0b24ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICB9XG59XG5cbi8qIFJhZGlvIEJ1dHRvbiBQaWxsc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hcGV4LWJ1dHRvbi1ncm91cCxcbi50LUZvcm0tZmllbGRDb250YWluZXItLXJhZGlvQnV0dG9uR3JvdXAgLmFwZXgtaXRlbS1yYWRpbyB7XG4gIGxhYmVsIHtcbiAgICBtaW4td2lkdGg6IDQ4cHg7XG4gIH1cbiAgdGFibGUucmFkaW9fZ3JvdXAge1xuICAgIHRkICsgdGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgfVxuICAgIHRyIHRkIHsgcGFkZGluZzogMDsgfVxuICAgIGlucHV0ICsgbGFiZWwge1xuICAgICAgcGFkZGluZzogNHB4IDhweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgJjpiZWZvcmUsXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdGFibGUucmFkaW9fZ3JvdXAgdGQgbGFiZWwge1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgdGFibGUucmFkaW9fZ3JvdXAgdGQ6Zmlyc3QtY2hpbGQgbGFiZWwge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICB9XG4gIHRhYmxlLnJhZGlvX2dyb3VwIHRkOmxhc3QtY2hpbGQgbGFiZWx7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG4gIHRhYmxlLnJhZGlvX2dyb3VwIHRkOm5vdCg6bGFzdC1jaGlsZCk6bm90KDpmaXJzdC1jaGlsZCkgbGFiZWx7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuICBpbnB1dCArIGxhYmVsIC50LUljb24ge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cbn0iLCJAaW1wb3J0ICdzY3NzX2Z1bmN0aW9ucyc7XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIC8vICp6b29tOiAxO1xufVxuXG5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gTWVkaWEgUXVlcmllc1xuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vL1NUQVJUX1RIRU1FUk9MTEVSX0lHTk9SRVxuJGRpc3BsYXkteHhzOiA0ODBweDtcbiRkaXNwbGF5LXhzczogNjQwcHg7XG4kZGlzcGxheS14czogNzY4cHg7XG4kZGlzcGxheS1zbWFsbDogOTkycHg7XG4kZGlzcGxheS1tZWRpdW06IDEyMDBweDtcbiRkaXNwbGF5LWxhcmdlOiAxOTIwcHg7XG5cbkBtaXhpbiByZXNwb25kLXRvKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHh4cy1zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRkaXNwbGF5LXh4cykgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0geHNzLXNjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGRpc3BsYXkteHNzKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSB4cy1zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRkaXNwbGF5LXhzKSB7IEBjb250ZW50OyB9XG4gIH1cblxuICBAaWYgJG1lZGlhID09IHhzLXRvLXhzcy1zY3JlZW5zIHtcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkZGlzcGxheS14c3MgKyAxKSBhbmQgKG1heC13aWR0aDogJGRpc3BsYXkteHMgLSAxKSB7IEBjb250ZW50OyB9XG4gIH1cblxuICBAaWYgJG1lZGlhID09IHNtYWxsLXNjcmVlbnMtaW4ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGRpc3BsYXktc21hbGwpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IG1lZGl1bS1zY3JlZW5zLWluIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRkaXNwbGF5LW1lZGl1bSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGFyZ2Utc2NyZWVucy1pbiB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkZGlzcGxheS1sYXJnZSkgeyBAY29udGVudDsgfVxuICB9XG5cblxuICBAaWYgJG1lZGlhID09IHhzcy1zbWFsbC1zY3JlZW5zLW91dCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkZGlzcGxheS14c3MgKyAxKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSB4cy1zbWFsbC1zY3JlZW5zLW91dCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkZGlzcGxheS14cyArIDEpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IHNtYWxsLXNjcmVlbnMtb3V0IHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRkaXNwbGF5LXNtYWxsICsgMSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbWVkaXVtLXNjcmVlbnMtb3V0IHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRkaXNwbGF5LW1lZGl1bSArIDEpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxhcmdlLXNjcmVlbnMtb3V0IHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRkaXNwbGF5LWxhcmdlICsgMSkgeyBAY29udGVudDsgfVxuICB9XG5cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtYWxsLXNjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGRpc3BsYXkteHMgKyAxKSBhbmQgKG1heC13aWR0aDogJGRpc3BsYXktc21hbGwgLSAxKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1lZGl1bS1zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRkaXNwbGF5LXNtYWxsICsgMSkgYW5kIChtYXgtd2lkdGg6ICRkaXNwbGF5LW1lZGl1bSAtIDEpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbGFyZ2Utc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkZGlzcGxheS1tZWRpdW0gKyAxKSBhbmQgKG1heC13aWR0aDogJGRpc3BsYXktbGFyZ2UgLSAxKSB7IEBjb250ZW50OyB9XG4gIH1cblxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbGFyZ2VzdC1zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRkaXNwbGF5LWxhcmdlKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cbi8vRU5EX1RIRU1FUk9MTEVSX0lHTk9SRVxuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIEZvbnQgQXdlc29tZSBFbWJlZGRpbmdcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5AbWl4aW4gYXBleDVpY29uIHtcbiAgZm9udC1mYW1pbHk6IFwiYXBleC01LWljb24tZm9udFwiICFpbXBvcnRhbnQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cblxuQG1peGluIGFwZXg1aWNvbi1iYXNpYyB7XG4gIGZvbnQtZmFtaWx5OiBcImFwZXgtNS1pY29uLWZvbnRcIiAhaW1wb3J0YW50O1xuICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5AbWl4aW4gdmlzdWFsbHlIaWRkZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbn1cblxuQG1peGluIHZlcnRpY2FsLWFsaWduICB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuQG1peGluIGZvY3VzYWJsZVZpc3VhbGx5SGlkZGVuIHtcbiAgQGluY2x1ZGUgdmlzdWFsbHlIaWRkZW47XG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBjbGlwOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNsYXRlM2QtbGVzcygkeCwgJHk6IDAsICR6OiAwKSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06ICAgICAgIHRyYW5zbGF0ZTNkKCR4LCAkeSwgJHopO1xuICAgIC1tcy10cmFuc2Zvcm06IFx0XHQgdHJhbnNsYXRlKCR4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR4LCAkeSwgJHopO1xufVxuXG5AbWl4aW4gYXBleC1kaXJlY3Rpb24tbGVmdCgkdmFsKSB7XG4gIGxlZnQ6ICR2YWw7XG4gIC51LVJUTCAmIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAkdmFsO1xuICB9XG59XG5cbkBtaXhpbiBhcGV4LWRpcmVjdGlvbi1tYXJnaW4tbGVmdCgkdmFsKSB7XG4gIG1hcmdpbi1sZWZ0OiAkdmFsO1xuICAudS1SVEwgJiB7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6ICR2YWw7XG4gIH1cbn1cblxuQG1peGluIGFwZXgtZGlyZWN0aW9uLXBhZGRpbmctbGVmdCgkdmFsKSB7XG4gIHBhZGRpbmctbGVmdDogJHZhbDtcbiAgLnUtUlRMICYge1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6ICR2YWw7XG4gIH1cbn1cblxuQG1peGluIGFwZXgtZGlyZWN0aW9uLXJpZ2h0KCR2YWwpIHtcbiAgcmlnaHQ6ICR2YWw7XG4gIC51LVJUTCAmIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAkdmFsO1xuICB9XG59XG5cbkBtaXhpbiBhcGV4LWRpcmVjdGlvbi1tYXJnaW4tcmlnaHQoJHZhbCkge1xuICBtYXJnaW4tcmlnaHQ6ICR2YWw7XG4gIC51LVJUTCAmIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgICBtYXJnaW4tbGVmdDogJHZhbDtcbiAgfVxufVxuXG5AbWl4aW4gYXBleC1kaXJlY3Rpb24tcGFkZGluZy1yaWdodCgkdmFsKSB7XG4gIHBhZGRpbmctcmlnaHQ6ICR2YWw7XG4gIC51LVJUTCAmIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAkdmFsO1xuICB9XG59XG5cbkBtaXhpbiBhcGV4LWRpcmVjdGlvbi1mbG9hdC1lbmQge1xuICBmbG9hdDogcmlnaHQ7XG4gIC51LVJUTCAmIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufVxuXG5AbWl4aW4gYXBleC1kaXJlY3Rpb24tZmxvYXQtc3RhcnQge1xuICBmbG9hdDogbGVmdDtcbiAgLnUtUlRMICYge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxufVxuXG5cblxuQG1peGluIGFwZXgtZGlyZWN0aW9uLXRyYW5zbGF0ZSgkdmFsKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QtbGVzcygkdmFsLCAwLCAwKTtcbiAgICAudS1SVEwgJiB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkLWxlc3MoLSR2YWwsIDAsMCApO1xuICAgIH1cbn1cblxuQG1peGluIHRleHQtYWxpZ24tbGVmdC1kaXJlY3Rpb24oKSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIC51LVJUTCAmIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxufVxuXG5cbkBtaXhpbiB0ZXh0LWFsaWduLXJpZ2h0LWRpcmVjdGlvbigpIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIC51LVJUTCAmIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBJY29uIExpYnJhcnkgTWl4aW5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWl4aW4gaWNvbi1saWIoJGxpYnJhcnkpIHtcbiAgQGlmICRsaWJyYXJ5ID09IGF3ZXNvbWUge1xuICAgIC5hcGV4LWljb25zLWZvbnRhd2Vzb21lICYge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IFxuICBAZWxzZSBpZiAkbGlicmFyeSA9PSBhcGV4IHtcbiAgICAuYXBleC1pY29ucy1mb250YXBleCAmIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU2hhZG93c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtaXhpbiB1dC1ibG9jay1zaGFkb3coKSB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xufSJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
