simpo-component-library 2.0.28 → 2.0.30

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLXNlY3Rpb24ubW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2Zvb3Rlci1zZWN0aW9uL2Zvb3Rlci1zZWN0aW9uLm1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFubmVsVHlwZSwgRm9vdGVyVHlwZXMgfSBmcm9tIFwiLi8uLi8uLi9zdHlsZXMvaW5kZXhcIlxyXG5pbXBvcnQgeyBBY3Rpb25Nb2RlbCwgQmFja2dyb3VuZE1vZGVsLCBJbnB1dFRleHRNb2RlbCwgU3BhY2luZ01vZGVsIH0gZnJvbSBcIi4vLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsXCJcclxuaW1wb3J0IHsgRk9PVEVSX0lNQUdFX1NPVVJDRSwgU09DSUFMX0lDT05fU0hBUEUsIFNPQ0lBTF9JQ09OX1NJWkUsIFNPQ0lBTF9JQ09OX1RZUEUgfSBmcm9tIFwiLi8uLi8uLi9zdHlsZXMvdHlwZXNcIlxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb290ZXJTZWN0aW9uTW9kZWx7XHJcbiAgICBpZDpzdHJpbmcsXHJcbiAgICBzZWN0aW9uVHlwZTpzdHJpbmcsXHJcbiAgICBzZWN0aW9uTmFtZTpzdHJpbmcsXHJcbiAgICBjb250ZW50OkZvb3RlckNvbnRlbnRNb2RlbCxcclxuICAgIHN0eWxlczpGb290ZXJTdHlsZXNNb2RlbCxcclxuICAgIGFjdGlvbjogQWN0aW9uTW9kZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9vdGVyU3R5bGVzTW9kZWx7XHJcbiAgICBsYXlvdXQgOiBGb290ZXJMYXlvdXRNb2RlbCxcclxuICAgIGJhY2tncm91bmQgOiBCYWNrZ3JvdW5kTW9kZWwsXHJcbiAgICBmb290ZXJUeXBlIDogRm9vdGVyVHlwZXMsXHJcbiAgICBzb2NpYWxJY29uIDogRm9vdGVyU29jaWFsSWNvblNpemVNb2RlbFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvb3RlckxheW91dE1vZGVsIHtcclxuICAgIHNwYWNpbmcgOiBTcGFjaW5nTW9kZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9vdGVyU29jaWFsSWNvblNpemVNb2RlbHtcclxuICAgIHNpemU6U09DSUFMX0lDT05fU0laRSxcclxuICAgIHNoYXBlOlNPQ0lBTF9JQ09OX1NIQVBFLFxyXG4gICAgdHlwZTpTT0NJQUxfSUNPTl9UWVBFXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9vdGVyQ29udGVudE1vZGVse1xyXG4gICAgc2l0ZU5hbWVBbmRMb2dvOnN0cmluZyxcclxuICAgIHNpdGVOYW1lOklucHV0VGV4dE1vZGVsLFxyXG4gICAgYWRkaXRpb25hbERldGFpbHM6SW5wdXRUZXh0TW9kZWwsXHJcbiAgICBsb2dvOkZvb3RlckxvZ29Nb2RlbCxcclxuICAgIGltYWdlOiBGb290ZXJJbWFnZU1vZGVsLFxyXG4gICAgc29jaWFsTGlua3M6Rm9vdGVyU29jaWFsTGlua01vZGVsLFxyXG4gICAgZGlzcGxheUJyYW5kaW5nOmJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb290ZXJMb2dvTW9kZWx7XHJcbiAgICBpc0ltYWdlIDogYm9vbGVhbixcclxuICAgIHRleHQ6Rm9vdGVyTG9nb1RleHRNb2RlbCxcclxuICAgIGltYWdlOmZvb3RlckxvZ29icmFuZGluZ01vZGVsO1xyXG4gICAgc2l6ZTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGZvb3RlckxvZ29icmFuZGluZ01vZGVse1xyXG4gICAgc291cmNlOkZPT1RFUl9JTUFHRV9TT1VSQ0UsXHJcbiAgICB1cmw6c3RyaW5nXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGb290ZXJMb2dvVGV4dE1vZGVse1xyXG4gICAgaXNUZXh0IDogYm9vbGVhbixcclxuICAgIGlzSWNvbiA6IGJvb2xlYW4sXHJcbiAgICB1cmw6c3RyaW5nLFxyXG4gICAgZm9udEZhbWlseTpzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb290ZXJJbWFnZU1vZGVse1xyXG4gICAgc291cmNlOkZPT1RFUl9JTUFHRV9TT1VSQ0UsXHJcbiAgICB1cmw6c3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9vdGVyU29jaWFsTGlua01vZGVse1xyXG4gICAgZGlzcGxheTpib29sZWFuLFxyXG4gICAgY2hhbm5lbHM6Rm9vdGVyU29jaWFsQ2hhbm5lbE1vZGVsW11cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb290ZXJTb2NpYWxDaGFubmVsTW9kZWx7XHJcbiAgICB0eXBlOkNoYW5uZWxUeXBlLFxyXG4gICAgdXJsOnN0cmluZyxcclxuICAgIGxpbms6c3RyaW5nXHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLXNlY3Rpb24ubW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2Zvb3Rlci1zZWN0aW9uL2Zvb3Rlci1zZWN0aW9uLm1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFubmVsVHlwZSwgRm9vdGVyVHlwZXMgfSBmcm9tIFwiLi8uLi8uLi9zdHlsZXMvaW5kZXhcIlxyXG5pbXBvcnQgeyBBY3Rpb25Nb2RlbCwgQmFja2dyb3VuZE1vZGVsLCBJbnB1dFRleHRNb2RlbCwgTmF2YmFyQnV0dG9uLCBTcGFjaW5nTW9kZWwgfSBmcm9tIFwiLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWxcIlxyXG5pbXBvcnQgeyBGT09URVJfSU1BR0VfU09VUkNFLCBTT0NJQUxfSUNPTl9TSEFQRSwgU09DSUFMX0lDT05fU0laRSwgU09DSUFMX0lDT05fVFlQRSB9IGZyb20gXCIuLy4uLy4uL3N0eWxlcy90eXBlc1wiXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvb3RlclNlY3Rpb25Nb2RlbHtcclxuICAgIGlkOnN0cmluZyxcclxuICAgIHNlY3Rpb25UeXBlOnN0cmluZyxcclxuICAgIHNlY3Rpb25OYW1lOnN0cmluZyxcclxuICAgIGNvbnRlbnQ6Rm9vdGVyQ29udGVudE1vZGVsLFxyXG4gICAgc3R5bGVzOkZvb3RlclN0eWxlc01vZGVsLFxyXG4gICAgYWN0aW9uOiBBY3Rpb25Nb2RlbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb290ZXJTdHlsZXNNb2RlbHtcclxuICAgIGxheW91dCA6IEZvb3RlckxheW91dE1vZGVsLFxyXG4gICAgYmFja2dyb3VuZCA6IEJhY2tncm91bmRNb2RlbCxcclxuICAgIGZvb3RlclR5cGUgOiBGb290ZXJUeXBlcyxcclxuICAgIHNvY2lhbEljb24gOiBGb290ZXJTb2NpYWxJY29uU2l6ZU1vZGVsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9vdGVyTGF5b3V0TW9kZWwge1xyXG4gICAgc3BhY2luZyA6IFNwYWNpbmdNb2RlbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb290ZXJTb2NpYWxJY29uU2l6ZU1vZGVse1xyXG4gICAgc2l6ZTpTT0NJQUxfSUNPTl9TSVpFLFxyXG4gICAgc2hhcGU6U09DSUFMX0lDT05fU0hBUEUsXHJcbiAgICB0eXBlOlNPQ0lBTF9JQ09OX1RZUEVcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb290ZXJDb250ZW50TW9kZWx7XHJcbiAgICBzaXRlTmFtZUFuZExvZ286c3RyaW5nLFxyXG4gICAgc2l0ZU5hbWU6SW5wdXRUZXh0TW9kZWwsXHJcbiAgICBhZGRpdGlvbmFsRGV0YWlsczpJbnB1dFRleHRNb2RlbCxcclxuICAgIGxvZ286Rm9vdGVyTG9nb01vZGVsLFxyXG4gICAgaW1hZ2U6IEZvb3RlckltYWdlTW9kZWwsXHJcbiAgICBuYXZiYXJCdXR0b25zOiBOYXZiYXJCdXR0b25bXSxcclxuICAgIHNvY2lhbExpbmtzOkZvb3RlclNvY2lhbExpbmtNb2RlbCxcclxuICAgIGRpc3BsYXlCcmFuZGluZzpib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9vdGVyTG9nb01vZGVse1xyXG4gICAgaXNJbWFnZSA6IGJvb2xlYW4sXHJcbiAgICB0ZXh0OkZvb3RlckxvZ29UZXh0TW9kZWwsXHJcbiAgICBpbWFnZTpmb290ZXJMb2dvYnJhbmRpbmdNb2RlbDtcclxuICAgIHNpemU6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBmb290ZXJMb2dvYnJhbmRpbmdNb2RlbHtcclxuICAgIHNvdXJjZTpGT09URVJfSU1BR0VfU09VUkNFLFxyXG4gICAgdXJsOnN0cmluZ1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9vdGVyTG9nb1RleHRNb2RlbHtcclxuICAgIGlzVGV4dCA6IGJvb2xlYW4sXHJcbiAgICBpc0ljb24gOiBib29sZWFuLFxyXG4gICAgdXJsOnN0cmluZyxcclxuICAgIGZvbnRGYW1pbHk6c3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9vdGVySW1hZ2VNb2RlbHtcclxuICAgIHNvdXJjZTpGT09URVJfSU1BR0VfU09VUkNFLFxyXG4gICAgdXJsOnN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvb3RlclNvY2lhbExpbmtNb2RlbHtcclxuICAgIGRpc3BsYXk6Ym9vbGVhbixcclxuICAgIGNoYW5uZWxzOkZvb3RlclNvY2lhbENoYW5uZWxNb2RlbFtdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9vdGVyU29jaWFsQ2hhbm5lbE1vZGVse1xyXG4gICAgdHlwZTpDaGFubmVsVHlwZSxcclxuICAgIHVybDpzdHJpbmcsXHJcbiAgICBsaW5rOnN0cmluZ1xyXG59XHJcbiJdfQ==
@@ -211,7 +211,7 @@ export class NavbarSectionComponent {
211
211
  let count = 0;
212
212
  let page = [];
213
213
  for (let button of this.content?.navbarButtons || []) {
214
- if (count < 3 && button.showHeader) {
214
+ if (count < 4 && button.showHeader) {
215
215
  page.push(button);
216
216
  count++;
217
217
  }
@@ -275,4 +275,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
275
275
  type: HostListener,
276
276
  args: ['window:resize', ['$event']]
277
277
  }] } });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9uYXZiYXItc2VjdGlvbi9uYXZiYXItc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL25hdmJhci1zZWN0aW9uL25hdmJhci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUd0SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENB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RSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLDRCQUE0Qjt3QkFDNUIsV0FBVzt3QkFDWCxzQkFBc0I7d0JBQ3RCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsOEJBQThCO3dCQUM5QixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsMEJBQTBCO3dCQUMxQixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGdDQUFnQzt3QkFDaEMsZ0NBQWdDO3dCQUNoQyxjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixhQUFhO3FCQUNkO21SQU1RLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDdUIsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBc0QzQixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW1CekMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSGVhZGVyQ29udGVudE1vZGVsLCBIZWFkZXJTZWN0aW9uTW9kZWwsIEhlYWRlclN0eWxlTW9kZWwgfSBmcm9tICcuL25hdmJhci1zZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU2ltcG9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9zaW1wby1idXR0b24vc2ltcG8tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNvY2lhSWNvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9zb2NpYS1pY29ucy9zb2NpYS1pY29ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE5hdmJhckJ1dHRvbkVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLy4uLy4uL2VsZW1lbnRzL25hdmJhci1idXR0b24tZWxlbWVudC9uYXZiYXItYnV0dG9uLWVsZW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCYW5uZXJDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Jhbm5lci1jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYm9yZGVyLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbHVtbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb2x1bW4tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRhaW5lckZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250YWluZXItZmlyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWFsaWdubWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3JuZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29ybmVyLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNpbXBvRm9vdGVyTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Zvb3Rlci1sYXlvdXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgT3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9vdmVybGF5LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFBvc2l0aW9uTGF5b3V0RGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3Bvc2l0aW9uLWxheW91dC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVGV4dEJhY2tncm91bmREaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvdGV4dC1iYWNrZ3JvdW5kLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3ZlckVsZW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi9jb21wb25lbnRzL2hvdmVyLWVsZW1lbnRzL2hvdmVyLWVsZW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjdGlvbk1vZGVsLCBCYWNrZ3JvdW5kTW9kZWwgfSBmcm9tICcuLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBDb2xvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb2xvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb1N0aWNreURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zdGlja3ktZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG4vLyBpbXBvcnQgVXNlckNhcnQgZnJvbSAnLi4vLi4vZWNvbW1lcmNlL2pzb24vdXNlci1jYXJ0Lmpzb24nO1xyXG4vLyBpbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZVVzZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vZWNvbW1lcmNlL3NlY3Rpb25zL2F1dGhlbnRpY2F0ZS11c2VyL2F1dGhlbnRpY2F0ZS11c2VyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtNYXRNZW51TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc3R5bGVzL3VzZXIubW9kYWwnO1xyXG5pbXBvcnQgeyBHZW5kZXJJY29uIH0gZnJvbSAnLi4vLi4vcGlwZXMvZ2VuZGVyLnBpcGUnO1xyXG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldCwgTWF0Qm90dG9tU2hlZXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXQnO1xyXG5pbXBvcnQgeyBDYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWNvbW1lcmNlL3NlY3Rpb25zL2NhcnQvY2FydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIRUFERVJfU1RZTElORywgUHJvZHVjdENhcmRUaGVtZSB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uUmVxdWlyZWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRpb24tcmVxdWlyZWQvYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1uYXZiYXItc2VjdGlvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBTaW1wb0J1dHRvbkNvbXBvbmVudCxcclxuICAgIEdlbmRlckljb24sXHJcbiAgICBDYXJ0Q29tcG9uZW50LFxyXG4gICAgU29jaWFJY29uc0NvbXBvbmVudCxcclxuICAgIE1hdEljb24sXHJcbiAgICBOYXZiYXJCdXR0b25FbGVtZW50Q29tcG9uZW50LFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBIb3ZlckVsZW1lbnRzQ29tcG9uZW50LFxyXG4gICAgQW5pbWF0aW9uRGlyZWN0aXZlLFxyXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcclxuICAgIEJhbm5lckNvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBCb3JkZXJEaXJlY3RpdmUsXHJcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb250YWluZXJGaXREaXJlY3RpdmUsXHJcbiAgICBzaW1wb0NvbmV0ZW5BbGlnbm1lbnREaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gICAgU2ltcG9Gb290ZXJMYXlvdXREaXJlY3RpdmUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuICAgIEltYWdlRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcclxuICAgIFNpbXBvU3RpY2t5RGlyZWN0aXZlLFxyXG4gICAgUG9zaXRpb25MYXlvdXREaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbG9yRGlyZWN0aXZlLFxyXG4gICAgTWF0Qm90dG9tU2hlZXRNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9uYXZiYXItc2VjdGlvbi5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmF2YmFyU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuXHJcbiAgQElucHV0KCkgZGF0YSA/OiBIZWFkZXJTZWN0aW9uTW9kZWw7XHJcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudDogYW55O1xyXG4gIEBJbnB1dCgpIGluZGV4PyA6IG51bWJlcjtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICBASW5wdXQoKSBlZGl0PyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKFwiY2hpbGRDb250YWluZXJcIikgY2hpbGRDb250YWluZXI6IGFueTtcclxuICBwdWJsaWMgc2Nyb2xsVmFsdWU6IG51bWJlciA9IDA7XHJcbiAgY29udGVudCA/IDogSGVhZGVyQ29udGVudE1vZGVsO1xyXG4gIHN0eWxlID86IEhlYWRlclN0eWxlTW9kZWxcclxuICBhY3Rpb24/OiBBY3Rpb25Nb2RlbFxyXG4gIGNvbG9yID0gJyMwMDAwMDAnO1xyXG4gIHNlYXJjaFRleHQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgdGhlbWUgPSBQcm9kdWN0Q2FyZFRoZW1lO1xyXG4gIEhlYWRlclN0eWxpbmcgPSBIRUFERVJfU1RZTElOR1xyXG4gIC8vIG1hdERpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2UgOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYm90dG9tU2hlZXQ6IE1hdEJvdHRvbVNoZWV0LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2VcclxuICApe1xyXG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUFsbERhdGEoKTtcclxuICB9XHJcbiAgc2VhcmNoUHJvZHVjdHMoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHtxdWVyeVBhcmFtczoge3NlYXJjaFR4dDogdGhpcy5zZWFyY2hUZXh0fX0pO1xyXG4gIH1cclxuICBnb1RvRmF2KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvd2lzaGxpc3QnXSk7XHJcbiAgfVxyXG4gIGdvVG9BY2NvdW50KCkge1xyXG5cclxuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcm9maWxlJ10pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tYXREaWFsb2cub3BlbihBdXRoZW50aWNhdGlvblJlcXVpcmVkQ29tcG9uZW50LCB7cGFuZWxDbGFzczogXCJhdXRoZW50aWNhdGVcIiB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ29Ub1dpc2hsaXN0KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvd2lzaGxpc3QnXSk7XHJcbiAgfVxyXG4gIGdvVG9DYXJ0KCl7XHJcbiAgICBpZiAoZmFsc2UpIHtcclxuICAgICAgdGhpcy5tYXREaWFsb2cub3BlbihDYXJ0Q29tcG9uZW50LCB7IHdpZHRoOiAnMjh2dycsIHBhbmVsQ2xhc3M6ICdzaWRlcGFuZWwtY2xhc3MnLCBkYXRhOiB7IHdpbmRvdzogdHJ1ZSB9IH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY2FydCddKTtcclxuICAgIH1cclxuICB9XHJcbiAgYXBwbHlGaWx0ZXIodmFsdWU6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICB2YWx1ZSA9IHZhbHVlWzBdPy5yZXBsYWNlKFwiIFwiLCBcIl9cIik7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHtxdWVyeVBhcmFtczogeyBbdHlwZV06IHZhbHVlIH19KTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXHJcbiAgb25TY3JvbGwoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zY3JvbGxWYWx1ZSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQucGFnZVlPZmZzZXQgLyAxMDA7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdHlsZSA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG4gICAgdGhpcy5hY3Rpb24gPSB0aGlzLmRhdGE/LmFjdGlvbjtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChxUGFyYW0pPT4ge1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHQgPSBxUGFyYW1bXCJzZWFyY2hUeHRcIl07XHJcbiAgICB9KVxyXG4gICAgLy8gaWYgKHRoaXMuc3R5bGU/LmJhY2tncm91bmQgJiYgdGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcy5tZXJnZSkge1xyXG4gICAgLy8gICB0aGlzLnN0eWxlLmJhY2tncm91bmQuY29sb3IgPSB0aGlzLm5leHRDb21wb25lbnQuc3R5bGVzLmJhY2tncm91bmQuY29sb3I7XHJcbiAgICAvLyAgIHRoaXMuc3R5bGUuYmFja2dyb3VuZC5hY2NlbnRDb2xvciA9IHRoaXMubmV4dENvbXBvbmVudC5zdHlsZXMuYmFja2dyb3VuZC5hY2NlbnRDb2xvcjtcclxuICAgIC8vIH1cclxuICB9XHJcbiAgaXNOYXZiYXJPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2NyZWVuV2lkdGg6IG51bWJlciA9IDQ3NTtcclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBnZXRTY3JlZW5TaXplKGV2ZW50PzogbnVtYmVyKSB7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgZ2V0UGFyZW50SGVpZ2h0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hpbGRDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/Lm9mZnNldEhlaWdodCA/PyAwO1xyXG4gIH1cclxuICBnZXQgZ2V0RHJvcGRvd25MaW5rcygpIHtcclxuICAgIGlmICh0aGlzLmNvbnRlbnQ/LmVjb21saW5rcylcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY29udGVudD8uZWNvbWxpbmtzKTtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcbiAgZ2V0IGlzRWNvbW1lcmNlV2Vic2l0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LnR5cGUgPT0gXCJFX0NPTU1FUkNFXCI7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpe1xyXG4gICAgLy8gbGV0IGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIm5hdmJhck5hdkFsdE1hcmt1cFwiKTtcclxuICAgIC8vIGlmKCFhKSByZXR1cm47XHJcbiAgICAvLyAvLyBhLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIlxyXG4gICAgLy8gYS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcclxuICAgIC8vIGEuY2xhc3NMaXN0LmFkZChcImNvbGxhcHNlXCIpXHJcbiAgICB0aGlzLmlzTmF2YmFyT3BlbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2hvd0VkaXRvcnMgOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHNob3dFZGl0VGFicyhpc1Nob3c6Ym9vbGVhbil7XHJcbiAgICB0aGlzLnNob3dFZGl0b3JzID0gaXNTaG93O1xyXG4gIH1cclxuICBnb1RvSG9tZSgpIHtcclxuICAgIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdSRVFVRVNUX0ZST00nKSA9PT0gJ0VfQ09NTUVSQ0UnKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycnXSk7XHJcbiAgfVxyXG4gIGdldCBpc0hlYWRlclN0aWNreSgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LnN0eWxlcz8uc3RpY2t5IHx8IHRoaXMuaXNFY29tbWVyY2VXZWJzaXRlO1xyXG4gIH1cclxuICBnZXQgYmFja2dyb3VuZEluZm8oKSB7XHJcbiAgICBsZXQgYmFja2dyb3VuZDogQmFja2dyb3VuZE1vZGVsIHwge30gPSB7fTtcclxuICAgIGlmICh0aGlzLnN0eWxlKSB7XHJcbiAgICAgIGJhY2tncm91bmQgPSB7XHJcbiAgICAgICAgLi4udGhpcy5zdHlsZS5iYWNrZ3JvdW5kLFxyXG4gICAgICAgIHNob3dJbWFnZTogZmFsc2UsXHJcbiAgICAgICAgY29sb3I6IFwidHJhbnNwYXJlbnRcIlxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZSA/ICh0aGlzLnNjcm9sbFZhbHVlID4gMCA/IHsuLi50aGlzLm5leHRDb21wb25lbnQuc3R5bGVzLmJhY2tncm91bmQsIGNvbG9yOiB0aGlzLnN0eWxlPy5iYWNrZ3JvdW5kLmNvbG9yfSA6IHsuLi5iYWNrZ3JvdW5kfSkgOiB7Li4udGhpcy5kYXRhPy5zdHlsZXMuYmFja2dyb3VuZH07XHJcbiAgfVxyXG4gIGdldCBzaW1wb0NvbG9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZSA/ICh0aGlzLnNjcm9sbFZhbHVlID4gMCA/IHRoaXMuc3R5bGU/LmJhY2tncm91bmQuY29sb3IgOiB0aGlzLm5leHRDb21wb25lbnQuc3R5bGVzPy5iYWNrZ3JvdW5kPy5jb2xvcikgOiB0aGlzLnN0eWxlPy5iYWNrZ3JvdW5kPy5jb2xvcjtcclxuICB9XHJcbiAgZ2V0IGFjY2VudENvbG9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZSA/ICh0aGlzLnNjcm9sbFZhbHVlID4gMCA/IHRoaXMuc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yIDogdGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IpIDogdGhpcy5zdHlsZT8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3I7XHJcbiAgfVxyXG4gIGdldCBpc1RyYW5zcGFyZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZSAmJiB0aGlzLnNjcm9sbFZhbHVlID09IDA7XHJcbiAgfVxyXG4gIHJlZGlyZWN0VG8oY29udGVudDogYW55KXtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5idXR0b25SZWRpcmVjdGlvbi5lbWl0KHtkYXRhOiBjb250ZW50fSk7XHJcbiAgfVxyXG5cclxuICBzaG93U2VhcmNoQmFyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGdldCBpc0NvbXBvbmVudE1lcmdlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2U7XHJcbiAgfVxyXG4gIGVkaXRTZWN0aW9uKCl7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpPT4ge1xyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7ZGF0YTp0aGlzLmRhdGF9KTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FuU2hvd01vYmlsZUZvb3RlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmlzRWNvbW1lcmNlV2Vic2l0ZTtcclxuICB9XHJcblxyXG4gIGdldCBzaG93TW9iaWxlSG9tZUljb24oKSB7XHJcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuICAgIHJldHVybiAhKHVybC5pbmNsdWRlcyhcImNhcnRcIikgfHwgdXJsLmluY2x1ZGVzKFwicHJvZmlsZVwiKSB8fCB1cmwuaW5jbHVkZXMoXCJ3aXNobGlzdFwiKSk7XHJcbiAgfVxyXG4gIGdldCBnZXRDYXJ0SXRlbXNDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VG90YWxDYXJ0SXRlbXM7XHJcbiAgfVxyXG4gIGdldCBnZXRIZWFkZXJTdHlsaW5nKCk6IEhFQURFUl9TVFlMSU5HIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnN0eWxlPy5zdHlsaW5nO1xyXG4gIH1cclxuICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPCA0NzU7XHJcbiAgfVxyXG4gIGdldEtleXMob2JqZWN0OiBhbnkpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KTtcclxuICB9XHJcbiAgZ2V0VmFsdWVzKG9iamVjdDogYW55KTogdW5rbm93bltdIHtcclxuICAgIGNvbnN0IGtleXM6IHVua25vd25bXSA9IFtdO1xyXG4gICAgb2JqZWN0LmZvckVhY2goKGtleTogYW55KT0+IGtleXMucHVzaChPYmplY3QudmFsdWVzKGtleSkpKTtcclxuICAgIHJldHVybiBbLi4ubmV3IFNldChrZXlzKV07XHJcbiAgfVxyXG4gIGdldCB1c2VyR2VuZGVyKCkge1xyXG4gICAgY29uc3QgdXNlciA9ICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSBhcyBVc2VyKTtcclxuICAgIGlmICh1c2VyKVxyXG4gICAgICByZXR1cm4gdXNlci5nZW5kZXI7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGdldCBnZXROYXZiYXJCdXR0b24oKSB7XHJcbiAgICBsZXQgY291bnQ6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgcGFnZTogYW55W10gPSBbXVxyXG4gICAgZm9yKGxldCBidXR0b24gb2YgdGhpcy5jb250ZW50Py5uYXZiYXJCdXR0b25zIHx8IFtdKSB7XHJcbiAgICAgIGlmKGNvdW50IDwgMyAmJiBidXR0b24uc2hvd0hlYWRlcil7XHJcbiAgICAgICAgcGFnZS5wdXNoKGJ1dHRvbik7XHJcbiAgICAgICAgY291bnQrKztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwYWdlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtpZF09XCJkYXRhPy5pZFwiIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0UGFyZW50SGVpZ2h0XCIgICAgW3NpbXBvQmFja2dyb3VuZF09XCJiYWNrZ3JvdW5kSW5mb1wiIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gIDxkaXYgI21haW5Db250YWluZXIgY2xhc3M9XCJ3LTEwMFwiIHN0eWxlPVwiei1pbmRleDogMTAwO1wiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb092ZXJsYXldPVwic3R5bGU/LmJhY2tncm91bmRcIiBbc2Nyb2xsVmFsdWVdPVwiaXNDb21wb25lbnRNZXJnZWQgPyBzY3JvbGxWYWx1ZSA6IDBcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cImJhY2tncm91bmRJbmZvXCIgW3NpbXBvU3RpY2t5XT1cImlzSGVhZGVyU3RpY2t5XCIgW25nQ2xhc3NdPVwieydlY29tU3R5bGUnOiBpc0Vjb21tZXJjZVdlYnNpdGV9XCI+XHJcbiAgICA8bmF2ICNjaGlsZENvbnRhaW5lciBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLWxnIGQtYmxvY2sgbWItMFwiIFtzaW1wb0Zvb3RlckxheW91dF09XCJzdHlsZT8ubGF5b3V0XCIgW25nQ2xhc3NdPVwieydhZGp1c3RlUGFkZGluZyc6ICFpc0Vjb21tZXJjZVdlYnNpdGUsICdwYWRkaW5nRWNvbSc6IGlzRWNvbW1lcmNlV2Vic2l0ZSwgJ25vLXNoYWRvdyc6IGlzQ29tcG9uZW50TWVyZ2VkfVwiPlxyXG4gICAgIDxuZy1jb250YWluZXIgICpuZ0lmPVwiIWlzTW9iaWxlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiAqbmdJZj1cImdldEhlYWRlclN0eWxpbmcgPT0gSGVhZGVyU3R5bGluZy5MT0dPX0xFRlRfX01FTlVfUklHSFRcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW0tY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGlua3NUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiICpuZ0lmPVwiZ2V0SGVhZGVyU3R5bGluZyA9PSBIZWFkZXJTdHlsaW5nLkxPR09fUklHSFRfX01FTlVfTEVGVFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xNVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvY2lhbEljb25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGlua3NUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiICpuZ0lmPVwiZ2V0SGVhZGVyU3R5bGluZyA9PSBIZWFkZXJTdHlsaW5nLkxPR09fQ0VOVEVSX19NRU5VX0xFRlRcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW0tY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMaW5rc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHB4LTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvZ29TZWN0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5hdmJhckxpbmtzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21tZXJjZUJ1dHRvbnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5TaG93TW9iaWxlRm9vdGVyXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9iaWxlRm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc01vYmlsZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vYmlsZUJ1dHRvbnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgPC9uYXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNsb2dvU2VjdGlvblRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCIgbGVmdC1sb2dvLXRleHQgZC1mbGV4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWxnLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiIWNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgfHwgIWNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiAoY2xpY2spPVwiZ29Ub0hvbWUoKVwiPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNJY29uICYmIGNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiPlxyXG4gICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiIGFsdD1cImxvZ29cIiBbd2lkdGhdPVwiY29udGVudD8ubG9nbz8uc2l6ZVwiIGxvYWRpbmc9XCJsYXp5XCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1zbWFsbFwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNUZXh0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPlxyXG4gICAgICAgIDxiIFtuZ1N0eWxlXT1cInsnZm9udC1mYW1pbHknOiBjb250ZW50Py5sb2dvPy50ZXh0Py5mb250RmFtaWx5fVwiPnt7Y29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWxnLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgKGNsaWNrKT1cImdvVG9Ib21lKClcIj5cclxuICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIGFsdD1cImxvZ29cIiBbd2lkdGhdPVwiY29udGVudD8ubG9nbz8uc2l6ZVwiIGxvYWRpbmc9XCJsYXp5XCI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbmF2YmFyTGlua3NUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwibmF2YmFyLWNvbGxhcHNlIGZzLTYgcG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA1cHg7IG1hcmdpbi1sZWZ0OiAyNXB4O1wiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiAqbmdJZj1cInNjcmVlbldpZHRoID4gNzY4XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldE5hdmJhckJ1dHRvblwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5zaG93SGVhZGVyXCI+XHJcbiAgICAgICAgPHNpbXBvLW5hdmJhci1idXR0b24tZWxlbWVudFxyXG4gICAgICAgICAgW2J1dHRvbkRhdGFdPVwiaXRlbVwiXHJcbiAgICAgICAgICBbc2VsZWN0ZWRTdHlsZV09XCJzdHlsZT8ubmF2aWdhdGlvblN0eWxlXCJcclxuICAgICAgICAgIFtidXR0b25TdHlsZV09XCJzdHlsZT8ubmF2YmFyQnV0dG9uU3R5bGVcIlxyXG4gICAgICAgICAgW2JnQ29sb3JdPVwic2ltcG9Db2xvclwiXHJcbiAgICAgICAgICBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCI+PC9zaW1wby1uYXZiYXItYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBnZXREcm9wZG93bkxpbmtzOyBsZXQgaWR4ID0gaW5kZXhcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQ/LmVjb21saW5rcz8uW2xpbmtdPy5sZW5ndGggXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cIm1hdC1idG4gZHJvcGRvd24tdG9nZ2xlXCIgdHlwZT1cImJ1dHRvblwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIlxyXG4gICAgICAgICAgICBpZD1cImxpbmtcIiBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAge3tsaW5rIHwgdXBwZXJjYXNlfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBhcmlhLWxhYmVsbGVkYnk9XCJsaW5rXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKm5nRm9yPVwibGV0IG1lbnUgb2YgZ2V0VmFsdWVzKGNvbnRlbnQ/LmVjb21saW5rcz8uW2xpbmtdKVwiIChjbGljayk9XCJhcHBseUZpbHRlcihtZW51LCBsaW5rKVwiPnt7bWVudX19PC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3NvY2lhbEljb25zVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBhbGlnbi1pdGVtcy1sZy1jZW50ZXIgZmxleC1jb2x1bW4gZmxleC1sZy1yb3cgZ2FwLWxnLTAgZ2FwLTNcIlxyXG4gICAgICAgW25nQ2xhc3NdPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXkgPyAnanVzdGlmeS1jb250ZW50LWJldHdlZW4nIDogJ2p1c3RpZnktY29udGVudC1lbmQnXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTBcIiAqbmdJZj1cImNvbnRlbnQ/LnNvY2lhbExpbmtzPy5kaXNwbGF5XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29udGVudD8uc29jaWFsTGlua3M/LmNoYW5uZWxzXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLXJpZ2h0OiAxMHB4O1wiPlxyXG4gICAgICAgICAgPHNpbXBvLXNvY2lhLWljb25zIFtzb2NpYWxJY29uRGF0YV09XCJpdGVtXCIgW2NvbG9yXT1cInNpbXBvQ29sb3JcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCI+PC9zaW1wby1zb2NpYS1pY29ucz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcGFnZUxpbmtzVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIm5hdmJhci1uYXYgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4O1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/Lm5hdmJhckJ1dHRvbnNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5zaG93SGVhZGVyXCI+XHJcbiAgICAgICAgICA8c2ltcG8tbmF2YmFyLWJ1dHRvbi1lbGVtZW50XHJcbiAgICAgICAgICAgIFtidXR0b25EYXRhXT1cIml0ZW1cIlxyXG4gICAgICAgICAgICBbc2VsZWN0ZWRTdHlsZV09XCJzdHlsZT8ubmF2aWdhdGlvblN0eWxlXCJcclxuICAgICAgICAgICAgW2J1dHRvblN0eWxlXT1cInN0eWxlPy5uYXZiYXJCdXR0b25TdHlsZVwiXHJcbiAgICAgICAgICAgIFtiZ0NvbG9yXT1cInNpbXBvQ29sb3JcIlxyXG4gICAgICAgICAgICBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCI+PC9zaW1wby1uYXZiYXItYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2J1dHRvbnNUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aW9uPy5kaXNwbGF5XCIgY2xhc3M9XCJidXR0b24tZGlzcGxheSBtdC0wXCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBhY3Rpb24/LmJ1dHRvbnNcIj5cclxuICAgICAgICA8YXBwLWJ1dHRvbi1lbGVtZW50XHJcbiAgICAgICAgICBbYnV0dG9uQ29udGVudF09XCJidXR0b24uY29udGVudFwiXHJcbiAgICAgICAgICBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uLnN0eWxlc1wiXHJcbiAgICAgICAgICBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICAgIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Vjb21tZXJjZUJ1dHRvbnNUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwianVzdGlmeS1jb250ZW50LWJldHdlZW4gcHItMCBkLWZsZXggcG9zaXRpb24tcmVsYXRpdmVcIiBzdHlsZT1cIm1heC13aWR0aDogNTB2dztcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaWNvblwiICpuZ0lmPVwiIWlzTW9iaWxlXCIgKGNsaWNrKT1cInNob3dTZWFyY2hCYXIgPSAhc2hvd1NlYXJjaEJhclwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiICpuZ0lmPVwiIWlzTW9iaWxlICYmIHNob3dTZWFyY2hCYXJcIj5cclxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUHJvZHVjdC4uXCIgYXJpYS1sYWJlbD1cIlNlYXJjaCBQcm9kdWN0XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoUHJvZHVjdHMoKVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiZ2FwOiA1cHg7IGN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwiZ29Ub0ZhdigpXCIgKm5nSWY9XCIhaXNNb2JpbGVcIj5cclxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5mYXZvcml0ZV9ib3JkZXI8L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImZ3LW5vcm1hbCBmcy02XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPldpc2hsaXN0PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteC0zIHBvc2l0aW9uLXJlbGF0aXZlXCIgc3R5bGU9XCJnYXA6IDVweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvQ2FydCgpXCIgKm5nSWY9XCIhaXNNb2JpbGVcIj5cclxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5zaG9wcGluZ19jYXJ0PC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ub3JtYWwgZnMtNlwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5CYWc8L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSBjYXJ0SXRlbUNvdW50XCIgKm5nSWY9XCJnZXRDYXJ0SXRlbXNDb3VudFwiPnt7Z2V0Q2FydEl0ZW1zQ291bnR9fTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiZ2FwOiA1cHg7IGN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwiZ29Ub0FjY291bnQoKVwiPlxyXG4gICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJ1c2VyR2VuZGVyIHwgZ2VuZGVySWNvblwiIHN0eWxlPVwiaGVpZ2h0OiAzMHB4O1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImZ3LW5vcm1hbCBmcy02XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiICpuZ0lmPVwiIWlzTW9iaWxlXCI+QWNjb3VudDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNtb2JpbGVGb290ZXJUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLWZvb3RlclwiIFtzaW1wb0JhY2tncm91bmRdPVwiYmFja2dyb3VuZEluZm9cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJnb1RvSG9tZSgpXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+aG9tZTwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5Ib21lPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwic2VhcmNoUHJvZHVjdHMoKVwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmdyaWRfb248L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+U2hvcDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImdvVG9XaXNobGlzdCgpXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+ZmF2b3JpdGVfYm9yZGVyPC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPldpc2hsaXN0PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbnMgcG9zaXRpb24tcmVsYXRpdmVcIiAoY2xpY2spPVwiZ29Ub0NhcnQoKVwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnNob3BwaW5nX2NhcnQ8L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Q2FydDwvc3Bhbj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGNhcnRJdGVtQ291bnRcIiAqbmdJZj1cImdldENhcnRJdGVtc0NvdW50XCI+e3tnZXRDYXJ0SXRlbXNDb3VudH19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbW9iaWxlQnV0dG9uc1RlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJpbm5lci1oZWlnaHQgXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibmFiLWJhci1tb2JpbGUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJvd1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJuYXZiYXItdG9nZ2xlclwiIChjbGljayk9XCJpc05hdmJhck9wZW4gPSAhaXNOYXZiYXJPcGVuXCIgKm5nSWY9XCIhaXNOYXZiYXJPcGVuXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPm1lbnU8L21hdC1pY29uPiA8IS0tIFVzZSBcIm1lbnVcIiBmb3IgYSBoYW1idXJnZXIgaWNvbiAtLT5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1ib3ggY3Vyc29yLXBvaW50ZXIgZC1mbGV4XCIgKGNsaWNrKT1cImNsb3NlKClcIiAqbmdJZj1cImlzTmF2YmFyT3BlblwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJpc05hdmJhck9wZW5cIiBjbGFzcz1cIm5hdmJhci1jb250ZW50IG10LTNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/Lm5hdmJhckJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxzaW1wby1uYXZiYXItYnV0dG9uLWVsZW1lbnRcclxuICAgICAgICAgICAgW2J1dHRvbkRhdGFdPVwiaXRlbVwiXHJcbiAgICAgICAgICAgIFtzZWxlY3RlZFN0eWxlXT1cInN0eWxlPy5uYXZpZ2F0aW9uU3R5bGVcIlxyXG4gICAgICAgICAgICBbYnV0dG9uU3R5bGVdPVwic3R5bGU/Lm5hdmJhckJ1dHRvblN0eWxlXCI+PC9zaW1wby1uYXZiYXItYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW4gZmxleC1sZy1yb3cgZ2FwLWxnLTAgZ2FwLTMgbXQtMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiAqbmdJZj1cImNvbnRlbnQ/LnNvY2lhbExpbmtzPy5kaXNwbGF5XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/LnNvY2lhbExpbmtzPy5jaGFubmVsc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tcmlnaHQ6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgICAgPHNpbXBvLXNvY2lhLWljb25zIFtzb2NpYWxJY29uRGF0YV09XCJpdGVtXCIgW2NvbG9yXT1cInNpbXBvQ29sb3JcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCI+PC9zaW1wby1zb2NpYS1pY29ucz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtdC0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJhY3Rpb24/LmRpc3BsYXlcIiBjbGFzcz1cImJ1dHRvbi1kaXNwbGF5XCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYWN0aW9uPy5idXR0b25zXCI+XHJcbiAgICAgICAgICAgIDxhcHAtYnV0dG9uLWVsZW1lbnRcclxuICAgICAgICAgICAgICBbYnV0dG9uQ29udGVudF09XCJidXR0b24uY29udGVudFwiXHJcbiAgICAgICAgICAgICAgW2J1dHRvblN0eWxlXT1cImJ1dHRvbi5zdHlsZXNcIlxyXG4gICAgICAgICAgICAgIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICAgIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG5cclxuXHJcbiJdfQ==
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9uYXZiYXItc2VjdGlvbi9uYXZiYXItc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL25hdmJhci1zZWN0aW9uL25hdmJhci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUd0SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENB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RSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLDRCQUE0Qjt3QkFDNUIsV0FBVzt3QkFDWCxzQkFBc0I7d0JBQ3RCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsOEJBQThCO3dCQUM5QixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsMEJBQTBCO3dCQUMxQixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGdDQUFnQzt3QkFDaEMsZ0NBQWdDO3dCQUNoQyxjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixhQUFhO3FCQUNkO21SQU1RLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDdUIsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBc0QzQixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW1CekMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSGVhZGVyQ29udGVudE1vZGVsLCBIZWFkZXJTZWN0aW9uTW9kZWwsIEhlYWRlclN0eWxlTW9kZWwgfSBmcm9tICcuL25hdmJhci1zZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU2ltcG9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9zaW1wby1idXR0b24vc2ltcG8tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNvY2lhSWNvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9zb2NpYS1pY29ucy9zb2NpYS1pY29ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE5hdmJhckJ1dHRvbkVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLy4uLy4uL2VsZW1lbnRzL25hdmJhci1idXR0b24tZWxlbWVudC9uYXZiYXItYnV0dG9uLWVsZW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCYW5uZXJDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Jhbm5lci1jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYm9yZGVyLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbHVtbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb2x1bW4tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRhaW5lckZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250YWluZXItZmlyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWFsaWdubWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3JuZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29ybmVyLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNpbXBvRm9vdGVyTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Zvb3Rlci1sYXlvdXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgT3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9vdmVybGF5LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFBvc2l0aW9uTGF5b3V0RGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3Bvc2l0aW9uLWxheW91dC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVGV4dEJhY2tncm91bmREaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvdGV4dC1iYWNrZ3JvdW5kLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3ZlckVsZW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi9jb21wb25lbnRzL2hvdmVyLWVsZW1lbnRzL2hvdmVyLWVsZW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjdGlvbk1vZGVsLCBCYWNrZ3JvdW5kTW9kZWwgfSBmcm9tICcuLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBDb2xvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb2xvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb1N0aWNreURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zdGlja3ktZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG4vLyBpbXBvcnQgVXNlckNhcnQgZnJvbSAnLi4vLi4vZWNvbW1lcmNlL2pzb24vdXNlci1jYXJ0Lmpzb24nO1xyXG4vLyBpbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZVVzZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vZWNvbW1lcmNlL3NlY3Rpb25zL2F1dGhlbnRpY2F0ZS11c2VyL2F1dGhlbnRpY2F0ZS11c2VyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtNYXRNZW51TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc3R5bGVzL3VzZXIubW9kYWwnO1xyXG5pbXBvcnQgeyBHZW5kZXJJY29uIH0gZnJvbSAnLi4vLi4vcGlwZXMvZ2VuZGVyLnBpcGUnO1xyXG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldCwgTWF0Qm90dG9tU2hlZXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXQnO1xyXG5pbXBvcnQgeyBDYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWNvbW1lcmNlL3NlY3Rpb25zL2NhcnQvY2FydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIRUFERVJfU1RZTElORywgUHJvZHVjdENhcmRUaGVtZSB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uUmVxdWlyZWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRpb24tcmVxdWlyZWQvYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1uYXZiYXItc2VjdGlvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBTaW1wb0J1dHRvbkNvbXBvbmVudCxcclxuICAgIEdlbmRlckljb24sXHJcbiAgICBDYXJ0Q29tcG9uZW50LFxyXG4gICAgU29jaWFJY29uc0NvbXBvbmVudCxcclxuICAgIE1hdEljb24sXHJcbiAgICBOYXZiYXJCdXR0b25FbGVtZW50Q29tcG9uZW50LFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBIb3ZlckVsZW1lbnRzQ29tcG9uZW50LFxyXG4gICAgQW5pbWF0aW9uRGlyZWN0aXZlLFxyXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcclxuICAgIEJhbm5lckNvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBCb3JkZXJEaXJlY3RpdmUsXHJcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb250YWluZXJGaXREaXJlY3RpdmUsXHJcbiAgICBzaW1wb0NvbmV0ZW5BbGlnbm1lbnREaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gICAgU2ltcG9Gb290ZXJMYXlvdXREaXJlY3RpdmUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuICAgIEltYWdlRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcclxuICAgIFNpbXBvU3RpY2t5RGlyZWN0aXZlLFxyXG4gICAgUG9zaXRpb25MYXlvdXREaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbG9yRGlyZWN0aXZlLFxyXG4gICAgTWF0Qm90dG9tU2hlZXRNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9uYXZiYXItc2VjdGlvbi5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmF2YmFyU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuXHJcbiAgQElucHV0KCkgZGF0YSA/OiBIZWFkZXJTZWN0aW9uTW9kZWw7XHJcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudDogYW55O1xyXG4gIEBJbnB1dCgpIGluZGV4PyA6IG51bWJlcjtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICBASW5wdXQoKSBlZGl0PyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKFwiY2hpbGRDb250YWluZXJcIikgY2hpbGRDb250YWluZXI6IGFueTtcclxuICBwdWJsaWMgc2Nyb2xsVmFsdWU6IG51bWJlciA9IDA7XHJcbiAgY29udGVudCA/IDogSGVhZGVyQ29udGVudE1vZGVsO1xyXG4gIHN0eWxlID86IEhlYWRlclN0eWxlTW9kZWxcclxuICBhY3Rpb24/OiBBY3Rpb25Nb2RlbFxyXG4gIGNvbG9yID0gJyMwMDAwMDAnO1xyXG4gIHNlYXJjaFRleHQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgdGhlbWUgPSBQcm9kdWN0Q2FyZFRoZW1lO1xyXG4gIEhlYWRlclN0eWxpbmcgPSBIRUFERVJfU1RZTElOR1xyXG4gIC8vIG1hdERpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2UgOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYm90dG9tU2hlZXQ6IE1hdEJvdHRvbVNoZWV0LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2VcclxuICApe1xyXG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUFsbERhdGEoKTtcclxuICB9XHJcbiAgc2VhcmNoUHJvZHVjdHMoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHtxdWVyeVBhcmFtczoge3NlYXJjaFR4dDogdGhpcy5zZWFyY2hUZXh0fX0pO1xyXG4gIH1cclxuICBnb1RvRmF2KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvd2lzaGxpc3QnXSk7XHJcbiAgfVxyXG4gIGdvVG9BY2NvdW50KCkge1xyXG5cclxuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcm9maWxlJ10pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tYXREaWFsb2cub3BlbihBdXRoZW50aWNhdGlvblJlcXVpcmVkQ29tcG9uZW50LCB7cGFuZWxDbGFzczogXCJhdXRoZW50aWNhdGVcIiB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ29Ub1dpc2hsaXN0KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvd2lzaGxpc3QnXSk7XHJcbiAgfVxyXG4gIGdvVG9DYXJ0KCl7XHJcbiAgICBpZiAoZmFsc2UpIHtcclxuICAgICAgdGhpcy5tYXREaWFsb2cub3BlbihDYXJ0Q29tcG9uZW50LCB7IHdpZHRoOiAnMjh2dycsIHBhbmVsQ2xhc3M6ICdzaWRlcGFuZWwtY2xhc3MnLCBkYXRhOiB7IHdpbmRvdzogdHJ1ZSB9IH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY2FydCddKTtcclxuICAgIH1cclxuICB9XHJcbiAgYXBwbHlGaWx0ZXIodmFsdWU6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICB2YWx1ZSA9IHZhbHVlWzBdPy5yZXBsYWNlKFwiIFwiLCBcIl9cIik7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHtxdWVyeVBhcmFtczogeyBbdHlwZV06IHZhbHVlIH19KTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXHJcbiAgb25TY3JvbGwoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zY3JvbGxWYWx1ZSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQucGFnZVlPZmZzZXQgLyAxMDA7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdHlsZSA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG4gICAgdGhpcy5hY3Rpb24gPSB0aGlzLmRhdGE/LmFjdGlvbjtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChxUGFyYW0pPT4ge1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHQgPSBxUGFyYW1bXCJzZWFyY2hUeHRcIl07XHJcbiAgICB9KVxyXG4gICAgLy8gaWYgKHRoaXMuc3R5bGU/LmJhY2tncm91bmQgJiYgdGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcy5tZXJnZSkge1xyXG4gICAgLy8gICB0aGlzLnN0eWxlLmJhY2tncm91bmQuY29sb3IgPSB0aGlzLm5leHRDb21wb25lbnQuc3R5bGVzLmJhY2tncm91bmQuY29sb3I7XHJcbiAgICAvLyAgIHRoaXMuc3R5bGUuYmFja2dyb3VuZC5hY2NlbnRDb2xvciA9IHRoaXMubmV4dENvbXBvbmVudC5zdHlsZXMuYmFja2dyb3VuZC5hY2NlbnRDb2xvcjtcclxuICAgIC8vIH1cclxuICB9XHJcbiAgaXNOYXZiYXJPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2NyZWVuV2lkdGg6IG51bWJlciA9IDQ3NTtcclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBnZXRTY3JlZW5TaXplKGV2ZW50PzogbnVtYmVyKSB7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgZ2V0UGFyZW50SGVpZ2h0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hpbGRDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/Lm9mZnNldEhlaWdodCA/PyAwO1xyXG4gIH1cclxuICBnZXQgZ2V0RHJvcGRvd25MaW5rcygpIHtcclxuICAgIGlmICh0aGlzLmNvbnRlbnQ/LmVjb21saW5rcylcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY29udGVudD8uZWNvbWxpbmtzKTtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcbiAgZ2V0IGlzRWNvbW1lcmNlV2Vic2l0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LnR5cGUgPT0gXCJFX0NPTU1FUkNFXCI7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpe1xyXG4gICAgLy8gbGV0IGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIm5hdmJhck5hdkFsdE1hcmt1cFwiKTtcclxuICAgIC8vIGlmKCFhKSByZXR1cm47XHJcbiAgICAvLyAvLyBhLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIlxyXG4gICAgLy8gYS5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd1wiKTtcclxuICAgIC8vIGEuY2xhc3NMaXN0LmFkZChcImNvbGxhcHNlXCIpXHJcbiAgICB0aGlzLmlzTmF2YmFyT3BlbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2hvd0VkaXRvcnMgOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHNob3dFZGl0VGFicyhpc1Nob3c6Ym9vbGVhbil7XHJcbiAgICB0aGlzLnNob3dFZGl0b3JzID0gaXNTaG93O1xyXG4gIH1cclxuICBnb1RvSG9tZSgpIHtcclxuICAgIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdSRVFVRVNUX0ZST00nKSA9PT0gJ0VfQ09NTUVSQ0UnKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycnXSk7XHJcbiAgfVxyXG4gIGdldCBpc0hlYWRlclN0aWNreSgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LnN0eWxlcz8uc3RpY2t5IHx8IHRoaXMuaXNFY29tbWVyY2VXZWJzaXRlO1xyXG4gIH1cclxuICBnZXQgYmFja2dyb3VuZEluZm8oKSB7XHJcbiAgICBsZXQgYmFja2dyb3VuZDogQmFja2dyb3VuZE1vZGVsIHwge30gPSB7fTtcclxuICAgIGlmICh0aGlzLnN0eWxlKSB7XHJcbiAgICAgIGJhY2tncm91bmQgPSB7XHJcbiAgICAgICAgLi4udGhpcy5zdHlsZS5iYWNrZ3JvdW5kLFxyXG4gICAgICAgIHNob3dJbWFnZTogZmFsc2UsXHJcbiAgICAgICAgY29sb3I6IFwidHJhbnNwYXJlbnRcIlxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZSA/ICh0aGlzLnNjcm9sbFZhbHVlID4gMCA/IHsuLi50aGlzLm5leHRDb21wb25lbnQuc3R5bGVzLmJhY2tncm91bmQsIGNvbG9yOiB0aGlzLnN0eWxlPy5iYWNrZ3JvdW5kLmNvbG9yfSA6IHsuLi5iYWNrZ3JvdW5kfSkgOiB7Li4udGhpcy5kYXRhPy5zdHlsZXMuYmFja2dyb3VuZH07XHJcbiAgfVxyXG4gIGdldCBzaW1wb0NvbG9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZSA/ICh0aGlzLnNjcm9sbFZhbHVlID4gMCA/IHRoaXMuc3R5bGU/LmJhY2tncm91bmQuY29sb3IgOiB0aGlzLm5leHRDb21wb25lbnQuc3R5bGVzPy5iYWNrZ3JvdW5kPy5jb2xvcikgOiB0aGlzLnN0eWxlPy5iYWNrZ3JvdW5kPy5jb2xvcjtcclxuICB9XHJcbiAgZ2V0IGFjY2VudENvbG9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZSA/ICh0aGlzLnNjcm9sbFZhbHVlID4gMCA/IHRoaXMuc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yIDogdGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IpIDogdGhpcy5zdHlsZT8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3I7XHJcbiAgfVxyXG4gIGdldCBpc1RyYW5zcGFyZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZSAmJiB0aGlzLnNjcm9sbFZhbHVlID09IDA7XHJcbiAgfVxyXG4gIHJlZGlyZWN0VG8oY29udGVudDogYW55KXtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5idXR0b25SZWRpcmVjdGlvbi5lbWl0KHtkYXRhOiBjb250ZW50fSk7XHJcbiAgfVxyXG5cclxuICBzaG93U2VhcmNoQmFyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGdldCBpc0NvbXBvbmVudE1lcmdlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2U7XHJcbiAgfVxyXG4gIGVkaXRTZWN0aW9uKCl7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpPT4ge1xyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7ZGF0YTp0aGlzLmRhdGF9KTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FuU2hvd01vYmlsZUZvb3RlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmlzRWNvbW1lcmNlV2Vic2l0ZTtcclxuICB9XHJcblxyXG4gIGdldCBzaG93TW9iaWxlSG9tZUljb24oKSB7XHJcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuICAgIHJldHVybiAhKHVybC5pbmNsdWRlcyhcImNhcnRcIikgfHwgdXJsLmluY2x1ZGVzKFwicHJvZmlsZVwiKSB8fCB1cmwuaW5jbHVkZXMoXCJ3aXNobGlzdFwiKSk7XHJcbiAgfVxyXG4gIGdldCBnZXRDYXJ0SXRlbXNDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VG90YWxDYXJ0SXRlbXM7XHJcbiAgfVxyXG4gIGdldCBnZXRIZWFkZXJTdHlsaW5nKCk6IEhFQURFUl9TVFlMSU5HIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnN0eWxlPy5zdHlsaW5nO1xyXG4gIH1cclxuICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPCA0NzU7XHJcbiAgfVxyXG4gIGdldEtleXMob2JqZWN0OiBhbnkpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KTtcclxuICB9XHJcbiAgZ2V0VmFsdWVzKG9iamVjdDogYW55KTogdW5rbm93bltdIHtcclxuICAgIGNvbnN0IGtleXM6IHVua25vd25bXSA9IFtdO1xyXG4gICAgb2JqZWN0LmZvckVhY2goKGtleTogYW55KT0+IGtleXMucHVzaChPYmplY3QudmFsdWVzKGtleSkpKTtcclxuICAgIHJldHVybiBbLi4ubmV3IFNldChrZXlzKV07XHJcbiAgfVxyXG4gIGdldCB1c2VyR2VuZGVyKCkge1xyXG4gICAgY29uc3QgdXNlciA9ICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSBhcyBVc2VyKTtcclxuICAgIGlmICh1c2VyKVxyXG4gICAgICByZXR1cm4gdXNlci5nZW5kZXI7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGdldCBnZXROYXZiYXJCdXR0b24oKSB7XHJcbiAgICBsZXQgY291bnQ6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgcGFnZTogYW55W10gPSBbXVxyXG4gICAgZm9yKGxldCBidXR0b24gb2YgdGhpcy5jb250ZW50Py5uYXZiYXJCdXR0b25zIHx8IFtdKSB7XHJcbiAgICAgIGlmKGNvdW50IDwgNCAmJiBidXR0b24uc2hvd0hlYWRlcil7XHJcbiAgICAgICAgcGFnZS5wdXNoKGJ1dHRvbik7XHJcbiAgICAgICAgY291bnQrKztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwYWdlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtpZF09XCJkYXRhPy5pZFwiIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0UGFyZW50SGVpZ2h0XCIgICAgW3NpbXBvQmFja2dyb3VuZF09XCJiYWNrZ3JvdW5kSW5mb1wiIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gIDxkaXYgI21haW5Db250YWluZXIgY2xhc3M9XCJ3LTEwMFwiIHN0eWxlPVwiei1pbmRleDogMTAwO1wiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb092ZXJsYXldPVwic3R5bGU/LmJhY2tncm91bmRcIiBbc2Nyb2xsVmFsdWVdPVwiaXNDb21wb25lbnRNZXJnZWQgPyBzY3JvbGxWYWx1ZSA6IDBcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cImJhY2tncm91bmRJbmZvXCIgW3NpbXBvU3RpY2t5XT1cImlzSGVhZGVyU3RpY2t5XCIgW25nQ2xhc3NdPVwieydlY29tU3R5bGUnOiBpc0Vjb21tZXJjZVdlYnNpdGV9XCI+XHJcbiAgICA8bmF2ICNjaGlsZENvbnRhaW5lciBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLWxnIGQtYmxvY2sgbWItMFwiIFtzaW1wb0Zvb3RlckxheW91dF09XCJzdHlsZT8ubGF5b3V0XCIgW25nQ2xhc3NdPVwieydhZGp1c3RlUGFkZGluZyc6ICFpc0Vjb21tZXJjZVdlYnNpdGUsICdwYWRkaW5nRWNvbSc6IGlzRWNvbW1lcmNlV2Vic2l0ZSwgJ25vLXNoYWRvdyc6IGlzQ29tcG9uZW50TWVyZ2VkfVwiPlxyXG4gICAgIDxuZy1jb250YWluZXIgICpuZ0lmPVwiIWlzTW9iaWxlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiAqbmdJZj1cImdldEhlYWRlclN0eWxpbmcgPT0gSGVhZGVyU3R5bGluZy5MT0dPX0xFRlRfX01FTlVfUklHSFRcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW0tY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGlua3NUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiICpuZ0lmPVwiZ2V0SGVhZGVyU3R5bGluZyA9PSBIZWFkZXJTdHlsaW5nLkxPR09fUklHSFRfX01FTlVfTEVGVFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xNVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvY2lhbEljb25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGlua3NUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiICpuZ0lmPVwiZ2V0SGVhZGVyU3R5bGluZyA9PSBIZWFkZXJTdHlsaW5nLkxPR09fQ0VOVEVSX19NRU5VX0xFRlRcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW0tY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMaW5rc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHB4LTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvZ29TZWN0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5hdmJhckxpbmtzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21tZXJjZUJ1dHRvbnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5TaG93TW9iaWxlRm9vdGVyXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9iaWxlRm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc01vYmlsZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vYmlsZUJ1dHRvbnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgPC9uYXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNsb2dvU2VjdGlvblRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCIgbGVmdC1sb2dvLXRleHQgZC1mbGV4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWxnLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiIWNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgfHwgIWNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiAoY2xpY2spPVwiZ29Ub0hvbWUoKVwiPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNJY29uICYmIGNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiPlxyXG4gICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiIGFsdD1cImxvZ29cIiBbd2lkdGhdPVwiY29udGVudD8ubG9nbz8uc2l6ZVwiIGxvYWRpbmc9XCJsYXp5XCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1zbWFsbFwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNUZXh0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPlxyXG4gICAgICAgIDxiIFtuZ1N0eWxlXT1cInsnZm9udC1mYW1pbHknOiBjb250ZW50Py5sb2dvPy50ZXh0Py5mb250RmFtaWx5fVwiPnt7Y29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWxnLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgKGNsaWNrKT1cImdvVG9Ib21lKClcIj5cclxuICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIGFsdD1cImxvZ29cIiBbd2lkdGhdPVwiY29udGVudD8ubG9nbz8uc2l6ZVwiIGxvYWRpbmc9XCJsYXp5XCI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbmF2YmFyTGlua3NUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwibmF2YmFyLWNvbGxhcHNlIGZzLTYgcG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA1cHg7IG1hcmdpbi1sZWZ0OiAyNXB4O1wiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiAqbmdJZj1cInNjcmVlbldpZHRoID4gNzY4XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldE5hdmJhckJ1dHRvblwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5zaG93SGVhZGVyXCI+XHJcbiAgICAgICAgPHNpbXBvLW5hdmJhci1idXR0b24tZWxlbWVudFxyXG4gICAgICAgICAgW2J1dHRvbkRhdGFdPVwiaXRlbVwiXHJcbiAgICAgICAgICBbc2VsZWN0ZWRTdHlsZV09XCJzdHlsZT8ubmF2aWdhdGlvblN0eWxlXCJcclxuICAgICAgICAgIFtidXR0b25TdHlsZV09XCJzdHlsZT8ubmF2YmFyQnV0dG9uU3R5bGVcIlxyXG4gICAgICAgICAgW2JnQ29sb3JdPVwic2ltcG9Db2xvclwiXHJcbiAgICAgICAgICBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCI+PC9zaW1wby1uYXZiYXItYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBnZXREcm9wZG93bkxpbmtzOyBsZXQgaWR4ID0gaW5kZXhcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQ/LmVjb21saW5rcz8uW2xpbmtdPy5sZW5ndGggXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cIm1hdC1idG4gZHJvcGRvd24tdG9nZ2xlXCIgdHlwZT1cImJ1dHRvblwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIlxyXG4gICAgICAgICAgICBpZD1cImxpbmtcIiBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAge3tsaW5rIHwgdXBwZXJjYXNlfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBhcmlhLWxhYmVsbGVkYnk9XCJsaW5rXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKm5nRm9yPVwibGV0IG1lbnUgb2YgZ2V0VmFsdWVzKGNvbnRlbnQ/LmVjb21saW5rcz8uW2xpbmtdKVwiIChjbGljayk9XCJhcHBseUZpbHRlcihtZW51LCBsaW5rKVwiPnt7bWVudX19PC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3NvY2lhbEljb25zVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBhbGlnbi1pdGVtcy1sZy1jZW50ZXIgZmxleC1jb2x1bW4gZmxleC1sZy1yb3cgZ2FwLWxnLTAgZ2FwLTNcIlxyXG4gICAgICAgW25nQ2xhc3NdPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXkgPyAnanVzdGlmeS1jb250ZW50LWJldHdlZW4nIDogJ2p1c3RpZnktY29udGVudC1lbmQnXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTBcIiAqbmdJZj1cImNvbnRlbnQ/LnNvY2lhbExpbmtzPy5kaXNwbGF5XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29udGVudD8uc29jaWFsTGlua3M/LmNoYW5uZWxzXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLXJpZ2h0OiAxMHB4O1wiPlxyXG4gICAgICAgICAgPHNpbXBvLXNvY2lhLWljb25zIFtzb2NpYWxJY29uRGF0YV09XCJpdGVtXCIgW2NvbG9yXT1cInNpbXBvQ29sb3JcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCI+PC9zaW1wby1zb2NpYS1pY29ucz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcGFnZUxpbmtzVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIm5hdmJhci1uYXYgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4O1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/Lm5hdmJhckJ1dHRvbnNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5zaG93SGVhZGVyXCI+XHJcbiAgICAgICAgICA8c2ltcG8tbmF2YmFyLWJ1dHRvbi1lbGVtZW50XHJcbiAgICAgICAgICAgIFtidXR0b25EYXRhXT1cIml0ZW1cIlxyXG4gICAgICAgICAgICBbc2VsZWN0ZWRTdHlsZV09XCJzdHlsZT8ubmF2aWdhdGlvblN0eWxlXCJcclxuICAgICAgICAgICAgW2J1dHRvblN0eWxlXT1cInN0eWxlPy5uYXZiYXJCdXR0b25TdHlsZVwiXHJcbiAgICAgICAgICAgIFtiZ0NvbG9yXT1cInNpbXBvQ29sb3JcIlxyXG4gICAgICAgICAgICBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCI+PC9zaW1wby1uYXZiYXItYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2J1dHRvbnNUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aW9uPy5kaXNwbGF5XCIgY2xhc3M9XCJidXR0b24tZGlzcGxheSBtdC0wXCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBhY3Rpb24/LmJ1dHRvbnNcIj5cclxuICAgICAgICA8YXBwLWJ1dHRvbi1lbGVtZW50XHJcbiAgICAgICAgICBbYnV0dG9uQ29udGVudF09XCJidXR0b24uY29udGVudFwiXHJcbiAgICAgICAgICBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uLnN0eWxlc1wiXHJcbiAgICAgICAgICBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICAgIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Vjb21tZXJjZUJ1dHRvbnNUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwianVzdGlmeS1jb250ZW50LWJldHdlZW4gcHItMCBkLWZsZXggcG9zaXRpb24tcmVsYXRpdmVcIiBzdHlsZT1cIm1heC13aWR0aDogNTB2dztcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaWNvblwiICpuZ0lmPVwiIWlzTW9iaWxlXCIgKGNsaWNrKT1cInNob3dTZWFyY2hCYXIgPSAhc2hvd1NlYXJjaEJhclwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiICpuZ0lmPVwiIWlzTW9iaWxlICYmIHNob3dTZWFyY2hCYXJcIj5cclxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUHJvZHVjdC4uXCIgYXJpYS1sYWJlbD1cIlNlYXJjaCBQcm9kdWN0XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoUHJvZHVjdHMoKVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiZ2FwOiA1cHg7IGN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwiZ29Ub0ZhdigpXCIgKm5nSWY9XCIhaXNNb2JpbGVcIj5cclxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5mYXZvcml0ZV9ib3JkZXI8L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImZ3LW5vcm1hbCBmcy02XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPldpc2hsaXN0PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteC0zIHBvc2l0aW9uLXJlbGF0aXZlXCIgc3R5bGU9XCJnYXA6IDVweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvQ2FydCgpXCIgKm5nSWY9XCIhaXNNb2JpbGVcIj5cclxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5zaG9wcGluZ19jYXJ0PC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ub3JtYWwgZnMtNlwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5CYWc8L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSBjYXJ0SXRlbUNvdW50XCIgKm5nSWY9XCJnZXRDYXJ0SXRlbXNDb3VudFwiPnt7Z2V0Q2FydEl0ZW1zQ291bnR9fTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiZ2FwOiA1cHg7IGN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwiZ29Ub0FjY291bnQoKVwiPlxyXG4gICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJ1c2VyR2VuZGVyIHwgZ2VuZGVySWNvblwiIHN0eWxlPVwiaGVpZ2h0OiAzMHB4O1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImZ3LW5vcm1hbCBmcy02XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiICpuZ0lmPVwiIWlzTW9iaWxlXCI+QWNjb3VudDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNtb2JpbGVGb290ZXJUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLWZvb3RlclwiIFtzaW1wb0JhY2tncm91bmRdPVwiYmFja2dyb3VuZEluZm9cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJnb1RvSG9tZSgpXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+aG9tZTwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5Ib21lPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwic2VhcmNoUHJvZHVjdHMoKVwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmdyaWRfb248L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+U2hvcDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImdvVG9XaXNobGlzdCgpXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+ZmF2b3JpdGVfYm9yZGVyPC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPldpc2hsaXN0PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbnMgcG9zaXRpb24tcmVsYXRpdmVcIiAoY2xpY2spPVwiZ29Ub0NhcnQoKVwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnNob3BwaW5nX2NhcnQ8L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Q2FydDwvc3Bhbj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGNhcnRJdGVtQ291bnRcIiAqbmdJZj1cImdldENhcnRJdGVtc0NvdW50XCI+e3tnZXRDYXJ0SXRlbXNDb3VudH19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbW9iaWxlQnV0dG9uc1RlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJpbm5lci1oZWlnaHQgXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibmFiLWJhci1tb2JpbGUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJvd1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJuYXZiYXItdG9nZ2xlclwiIChjbGljayk9XCJpc05hdmJhck9wZW4gPSAhaXNOYXZiYXJPcGVuXCIgKm5nSWY9XCIhaXNOYXZiYXJPcGVuXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPm1lbnU8L21hdC1pY29uPiA8IS0tIFVzZSBcIm1lbnVcIiBmb3IgYSBoYW1idXJnZXIgaWNvbiAtLT5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1ib3ggY3Vyc29yLXBvaW50ZXIgZC1mbGV4XCIgKGNsaWNrKT1cImNsb3NlKClcIiAqbmdJZj1cImlzTmF2YmFyT3BlblwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJpc05hdmJhck9wZW5cIiBjbGFzcz1cIm5hdmJhci1jb250ZW50IG10LTNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/Lm5hdmJhckJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxzaW1wby1uYXZiYXItYnV0dG9uLWVsZW1lbnRcclxuICAgICAgICAgICAgW2J1dHRvbkRhdGFdPVwiaXRlbVwiXHJcbiAgICAgICAgICAgIFtzZWxlY3RlZFN0eWxlXT1cInN0eWxlPy5uYXZpZ2F0aW9uU3R5bGVcIlxyXG4gICAgICAgICAgICBbYnV0dG9uU3R5bGVdPVwic3R5bGU/Lm5hdmJhckJ1dHRvblN0eWxlXCI+PC9zaW1wby1uYXZiYXItYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW4gZmxleC1sZy1yb3cgZ2FwLWxnLTAgZ2FwLTMgbXQtMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiAqbmdJZj1cImNvbnRlbnQ/LnNvY2lhbExpbmtzPy5kaXNwbGF5XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/LnNvY2lhbExpbmtzPy5jaGFubmVsc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tcmlnaHQ6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgICAgPHNpbXBvLXNvY2lhLWljb25zIFtzb2NpYWxJY29uRGF0YV09XCJpdGVtXCIgW2NvbG9yXT1cInNpbXBvQ29sb3JcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCI+PC9zaW1wby1zb2NpYS1pY29ucz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtdC0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJhY3Rpb24/LmRpc3BsYXlcIiBjbGFzcz1cImJ1dHRvbi1kaXNwbGF5XCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYWN0aW9uPy5idXR0b25zXCI+XHJcbiAgICAgICAgICAgIDxhcHAtYnV0dG9uLWVsZW1lbnRcclxuICAgICAgICAgICAgICBbYnV0dG9uQ29udGVudF09XCJidXR0b24uY29udGVudFwiXHJcbiAgICAgICAgICAgICAgW2J1dHRvblN0eWxlXT1cImJ1dHRvbi5zdHlsZXNcIlxyXG4gICAgICAgICAgICAgIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICAgIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG5cclxuXHJcbiJdfQ==