@gravitee/ui-components 3.24.5 → 3.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -251,6 +251,7 @@ export class GvFlowStep extends withResizeObserver(LitElement) {
|
|
|
251
251
|
} else if (!this.empty) {
|
|
252
252
|
const name = this.step ? this.step.name : '';
|
|
253
253
|
const description = this.step && this.step.description ? this.step.description : '';
|
|
254
|
+
const hasConditionalSteps = this.step && !!this.step.condition;
|
|
254
255
|
const icon = this.step ? this.policy && this.policy.icon : null;
|
|
255
256
|
const enabled = this.step && this.step.enabled !== false;
|
|
256
257
|
const notFound = this.policy == null;
|
|
@@ -268,7 +269,7 @@ export class GvFlowStep extends withResizeObserver(LitElement) {
|
|
|
268
269
|
disabled: !enabled,
|
|
269
270
|
'not-found': notFound
|
|
270
271
|
};
|
|
271
|
-
return html`<div class="${classMap(classes)}" @click="${this._onClick}" @mouseenter="${this._onMouseEnter}" @mouseleave="${this._onMouseLeave}"> ${this._renderDropdownMenu()} <div class="content"> ${icon ? html`<gv-image src="${icon}"></gv-image>` : html``} ${icon == null && notFound ? html`<gv-icon class="not-found__icon" shape="finance:folder-error"></gv-icon>` : ''} <div> <div class="name">${name}</div> <div class="description">${description}</div> </div> </div> </div> `;
|
|
272
|
+
return html`<div class="${classMap(classes)}" @click="${this._onClick}" @mouseenter="${this._onMouseEnter}" @mouseleave="${this._onMouseLeave}"> ${this._renderDropdownMenu()} <div class="content"> <div class="content-icon"> ${hasConditionalSteps ? html`<gv-icon class="content-icon-conditional" shape="design:conditional"></gv-icon>` : html``} ${icon ? html`<gv-image src="${icon}"></gv-image>` : html``} </div> ${icon == null && notFound ? html`<gv-icon class="not-found__icon" shape="finance:folder-error"></gv-icon>` : ''} <div> <div class="name">${name}</div> <div class="description">${description}</div> </div> </div> </div> `;
|
|
272
273
|
} else {
|
|
273
274
|
return html`<div class="drop-area"></div>`;
|
|
274
275
|
}
|
|
@@ -276,7 +277,7 @@ export class GvFlowStep extends withResizeObserver(LitElement) {
|
|
|
276
277
|
|
|
277
278
|
static get styles() {
|
|
278
279
|
return [// language=CSS
|
|
279
|
-
css`:host{box-sizing:border-box;margin:.2rem;display:block}:host(:active){outline:0}:host([dragging]){opacity:.5}gv-dropdown-menu{position:absolute;right:0;display:flex;flex-wrap:wrap;justify-content:right;top:-1px;bottom:-1px;z-index:10;--gv-dropdown-menu--bdw:0 0 0 1px;--gv-dropdown-menu--p:0.1rem 0.3rem;--gv-dropdown-menu--gg:0}gv-switch{margin:.2rem 0}:host([hover]) .drop-area{transform:translateY(-4px);box-shadow:0 0 0 1px #5a7684,0 1px 3px #5a7684;border-color:transparent}:host([dragging]) .drop-area{transform:translateY(-4px)}:host([editing]) .drop-area{border-color:#5a7684;transform:translateY(-4px);box-shadow:0 0 0 1px #5a7684,0 1px 3px #5a7684;transition:all .2s}:host([w-lt-200]) gv-image{position:absolute;opacity:.1;width:100%}:host([w-lt-200]) .drop-area:hover gv-image{opacity:1}:host([w-lt-100]) .description{display:none}:host([empty]) .drop-area{position:relative;background-color:transparent;border:2px dashed #bfbfbf;font-size:14px}.description{line-height:14px;font-size:12px;max-height:42px;overflow:hidden}.drop-area{position:relative;border:2px dashed #bfbfbf;border-radius:4px;height:80px;min-width:80px;margin:4px;padding:4px;word-break:break-word;display:flex;align-items:center;text-align:center;justify-content:center;flex-direction:column;--gv-button--fz:11px;flex:1;transition:color 150ms ease-in-out,transform .3s ease-in-out,box-shadow .3s ease-in-out,border .3s ease-in-out;background-color:#fff}.drop-area.disabled{text-decoration:line-through;font-style:italic}.drop-area.not-found{border-color:var(--gv-theme-color-warning-light,#ffb74d)}.drop-area.has-icon{padding-left:0;text-align:left}.drop-area.has-icon .content{justify-content:left}.drop-area.is-assigned{border-style:solid}:host([hover]) .drop-area.is-assigned:not(.not-found){cursor:grab}:host([hover]) .drop-area.is-assigned:not(.not-found):active{cursor:grabbing}:host([readonly]) .drop-area.is-assigned:not(.not-found),:host([readonly]) .drop-area.is-assigned:not(.not-found):active{cursor:pointer}.content{display:flex;align-items:center;justify-content:center;text-align:center;width:100%}.content>div,.content>mark{width:100%}
|
|
280
|
+
css`:host{box-sizing:border-box;margin:.2rem;display:block}:host(:active){outline:0}:host([dragging]){opacity:.5}gv-dropdown-menu{position:absolute;right:0;display:flex;flex-wrap:wrap;justify-content:right;top:-1px;bottom:-1px;z-index:10;--gv-dropdown-menu--bdw:0 0 0 1px;--gv-dropdown-menu--p:0.1rem 0.3rem;--gv-dropdown-menu--gg:0}gv-switch{margin:.2rem 0}:host([hover]) .drop-area{transform:translateY(-4px);box-shadow:0 0 0 1px #5a7684,0 1px 3px #5a7684;border-color:transparent}:host([dragging]) .drop-area{transform:translateY(-4px)}:host([editing]) .drop-area{border-color:#5a7684;transform:translateY(-4px);box-shadow:0 0 0 1px #5a7684,0 1px 3px #5a7684;transition:all .2s}:host([w-lt-200]) gv-image{position:absolute;opacity:.1;width:100%}:host([w-lt-200]) .drop-area:hover gv-image{opacity:1}:host([w-lt-200]) .content-icon{position:absolute;width:100%;height:100%}:host([w-lt-100]) .description{display:none}:host([empty]) .drop-area{position:relative;background-color:transparent;border:2px dashed #bfbfbf;font-size:14px}.description{line-height:14px;font-size:12px;max-height:42px;overflow:hidden}.drop-area{position:relative;border:2px dashed #bfbfbf;border-radius:4px;height:80px;min-width:80px;margin:4px;padding:4px;word-break:break-word;display:flex;align-items:center;text-align:center;justify-content:center;flex-direction:column;--gv-button--fz:11px;flex:1;transition:color 150ms ease-in-out,transform .3s ease-in-out,box-shadow .3s ease-in-out,border .3s ease-in-out;background-color:#fff}.drop-area.disabled{text-decoration:line-through;font-style:italic}.drop-area.not-found{border-color:var(--gv-theme-color-warning-light,#ffb74d)}.drop-area.has-icon{padding-left:0;text-align:left}.drop-area.has-icon .content{justify-content:left}.drop-area.is-assigned{border-style:solid}:host([hover]) .drop-area.is-assigned:not(.not-found){cursor:grab}:host([hover]) .drop-area.is-assigned:not(.not-found):active{cursor:grabbing}:host([readonly]) .drop-area.is-assigned:not(.not-found),:host([readonly]) .drop-area.is-assigned:not(.not-found):active{cursor:pointer}.content{display:flex;align-items:center;justify-content:center;text-align:center;width:100%}.content>div,.content>mark{width:100%}.content-icon{flex:0 1 0%;display:flex;margin:.2rem}.content-icon-conditional{position:absolute;z-index:10;margin:.2rem}gv-image{height:80px;width:80px}.not-found__icon{--gv-icon--c:var(--gv-theme-color-warning-light, #ffb74d);height:60px;width:60px;margin:.2rem;justify-content:center;align-items:center}.drop-area-confirm{flex-direction:row;align-items:center;justify-content:center;background-color:#fff}`];
|
|
280
281
|
}
|
|
281
282
|
|
|
282
283
|
}
|
|
@@ -300,4 +301,4 @@ export class PolicyDraggable {
|
|
|
300
301
|
|
|
301
302
|
}
|
|
302
303
|
window.customElements.define('gv-flow-step', GvFlowStep);
|
|
303
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL3BvbGljeS1zdHVkaW8vZ3YtZmxvdy1zdGVwLmpzIl0sIm5hbWVzIjpbIkxpdEVsZW1lbnQiLCJodG1sIiwiY3NzIiwid2l0aFJlc2l6ZU9ic2VydmVyIiwiY2xhc3NNYXAiLCJkaXNwYXRjaEN1c3RvbUV2ZW50IiwiR3ZGbG93U3RlcCIsInByb3BlcnRpZXMiLCJpZCIsInR5cGUiLCJTdHJpbmciLCJyZWZsZWN0IiwiZ3JvdXAiLCJwYXJlbnQiLCJzdGVwIiwiT2JqZWN0IiwicG9saWN5IiwiZWRpdGluZyIsIkJvb2xlYW4iLCJkcmFnZ2luZyIsImhvdmVyIiwidGl0bGUiLCJlbXB0eSIsImNvbmZpcm0iLCJkaXNhYmxlZCIsInJlYWRvbmx5IiwiX3NtYWxsIiwiYXR0cmlidXRlIiwiX2NvbmZpcm1EZWxldGUiLCJfY29uZmlybUR1cGxpY2F0ZSIsImNvbnN0cnVjdG9yIiwiYnJlYWtwb2ludHMiLCJ3aWR0aCIsIm9uUmVzaXplIiwiX29uRHVwbGljYXRlIiwiX29uQ29uZmlybUR1cGxpY2F0ZSIsInRhcmdldCIsIl9vbkNhbmNlbER1cGxpY2F0ZSIsIl9vbkNsaWNrIiwiZSIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwicHJldmVudERlZmF1bHQiLCJfZWRpdCIsIl9vbk1vdXNlRW50ZXIiLCJkcm9wZG93bk1lbnUiLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvciIsInNldEF0dHJpYnV0ZSIsIl9vbk1vdXNlTGVhdmUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJfb25EZWxldGUiLCJfb25Db25maXJtRGVsZXRlIiwiX29uQ2FuY2VsRGVsZXRlIiwidXBkYXRlZCIsImhhcyIsIl9vbkNhbmNlbCIsInJlbW92ZSIsIl9vbkNvcHkiLCJfb25Nb3ZlIiwiX29uQ2hhbmdlU3RhdGUiLCJkZXRhaWwiLCJlbmFibGVkIiwiX3JlbmRlckRyb3Bkb3duTWVudSIsInJlc2V0Q29uZmlybSIsInJlbmRlciIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsImljb24iLCJub3RGb3VuZCIsImNsYXNzZXMiLCJzdHlsZXMiLCJQb2xpY3lEcmFnZ2FibGUiLCJwYXJzZSIsInN0ciIsImRhdGEiLCJKU09OIiwic291cmNlUG9zaXRpb24iLCJzb3VyY2VGbG93S2V5Iiwic291cmNlRmxvd0lkIiwiZmxvd1N0ZXAiLCJ0b1N0cmluZyIsInN0cmluZ2lmeSIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxVQUFULEVBQXFCQyxJQUFyQixFQUEyQkMsR0FBM0IsUUFBc0MsS0FBdEM7QUFDQSxTQUFTQyxrQkFBVCxRQUFtQyxnQ0FBbkM7QUFDQSxTQUFTQyxRQUFULFFBQXlCLDBCQUF6QjtBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBQ0EsT0FBTyxtQkFBUDtBQUNBLE9BQU8sK0JBQVA7QUFDQSxPQUFPLG9CQUFQO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxVQUFOLFNBQXlCSCxrQkFBa0IsQ0FBQ0gsVUFBRCxDQUEzQyxDQUF3RDtBQUN4QyxhQUFWTyxVQUFVLEdBQUc7QUFDdEIsV0FBTztBQUNMQyxNQUFBQSxFQUFFLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQyxNQUFSO0FBQWdCQyxRQUFBQSxPQUFPLEVBQUU7QUFBekIsT0FEQztBQUVMQyxNQUFBQSxLQUFLLEVBQUU7QUFBRUgsUUFBQUEsSUFBSSxFQUFFQyxNQUFSO0FBQWdCQyxRQUFBQSxPQUFPLEVBQUU7QUFBekIsT0FGRjtBQUdMRSxNQUFBQSxNQUFNLEVBQUU7QUFBRUosUUFBQUEsSUFBSSxFQUFF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QUcsbTRFQUZFLENBQVA7QUE4S0Q7O0FBMVg0RDtBQTZYL0QsT0FBTyxNQUFNc0UsZUFBTixDQUFzQjtBQUNmLFNBQUxDLEtBQUssQ0FBQ0MsR0FBRCxFQUFNO0FBQ2hCLFVBQU1DLElBQUksR0FBR0MsSUFBSSxDQUFDSCxLQUFMLENBQVdDLEdBQVgsQ0FBYjtBQUNBLFdBQU8sSUFBSUYsZUFBSixDQUFvQkcsSUFBSSxDQUFDM0QsTUFBekIsRUFBaUMyRCxJQUFJLENBQUNFLGNBQXRDLEVBQXNERixJQUFJLENBQUNHLGFBQTNELEVBQTBFSCxJQUFJLENBQUNJLFlBQS9FLEVBQTZGSixJQUFJLENBQUNLLFFBQWxHLENBQVA7QUFDRDs7QUFFRGxELEVBQUFBLFdBQVcsQ0FBQ2QsTUFBRCxFQUFTNkQsY0FBVCxFQUF5QkMsYUFBekIsRUFBd0NDLFlBQXhDLEVBQXNEQyxRQUF0RCxFQUFnRTtBQUN6RSxTQUFLaEUsTUFBTCxHQUFjQSxNQUFkO0FBQ0EsU0FBSzZELGNBQUwsR0FBc0JBLGNBQXRCO0FBQ0EsU0FBS0MsYUFBTCxHQUFxQkEsYUFBckI7QUFDQSxTQUFLQyxZQUFMLEdBQW9CQSxZQUFwQjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0Q7O0FBRURDLEVBQUFBLFFBQVEsR0FBRztBQUNULFdBQU9MLElBQUksQ0FBQ00sU0FBTCxDQUFlLElBQWYsQ0FBUDtBQUNEOztBQWhCMEI7QUFtQjdCQyxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLGNBQTdCLEVBQTZDL0UsVUFBN0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgTGl0RWxlbWVudCwgaHRtbCwgY3NzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHdpdGhSZXNpemVPYnNlcnZlciB9IGZyb20gJy4uL21peGlucy93aXRoLXJlc2l6ZS1vYnNlcnZlcic7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgJy4uL2F0b21zL2d2LWltYWdlJztcbmltcG9ydCAnLi4vbW9sZWN1bGVzL2d2LWRyb3Bkb3duLW1lbnUnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1zd2l0Y2gnO1xuXG4vKipcbiAqIEZsb3cgYXJlYSBjb21wb25lbnRcbiAqXG4gKiBAZmlyZXMgZ3YtZmxvdy1zdGVwOmR1cGxpY2F0ZSAtIER1cGxpY2F0ZSBldmVudCBmcm9tIGFjdGlvbnNcbiAqIEBmaXJlcyBndi1mbG93LXN0ZXA6ZGVsZXRlIC0gRGVsZXRlIGV2ZW50IGZyb20gYWN0aW9uc1xuICogQGZpcmVzIGd2LWZsb3ctc3RlcDplZGl0IC0gRWRpdCBldmVudFxuICogQGZpcmVzIGd2LWZsb3ctc3RlcDpjb3B5IC0gQ29weSBldmVudFxuICogQGZpcmVzIGd2LWZsb3ctc3RlcDptb3ZlIC0gTW92ZSBldmVudFxuICpcbiAqIEBhdHRyIHtPYmplY3Q8e25hbWUsIGljb24sIGNvbmZpZ3VyYXRpb246e2Rlc2NyaXB0aW9uLCAuLi59fT59IHN0ZXAgLSB0aGUgZmxvdyBzdGVwLCBjb25maWd1cmF0aW9uIGNvbnRhaW5zIGZvcm0gY29uZiBmb3IgZ3Ytc2NoZW1hLWZvcm0gY29tcG9uZW50XG4gKiBAYXR0ciB7Qm9vbGVhbn0gZWRpdGluZyAtIHRydWUsIGlmIGVkaXRpb24gaW4gcHJvZ3Jlc3NcbiAqIEBhdHRyIHtCb29sZWFufSBkcmFnZ2luZyAtIHRydWUsIGlmIGRyYWdnaW5nIGluIHByb2dyZXNzXG4gKiBAYXR0ciB7Qm9vbGVhbn0gaG92ZXIgLSB0cnVlLCBpZiBhcmVhIGlzIGhvdmVyXG4gKiBAYXR0ciB7U3RyaW5nfSB0aXRsZSAtIHRpdGxlIG9mIGFyZWEsIGRlZmF1bHQgaXMgXCJjb250ZW50LmNvbmZpZ3VyYXRpb24uZGVzY3JpcHRpb25cIiBpZiBleGlzdFxuICogQGF0dHIge0Jvb2xlYW59IGVtcHR5IC0gdHJ1ZSwgaWYgcmVuZGVyIGVtcHR5IHN0YXRlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gY29uZmlybSAtIHRydWUsIGlmIHJlbmRlciBjb25maXJtIHN0YXRlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gZGlzYWJsZWQgLSB0cnVlIGZvciBkaXNhYmxlZFxuICogQGF0dHIge0Jvb2xlYW59IHJlYWRvbmx5IC0gdHJ1ZSBpZiByZWFkb25seVxuICovXG5leHBvcnQgY2xhc3MgR3ZGbG93U3RlcCBleHRlbmRzIHdpdGhSZXNpemVPYnNlcnZlcihMaXRFbGVtZW50KSB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBncm91cDogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHBhcmVudDogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHN0ZXA6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBwb2xpY3k6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBlZGl0aW5nOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGRyYWdnaW5nOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGhvdmVyOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHRpdGxlOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgZW1wdHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgY29uZmlybTogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBkaXNhYmxlZDogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICByZWFkb25seTogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBfc21hbGw6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX2NvbmZpcm1EZWxldGU6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgX2NvbmZpcm1EdXBsaWNhdGU6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZW1wdHkgPSB0cnVlO1xuICAgIHRoaXMuYnJlYWtwb2ludHMgPSB7XG4gICAgICB3aWR0aDogWzEwMCwgMjAwXSxcbiAgICB9O1xuICB9XG5cbiAgb25SZXNpemUoeyB3aWR0aCB9KSB7XG4gICAgdGhpcy5fc21hbGwgPSB3aWR0aCA8PSAyMDA7XG4gIH1cblxuICBfb25EdXBsaWNhdGUoKSB7XG4gICAgdGhpcy5fY29uZmlybUR1cGxpY2F0ZSA9IHRydWU7XG4gIH1cblxuICBfb25Db25maXJtRHVwbGljYXRlKCkge1xuICAgIHRoaXMuX2NvbmZpcm1EdXBsaWNhdGUgPSBmYWxzZTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdkdXBsaWNhdGUnLCB7IHN0ZXA6IHRoaXMuc3RlcCwgcG9saWN5OiB0aGlzLnBvbGljeSwgdGFyZ2V0OiB0aGlzIH0pO1xuICB9XG5cbiAgX29uQ2FuY2VsRHVwbGljYXRlKCkge1xuICAgIHRoaXMuX2NvbmZpcm1EdXBsaWNhdGUgPSBmYWxzZTtcbiAgfVxuXG4gIF9vbkNsaWNrKGUpIHtcbiAgICBpZiAoIWUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnYWN0aW9uJykgJiYgIXRoaXMuZWRpdGluZykge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5fZWRpdCgpO1xuICAgIH1cbiAgfVxuXG4gIF9lZGl0KCkge1xuICAgIGlmICh0aGlzLnBvbGljeSAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnZWRpdCcsIHsgc3RlcDogdGhpcy5zdGVwLCBwb2xpY3k6IHRoaXMucG9saWN5LCBncm91cDogdGhpcy5ncm91cCB9KTtcbiAgICB9XG4gIH1cblxuICBfb25Nb3VzZUVudGVyKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5ob3ZlciA9IHRydWU7XG4gICAgICBpZiAoIXRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgY29uc3QgZHJvcGRvd25NZW51ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2d2LWRyb3Bkb3duLW1lbnUnKTtcbiAgICAgICAgZHJvcGRvd25NZW51LnNldEF0dHJpYnV0ZSgnb3BlbicsIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9vbk1vdXNlTGVhdmUoKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmhvdmVyID0gZmFsc2U7XG4gICAgICBpZiAoIXRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgY29uc3QgZHJvcGRvd25NZW51ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2d2LWRyb3Bkb3duLW1lbnUnKTtcbiAgICAgICAgZHJvcGRvd25NZW51LnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9vbkRlbGV0ZSgpIHtcbiAgICB0aGlzLl9jb25maXJtRGVsZXRlID0gdHJ1ZTtcbiAgfVxuXG4gIF9vbkNvbmZpcm1EZWxldGUoKSB7XG4gICAgdGhpcy5fY29uZmlybURlbGV0ZSA9IGZhbHNlO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2RlbGV0ZScsIHsgc3RlcDogdGhpcy5zdGVwIH0pO1xuICB9XG5cbiAgX29uQ2FuY2VsRGVsZXRlKCkge1xuICAgIHRoaXMuX2NvbmZpcm1EZWxldGUgPSBmYWxzZTtcbiAgfVxuXG4gIHVwZGF0ZWQocHJvcGVydGllcykge1xuICAgIGlmIChwcm9wZXJ0aWVzLmhhcygnZHJhZ2dpbmcnKSAmJiB0aGlzLmRyYWdnaW5nID09PSB0cnVlKSB7XG4gICAgICBjb25zdCBkcm9wZG93bk1lbnUgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignZ3YtZHJvcGRvd24tbWVudScpO1xuICAgICAgZHJvcGRvd25NZW51LnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpO1xuICAgIH1cbiAgICBpZiAocHJvcGVydGllcy5oYXMoJ3N0ZXAnKSAmJiB0aGlzLnN0ZXAgIT0gbnVsbCkge1xuICAgICAgdGhpcy5lbXB0eSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIF9vbkNhbmNlbCgpIHtcbiAgICB0aGlzLnJlbW92ZSgpO1xuICB9XG5cbiAgX29uQ29weSgpIHtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjb3B5Jyk7XG4gIH1cblxuICBfb25Nb3ZlKCkge1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ21vdmUnKTtcbiAgfVxuXG4gIF9vbkNoYW5nZVN0YXRlKHsgZGV0YWlsIH0pIHtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjaGFuZ2Utc3RhdGUnLCB7IHN0ZXA6IHRoaXMuc3RlcCwgZW5hYmxlZDogZGV0YWlsIH0pO1xuICB9XG5cbiAgX3JlbmRlckRyb3Bkb3duTWVudSgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICByZXR1cm4gaHRtbGBgO1xuICAgIH1cbiAgICBjb25zdCBlbmFibGVkID0gdGhpcy5zdGVwLmVuYWJsZWQgIT09IGZhbHNlO1xuICAgIHJldHVybiBodG1sYDxndi1kcm9wZG93bi1tZW51IHJpZ2h0PlxuICAgICAgPGd2LXN3aXRjaFxuICAgICAgICBzbG90PVwiYWN0aW9uXCJcbiAgICAgICAgY2xhc3M9XCJhY3Rpb25cIlxuICAgICAgICBzbWFsbFxuICAgICAgICBsYWJlbD1cIiR7ZW5hYmxlZCA/ICdFbmFibGVkJyA6ICdEaXNhYmxlZCd9XCJcbiAgICAgICAgdGl0bGU9XCIke2VuYWJsZWQgPyAnRGlzYWJsZSBwb2xpY3kgPycgOiAnRW5hYmxlIHBvbGljeSA/J31cIlxuICAgICAgICBAZ3Ytc3dpdGNoOmlucHV0PVwiJHt0aGlzLl9vbkNoYW5nZVN0YXRlfVwiXG4gICAgICAgIC52YWx1ZT1cIiR7ZW5hYmxlZH1cIlxuICAgICAgPjwvZ3Ytc3dpdGNoPlxuICAgICAgPGd2LWJ1dHRvbiBzbG90PVwiYWN0aW9uXCIgY2xhc3M9XCJhY3Rpb25cIiBsaW5rIHNtYWxsIGljb249XCJnZW5lcmFsOmR1cGxpY2F0ZVwiIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uRHVwbGljYXRlfVwiXG4gICAgICAgID5EdXBsaWNhdGU8L2d2LWJ1dHRvblxuICAgICAgPlxuICAgICAgPGd2LWJ1dHRvbiBzbG90PVwiYWN0aW9uXCIgY2xhc3M9XCJhY3Rpb25cIiBsaW5rIHNtYWxsIGljb249XCJob21lOnRyYXNoXCIgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25EZWxldGV9XCI+RGVsZXRlPC9ndi1idXR0b24+XG4gICAgPC9ndi1kcm9wZG93bi1tZW51PmA7XG4gIH1cblxuICByZXNldENvbmZpcm0oKSB7XG4gICAgdGhpcy5jb25maXJtID0gZmFsc2U7XG4gICAgdGhpcy5fY29uZmlybURlbGV0ZSA9IGZhbHNlO1xuICAgIHRoaXMuX2NvbmZpcm1EdXBsaWNhdGUgPSBmYWxzZTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBpZiAodGhpcy5jb25maXJtKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiZHJvcC1hcmVhIGRyb3AtYXJlYS1jb25maXJtXCI+XG4gICAgICAgIDxndi1idXR0b24gc21hbGwgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25Db3B5fVwiPkNvcHk8L2d2LWJ1dHRvbj5cbiAgICAgICAgPGd2LWJ1dHRvbiBzbWFsbCBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vbk1vdmV9XCI+TW92ZTwvZ3YtYnV0dG9uPlxuICAgICAgICA8Z3YtYnV0dG9uIGxpbmsgc21hbGwgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25DYW5jZWx9XCI+Q2FuY2VsPC9ndi1idXR0b24+XG4gICAgICA8L2Rpdj5gO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fY29uZmlybURlbGV0ZSkge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImRyb3AtYXJlYSBkcm9wLWFyZWEtY29uZmlybVwiPlxuICAgICAgICA8Z3YtYnV0dG9uIHNtYWxsIGRhbmdlciBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vbkNvbmZpcm1EZWxldGV9XCI+RGVsZXRlPC9ndi1idXR0b24+XG4gICAgICAgIDxndi1idXR0b24gbGluayBzbWFsbCBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vbkNhbmNlbERlbGV0ZX1cIj5DYW5jZWw8L2d2LWJ1dHRvbj5cbiAgICAgIDwvZGl2PmA7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9jb25maXJtRHVwbGljYXRlKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiZHJvcC1hcmVhIGRyb3AtYXJlYS1jb25maXJtXCI+XG4gICAgICAgIDxndi1idXR0b24gc21hbGwgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25Db25maXJtRHVwbGljYXRlfVwiPkR1cGxpY2F0ZTwvZ3YtYnV0dG9uPlxuICAgICAgICA8Z3YtYnV0dG9uIGxpbmsgc21hbGwgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25DYW5jZWxEdXBsaWNhdGV9XCI+Q2FuY2VsPC9ndi1idXR0b24+XG4gICAgICA8L2Rpdj5gO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuZW1wdHkpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLnN0ZXAgPyB0aGlzLnN0ZXAubmFtZSA6ICcnO1xuICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSB0aGlzLnN0ZXAgJiYgdGhpcy5zdGVwLmRlc2NyaXB0aW9uID8gdGhpcy5zdGVwLmRlc2NyaXB0aW9uIDogJyc7XG4gICAgICBjb25zdCBpY29uID0gdGhpcy5zdGVwID8gdGhpcy5wb2xpY3kgJiYgdGhpcy5wb2xpY3kuaWNvbiA6IG51bGw7XG4gICAgICBjb25zdCBlbmFibGVkID0gdGhpcy5zdGVwICYmIHRoaXMuc3RlcC5lbmFibGVkICE9PSBmYWxzZTtcbiAgICAgIGNvbnN0IG5vdEZvdW5kID0gdGhpcy5wb2xpY3kgPT0gbnVsbDtcbiAgICAgIGlmIChub3RGb3VuZCkge1xuICAgICAgICB0aGlzLnRpdGxlID0gJ1dhcm5pbmc6IHBvbGljeSBub3QgZm91bmQgaW4gcGx1Z2lucyBmb2xkZXInO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50aXRsZSA9IGRlc2NyaXB0aW9uO1xuICAgICAgfVxuICAgICAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICAgICAgJ2Ryb3AtYXJlYSc6IHRydWUsXG4gICAgICAgICdpcy1hc3NpZ25lZCc6IG5hbWUgIT09ICcnLFxuICAgICAgICAnaGFzLWljb24nOiBpY29uICE9IG51bGwsXG4gICAgICAgIGRpc2FibGVkOiAhZW5hYmxlZCxcbiAgICAgICAgJ25vdC1mb3VuZCc6IG5vdEZvdW5kLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBodG1sYDxkaXZcbiAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiXG4gICAgICAgIEBjbGljaz1cIiR7dGhpcy5fb25DbGlja31cIlxuICAgICAgICBAbW91c2VlbnRlcj1cIiR7dGhpcy5fb25Nb3VzZUVudGVyfVwiXG4gICAgICAgIEBtb3VzZWxlYXZlPVwiJHt0aGlzLl9vbk1vdXNlTGVhdmV9XCJcbiAgICAgID5cbiAgICAgICAgJHt0aGlzLl9yZW5kZXJEcm9wZG93bk1lbnUoKX1cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgICAke2ljb24gPyBodG1sYDxndi1pbWFnZSBzcmM9XCIke2ljb259XCI+PC9ndi1pbWFnZT5gIDogaHRtbGBgfVxuICAgICAgICAgICR7aWNvbiA9PSBudWxsICYmIG5vdEZvdW5kID8gaHRtbGA8Z3YtaWNvbiBjbGFzcz1cIm5vdC1mb3VuZF9faWNvblwiIHNoYXBlPVwiZmluYW5jZTpmb2xkZXItZXJyb3JcIj48L2d2LWljb24+YCA6ICcnfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPiR7bmFtZX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPiR7ZGVzY3JpcHRpb259PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+IGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJkcm9wLWFyZWFcIj48L2Rpdj5gO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgbWFyZ2luOiAwLjJyZW07XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdCg6YWN0aXZlKSB7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtkcmFnZ2luZ10pIHtcbiAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBndi1kcm9wZG93bi1tZW51IHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiByaWdodDtcbiAgICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgIC0tZ3YtZHJvcGRvd24tbWVudS0tYmR3OiAwIDAgMCAxcHg7XG4gICAgICAgICAgLS1ndi1kcm9wZG93bi1tZW51LS1wOiAwLjFyZW0gMC4zcmVtO1xuICAgICAgICAgIC0tZ3YtZHJvcGRvd24tbWVudS0tZ2c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBndi1zd2l0Y2gge1xuICAgICAgICAgIG1hcmdpbjogMC4ycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbaG92ZXJdKSAuZHJvcC1hcmVhIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICM1YTc2ODQsIDAgMXB4IDNweCAjNWE3Njg0O1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbZHJhZ2dpbmddKSAuZHJvcC1hcmVhIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbZWRpdGluZ10pIC5kcm9wLWFyZWEge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogIzVhNzY4NDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICM1YTc2ODQsIDAgMXB4IDNweCAjNWE3Njg0O1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3ctbHQtMjAwXSkgZ3YtaW1hZ2Uge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBvcGFjaXR5OiAwLjE7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbdy1sdC0yMDBdKSAuZHJvcC1hcmVhOmhvdmVyIGd2LWltYWdlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3ctbHQtMTAwXSkgLmRlc2NyaXB0aW9uIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW2VtcHR5XSkgLmRyb3AtYXJlYSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAjYmZiZmJmO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDQycHg7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wLWFyZWEge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgI2JmYmZiZjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICAgIG1pbi13aWR0aDogODBweDtcbiAgICAgICAgICBtYXJnaW46IDRweDtcbiAgICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgLS1ndi1idXR0b24tLWZ6OiAxMXB4O1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMTUwbXMgZWFzZS1pbi1vdXQsIHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IDAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlciAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRyb3AtYXJlYS5kaXNhYmxlZCB7XG4gICAgICAgICAgLypvcGFjaXR5OiAwLjc7Ki9cbiAgICAgICAgICAvKmJhY2tncm91bmQtY29sb3I6ICNCRkJGQkY7ICEqIGZhbGxiYWNrIGNvbG9yIGlmIGdyYWRpZW50cyBhcmUgbm90IHN1cHBvcnRlZCAqISovXG4gICAgICAgICAgLypib3JkZXItY29sb3I6IHdoaXRlOyovXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRyb3AtYXJlYS5ub3QtZm91bmQge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ3YtdGhlbWUtY29sb3Itd2FybmluZy1saWdodCwgI2ZmYjc0ZCk7XG4gICAgICAgIH1cblxuICAgICAgICAuZHJvcC1hcmVhLmhhcy1pY29uIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wLWFyZWEuaGFzLWljb24gLmNvbnRlbnQge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wLWFyZWEuaXMtYXNzaWduZWQge1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbaG92ZXJdKSAuZHJvcC1hcmVhLmlzLWFzc2lnbmVkOm5vdCgubm90LWZvdW5kKSB7XG4gICAgICAgICAgY3Vyc29yOiBncmFiO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW2hvdmVyXSkgLmRyb3AtYXJlYS5pcy1hc3NpZ25lZDpub3QoLm5vdC1mb3VuZCk6YWN0aXZlIHtcbiAgICAgICAgICBjdXJzb3I6IGdyYWJiaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3JlYWRvbmx5XSkgLmRyb3AtYXJlYS5pcy1hc3NpZ25lZDpub3QoLm5vdC1mb3VuZCksXG4gICAgICAgIDpob3N0KFtyZWFkb25seV0pIC5kcm9wLWFyZWEuaXMtYXNzaWduZWQ6bm90KC5ub3QtZm91bmQpOmFjdGl2ZSB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCA+IGRpdixcbiAgICAgICAgLmNvbnRlbnQgPiBtYXJrIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWltYWdlIHtcbiAgICAgICAgICBoZWlnaHQ6IDkwcHg7XG4gICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgIG1hcmdpbjogMC4ycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5vdC1mb3VuZF9faWNvbiB7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1ndi10aGVtZS1jb2xvci13YXJuaW5nLWxpZ2h0LCAjZmZiNzRkKTtcbiAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgICAgbWFyZ2luOiAwLjJyZW07XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wLWFyZWEtY29uZmlybSB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBvbGljeURyYWdnYWJsZSB7XG4gIHN0YXRpYyBwYXJzZShzdHIpIHtcbiAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShzdHIpO1xuICAgIHJldHVybiBuZXcgUG9saWN5RHJhZ2dhYmxlKGRhdGEucG9saWN5LCBkYXRhLnNvdXJjZVBvc2l0aW9uLCBkYXRhLnNvdXJjZUZsb3dLZXksIGRhdGEuc291cmNlRmxvd0lkLCBkYXRhLmZsb3dTdGVwKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHBvbGljeSwgc291cmNlUG9zaXRpb24sIHNvdXJjZUZsb3dLZXksIHNvdXJjZUZsb3dJZCwgZmxvd1N0ZXApIHtcbiAgICB0aGlzLnBvbGljeSA9IHBvbGljeTtcbiAgICB0aGlzLnNvdXJjZVBvc2l0aW9uID0gc291cmNlUG9zaXRpb247XG4gICAgdGhpcy5zb3VyY2VGbG93S2V5ID0gc291cmNlRmxvd0tleTtcbiAgICB0aGlzLnNvdXJjZUZsb3dJZCA9IHNvdXJjZUZsb3dJZDtcbiAgICB0aGlzLmZsb3dTdGVwID0gZmxvd1N0ZXA7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcyk7XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtZmxvdy1zdGVwJywgR3ZGbG93U3RlcCk7XG4iXX0=
|
|
304
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL3BvbGljeS1zdHVkaW8vZ3YtZmxvdy1zdGVwLmpzIl0sIm5hbWVzIjpbIkxpdEVsZW1lbnQiLCJodG1sIiwiY3NzIiwid2l0aFJlc2l6ZU9ic2VydmVyIiwiY2xhc3NNYXAiLCJkaXNwYXRjaEN1c3RvbUV2ZW50IiwiR3ZGbG93U3RlcCIsInByb3BlcnRpZXMiLCJpZCIsInR5cGUiLCJTdHJpbmciLCJyZWZsZWN0IiwiZ3JvdXAiLCJwYXJlbnQiLCJzdGVwIiwiT2JqZWN0IiwicG9saWN5IiwiZWRpdGluZyIsIkJvb2xlYW4iLCJkcmFnZ2luZyIsImhvdmVyIiwidGl0bGUiLCJlbXB0eSIsImNvbmZpcm0iLCJkaXNhYmxlZCIsInJlYWRvbmx5IiwiX3NtYWxsIiwiYXR0cmlidXRlIiwiX2NvbmZpcm1EZWxldGUiLCJfY29uZmlybUR1cGxpY2F0ZSIsImNvbnN0cnVjdG9yIiwiYnJlYWtwb2ludHMiLCJ3aWR0aCIsIm9uUmVzaXplIiwiX29uRHVwbGljYXRlIiwiX29uQ29uZmlybUR1cGxpY2F0ZSIsInRhcmdldCIsIl9vbkNhbmNlbER1cGxpY2F0ZSIsIl9vbkNsaWNrIiwiZSIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwicHJldmVudERlZmF1bHQiLCJfZWRpdCIsIl9vbk1vdXNlRW50ZXIiLCJkcm9wZG93bk1lbnUiLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvciIsInNldEF0dHJpYnV0ZSIsIl9vbk1vdXNlTGVhdmUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJfb25EZWxldGUiLCJfb25Db25maXJtRGVsZXRlIiwiX29uQ2FuY2VsRGVsZXRlIiwidXBkYXRlZCIsImhhcyIsIl9vbkNhbmNlbCIsInJlbW92ZSIsIl9vbkNvcHkiLCJfb25Nb3ZlIiwiX29uQ2hhbmdlU3RhdGUiLCJkZXRhaWwiLCJlbmFibGVkIiwiX3JlbmRlckRyb3Bkb3duTWVudSIsInJlc2V0Q29uZmlybSIsInJlbmRlciIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsImhhc0NvbmRpdGlvbmFsU3RlcHMiLCJjb25kaXRpb24iLCJpY29uIiwibm90Rm91bmQiLCJjbGFzc2VzIiwic3R5bGVzIiwiUG9saWN5RHJhZ2dhYmxlIiwicGFyc2UiLCJzdHIiLCJkYXRhIiwiSlNPTiIsInNvdXJjZVBvc2l0aW9uIiwic291cmNlRmxvd0tleSIsInNvdXJjZUZsb3dJZCIsImZsb3dTdGVwIiwidG9TdHJpbmciLCJzdHJpbmdpZnkiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsVUFBVCxFQUFxQkMsSUFBckIsRUFBMkJDLEdBQTNCLFFBQXNDLEtBQXRDO0FBQ0EsU0FBU0Msa0JBQVQsUUFBbUMsZ0NBQW5DO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwwQkFBekI7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxlQUFwQztBQUNBLE9BQU8sbUJBQVA7QUFDQSxPQUFPLCtCQUFQO0FBQ0EsT0FBTyxvQkFBUDtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsVUFBTixTQUF5Qkgsa0JBQWtCLENBQUNILFVBQUQsQ0FBM0MsQ0FBd0Q7QUFDeEMsYUFBVk8sVUFBVSxHQUFHO0FBQ3RCLFdBQU87QUFDTEMsTUFBQUEsRUFBRSxFQUFFO0FBQUVDLFFBQUFBLElBQUksRUFBRUMsTUFBUjtBQUFnQkMsUUFBQUEsT0FBTyxFQUFFO0FBQXpCLE9BREM7QUFFTEMsTUFBQUEsS0FBSyxFQUFFO0FBQUVILFFBQUFBLElBQUksRUFBRUMsTUFBUjtBQUFnQkMsUUFBQUEsT0FBTyxFQUFFO0FBQXpCLE9BRkY7QUFHTEUsTUFB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bSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IExpdEVsZW1lbnQsIGh0bWwsIGNzcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyB3aXRoUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICcuLi9taXhpbnMvd2l0aC1yZXNpemUtb2JzZXJ2ZXInO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9jbGFzcy1tYXAnO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1pbWFnZSc7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1kcm9wZG93bi1tZW51JztcbmltcG9ydCAnLi4vYXRvbXMvZ3Ytc3dpdGNoJztcblxuLyoqXG4gKiBGbG93IGFyZWEgY29tcG9uZW50XG4gKlxuICogQGZpcmVzIGd2LWZsb3ctc3RlcDpkdXBsaWNhdGUgLSBEdXBsaWNhdGUgZXZlbnQgZnJvbSBhY3Rpb25zXG4gKiBAZmlyZXMgZ3YtZmxvdy1zdGVwOmRlbGV0ZSAtIERlbGV0ZSBldmVudCBmcm9tIGFjdGlvbnNcbiAqIEBmaXJlcyBndi1mbG93LXN0ZXA6ZWRpdCAtIEVkaXQgZXZlbnRcbiAqIEBmaXJlcyBndi1mbG93LXN0ZXA6Y29weSAtIENvcHkgZXZlbnRcbiAqIEBmaXJlcyBndi1mbG93LXN0ZXA6bW92ZSAtIE1vdmUgZXZlbnRcbiAqXG4gKiBAYXR0ciB7T2JqZWN0PHtuYW1lLCBpY29uLCBjb25maWd1cmF0aW9uOntkZXNjcmlwdGlvbiwgLi4ufX0+fSBzdGVwIC0gdGhlIGZsb3cgc3RlcCwgY29uZmlndXJhdGlvbiBjb250YWlucyBmb3JtIGNvbmYgZm9yIGd2LXNjaGVtYS1mb3JtIGNvbXBvbmVudFxuICogQGF0dHIge0Jvb2xlYW59IGVkaXRpbmcgLSB0cnVlLCBpZiBlZGl0aW9uIGluIHByb2dyZXNzXG4gKiBAYXR0ciB7Qm9vbGVhbn0gZHJhZ2dpbmcgLSB0cnVlLCBpZiBkcmFnZ2luZyBpbiBwcm9ncmVzc1xuICogQGF0dHIge0Jvb2xlYW59IGhvdmVyIC0gdHJ1ZSwgaWYgYXJlYSBpcyBob3ZlclxuICogQGF0dHIge1N0cmluZ30gdGl0bGUgLSB0aXRsZSBvZiBhcmVhLCBkZWZhdWx0IGlzIFwiY29udGVudC5jb25maWd1cmF0aW9uLmRlc2NyaXB0aW9uXCIgaWYgZXhpc3RcbiAqIEBhdHRyIHtCb29sZWFufSBlbXB0eSAtIHRydWUsIGlmIHJlbmRlciBlbXB0eSBzdGF0ZVxuICogQGF0dHIge0Jvb2xlYW59IGNvbmZpcm0gLSB0cnVlLCBpZiByZW5kZXIgY29uZmlybSBzdGF0ZVxuICogQGF0dHIge0Jvb2xlYW59IGRpc2FibGVkIC0gdHJ1ZSBmb3IgZGlzYWJsZWRcbiAqIEBhdHRyIHtCb29sZWFufSByZWFkb25seSAtIHRydWUgaWYgcmVhZG9ubHlcbiAqL1xuZXhwb3J0IGNsYXNzIEd2Rmxvd1N0ZXAgZXh0ZW5kcyB3aXRoUmVzaXplT2JzZXJ2ZXIoTGl0RWxlbWVudCkge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgZ3JvdXA6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBwYXJlbnQ6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBzdGVwOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgcG9saWN5OiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgZWRpdGluZzogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBkcmFnZ2luZzogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBob3ZlcjogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICB0aXRsZTogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGVtcHR5OiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGNvbmZpcm06IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgZGlzYWJsZWQ6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgcmVhZG9ubHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgX3NtYWxsOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIF9jb25maXJtRGVsZXRlOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIF9jb25maXJtRHVwbGljYXRlOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmVtcHR5ID0gdHJ1ZTtcbiAgICB0aGlzLmJyZWFrcG9pbnRzID0ge1xuICAgICAgd2lkdGg6IFsxMDAsIDIwMF0sXG4gICAgfTtcbiAgfVxuXG4gIG9uUmVzaXplKHsgd2lkdGggfSkge1xuICAgIHRoaXMuX3NtYWxsID0gd2lkdGggPD0gMjAwO1xuICB9XG5cbiAgX29uRHVwbGljYXRlKCkge1xuICAgIHRoaXMuX2NvbmZpcm1EdXBsaWNhdGUgPSB0cnVlO1xuICB9XG5cbiAgX29uQ29uZmlybUR1cGxpY2F0ZSgpIHtcbiAgICB0aGlzLl9jb25maXJtRHVwbGljYXRlID0gZmFsc2U7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnZHVwbGljYXRlJywgeyBzdGVwOiB0aGlzLnN0ZXAsIHBvbGljeTogdGhpcy5wb2xpY3ksIHRhcmdldDogdGhpcyB9KTtcbiAgfVxuXG4gIF9vbkNhbmNlbER1cGxpY2F0ZSgpIHtcbiAgICB0aGlzLl9jb25maXJtRHVwbGljYXRlID0gZmFsc2U7XG4gIH1cblxuICBfb25DbGljayhlKSB7XG4gICAgaWYgKCFlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGlvbicpICYmICF0aGlzLmVkaXRpbmcpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuX2VkaXQoKTtcbiAgICB9XG4gIH1cblxuICBfZWRpdCgpIHtcbiAgICBpZiAodGhpcy5wb2xpY3kgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2VkaXQnLCB7IHN0ZXA6IHRoaXMuc3RlcCwgcG9saWN5OiB0aGlzLnBvbGljeSwgZ3JvdXA6IHRoaXMuZ3JvdXAgfSk7XG4gICAgfVxuICB9XG5cbiAgX29uTW91c2VFbnRlcigpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaG92ZXIgPSB0cnVlO1xuICAgICAgaWYgKCF0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgIGNvbnN0IGRyb3Bkb3duTWVudSA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdndi1kcm9wZG93bi1tZW51Jyk7XG4gICAgICAgIGRyb3Bkb3duTWVudS5zZXRBdHRyaWJ1dGUoJ29wZW4nLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfb25Nb3VzZUxlYXZlKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5ob3ZlciA9IGZhbHNlO1xuICAgICAgaWYgKCF0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgIGNvbnN0IGRyb3Bkb3duTWVudSA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdndi1kcm9wZG93bi1tZW51Jyk7XG4gICAgICAgIGRyb3Bkb3duTWVudS5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfb25EZWxldGUoKSB7XG4gICAgdGhpcy5fY29uZmlybURlbGV0ZSA9IHRydWU7XG4gIH1cblxuICBfb25Db25maXJtRGVsZXRlKCkge1xuICAgIHRoaXMuX2NvbmZpcm1EZWxldGUgPSBmYWxzZTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdkZWxldGUnLCB7IHN0ZXA6IHRoaXMuc3RlcCB9KTtcbiAgfVxuXG4gIF9vbkNhbmNlbERlbGV0ZSgpIHtcbiAgICB0aGlzLl9jb25maXJtRGVsZXRlID0gZmFsc2U7XG4gIH1cblxuICB1cGRhdGVkKHByb3BlcnRpZXMpIHtcbiAgICBpZiAocHJvcGVydGllcy5oYXMoJ2RyYWdnaW5nJykgJiYgdGhpcy5kcmFnZ2luZyA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3QgZHJvcGRvd25NZW51ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2d2LWRyb3Bkb3duLW1lbnUnKTtcbiAgICAgIGRyb3Bkb3duTWVudS5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTtcbiAgICB9XG4gICAgaWYgKHByb3BlcnRpZXMuaGFzKCdzdGVwJykgJiYgdGhpcy5zdGVwICE9IG51bGwpIHtcbiAgICAgIHRoaXMuZW1wdHkgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBfb25DYW5jZWwoKSB7XG4gICAgdGhpcy5yZW1vdmUoKTtcbiAgfVxuXG4gIF9vbkNvcHkoKSB7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnY29weScpO1xuICB9XG5cbiAgX29uTW92ZSgpIHtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdtb3ZlJyk7XG4gIH1cblxuICBfb25DaGFuZ2VTdGF0ZSh7IGRldGFpbCB9KSB7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnY2hhbmdlLXN0YXRlJywgeyBzdGVwOiB0aGlzLnN0ZXAsIGVuYWJsZWQ6IGRldGFpbCB9KTtcbiAgfVxuXG4gIF9yZW5kZXJEcm9wZG93bk1lbnUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkge1xuICAgICAgcmV0dXJuIGh0bWxgYDtcbiAgICB9XG4gICAgY29uc3QgZW5hYmxlZCA9IHRoaXMuc3RlcC5lbmFibGVkICE9PSBmYWxzZTtcbiAgICByZXR1cm4gaHRtbGA8Z3YtZHJvcGRvd24tbWVudSByaWdodD5cbiAgICAgIDxndi1zd2l0Y2hcbiAgICAgICAgc2xvdD1cImFjdGlvblwiXG4gICAgICAgIGNsYXNzPVwiYWN0aW9uXCJcbiAgICAgICAgc21hbGxcbiAgICAgICAgbGFiZWw9XCIke2VuYWJsZWQgPyAnRW5hYmxlZCcgOiAnRGlzYWJsZWQnfVwiXG4gICAgICAgIHRpdGxlPVwiJHtlbmFibGVkID8gJ0Rpc2FibGUgcG9saWN5ID8nIDogJ0VuYWJsZSBwb2xpY3kgPyd9XCJcbiAgICAgICAgQGd2LXN3aXRjaDppbnB1dD1cIiR7dGhpcy5fb25DaGFuZ2VTdGF0ZX1cIlxuICAgICAgICAudmFsdWU9XCIke2VuYWJsZWR9XCJcbiAgICAgID48L2d2LXN3aXRjaD5cbiAgICAgIDxndi1idXR0b24gc2xvdD1cImFjdGlvblwiIGNsYXNzPVwiYWN0aW9uXCIgbGluayBzbWFsbCBpY29uPVwiZ2VuZXJhbDpkdXBsaWNhdGVcIiBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vbkR1cGxpY2F0ZX1cIlxuICAgICAgICA+RHVwbGljYXRlPC9ndi1idXR0b25cbiAgICAgID5cbiAgICAgIDxndi1idXR0b24gc2xvdD1cImFjdGlvblwiIGNsYXNzPVwiYWN0aW9uXCIgbGluayBzbWFsbCBpY29uPVwiaG9tZTp0cmFzaFwiIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uRGVsZXRlfVwiPkRlbGV0ZTwvZ3YtYnV0dG9uPlxuICAgIDwvZ3YtZHJvcGRvd24tbWVudT5gO1xuICB9XG5cbiAgcmVzZXRDb25maXJtKCkge1xuICAgIHRoaXMuY29uZmlybSA9IGZhbHNlO1xuICAgIHRoaXMuX2NvbmZpcm1EZWxldGUgPSBmYWxzZTtcbiAgICB0aGlzLl9jb25maXJtRHVwbGljYXRlID0gZmFsc2U7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlybSkge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImRyb3AtYXJlYSBkcm9wLWFyZWEtY29uZmlybVwiPlxuICAgICAgICA8Z3YtYnV0dG9uIHNtYWxsIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uQ29weX1cIj5Db3B5PC9ndi1idXR0b24+XG4gICAgICAgIDxndi1idXR0b24gc21hbGwgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25Nb3ZlfVwiPk1vdmU8L2d2LWJ1dHRvbj5cbiAgICAgICAgPGd2LWJ1dHRvbiBsaW5rIHNtYWxsIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uQ2FuY2VsfVwiPkNhbmNlbDwvZ3YtYnV0dG9uPlxuICAgICAgPC9kaXY+YDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2NvbmZpcm1EZWxldGUpIHtcbiAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJkcm9wLWFyZWEgZHJvcC1hcmVhLWNvbmZpcm1cIj5cbiAgICAgICAgPGd2LWJ1dHRvbiBzbWFsbCBkYW5nZXIgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25Db25maXJtRGVsZXRlfVwiPkRlbGV0ZTwvZ3YtYnV0dG9uPlxuICAgICAgICA8Z3YtYnV0dG9uIGxpbmsgc21hbGwgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25DYW5jZWxEZWxldGV9XCI+Q2FuY2VsPC9ndi1idXR0b24+XG4gICAgICA8L2Rpdj5gO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fY29uZmlybUR1cGxpY2F0ZSkge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImRyb3AtYXJlYSBkcm9wLWFyZWEtY29uZmlybVwiPlxuICAgICAgICA8Z3YtYnV0dG9uIHNtYWxsIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uQ29uZmlybUR1cGxpY2F0ZX1cIj5EdXBsaWNhdGU8L2d2LWJ1dHRvbj5cbiAgICAgICAgPGd2LWJ1dHRvbiBsaW5rIHNtYWxsIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uQ2FuY2VsRHVwbGljYXRlfVwiPkNhbmNlbDwvZ3YtYnV0dG9uPlxuICAgICAgPC9kaXY+YDtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmVtcHR5KSB7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5zdGVwID8gdGhpcy5zdGVwLm5hbWUgOiAnJztcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy5zdGVwICYmIHRoaXMuc3RlcC5kZXNjcmlwdGlvbiA/IHRoaXMuc3RlcC5kZXNjcmlwdGlvbiA6ICcnO1xuICAgICAgY29uc3QgaGFzQ29uZGl0aW9uYWxTdGVwcyA9IHRoaXMuc3RlcCAmJiAhIXRoaXMuc3RlcC5jb25kaXRpb247XG4gICAgICBjb25zdCBpY29uID0gdGhpcy5zdGVwID8gdGhpcy5wb2xpY3kgJiYgdGhpcy5wb2xpY3kuaWNvbiA6IG51bGw7XG4gICAgICBjb25zdCBlbmFibGVkID0gdGhpcy5zdGVwICYmIHRoaXMuc3RlcC5lbmFibGVkICE9PSBmYWxzZTtcbiAgICAgIGNvbnN0IG5vdEZvdW5kID0gdGhpcy5wb2xpY3kgPT0gbnVsbDtcbiAgICAgIGlmIChub3RGb3VuZCkge1xuICAgICAgICB0aGlzLnRpdGxlID0gJ1dhcm5pbmc6IHBvbGljeSBub3QgZm91bmQgaW4gcGx1Z2lucyBmb2xkZXInO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50aXRsZSA9IGRlc2NyaXB0aW9uO1xuICAgICAgfVxuICAgICAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICAgICAgJ2Ryb3AtYXJlYSc6IHRydWUsXG4gICAgICAgICdpcy1hc3NpZ25lZCc6IG5hbWUgIT09ICcnLFxuICAgICAgICAnaGFzLWljb24nOiBpY29uICE9IG51bGwsXG4gICAgICAgIGRpc2FibGVkOiAhZW5hYmxlZCxcbiAgICAgICAgJ25vdC1mb3VuZCc6IG5vdEZvdW5kLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBodG1sYDxkaXZcbiAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiXG4gICAgICAgIEBjbGljaz1cIiR7dGhpcy5fb25DbGlja31cIlxuICAgICAgICBAbW91c2VlbnRlcj1cIiR7dGhpcy5fb25Nb3VzZUVudGVyfVwiXG4gICAgICAgIEBtb3VzZWxlYXZlPVwiJHt0aGlzLl9vbk1vdXNlTGVhdmV9XCJcbiAgICAgID5cbiAgICAgICAgJHt0aGlzLl9yZW5kZXJEcm9wZG93bk1lbnUoKX1cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1pY29uXCI+XG4gICAgICAgICAgICAke2hhc0NvbmRpdGlvbmFsU3RlcHMgPyBodG1sYDxndi1pY29uIGNsYXNzPVwiY29udGVudC1pY29uLWNvbmRpdGlvbmFsXCIgc2hhcGU9XCJkZXNpZ246Y29uZGl0aW9uYWxcIj48L2d2LWljb24+YCA6IGh0bWxgYH1cbiAgICAgICAgICAgICR7aWNvbiA/IGh0bWxgPGd2LWltYWdlIHNyYz1cIiR7aWNvbn1cIj48L2d2LWltYWdlPmAgOiBodG1sYGB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAke2ljb24gPT0gbnVsbCAmJiBub3RGb3VuZCA/IGh0bWxgPGd2LWljb24gY2xhc3M9XCJub3QtZm91bmRfX2ljb25cIiBzaGFwZT1cImZpbmFuY2U6Zm9sZGVyLWVycm9yXCI+PC9ndi1pY29uPmAgOiAnJ31cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj4ke25hbWV9PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj4ke2Rlc2NyaXB0aW9ufTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PiBgO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiZHJvcC1hcmVhXCI+PC9kaXY+YDtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIG1hcmdpbjogMC4ycmVtO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoOmFjdGl2ZSkge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbZHJhZ2dpbmddKSB7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtZHJvcGRvd24tbWVudSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogcmlnaHQ7XG4gICAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAtLWd2LWRyb3Bkb3duLW1lbnUtLWJkdzogMCAwIDAgMXB4O1xuICAgICAgICAgIC0tZ3YtZHJvcGRvd24tbWVudS0tcDogMC4xcmVtIDAuM3JlbTtcbiAgICAgICAgICAtLWd2LWRyb3Bkb3duLW1lbnUtLWdnOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3Ytc3dpdGNoIHtcbiAgICAgICAgICBtYXJnaW46IDAuMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW2hvdmVyXSkgLmRyb3AtYXJlYSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjNWE3Njg0LCAwIDFweCAzcHggIzVhNzY4NDtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW2RyYWdnaW5nXSkgLmRyb3AtYXJlYSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW2VkaXRpbmddKSAuZHJvcC1hcmVhIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICM1YTc2ODQ7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjNWE3Njg0LCAwIDFweCAzcHggIzVhNzY4NDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFt3LWx0LTIwMF0pIGd2LWltYWdlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgb3BhY2l0eTogMC4xO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3ctbHQtMjAwXSkgLmRyb3AtYXJlYTpob3ZlciBndi1pbWFnZSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFt3LWx0LTIwMF0pIC5jb250ZW50LWljb24ge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbdy1sdC0xMDBdKSAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbZW1wdHldKSAuZHJvcC1hcmVhIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICNiZmJmYmY7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmRlc2NyaXB0aW9uIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgbWF4LWhlaWdodDogNDJweDtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRyb3AtYXJlYSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAjYmZiZmJmO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgICAgbWluLXdpZHRoOiA4MHB4O1xuICAgICAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAtLWd2LWJ1dHRvbi0tZno6IDExcHg7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAxNTBtcyBlYXNlLWluLW91dCwgdHJhbnNmb3JtIDAuM3MgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgMC4zcyBlYXNlLWluLW91dCwgYm9yZGVyIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAuZHJvcC1hcmVhLmRpc2FibGVkIHtcbiAgICAgICAgICAvKm9wYWNpdHk6IDAuNzsqL1xuICAgICAgICAgIC8qYmFja2dyb3VuZC1jb2xvcjogI0JGQkZCRjsgISogZmFsbGJhY2sgY29sb3IgaWYgZ3JhZGllbnRzIGFyZSBub3Qgc3VwcG9ydGVkICohKi9cbiAgICAgICAgICAvKmJvcmRlci1jb2xvcjogd2hpdGU7Ki9cbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICAuZHJvcC1hcmVhLm5vdC1mb3VuZCB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ndi10aGVtZS1jb2xvci13YXJuaW5nLWxpZ2h0LCAjZmZiNzRkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wLWFyZWEuaGFzLWljb24ge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmRyb3AtYXJlYS5oYXMtaWNvbiAuY29udGVudCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmRyb3AtYXJlYS5pcy1hc3NpZ25lZCB7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtob3Zlcl0pIC5kcm9wLWFyZWEuaXMtYXNzaWduZWQ6bm90KC5ub3QtZm91bmQpIHtcbiAgICAgICAgICBjdXJzb3I6IGdyYWI7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbaG92ZXJdKSAuZHJvcC1hcmVhLmlzLWFzc2lnbmVkOm5vdCgubm90LWZvdW5kKTphY3RpdmUge1xuICAgICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbcmVhZG9ubHldKSAuZHJvcC1hcmVhLmlzLWFzc2lnbmVkOm5vdCgubm90LWZvdW5kKSxcbiAgICAgICAgOmhvc3QoW3JlYWRvbmx5XSkgLmRyb3AtYXJlYS5pcy1hc3NpZ25lZDpub3QoLm5vdC1mb3VuZCk6YWN0aXZlIHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50ID4gZGl2LFxuICAgICAgICAuY29udGVudCA+IG1hcmsge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQtaWNvbiB7XG4gICAgICAgICAgZmxleDogMCAxIDAlO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgbWFyZ2luOiAwLjJyZW07XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRlbnQtaWNvbi1jb25kaXRpb25hbCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgIG1hcmdpbjogMC4ycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaW1hZ2Uge1xuICAgICAgICAgIGhlaWdodDogODBweDtcbiAgICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ub3QtZm91bmRfX2ljb24ge1xuICAgICAgICAgIC0tZ3YtaWNvbi0tYzogdmFyKC0tZ3YtdGhlbWUtY29sb3Itd2FybmluZy1saWdodCwgI2ZmYjc0ZCk7XG4gICAgICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgICAgIG1hcmdpbjogMC4ycmVtO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuZHJvcC1hcmVhLWNvbmZpcm0ge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQb2xpY3lEcmFnZ2FibGUge1xuICBzdGF0aWMgcGFyc2Uoc3RyKSB7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2Uoc3RyKTtcbiAgICByZXR1cm4gbmV3IFBvbGljeURyYWdnYWJsZShkYXRhLnBvbGljeSwgZGF0YS5zb3VyY2VQb3NpdGlvbiwgZGF0YS5zb3VyY2VGbG93S2V5LCBkYXRhLnNvdXJjZUZsb3dJZCwgZGF0YS5mbG93U3RlcCk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwb2xpY3ksIHNvdXJjZVBvc2l0aW9uLCBzb3VyY2VGbG93S2V5LCBzb3VyY2VGbG93SWQsIGZsb3dTdGVwKSB7XG4gICAgdGhpcy5wb2xpY3kgPSBwb2xpY3k7XG4gICAgdGhpcy5zb3VyY2VQb3NpdGlvbiA9IHNvdXJjZVBvc2l0aW9uO1xuICAgIHRoaXMuc291cmNlRmxvd0tleSA9IHNvdXJjZUZsb3dLZXk7XG4gICAgdGhpcy5zb3VyY2VGbG93SWQgPSBzb3VyY2VGbG93SWQ7XG4gICAgdGhpcy5mbG93U3RlcCA9IGZsb3dTdGVwO1xuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LWZsb3ctc3RlcCcsIEd2Rmxvd1N0ZXApO1xuIl19
|