@resolveio/client-lib-core 0.0.10 → 0.0.12
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.
- package/esm2020/lib/core.component.mjs +5 -3
- package/esm2020/lib/socket-manager.service.mjs +2 -2
- package/fesm2015/resolveio-client-lib-core.mjs +5 -3
- package/fesm2015/resolveio-client-lib-core.mjs.map +1 -1
- package/fesm2020/resolveio-client-lib-core.mjs +5 -3
- package/fesm2020/resolveio-client-lib-core.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -253,10 +253,11 @@ export class CoreComponent extends BaseComponent {
|
|
|
253
253
|
}
|
|
254
254
|
});
|
|
255
255
|
if (this.environment.IS_PRODUCTION) {
|
|
256
|
+
let firstTimeSWFlag = false;
|
|
256
257
|
this._services._socket.subscribeBypassRoute('flagWithType', 'newSW').subscribe(flag => {
|
|
257
|
-
if (flag) {
|
|
258
|
+
if (firstTimeSWFlag && flag) {
|
|
258
259
|
if (!this.invalidVersion) {
|
|
259
|
-
let count =
|
|
260
|
+
let count = 15;
|
|
260
261
|
let interval = setInterval(() => {
|
|
261
262
|
if (count <= 0) {
|
|
262
263
|
clearInterval(interval);
|
|
@@ -266,6 +267,7 @@ export class CoreComponent extends BaseComponent {
|
|
|
266
267
|
}, 1000);
|
|
267
268
|
}
|
|
268
269
|
}
|
|
270
|
+
firstTimeSWFlag = true;
|
|
269
271
|
});
|
|
270
272
|
}
|
|
271
273
|
this._offline.offlineMode.subscribe(offline => {
|
|
@@ -485,4 +487,4 @@ function hexToRGB(hex, alpha) {
|
|
|
485
487
|
return "rgb(" + r + ", " + g + ", " + b + ")";
|
|
486
488
|
}
|
|
487
489
|
}
|
|
488
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFVBQVUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBT2hFLE1BQU0sT0FBTyxhQUFjLFNBQVEsYUFBYTtJQXFGL0MsdVZBQXVWO0lBQ3ZWLHFCQUFxQjtJQUNyQixJQUFJO0lBRUosWUFBb0IsVUFBaUMsRUFBVSxHQUFrQixFQUFVLGNBQTZCLEVBQVMsU0FBMEIsRUFBVSxRQUErQixFQUFVLFFBQTZCLEVBQVUsS0FBa0IsRUFBVSxJQUEyQjtRQUMzUyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFERSxlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFBVSxtQkFB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dmljZSB9IGZyb20gJy4vd2lkZ2V0cy9uZ3gtdG91ci1uZy1ib290c3RyYXAvbmctYm9vdHN0cmFwLXRvdXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBBcHBTdGF0dXNNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2FwcC1zdGF0dXMubW9kZWwnO1xuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XG5pbXBvcnQgeyBSZXNpemVTZXJ2aWNlIH0gZnJvbSAnLi91dGlsL3dpbmRvdy1yZXNpemUuc2VydmljZSc7XG5pbXBvcnQgeyBQcm92aWRlclNlcnZpY2UsIEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3Jlc29sdmVpby1jbGFzcyc7XG5pbXBvcnQgeyBPZmZsaW5lTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL29mZmxpbmUtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICduZ3gtbG9jYWxzdG9yYWdlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4vYXV0aC9hdXRoLXBlcm1pc3Npb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcblx0cHJvdmlkZXJzOiBbUHJvdmlkZXJTZXJ2aWNlXSxcblx0c2VsZWN0b3I6ICdyZXNvbHZlaW8tY2xpZW50LWxpYi1jb3JlJyxcblx0dGVtcGxhdGVVcmw6ICcuL2NvcmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvcmVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuXHRASW5wdXQoJ2FwcFZlcnNpb24nKSBhcHBWZXJzaW9uID0gMDtcblx0QElucHV0KCdlbnZpcm9ubWVudCcpIGVudmlyb25tZW50O1xuXHRASW5wdXQoJ2xvZ28nKSBsb2dvID0gJyc7XG5cdEBJbnB1dCgnbmF2VGFicycpIG5hdlRhYnMgPSAnJztcblx0QElucHV0KCd1c2VySGFzUGhvbmVOdW1iZXInKSB1c2VySGFzUGhvbmVOdW1iZXIgPSBmYWxzZTtcblx0QElucHV0KCdjbGllbnQnKSBjbGllbnQgPSAnJztcblx0QElucHV0KCdzdGFuZGFyZFByb2dyYW0nKSBzdGFuZGFyZFByb2dyYW0gPSAnJztcblx0QElucHV0KCd0b3VyU3RvcHMnKSB0b3VyU3RvcHMgPSBbXTtcblx0QElucHV0KCdzaG93UmVzb2x2ZUlPSG9tZXBhZ2UnKSBzaG93UmVzb2x2ZUlPSG9tZXBhZ2UgPSBmYWxzZTtcblxuXHRAVmlld0NoaWxkKCduYXZCYXJNYWluJywge3JlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZX0pIGVsX25hdkJhck1haW46IEVsZW1lbnRSZWY7XG5cdEBWaWV3Q2hpbGQoJ25hdkJhck1vZHVsZScsIHtyZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWV9KSBlbF9uYXZCYXJNb2R1bGU6IEVsZW1lbnRSZWY7XG5cblx0c2VydmVyVmVyc2lvbiA9IDA7XG5cblx0eWVhcjogc3RyaW5nID0gKG5ldyBEYXRlKCkpLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtcblxuXHRmdWxsU2NyZWVuID0gZmFsc2U7XG5cblx0d2luZG93U2l6ZUhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcblx0d2luZG93U2l6ZVdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG5cblx0bmF2YmFyTWFpbkhlaWdodCA9IDA7XG5cdHN0YXR1c0hlaWdodCA9IDA7XG5cdGNvbm5lY3RlZEhlaWdodCA9IDA7XG5cblx0aXNEZXZpY2UgPSBmYWxzZTtcblx0c2hvd05hdmlnYXRpb25NZW51ID0gZmFsc2U7XG5cblx0aW5pdFZlcnNpb24gPSBmYWxzZTtcblx0b3Blbk5hdk1vZCA9IGZhbHNlO1xuXHR0b3VyU3RhcnRlZCA9IGZhbHNlO1xuXG5cdC8vIHRvdXJTdG9wczogYW55W10gPSBbe1xuXHQvLyBcdGFuY2hvcklkOiAnbmF2QmFyTWFpbicsXG5cdC8vIFx0Y29udGVudDogJ05hdiBNYWluIGNvbnRlbnQnLFxuXHQvLyBcdHRpdGxlOiAnTmF2YmFyIE1haW4nLFxuXHQvLyBcdHBsYWNlbWVudDogJ2JvdHRvbSdcblx0Ly8gfSwge1xuXHQvLyBcdGFuY2hvcklkOiAndGFiMScsXG5cdC8vIFx0Y29udGVudDogJ1Rlc3QgQ29udGVudCcsXG5cdC8vIFx0dGl0bGU6ICdUYWIgMScsXG5cdC8vIFx0cGxhY2VtZW50OiAnYm90dG9tJyxcblx0Ly8gXHRyb3V0ZTogJ3Rlc3QnXG5cdC8vIH0sIHtcblx0Ly8gXHRhbmNob3JJZDogJ3RhYjInLFxuXHQvLyBcdGNvbnRlbnQ6ICdSQiBDb250ZW50Jyxcblx0Ly8gXHR0aXRsZTogJ1RhYiAyJyxcblx0Ly8gXHRwbGFjZW1lbnQ6ICdib3R0b20nLFxuXHQvLyBcdHJvdXRlOiAncmVwb3J0LWJ1aWxkZXInXG5cdC8vIH0sIHtcblx0Ly8gXHRhbmNob3JJZDogJ25hdkJhck1haW4nLFxuXHQvLyBcdGNvbnRlbnQ6ICdOYXYgTWFpbiBjb250ZW50IDInLFxuXHQvLyBcdHRpdGxlOiAnTmF2YmFyIE1haW4gQWdhaW4nLFxuXHQvLyBcdHBsYWNlbWVudDogJ2JvdHRvbSdcblx0Ly8gfSwge1xuXHQvLyBcdGFuY2hvcklkOiAnbmF2QmFyTW9kdWxlJyxcblx0Ly8gXHRjb250ZW50OiAnTmF2IE1vZCBjb250ZW50Jyxcblx0Ly8gXHR0aXRsZTogJ05hdmJhciBNb2QnLFxuXHQvLyBcdHBsYWNlbWVudDogJ3JpZ2h0J1xuXHQvLyB9XTtcblxuXHRpc0Nvbm5lY3RlZCA9IGZhbHNlO1xuXHRpc0Nvbm5lY3RpbmcgPSBmYWxzZTtcblx0c29ja2V0U3RhdHVzOiBudW1iZXI7XG5cblx0dXNlcjogVXNlck1vZGVsO1xuXHRzdGF0dXM6IEFwcFN0YXR1c01vZGVsO1xuXG5cdGNvbGxhcHNhYmxlTWVudSA9IHRydWU7XG5cdGZvbnRTaXplID0gMTI7XG5cdG9wZW5lZFdpbmRvdyA9IGZhbHNlO1xuXHRcblx0aW52YWxpZFZlcnNpb24gPSBmYWxzZTtcblx0aXNPZmZsaW5lID0gZmFsc2U7XG5cdGZvdW5kVXBkYXRlID0gZmFsc2U7XG5cblx0b3JpZW50YXRpb24gPSAncG9ydHJhaXQnO1xuXG5cdC8vIHByZXZpb3VzUm91dGVyRXJyb3JIYW5kbGVyID0gbnVsbDtcblxuXHRpc1Jlc29sdmVJTyA9IGZhbHNlO1xuXG5cdC8vIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RldmljZURldDogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLCBwcml2YXRlIF9kczogRGlhbG9nU2VydmljZSwgcHJpdmF0ZSBfcmVzaXplU2VydmljZTogUmVzaXplU2VydmljZSwgcHVibGljIF9zZXJ2aWNlczogUHJvdmlkZXJTZXJ2aWNlLCBwcml2YXRlIF9vZmZsaW5lOiBPZmZsaW5lTWFuYWdlclNlcnZpY2UsIHByaXZhdGUgX3N0b3JhZ2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsIHByaXZhdGUgX2F1dGg6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIF9hcHM6IEF1dGhQZXJtaXNzaW9uU2VydmljZSwgcHJpdmF0ZSB0b3VyU2VydmljZTogTmdiVG91clNlcnZpY2UpIHtcblx0Ly8gXHRzdXBlcihfc2VydmljZXMpO1xuXHQvLyB9XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfZGV2aWNlRGV0OiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsIHByaXZhdGUgX2RzOiBEaWFsb2dTZXJ2aWNlLCBwcml2YXRlIF9yZXNpemVTZXJ2aWNlOiBSZXNpemVTZXJ2aWNlLCBwdWJsaWMgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UsIHByaXZhdGUgX29mZmxpbmU6IE9mZmxpbmVNYW5hZ2VyU2VydmljZSwgcHJpdmF0ZSBfc3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSwgcHJpdmF0ZSBfYXV0aDogQXV0aFNlcnZpY2UsIHByaXZhdGUgX2FwczogQXV0aFBlcm1pc3Npb25TZXJ2aWNlKSB7XG5cdFx0c3VwZXIoX3NlcnZpY2VzKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0RW52aXJvbm1lbnQodGhpcy5lbnZpcm9ubWVudCk7XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRDbGllbnQodGhpcy5jbGllbnQpO1xuXHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0U3RhbmRhcmRQcm9ncmFtKHRoaXMuc3RhbmRhcmRQcm9ncmFtKTtcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldE5hdlRhYnModGhpcy5uYXZUYWJzKTtcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldFJlc29sdmVJT0hvbWVwYWdlKHRoaXMuc2hvd1Jlc29sdmVJT0hvbWVwYWdlKTtcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldFRvdXJTdG9wcyh0aGlzLnRvdXJTdG9wcyk7XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRUb3VyU3RhcnRlZCh0aGlzLnRvdXJTdGFydGVkKTtcblxuXHRcdGlmICh0aGlzLnNob3dSZXNvbHZlSU9Ib21lcGFnZSkge1xuXHRcdFx0dGhpcy5pc1Jlc29sdmVJTyA9IHRydWU7XG5cdFx0fVxuXG5cdFx0dGhpcy5fc2VydmljZXMuX2FjY291bnQuaW5pdExvZ2luTWFuYWdlcih0aGlzLmVudmlyb25tZW50LCB0aGlzLmFwcFZlcnNpb24pO1xuXHRcdFxuXHRcdGlmICh0aGlzLmVudmlyb25tZW50ICYmIHRoaXMuZW52aXJvbm1lbnQuTVNfQUxMT1dFRCkge1xuXHRcdFx0dGhpcy5fYXV0aC5zZXR1cE1TU2luZ2xlU2lnbk9uKHRoaXMuZW52aXJvbm1lbnQpO1xuXHRcdH1cblxuXHRcdHRoaXMuX2F1dGguc2V0VXNlckhhc1Bob25lTnVtYmVyKHRoaXMudXNlckhhc1Bob25lTnVtYmVyKTtcblxuXHRcdC8vIHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0Q3VzdG9tSG9tZVBhZ2UodGhpcy5jdXN0b21Ib21lUGFnZSk7XG5cblx0XHQvLyB0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldExvZ28odGhpcy5sb2dvKTtcblxuXHRcdHRoaXMuX3Jlc2l6ZVNlcnZpY2Uub25SZXNpemUkLnN1YnNjcmliZSgodmFsKSA9PiB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy53aW5kb3dTaXplSGVpZ2h0ID0gdmFsLmlubmVySGVpZ2h0O1xuXHRcdFx0XHR0aGlzLndpbmRvd1NpemVXaWR0aCA9IHZhbC5pbm5lcldpZHRoO1xuXHRcdFx0fSwgMTAwKTtcblx0XHR9KTtcblx0XHRcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLmZ1bGxTY3JlZW4uc3Vic2NyaWJlKGZ1bGxTY3JlZW4gPT4ge1xuXHRcdFx0dGhpcy5mdWxsU2NyZWVuID0gZnVsbFNjcmVlbjtcblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LnVzZXIuc3Vic2NyaWJlKHVzZXIgPT4ge1xuXHRcdFx0aWYgKHVzZXIgJiYgdXNlci5zZXR0aW5ncykge1xuXHRcdFx0XHR0aGlzLmNvbGxhcHNhYmxlTWVudSA9IHVzZXIuc2V0dGluZ3MuY29sbGFwc2FibGVfbWVudTtcblx0XHRcdFx0dGhpcy5mb250U2l6ZSA9IHVzZXIuc2V0dGluZ3MuZm9udF9zaXplO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1jb2xvcicsIHVzZXIuc2V0dGluZ3Mud2FybmluZ19jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLndhcm5pbmdfZm9udF9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3Mud2FybmluZ19jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWhvdmVyLWNvbG9yJywgdXNlci5zZXR0aW5ncy53YXJuaW5nX2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtY29sb3InLCB1c2VyLnNldHRpbmdzLnN1Y2Nlc3NfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5zdWNjZXNzX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLnN1Y2Nlc3NfY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3Muc3VjY2Vzc19ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItY29sb3InLCB1c2VyLnNldHRpbmdzLmRhbmdlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tY29sb3InLCB1c2VyLnNldHRpbmdzLmluZm9fY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5pbmZvX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLmluZm9fY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3MuaW5mb19ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWNvbG9yJywgdXNlci5zZXR0aW5ncy5wcmltYXJ5X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3MucHJpbWFyeV9mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSAnICsgaGV4VG9SR0IodXNlci5zZXR0aW5ncy5wcmltYXJ5X2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLnByaW1hcnlfaG92ZXJfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWNvbG9yJywgdXNlci5zZXR0aW5ncy5zZWNvbmRhcnlfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9ob3Zlcl9jb2xvcik7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmICh1c2VyICYmICghdXNlci5vdGhlclsnY3VzdG9tZXJzJ10gfHwgIXVzZXIub3RoZXJbJ2N1c3RvbWVycyddLmxlbmd0aCkgJiYgIXVzZXIub3RoZXJbJ2lkX2N1c3RvbWVyJ10gJiYgIXVzZXIuc2V0dGluZ3MgJiYgIXRoaXMub3BlbmVkV2luZG93KSB7XG5cdFx0XHRcdHRoaXMub3BlbmVkV2luZG93ID0gdHJ1ZTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctY29sb3InLCAnI2ZmYzEwNycpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1mb250LWNvbG9yJywgJyMwMDAwMDAnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDIyMiwgMTcwLCAxMiwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1ob3Zlci1jb2xvcicsICcjZTBhODAwJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWNvbG9yJywgJyMyOGE3NDUnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSg3MiwgMTgwLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1ob3Zlci1jb2xvcicsICcjMjE4ODM4Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItY29sb3InLCAnI2RjMzU0NScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgyMjUsIDgzLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWhvdmVyLWNvbG9yJywgJyNjODIzMzMnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tY29sb3InLCAnIzE3YTJiOCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDU4LCAxNzYsIDE5NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1ob3Zlci1jb2xvcicsICcjMTM4NDk2Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWNvbG9yJywgJyMwMDdiZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgzOCwgMTQzLCAyNTUsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktaG92ZXItY29sb3InLCAnIzAwNjlkOScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWNvbG9yJywgJyM4NjhlOTYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMTMwLCAxMzgsIDE0NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yJywgJyM1YTYyNjgnKTtcblx0XHRcdFx0dGhpcy5mb250U2l6ZSA9IDEyO1xuXHRcdFx0XHR0aGlzLl9kcy5ub3RpZnkoJ0hlbGxvLCAnICsgdXNlci5mdWxsbmFtZSArICcgaXQgbG9va3MgbGlrZSB0aGVyZSBhcmUgbm8gdXNlciBzZXR0aW5ncyBzYXZlZCBmb3IgeW91LiBUbyBhZGp1c3QgeW91ciB1c2VyIHNldHRpbmdzIGNsaWNrIHlvdXIgbmFtZSBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlIG5leHQgdG8gdGhlIGxvZ291dCBidXR0b24sIGFkanVzdCBhbnkgc2V0dGluZ3MgeW91IHdhbnQsIHRoZW4gY2xpY2sgc3VibWl0IHRvIGFwcGx5IHRoZW0uJyk7XG5cdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLnVybC5zcGxpdCgnLycpWzBdICsgJy91c2VyLXNldHRpbmdzL3NldHRpbmdzJylcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1jb2xvcicsICcjZmZjMTA3Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWZvbnQtY29sb3InLCAnIzAwMDAwMCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMjIyLCAxNzAsIDEyLCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWhvdmVyLWNvbG9yJywgJyNlMGE4MDAnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtY29sb3InLCAnIzI4YTc0NScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3Mtc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDcyLCAxODAsIDk3LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWhvdmVyLWNvbG9yJywgJyMyMTg4MzgnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1jb2xvcicsICcjZGMzNTQ1Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDIyNSwgODMsIDk3LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItaG92ZXItY29sb3InLCAnI2M4MjMzMycpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1jb2xvcicsICcjMTdhMmI4Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoNTgsIDE3NiwgMTk1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWhvdmVyLWNvbG9yJywgJyMxMzg0OTYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktY29sb3InLCAnIzAwN2JmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDM4LCAxNDMsIDI1NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1ob3Zlci1jb2xvcicsICcjMDA2OWQ5Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktY29sb3InLCAnIzg2OGU5NicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgxMzAsIDEzOCwgMTQ1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktaG92ZXItY29sb3InLCAnIzVhNjI2OCcpO1xuXHRcdFx0XHR0aGlzLmZvbnRTaXplID0gMTI7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMudXNlciA9IHVzZXI7XG5cblx0XHRcdGlmICh1c2VyKSB7XG5cdFx0XHRcdGlmICh1c2VyLnNldHRpbmdzICYmIHRoaXMudG91clN0b3BzLmxlbmd0aCAmJiAhKHVzZXIub3RoZXIgJiYgdXNlci5vdGhlci50b3VyVGFrZW4pICYmICF0aGlzLnRvdXJTdGFydGVkKSB7XG5cdFx0XHRcdFx0Ly8gdGhpcy50b3VyU2VydmljZS5pbml0aWFsaXplKHRoaXMudG91clN0b3BzKTtcblx0XHQgIFxuXHRcdFx0XHRcdC8vIHRoaXMudG91clNlcnZpY2Uuc3RhcnQoKTtcblx0XHRcdFx0XHR0aGlzLnRvdXJTdGFydGVkID0gdHJ1ZTtcblx0XHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldFRvdXJTdGFydGVkKHRoaXMudG91clN0YXJ0ZWQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBpZiAoIXRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIpIHtcblx0XHQvLyBcdHRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIgPSB0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLmVycm9ySGFuZGxlcjtcblx0XHQvLyBcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIuZXJyb3JIYW5kbGVyID0gZnVuY3Rpb24gKGVycjogYW55KSB7XHRcblx0XHQvLyBcdFx0cmV0dXJuIHRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIuYXBwbHkodGhpcy5wcmV2aW91c1JvdXRlckVycm9ySGFuZGxlciwgYXJndW1lbnRzKTtcblx0XHQvLyBcdH07XG5cdFx0Ly8gfVxuXG5cdFx0aWYgKHRoaXMuX2RldmljZURldC5pc01vYmlsZSgpIHx8IHRoaXMuX2RldmljZURldC5pc1RhYmxldCgpKSB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldElzRGV2aWNlKHRydWUpO1xuXHRcdFx0dGhpcy5pc0RldmljZSA9IHRydWU7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRJc0RldmljZShmYWxzZSk7XG5cdFx0XHR0aGlzLmlzRGV2aWNlID0gZmFsc2U7XG5cdFx0fVxuXG5cdFx0bGV0IHZlcnNpb25BbGVydCA9IG51bGw7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LnN1YnNjcmliZUJ5cGFzc1JvdXRlKCdhcHB2ZXJzaW9uJykuc3Vic2NyaWJlKGFwcFZlcnNpb24gPT4ge1xuXHRcdFx0aWYgKGFwcFZlcnNpb24pIHtcblx0XHRcdFx0dGhpcy5zZXJ2ZXJWZXJzaW9uID0gYXBwVmVyc2lvbi52ZXJzaW9uO1xuXG5cdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnc2V0V1NBcHBWZXJzaW9uJywgdGhpcy5hcHBWZXJzaW9uKTtcblxuXHRcdFx0XHRpZiAodGhpcy5hcHBWZXJzaW9uIDwgdGhpcy5zZXJ2ZXJWZXJzaW9uKSB7IC8vUmVsb2FkIHRvIGdldCBuZXcgdmVyc2lvblxuXHRcdFx0XHRcdHRoaXMuaW52YWxpZFZlcnNpb24gPSB0cnVlO1xuXG5cdFx0XHRcdFx0aWYgKHRoaXMuZW52aXJvbm1lbnQuSVNfUFJPRFVDVElPTikge1xuXHRcdFx0XHRcdFx0dmVyc2lvbkFsZXJ0ID0gdGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCdlcnJvcicsICdJbnZhbGlkIHZlcnNpb24sIGF0dGVtcHRpbmcgdG8gdXBkYXRlIGFuZCB3aWxsIHJlbG9hZC4gIElmIG5vIHJlbG9hZCB0YWtlcyBwbGFjZSwgcGxlYXNlIG1hbnVhbGx5IHJlbG9hZCcsIDApO1xuXHRcdFx0XHRcdFx0dmVyc2lvbkFsZXJ0ID0gdGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCd3YXJuaW5nJywgJ0lmIHlvdSBhcmUgaGF2aW5nIHRyb3VibGUgcmVtb3ZpbmcgdGhpcyBtZXNzYWdlLCB0cnkgdG8gaG9sZCBTaGlmdCBrZXkgYW5kIGNsaWNrIHRoZSByZWxvYWQgYnV0dG9uLiAgSWYgdGhhdCBkb2VzblxcJ3Qgd29yayB0cnkgdG8gY2xvc2UgYWxsIHRhYnMgYW5kIGJyb3dzZXIgYW5kIHJlb3Blbi4gTGFzdCByZXNvcnQgLSBjbGVhciBhbGwgYnJvd3NlciBkYXRhL2NhY2hlLicsIDApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0SXNJbnZhbGlkVmVyc2lvbih0cnVlKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRpZiAodmVyc2lvbkFsZXJ0KSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYWxlcnQuY2xlYXJBbGVydCh2ZXJzaW9uQWxlcnQudG9hc3RJZCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRpZiAodGhpcy5lbnZpcm9ubWVudC5JU19QUk9EVUNUSU9OKSB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LnN1YnNjcmliZUJ5cGFzc1JvdXRlKCdmbGFnV2l0aFR5cGUnLCAnbmV3U1cnKS5zdWJzY3JpYmUoZmxhZyA9PiB7XG5cdFx0XHRcdGlmIChmbGFnKSB7XG5cdFx0XHRcdFx0aWYgKCF0aGlzLmludmFsaWRWZXJzaW9uKSB7XG5cdFx0XHRcdFx0XHRsZXQgY291bnQgPSAzMDtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0bGV0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAoY291bnQgPD0gMCkge1xuXHRcdFx0XHRcdFx0XHRcdGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCdpbmZvJywgJ1RoaXMgcGFnZSB3aWxsIHJlbG9hZCBpbiAnICsgKGNvdW50LS0pICsgJyBzZWNvbmRzIScsIDYwMCk7XG5cdFx0XHRcdFx0XHR9LCAxMDAwKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHRoaXMuX29mZmxpbmUub2ZmbGluZU1vZGUuc3Vic2NyaWJlKG9mZmxpbmUgPT4ge1xuXHRcdFx0dGhpcy5pc09mZmxpbmUgPSBvZmZsaW5lO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX2FjY291bnQuZ2V0U29ja2V0U3RhdHVzKCkuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XG5cdFx0XHR0aGlzLnNvY2tldFN0YXR1cyA9IHN0YXR1cztcblx0XHRcdFxuXHRcdFx0aWYgKCF0aGlzLnVzZXIpIHtcblx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuXG5cdFx0XHRcdGlmICh0aGlzLmlzUmVzb2x2ZUlPKSB7XG5cdFx0XHRcdFx0dGhpcy5jb25uZWN0ZWRIZWlnaHQgPSAwO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuY29ubmVjdGVkSGVpZ2h0ID0gNDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRpZiAodGhpcy5zb2NrZXRTdGF0dXMgPT09IFdlYlNvY2tldC5PUEVOKSB7XG5cdFx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RlZCA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG5cblx0XHRcdFx0XHRpZiAodGhpcy5zb2NrZXRTdGF0dXMgPT09IFdlYlNvY2tldC5DT05ORUNUSU5HKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGluZyA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdGlmICghdGhpcy5pc0Nvbm5lY3RlZCkge1xuXHRcdFx0XHRcdHRoaXMuY29ubmVjdGVkSGVpZ2h0ID0gNDA7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5jb25uZWN0ZWRIZWlnaHQgPSAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LnN1YnNjcmliZUJ5cGFzc1JvdXRlKCdhcHBzdGF0dXMnKS5zdWJzY3JpYmUoYXBwc3RhdHVzID0+IHtcblx0XHRcdHRoaXMuc3RhdHVzID0gYXBwc3RhdHVzOyAvL09LIGlmIG5vdCBkZWZpbmVkXG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldEhhc1N0YXR1c01lc3NhZ2UodGhpcy5zdGF0dXMgPyB0cnVlIDogZmFsc2UpO1xuXHRcdFx0dGhpcy5zdGF0dXNIZWlnaHQgPSB0aGlzLnN0YXR1cyA/IDQwIDogMDtcblx0XHR9KTtcblxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5uYXZiYXJNYWluSGVpZ2h0ID0gdGhpcy5lbF9uYXZCYXJNYWluLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0O1xuXHRcdH0sIDEwMCk7XG5cdFx0XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLm5hdmJhck1haW5IZWlnaHQgPSB0aGlzLmVsX25hdkJhck1haW4ubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5jbGllbnRIZWlnaHQ7XG5cdFx0fSwgMTAwMCk7XG5cblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMubmF2YmFyTWFpbkhlaWdodCA9IHRoaXMuZWxfbmF2QmFyTWFpbi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodDtcblx0XHR9LCA1MDAwKTtcblxuXHRcdGlmICh0aGlzLmlzRGV2aWNlKSB7XG5cdFx0XHRsZXQgZmlyc3RSZWRpcmVjdCA9IGZhbHNlO1xuXHRcdFx0bGV0IGxhc3RVUkwgPSB0aGlzLl9zdG9yYWdlLmdldCgnbGFzdFVSTCcpO1xuXG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKSA9PiB7XG5cdFx0XHRcdGlmIChsYXN0VVJMICYmIGxhc3RVUkwgIT09ICcvJyAmJiAhZmlyc3RSZWRpcmVjdCkge1xuXHRcdFx0XHRcdGlmIChldmVudC51cmwgPT09ICcnIHx8IGV2ZW50LnVybCA9PT0gJy8nKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGFzdFVSTCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Zmlyc3RSZWRpcmVjdCA9IHRydWU7XG5cblx0XHRcdFx0aWYgKGV2ZW50LnVybCkge1xuXHRcdFx0XHRcdHRoaXMuX3N0b3JhZ2Uuc2V0KCdsYXN0VVJMJywgZXZlbnQudXJsKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmIChldmVudC51cmxBZnRlclJlZGlyZWN0cykge1xuXHRcdFx0XHRcdHRoaXMuX3N0b3JhZ2Uuc2V0KCdsYXN0VVJMJywgZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMpO1xuXHRcdFx0XHR9XHRcdFx0XHRcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGlmIChbJ2lQYWQnLCAnaVBob25lJywgJ2lQb2QnXS5pbmRleE9mKG5hdmlnYXRvci5wbGF0Zm9ybSkgPj0gMCAmJiAoJ3N0YW5kYWxvbmUnIGluIHdpbmRvdy5uYXZpZ2F0b3IpICYmICg8YW55PndpbmRvdy5uYXZpZ2F0b3IpLnN0YW5kYWxvbmUpIHtcblx0XHRcdHRoaXMuc2hvd05hdmlnYXRpb25NZW51ID0gdHJ1ZTtcblx0XHR9XG5cblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb3JpZW50YXRpb25jaGFuZ2UnLCAoKSA9PiB7XG5cdFx0XHRpZiAod2luZG93Lm9yaWVudGF0aW9uID09PSAtOTApIHtcblx0XHRcdFx0dGhpcy5vcmllbnRhdGlvbiA9ICdsYW5kc2NhcGUnO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHdpbmRvdy5vcmllbnRhdGlvbiA9PT0gOTApIHtcblx0XHRcdFx0dGhpcy5vcmllbnRhdGlvbiA9ICdsYW5kc2NhcGUnO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHdpbmRvdy5vcmllbnRhdGlvbiA9PT0gMCkge1xuXHRcdFx0XHR0aGlzLm9yaWVudGF0aW9uID0gJ3BvcnRyYWl0Jztcblx0XHRcdH1cblx0XHR9LCB0cnVlKTtcblxuXHRcdGxldCBtb3VzZXdoZWVsRXZlbnQ7XG5cbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ub2RlTmFtZSA9PT0gJ0lOUFVUJyAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50Wyd0eXBlJ10gPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgbW91c2V3aGVlbEV2ZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXdoZWVsJywgaGFuZGxlTW91c2V3aGVlbEV2ZW50LCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHRydWUpO1xuXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmIChtb3VzZXdoZWVsRXZlbnQpIHtcbiAgICAgICAgICAgICAgICBtb3VzZXdoZWVsRXZlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXdoZWVsJywgaGFuZGxlTW91c2V3aGVlbEV2ZW50KTtcbiAgICAgICAgICAgIH1cblx0XHR9LCB0cnVlKTtcblx0XHRcblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCAoZSkgPT4ge1xuXHRcdFx0bGV0IGV2ID0gZSB8fCBldmVudDtcblx0XHRcdGV2LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fSwgZmFsc2UpO1xuXHRcdFxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgKGUpID0+IHtcblx0XHRcdGxldCBldiA9IGUgfHwgZXZlbnQ7XG5cdFx0XHRldi5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH0sIGZhbHNlKTtcblxuXHRcdC8vIHRoaXMudG91clNlcnZpY2UuZXZlbnRzJC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuXHRcdC8vIFx0aWYgKGV2ZW50Lm5hbWUgPT09ICdzdGVwU2hvdycgJiYgZXZlbnQudmFsdWUgJiYgZXZlbnQudmFsdWUuYW5jaG9ySWQuc3RhcnRzV2l0aCgnbmF2QmFyTW9kdWxlJykpIHtcblx0XHQvLyBcdFx0dGhpcy5vcGVuTmF2TW9kID0gdHJ1ZTtcblx0XHQvLyBcdFx0dGhpcy5vcGVuTmF2KCk7XG5cdFx0Ly8gXHR9XG5cdFx0Ly8gXHRlbHNlIGlmIChldmVudC5uYW1lID09PSAnZW5kJykge1xuXHRcdC8vIFx0XHR0aGlzLnRvdXJTdGFydGVkID0gZmFsc2U7XG5cdFx0Ly8gXHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0VG91clN0YXJ0ZWQodGhpcy50b3VyU3RhcnRlZCk7XG5cdFx0Ly8gXHRcdGlmICh0aGlzLnVzZXJbJ290aGVyJ10pIHtcblx0XHQvLyBcdFx0XHR0aGlzLnVzZXJbJ290aGVyJ10udG91clRha2VuID0gdHJ1ZTtcblx0XHQvLyBcdFx0fVxuXHRcdC8vIFx0XHRlbHNlIHtcblx0XHQvLyBcdFx0XHR0aGlzLnVzZXJbJ290aGVyJ10gPSB7IFxuXHRcdC8vIFx0XHRcdFx0dG91clRha2VuOiB0cnVlXG5cdFx0Ly8gXHRcdFx0fTtcblx0XHQvLyBcdFx0fVxuXHRcdFx0XHRcblx0XHQvLyBcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCd1cGRhdGVEb2N1bWVudFByb3BzJywgJ3VzZXJzJywgdGhpcy51c2VyLl9pZCwgW1xuXHRcdC8vIFx0XHRcdHtwcm9wOiAnb3RoZXInLCBkYXRhOiB0aGlzLnVzZXIub3RoZXJ9XG5cdFx0Ly8gXHRcdF0sIHRoaXMudXNlci5fX3YsIChlcnIsIHJlcykgPT4ge1xuXHRcdC8vIFx0XHRcdGlmIChlcnIgfHwgIXJlcykge1xuXHRcdC8vIFx0XHRcdFx0dGhpcy5fZHMuZXJyb3IoJ0NvdWxkIG5vdCB1cGRhdGUgdXNlcicpO1xuXHRcdC8vIFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdVcGRhdGUgdXNlciB0b3VyJywgW2VyciwgdGhpcy51c2VyXSk7XG5cdFx0Ly8gXHRcdFx0fVxuXHRcdC8vIFx0XHR9KTtcblx0XHQvLyBcdFx0dGhpcy5vcGVuTmF2TW9kID0gZmFsc2U7XG5cdFx0Ly8gXHR9XG5cdFx0Ly8gXHRlbHNlIHtcblx0XHQvLyBcdFx0dGhpcy5vcGVuTmF2TW9kID0gZmFsc2U7XG5cdFx0Ly8gXHR9XG4gICAgICAgIC8vIH0pO1xuXHR9XG5cblx0Z2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkge1xuXHRcdHJldHVybiB0aGlzLmVsX25hdkJhck1vZHVsZS5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodDtcblx0fVxuXG5cdG9uUHVzaEJhY2tCdXR0b24oKSB7XG5cdFx0d2luZG93Lmhpc3RvcnkuYmFjaygpO1xuXHR9XG5cblx0b25QdXNoUmVsb2FkQnV0dG9uKCkge1xuXHRcdHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcblx0fVxuXG5cdG9uUHVzaEZvcndhcmRCdXR0b24oKSB7XG5cdFx0d2luZG93Lmhpc3RvcnkuZm9yd2FyZCgpO1xuXHR9XG5cblx0b3Blbk5hdigpIHtcblx0XHRsZXQgeCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZTaWQnKTtcblx0XHRsZXQgeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluX2NvbnQnKTtcblx0XHRpZiAoKHguc3R5bGUud2lkdGggPT09ICc0MHB4JyAmJiB5LnN0eWxlLnBhZGRpbmdMZWZ0ID09PSAnNTVweCcpIHx8IHRoaXMub3Blbk5hdk1vZCkge1xuXHRcdFx0eC5zdHlsZS53aWR0aCA9ICcxOTVweCc7XG5cdFx0XHR5LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzIxMHB4Jztcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHR4LnN0eWxlLndpZHRoID0gJzQwcHgnO1xuXHRcdFx0eS5zdHlsZS5wYWRkaW5nTGVmdCA9ICc1NXB4Jztcblx0XHR9XG5cdH1cblx0XHRcblx0Y2xvc2VOYXYoKSB7XG5cdFx0aWYgKCF0aGlzLm9wZW5OYXZNb2QpIHtcblx0XHRcdGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZTaWQnKS5zdHlsZS53aWR0aCA9ICc0MHB4Jztcblx0XHRcdGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluX2NvbnQnKS5zdHlsZS5wYWRkaW5nTGVmdCA9ICc1NXB4JztcdFx0XHRcblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlTW91c2V3aGVlbEV2ZW50KCkge1xuXHQoPGFueT5kb2N1bWVudC5hY3RpdmVFbGVtZW50KS5ibHVyKCk7XG59XG5cbmZ1bmN0aW9uIGhleFRvUkdCKGhleCwgYWxwaGEpIHtcbiAgICBsZXQgciA9IHBhcnNlSW50KGhleC5zbGljZSgxLCAzKSwgMTYpLFxuICAgICAgICBnID0gcGFyc2VJbnQoaGV4LnNsaWNlKDMsIDUpLCAxNiksXG4gICAgICAgIGIgPSBwYXJzZUludChoZXguc2xpY2UoNSwgNyksIDE2KTtcblxuICAgIGlmIChhbHBoYSkge1xuICAgICAgICByZXR1cm4gXCJyZ2JhKFwiICsgciArIFwiLCBcIiArIGcgKyBcIiwgXCIgKyBiICsgXCIsIFwiICsgYWxwaGEgKyBcIilcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gXCJyZ2IoXCIgKyByICsgXCIsIFwiICsgZyArIFwiLCBcIiArIGIgKyBcIilcIjtcbiAgICB9XG59IiwiPHN0eWxlPlxuXHQ6cm9vdCB7XG4gICAgICAgIC0td2FybmluZy1jb2xvcjogI2ZmYzEwNztcbiAgICAgICAgLS13YXJuaW5nLWZvbnQtY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIC0td2FybmluZy1ob3Zlci1jb2xvcjogI2UwYTgwMDtcbiAgICAgICAgLS13YXJuaW5nLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoMjIyLCAxNzAsIDEyLCAwLjUpO1xuICAgICAgICAtLXN1Y2Nlc3MtY29sb3I6ICMyOGE3NDU7XG4gICAgICAgIC0tc3VjY2Vzcy1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLXN1Y2Nlc3MtaG92ZXItY29sb3I6ICMyMTg4Mzg7XG4gICAgICAgIC0tc3VjY2Vzcy1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDcyLCAxODAsIDk3LCAwLjUpO1xuICAgICAgICAtLWRhbmdlci1jb2xvcjogI2RjMzU0NTtcbiAgICAgICAgLS1kYW5nZXItZm9udC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgLS1kYW5nZXItaG92ZXItY29sb3I6ICNjODIzMzM7XG4gICAgICAgIC0tZGFuZ2VyLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoMjI1LCA4MywgOTcsIDAuNSk7XG4gICAgICAgIC0taW5mby1jb2xvcjogIzE3YTJiODtcbiAgICAgICAgLS1pbmZvLWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0taW5mby1ob3Zlci1jb2xvcjogIzEzODQ5NjtcbiAgICAgICAgLS1pbmZvLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoNTgsIDE3NiwgMTk1LCAwLjUpO1xuICAgICAgICAtLXByaW1hcnktY29sb3I6ICMwMDdiZmY7XG4gICAgICAgIC0tcHJpbWFyeS1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLXByaW1hcnktaG92ZXItY29sb3I6ICMwMDY5ZDk7XG4gICAgICAgIC0tcHJpbWFyeS1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDM4LCAxNDMsIDI1NSwgMC41KTtcbiAgICAgICAgLS1zZWNvbmRhcnktY29sb3I6ICM4NjhlOTY7XG4gICAgICAgIC0tc2Vjb25kYXJ5LWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yOiAjNWE2MjY4O1xuICAgICAgICAtLXNlY29uZGFyeS1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDEzMCwgMTM4LCAxNDUsIDAuNSk7XG4gICAgfVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLXdhcm5pbmcge1xuXHRcdGNvbG9yOiB2YXIoLS13YXJuaW5nLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmctY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4td2FybmluZzpmb2N1cywgLmJ0bi13YXJuaW5nLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS13YXJuaW5nLXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4td2FybmluZzpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXdhcm5pbmctZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZy1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS13YXJuaW5nLWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLXN1Y2Nlc3Mge1xuXHRcdGNvbG9yOiB2YXIoLS1zdWNjZXNzLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3MtY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tc3VjY2Vzcy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc3VjY2Vzczpmb2N1cywgLmJ0bi1zdWNjZXNzLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1zdWNjZXNzLXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc3VjY2Vzczpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXN1Y2Nlc3MtZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzcy1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzLWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLWRhbmdlciB7XG5cdFx0Y29sb3I6IHZhcigtLWRhbmdlci1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYW5nZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tZGFuZ2VyLWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1kYW5nZXI6Zm9jdXMsIC5idG4tZGFuZ2VyLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1kYW5nZXItc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1kYW5nZXI6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1kYW5nZXItZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFuZ2VyLWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWRhbmdlci1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1pbmZvIHtcblx0XHRjb2xvcjogdmFyKC0taW5mby1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbmZvLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWluZm8tY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLWluZm86Zm9jdXMsIC5idG4taW5mby5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0taW5mby1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLWluZm86aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1pbmZvLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWluZm8taG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0taW5mby1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1wcmltYXJ5IHtcblx0XHRjb2xvcjogdmFyKC0tcHJpbWFyeS1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXByaW1hcnk6Zm9jdXMsIC5idG4tcHJpbWFyeS5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tcHJpbWFyeS1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXByaW1hcnk6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1wcmltYXJ5LWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktaG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zZWNvbmRhcnkge1xuXHRcdGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc2Vjb25kYXJ5OmZvY3VzLCAuYnRuLXNlY29uZGFyeS5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc2Vjb25kYXJ5OmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktaG92ZXItY29sb3IpO1xuXHR9XG5cdFxuICBcdEBtZWRpYSBwcmludCB7XG5cdCAgXHQuZG9udFByaW50ICoge1xuXHRcdCAgXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdCAgXHR9XG5cblx0XHQubXlEaXZUb1ByaW50Q3Mge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxMnB4O1xuXHRcdFx0cGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG5cdFx0XHRkaXNwbGF5OiBpbml0aWFsO1xuXHRcdH1cblxuXHRcdC5yZW1vdmVPdmVyZmxvdyB7XG5cdFx0XHRvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDsgXG5cdFx0XHRoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcblx0XHR9XG4gIFx0fVxuXG4gIFx0LmhpZGVUaGlzIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQubmF2U2lkYmFyIHtcblx0XHR3aWR0aDogMHB4O1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR6LWluZGV4OiAxO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMzNDNhNDA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0cmFuc2l0aW9uOiAwLjVzO1xuXHRcdHBhZGRpbmctdG9wOiAwcHg7XG5cdH1cblxuXHQubmF2U2lkYmFyIGEge1xuXHRcdHBhZGRpbmc6IDhweCA4cHggOHB4IDMycHg7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGZvbnQtc2l6ZTogMjVweDtcblx0XHRjb2xvcjogIzgxODE4MTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR0cmFuc2l0aW9uOiAwLjNzO1xuXHR9XG5cblx0Lm5hdlNpZGJhciBhOmhvdmVyIHtcblx0XHRjb2xvcjogI2YxZjFmMTtcblx0fVxuXG5cdC5vcGVuYnRuIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzYTQwO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRwYWRkaW5nOiA1cHggMjBweDtcblx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0dG9wOiAwcHg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IDk5OTk5OTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXG5cdC5vcGVuYnRuIHNwYW4ge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC05MGRlZyk7XG5cdFx0bWFyZ2luLXRvcDogLTU1cHg7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDMwcHg7XG5cdH1cblx0I21haW5fY29udCB7XG5cdFx0dHJhbnNpdGlvbjogcGFkZGluZy1sZWZ0IC41cztcblx0fVxuXG5cdC5zaWRfaW5yIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDI1cHg7XG5cdH1cblxuPC9zdHlsZT5cbjxkaXYgKm5nSWY9XCJpc0RldmljZVwiPlxuXHQ8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgdHlwZT1cInRleHQvY3NzXCIgaHJlZj1cIi9hc3NldHMvY3NzL3RhYmxldC5jc3NcIj5cbjwvZGl2PlxuPCEtLSA8dG91ci1zdGVwLXRlbXBsYXRlPjwvdG91ci1zdGVwLXRlbXBsYXRlPiAtLT5cbjxkaXYgI3NoZWxsPlxuXHQ8ZGl2ICpuZ0lmPVwidXNlciAmJiAoIWlzQ29ubmVjdGVkIHx8IGlzT2ZmbGluZSlcIj5cblx0XHQ8ZGl2IHN0eWxlPVwiaGVpZ2h0OiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgY29sb3I6IHdoaXRlO1wiPlxuXHRcdFx0PGRpdiBzdHlsZT1cInBhZGRpbmctdG9wOiA5cHg7IHBhZGRpbmctYm90dG9tOiA5cHg7XCI+KioqIE9GRkxJTkUgTU9ERSAqKio8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxkaXYgKm5nSWY9XCIhdXNlciAmJiAoIWlzQ29ubmVjdGVkIHx8IGlzT2ZmbGluZSkgJiYgIWlzUmVzb2x2ZUlPXCI+XG5cdFx0PGRpdiBzdHlsZT1cImhlaWdodDogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IGNvbG9yOiB3aGl0ZTtcIj5cblx0XHRcdDxkaXYgc3R5bGU9XCJwYWRkaW5nLXRvcDogOXB4OyBwYWRkaW5nLWJvdHRvbTogOXB4O1wiPioqKiBQTEVBU0UgTE9HSU4gKioqPC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHQ8ZGl2ICpuZ0lmPVwic3RhdHVzXCI+XG5cdFx0PGRpdiBzdHlsZT1cImhlaWdodDogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IGNvbG9yOiB3aGl0ZTtcIj5cblx0XHRcdDxkaXYgc3R5bGU9XCJwYWRkaW5nLXRvcDogOXB4OyBwYWRkaW5nLWJvdHRvbTogOXB4O1wiPioqKiB7eyBzdGF0dXMubWVzc2FnZSB9fSAqKio8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxkaXYgKm5nSWY9XCJmdWxsU2NyZWVuXCI+XG5cdFx0PHJvdXRlci1vdXRsZXQgbmFtZT1cImpvYmJvYXJkZnNvdXRsZXRcIj48L3JvdXRlci1vdXRsZXQ+XG5cdDwvZGl2PlxuXHQ8ZGl2IFtuZ0NsYXNzXT1cIlsnY29udGFpbmVyLWZsdWlkJywgZnVsbFNjcmVlbiA/ICdoaWRlVGhpcycgOiAnJ11cIiBbc3R5bGUuZm9udC1zaXplLnB4XT1cImZvbnRTaXplXCI+XG5cdFx0PGRpdiBjbGFzcz1cImRvbnRQcmludFwiPlxuXHRcdFx0PG5hdmJhci1tYWluIHN0eWxlPVwid2lkdGg6IDEwMCVcIiB0b3VyQW5jaG9yPVwibmF2QmFyTWFpblwiICNuYXZCYXJNYWluIFtsb2dvXT1cImxvZ29cIiBbbmF2VGFic109XCJuYXZUYWJzXCIgW2ZvbnRTaXplXT1cImZvbnRTaXplXCI+PC9uYXZiYXItbWFpbj5cblx0XHQ8L2Rpdj5cblx0XHQ8bmctdGVtcGxhdGUgbmdiTW9kYWxDb250YWluZXI+PC9uZy10ZW1wbGF0ZT5cblx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHQ8ZGl2IGlkPVwibmF2U2lkXCIgW25nQ2xhc3NdPVwiWydkb250UHJpbnQnLCB3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/ICduYXZTaWRiYXInIDogJ2NvbC14bC0xJ11cIiBbc3R5bGUud2lkdGhdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyA0MCArICdweCcgOiAxMDAgKyAnJSdcIiBbc3R5bGUubWFyZ2luLXRvcC5weF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/IG5hdmJhck1haW5IZWlnaHQgKyBzdGF0dXNIZWlnaHQgKyBjb25uZWN0ZWRIZWlnaHQgOiAwXCIgPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwib3BlbmJ0blwiICpuZ0lmPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnVcIiAobW91c2VlbnRlcik9XCJvcGVuTmF2KClcIj48c3Bhbj5NRU5VPC9zcGFuPjwvZGl2PlxuXHRcdFx0XHQ8ZGl2IFtuZ0NsYXNzXT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gJ3NpZF9pbnInIDogJydcIj5cblx0XHRcdFx0XHQ8bmF2YmFyLW1vZHVsZSAjbmF2QmFyTW9kdWxlIHRvdXJBbmNob3I9XCJuYXZCYXJNb2R1bGVcIiBbc2lkZU5hdldpZHRoXT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gJzkwJScgOiAnYXV0bydcIiBbc2lkZU5hdkhlaWdodF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/IHdpbmRvd1NpemVIZWlnaHQgLSBuYXZiYXJNYWluSGVpZ2h0IC0gc3RhdHVzSGVpZ2h0IC0gY29ubmVjdGVkSGVpZ2h0IC0gKHNob3dOYXZpZ2F0aW9uTWVudSA/ICg1NCArIGdldE5hdmJhck1vZHVsZUhlaWdodCgpKSA6IDApIC0gKCghaXNEZXZpY2UgfHwgKGlzRGV2aWNlICYmIHNob3dOYXZpZ2F0aW9uTWVudSkpID8gMjAgOiAwKSA6ICcnXCI+PC9uYXZiYXItbW9kdWxlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBbaWRdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCA/ICdtYWluX2NvbnQnIDogJ21haW5fY29udF9tb2JpbGUnXCIgW25nQ2xhc3NdPVwiW3dpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gJ2NvbC14bC0xMicgOiAnY29sLXhsLTExJ11cIiBbc3R5bGUucGFkZGluZy1sZWZ0LnB4XT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gNTUgOiAwXCIgKG1vdXNlZW50ZXIpPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyBjbG9zZU5hdigpIDogbnVsbFwiPlxuXHRcdFx0XHQ8ZGl2IHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHg7IC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaFwiIFtzdHlsZS5vdmVyZmxvdy15XT1cIihpc0RldmljZSAmJiAhc2hvd05hdmlnYXRpb25NZW51KSA/ICdpbml0aWFsJyA6ICdzY3JvbGwnXCIgW3N0eWxlLmhlaWdodC5weF09XCJ3aW5kb3dTaXplSGVpZ2h0IC0gKChpc0RldmljZSB8fCB3aW5kb3dTaXplV2lkdGggPD0gMTIwMCkgJiYgIXNob3dOYXZpZ2F0aW9uTWVudSA/IChnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSA+IDEwMCA/IDAgOiBnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSkgOiAwKSAtIG5hdmJhck1haW5IZWlnaHQgLSBzdGF0dXNIZWlnaHQgLSBjb25uZWN0ZWRIZWlnaHQgLSAoaXNEZXZpY2UgJiYgc2hvd05hdmlnYXRpb25NZW51ID8gKDU0ICsgKGdldE5hdmJhck1vZHVsZUhlaWdodCgpID4gMTAwID8gMCA6IGdldE5hdmJhck1vZHVsZUhlaWdodCgpKSkgOiAwKSAtICgoIWlzRGV2aWNlIHx8IChpc0RldmljZSAmJiBzaG93TmF2aWdhdGlvbk1lbnUpKSA/IDIwIDogMClcIiBjbGFzcz1cInJlbW92ZU92ZXJmbG93XCI+XG5cdFx0XHRcdFx0PGRpdiBbc3R5bGUuaGVpZ2h0LnB4XT1cIndpbmRvd1NpemVIZWlnaHQgKyAxIC0gKChpc0RldmljZSB8fCB3aW5kb3dTaXplV2lkdGggPD0gMTIwMCkgJiYgIXNob3dOYXZpZ2F0aW9uTWVudSA/IChnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSA+IDEwMCA/IDAgOiBnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSkgOiAwKSAtIG5hdmJhck1haW5IZWlnaHQgLSBzdGF0dXNIZWlnaHQgLSBjb25uZWN0ZWRIZWlnaHQgLSAoaXNEZXZpY2UgJiYgc2hvd05hdmlnYXRpb25NZW51ID8gKDU0ICsgKGdldE5hdmJhck1vZHVsZUhlaWdodCgpID4gMTAwID8gMCA6IGdldE5hdmJhck1vZHVsZUhlaWdodCgpKSkgOiAwKSAtICgoIWlzRGV2aWNlIHx8IChpc0RldmljZSAmJiBzaG93TmF2aWdhdGlvbk1lbnUpKSA/IDYwIDogMClcIiBjbGFzcz1cInJlbW92ZU92ZXJmbG93XCI+XG5cdFx0XHRcdFx0XHQ8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cImlzRGV2aWNlICYmIHNob3dOYXZpZ2F0aW9uTWVudVwiIHN0eWxlPVwiaGVpZ2h0OiA1NHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7IG1hcmdpbi1sZWZ0OiAtMTVweDsgbWFyZ2luLXJpZ2h0OiAtMTVweDtcIiBjbGFzcz1cImRvbnRQcmludFwiPlxuXHRcdFx0PHRhYmxlIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cblx0XHRcdFx0PHRyPlxuXHRcdFx0XHRcdDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlclwiPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheVwiIChjbGljayk9XCJvblB1c2hCYWNrQnV0dG9uKClcIj48aSBjbGFzcz1cImZhIGZhLWFycm93LWxlZnRcIiBzdHlsZT1cImNvbG9yOiBibGFjazsgZm9udC1zaXplOiAyMHB4XCI+PC9pPjwvYnV0dG9uPlxuXHRcdFx0XHRcdDwvdGQ+XG5cdFx0XHRcdFx0PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyXCI+XG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5XCIgKGNsaWNrKT1cIm9uUHVzaFJlbG9hZEJ1dHRvbigpXCI+PGkgY2xhc3M9XCJmYSBmYS1yZWZyZXNoXCIgc3R5bGU9XCJjb2xvcjogYmxhY2s7IGZvbnQtc2l6ZTogMjBweFwiPjwvaT48L2J1dHRvbj5cblx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlclwiPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheVwiIChjbGljayk9XCJvblB1c2hGb3J3YXJkQnV0dG9uKClcIj48aSBjbGFzcz1cImZhIGZhLWFycm93LXJpZ2h0XCIgc3R5bGU9XCJjb2xvcjogYmxhY2s7IGZvbnQtc2l6ZTogMjBweFwiPjwvaT48L2J1dHRvbj5cblx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHQ8L3RyPlxuXHRcdFx0PC90YWJsZT5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwiIWlzRGV2aWNlXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IGhlaWdodDogMjBweDsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LXdlaWdodDogYm9sZDsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5OyBtYXJnaW4tbGVmdDogLTE1cHg7IG1hcmdpbi1yaWdodDogLTE1cHg7XCI+JmNvcHk7IHt7eWVhcn19IFJFU09MVkVJTyBBTEwgUklHSFRTIFJFU0VSVkVEPC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
490
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFVBQVUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBT2hFLE1BQU0sT0FBTyxhQUFjLFNBQVEsYUFBYTtJQXFGL0MsdVZBQXVWO0lBQ3ZWLHFCQUFxQjtJQUNyQixJQUFJO0lBRUosWUFBb0IsVUFBaUMsRUFBVSxHQUFrQixFQUFVLGNBQTZCLEVBQVMsU0FBMEIsRUFBVSxRQUErQixFQUFVLFFBQTZCLEVBQVUsS0FBa0IsRUFBVSxJQUEyQjtRQUMzUyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFERSxlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFBVSxtQkFB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QUFHLEdBQUcsQ0FBQztLQUNqRDtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ2JUb3VyU2VydmljZSB9IGZyb20gJy4vd2lkZ2V0cy9uZ3gtdG91ci1uZy1ib290c3RyYXAvbmctYm9vdHN0cmFwLXRvdXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBBcHBTdGF0dXNNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2FwcC1zdGF0dXMubW9kZWwnO1xuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XG5pbXBvcnQgeyBSZXNpemVTZXJ2aWNlIH0gZnJvbSAnLi91dGlsL3dpbmRvdy1yZXNpemUuc2VydmljZSc7XG5pbXBvcnQgeyBQcm92aWRlclNlcnZpY2UsIEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3Jlc29sdmVpby1jbGFzcyc7XG5pbXBvcnQgeyBPZmZsaW5lTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL29mZmxpbmUtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICduZ3gtbG9jYWxzdG9yYWdlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4vYXV0aC9hdXRoLXBlcm1pc3Npb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcblx0cHJvdmlkZXJzOiBbUHJvdmlkZXJTZXJ2aWNlXSxcblx0c2VsZWN0b3I6ICdyZXNvbHZlaW8tY2xpZW50LWxpYi1jb3JlJyxcblx0dGVtcGxhdGVVcmw6ICcuL2NvcmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvcmVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuXHRASW5wdXQoJ2FwcFZlcnNpb24nKSBhcHBWZXJzaW9uID0gMDtcblx0QElucHV0KCdlbnZpcm9ubWVudCcpIGVudmlyb25tZW50O1xuXHRASW5wdXQoJ2xvZ28nKSBsb2dvID0gJyc7XG5cdEBJbnB1dCgnbmF2VGFicycpIG5hdlRhYnMgPSAnJztcblx0QElucHV0KCd1c2VySGFzUGhvbmVOdW1iZXInKSB1c2VySGFzUGhvbmVOdW1iZXIgPSBmYWxzZTtcblx0QElucHV0KCdjbGllbnQnKSBjbGllbnQgPSAnJztcblx0QElucHV0KCdzdGFuZGFyZFByb2dyYW0nKSBzdGFuZGFyZFByb2dyYW0gPSAnJztcblx0QElucHV0KCd0b3VyU3RvcHMnKSB0b3VyU3RvcHMgPSBbXTtcblx0QElucHV0KCdzaG93UmVzb2x2ZUlPSG9tZXBhZ2UnKSBzaG93UmVzb2x2ZUlPSG9tZXBhZ2UgPSBmYWxzZTtcblxuXHRAVmlld0NoaWxkKCduYXZCYXJNYWluJywge3JlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZX0pIGVsX25hdkJhck1haW46IEVsZW1lbnRSZWY7XG5cdEBWaWV3Q2hpbGQoJ25hdkJhck1vZHVsZScsIHtyZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWV9KSBlbF9uYXZCYXJNb2R1bGU6IEVsZW1lbnRSZWY7XG5cblx0c2VydmVyVmVyc2lvbiA9IDA7XG5cblx0eWVhcjogc3RyaW5nID0gKG5ldyBEYXRlKCkpLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtcblxuXHRmdWxsU2NyZWVuID0gZmFsc2U7XG5cblx0d2luZG93U2l6ZUhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcblx0d2luZG93U2l6ZVdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG5cblx0bmF2YmFyTWFpbkhlaWdodCA9IDA7XG5cdHN0YXR1c0hlaWdodCA9IDA7XG5cdGNvbm5lY3RlZEhlaWdodCA9IDA7XG5cblx0aXNEZXZpY2UgPSBmYWxzZTtcblx0c2hvd05hdmlnYXRpb25NZW51ID0gZmFsc2U7XG5cblx0aW5pdFZlcnNpb24gPSBmYWxzZTtcblx0b3Blbk5hdk1vZCA9IGZhbHNlO1xuXHR0b3VyU3RhcnRlZCA9IGZhbHNlO1xuXG5cdC8vIHRvdXJTdG9wczogYW55W10gPSBbe1xuXHQvLyBcdGFuY2hvcklkOiAnbmF2QmFyTWFpbicsXG5cdC8vIFx0Y29udGVudDogJ05hdiBNYWluIGNvbnRlbnQnLFxuXHQvLyBcdHRpdGxlOiAnTmF2YmFyIE1haW4nLFxuXHQvLyBcdHBsYWNlbWVudDogJ2JvdHRvbSdcblx0Ly8gfSwge1xuXHQvLyBcdGFuY2hvcklkOiAndGFiMScsXG5cdC8vIFx0Y29udGVudDogJ1Rlc3QgQ29udGVudCcsXG5cdC8vIFx0dGl0bGU6ICdUYWIgMScsXG5cdC8vIFx0cGxhY2VtZW50OiAnYm90dG9tJyxcblx0Ly8gXHRyb3V0ZTogJ3Rlc3QnXG5cdC8vIH0sIHtcblx0Ly8gXHRhbmNob3JJZDogJ3RhYjInLFxuXHQvLyBcdGNvbnRlbnQ6ICdSQiBDb250ZW50Jyxcblx0Ly8gXHR0aXRsZTogJ1RhYiAyJyxcblx0Ly8gXHRwbGFjZW1lbnQ6ICdib3R0b20nLFxuXHQvLyBcdHJvdXRlOiAncmVwb3J0LWJ1aWxkZXInXG5cdC8vIH0sIHtcblx0Ly8gXHRhbmNob3JJZDogJ25hdkJhck1haW4nLFxuXHQvLyBcdGNvbnRlbnQ6ICdOYXYgTWFpbiBjb250ZW50IDInLFxuXHQvLyBcdHRpdGxlOiAnTmF2YmFyIE1haW4gQWdhaW4nLFxuXHQvLyBcdHBsYWNlbWVudDogJ2JvdHRvbSdcblx0Ly8gfSwge1xuXHQvLyBcdGFuY2hvcklkOiAnbmF2QmFyTW9kdWxlJyxcblx0Ly8gXHRjb250ZW50OiAnTmF2IE1vZCBjb250ZW50Jyxcblx0Ly8gXHR0aXRsZTogJ05hdmJhciBNb2QnLFxuXHQvLyBcdHBsYWNlbWVudDogJ3JpZ2h0J1xuXHQvLyB9XTtcblxuXHRpc0Nvbm5lY3RlZCA9IGZhbHNlO1xuXHRpc0Nvbm5lY3RpbmcgPSBmYWxzZTtcblx0c29ja2V0U3RhdHVzOiBudW1iZXI7XG5cblx0dXNlcjogVXNlck1vZGVsO1xuXHRzdGF0dXM6IEFwcFN0YXR1c01vZGVsO1xuXG5cdGNvbGxhcHNhYmxlTWVudSA9IHRydWU7XG5cdGZvbnRTaXplID0gMTI7XG5cdG9wZW5lZFdpbmRvdyA9IGZhbHNlO1xuXHRcblx0aW52YWxpZFZlcnNpb24gPSBmYWxzZTtcblx0aXNPZmZsaW5lID0gZmFsc2U7XG5cdGZvdW5kVXBkYXRlID0gZmFsc2U7XG5cblx0b3JpZW50YXRpb24gPSAncG9ydHJhaXQnO1xuXG5cdC8vIHByZXZpb3VzUm91dGVyRXJyb3JIYW5kbGVyID0gbnVsbDtcblxuXHRpc1Jlc29sdmVJTyA9IGZhbHNlO1xuXG5cdC8vIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RldmljZURldDogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLCBwcml2YXRlIF9kczogRGlhbG9nU2VydmljZSwgcHJpdmF0ZSBfcmVzaXplU2VydmljZTogUmVzaXplU2VydmljZSwgcHVibGljIF9zZXJ2aWNlczogUHJvdmlkZXJTZXJ2aWNlLCBwcml2YXRlIF9vZmZsaW5lOiBPZmZsaW5lTWFuYWdlclNlcnZpY2UsIHByaXZhdGUgX3N0b3JhZ2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsIHByaXZhdGUgX2F1dGg6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIF9hcHM6IEF1dGhQZXJtaXNzaW9uU2VydmljZSwgcHJpdmF0ZSB0b3VyU2VydmljZTogTmdiVG91clNlcnZpY2UpIHtcblx0Ly8gXHRzdXBlcihfc2VydmljZXMpO1xuXHQvLyB9XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfZGV2aWNlRGV0OiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsIHByaXZhdGUgX2RzOiBEaWFsb2dTZXJ2aWNlLCBwcml2YXRlIF9yZXNpemVTZXJ2aWNlOiBSZXNpemVTZXJ2aWNlLCBwdWJsaWMgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UsIHByaXZhdGUgX29mZmxpbmU6IE9mZmxpbmVNYW5hZ2VyU2VydmljZSwgcHJpdmF0ZSBfc3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSwgcHJpdmF0ZSBfYXV0aDogQXV0aFNlcnZpY2UsIHByaXZhdGUgX2FwczogQXV0aFBlcm1pc3Npb25TZXJ2aWNlKSB7XG5cdFx0c3VwZXIoX3NlcnZpY2VzKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0RW52aXJvbm1lbnQodGhpcy5lbnZpcm9ubWVudCk7XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRDbGllbnQodGhpcy5jbGllbnQpO1xuXHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0U3RhbmRhcmRQcm9ncmFtKHRoaXMuc3RhbmRhcmRQcm9ncmFtKTtcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldE5hdlRhYnModGhpcy5uYXZUYWJzKTtcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldFJlc29sdmVJT0hvbWVwYWdlKHRoaXMuc2hvd1Jlc29sdmVJT0hvbWVwYWdlKTtcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldFRvdXJTdG9wcyh0aGlzLnRvdXJTdG9wcyk7XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRUb3VyU3RhcnRlZCh0aGlzLnRvdXJTdGFydGVkKTtcblxuXHRcdGlmICh0aGlzLnNob3dSZXNvbHZlSU9Ib21lcGFnZSkge1xuXHRcdFx0dGhpcy5pc1Jlc29sdmVJTyA9IHRydWU7XG5cdFx0fVxuXG5cdFx0dGhpcy5fc2VydmljZXMuX2FjY291bnQuaW5pdExvZ2luTWFuYWdlcih0aGlzLmVudmlyb25tZW50LCB0aGlzLmFwcFZlcnNpb24pO1xuXHRcdFxuXHRcdGlmICh0aGlzLmVudmlyb25tZW50ICYmIHRoaXMuZW52aXJvbm1lbnQuTVNfQUxMT1dFRCkge1xuXHRcdFx0dGhpcy5fYXV0aC5zZXR1cE1TU2luZ2xlU2lnbk9uKHRoaXMuZW52aXJvbm1lbnQpO1xuXHRcdH1cblxuXHRcdHRoaXMuX2F1dGguc2V0VXNlckhhc1Bob25lTnVtYmVyKHRoaXMudXNlckhhc1Bob25lTnVtYmVyKTtcblxuXHRcdC8vIHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0Q3VzdG9tSG9tZVBhZ2UodGhpcy5jdXN0b21Ib21lUGFnZSk7XG5cblx0XHQvLyB0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldExvZ28odGhpcy5sb2dvKTtcblxuXHRcdHRoaXMuX3Jlc2l6ZVNlcnZpY2Uub25SZXNpemUkLnN1YnNjcmliZSgodmFsKSA9PiB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy53aW5kb3dTaXplSGVpZ2h0ID0gdmFsLmlubmVySGVpZ2h0O1xuXHRcdFx0XHR0aGlzLndpbmRvd1NpemVXaWR0aCA9IHZhbC5pbm5lcldpZHRoO1xuXHRcdFx0fSwgMTAwKTtcblx0XHR9KTtcblx0XHRcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLmZ1bGxTY3JlZW4uc3Vic2NyaWJlKGZ1bGxTY3JlZW4gPT4ge1xuXHRcdFx0dGhpcy5mdWxsU2NyZWVuID0gZnVsbFNjcmVlbjtcblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LnVzZXIuc3Vic2NyaWJlKHVzZXIgPT4ge1xuXHRcdFx0aWYgKHVzZXIgJiYgdXNlci5zZXR0aW5ncykge1xuXHRcdFx0XHR0aGlzLmNvbGxhcHNhYmxlTWVudSA9IHVzZXIuc2V0dGluZ3MuY29sbGFwc2FibGVfbWVudTtcblx0XHRcdFx0dGhpcy5mb250U2l6ZSA9IHVzZXIuc2V0dGluZ3MuZm9udF9zaXplO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1jb2xvcicsIHVzZXIuc2V0dGluZ3Mud2FybmluZ19jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLndhcm5pbmdfZm9udF9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3Mud2FybmluZ19jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWhvdmVyLWNvbG9yJywgdXNlci5zZXR0aW5ncy53YXJuaW5nX2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtY29sb3InLCB1c2VyLnNldHRpbmdzLnN1Y2Nlc3NfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5zdWNjZXNzX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLnN1Y2Nlc3NfY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3Muc3VjY2Vzc19ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItY29sb3InLCB1c2VyLnNldHRpbmdzLmRhbmdlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tY29sb3InLCB1c2VyLnNldHRpbmdzLmluZm9fY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5pbmZvX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLmluZm9fY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3MuaW5mb19ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWNvbG9yJywgdXNlci5zZXR0aW5ncy5wcmltYXJ5X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3MucHJpbWFyeV9mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSAnICsgaGV4VG9SR0IodXNlci5zZXR0aW5ncy5wcmltYXJ5X2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLnByaW1hcnlfaG92ZXJfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWNvbG9yJywgdXNlci5zZXR0aW5ncy5zZWNvbmRhcnlfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9ob3Zlcl9jb2xvcik7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmICh1c2VyICYmICghdXNlci5vdGhlclsnY3VzdG9tZXJzJ10gfHwgIXVzZXIub3RoZXJbJ2N1c3RvbWVycyddLmxlbmd0aCkgJiYgIXVzZXIub3RoZXJbJ2lkX2N1c3RvbWVyJ10gJiYgIXVzZXIuc2V0dGluZ3MgJiYgIXRoaXMub3BlbmVkV2luZG93KSB7XG5cdFx0XHRcdHRoaXMub3BlbmVkV2luZG93ID0gdHJ1ZTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctY29sb3InLCAnI2ZmYzEwNycpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1mb250LWNvbG9yJywgJyMwMDAwMDAnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDIyMiwgMTcwLCAxMiwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1ob3Zlci1jb2xvcicsICcjZTBhODAwJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWNvbG9yJywgJyMyOGE3NDUnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSg3MiwgMTgwLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1ob3Zlci1jb2xvcicsICcjMjE4ODM4Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItY29sb3InLCAnI2RjMzU0NScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgyMjUsIDgzLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWhvdmVyLWNvbG9yJywgJyNjODIzMzMnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tY29sb3InLCAnIzE3YTJiOCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDU4LCAxNzYsIDE5NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1ob3Zlci1jb2xvcicsICcjMTM4NDk2Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWNvbG9yJywgJyMwMDdiZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgzOCwgMTQzLCAyNTUsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktaG92ZXItY29sb3InLCAnIzAwNjlkOScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWNvbG9yJywgJyM4NjhlOTYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMTMwLCAxMzgsIDE0NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yJywgJyM1YTYyNjgnKTtcblx0XHRcdFx0dGhpcy5mb250U2l6ZSA9IDEyO1xuXHRcdFx0XHR0aGlzLl9kcy5ub3RpZnkoJ0hlbGxvLCAnICsgdXNlci5mdWxsbmFtZSArICcgaXQgbG9va3MgbGlrZSB0aGVyZSBhcmUgbm8gdXNlciBzZXR0aW5ncyBzYXZlZCBmb3IgeW91LiBUbyBhZGp1c3QgeW91ciB1c2VyIHNldHRpbmdzIGNsaWNrIHlvdXIgbmFtZSBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlIG5leHQgdG8gdGhlIGxvZ291dCBidXR0b24sIGFkanVzdCBhbnkgc2V0dGluZ3MgeW91IHdhbnQsIHRoZW4gY2xpY2sgc3VibWl0IHRvIGFwcGx5IHRoZW0uJyk7XG5cdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLnVybC5zcGxpdCgnLycpWzBdICsgJy91c2VyLXNldHRpbmdzL3NldHRpbmdzJylcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1jb2xvcicsICcjZmZjMTA3Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWZvbnQtY29sb3InLCAnIzAwMDAwMCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMjIyLCAxNzAsIDEyLCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWhvdmVyLWNvbG9yJywgJyNlMGE4MDAnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtY29sb3InLCAnIzI4YTc0NScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3Mtc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDcyLCAxODAsIDk3LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWhvdmVyLWNvbG9yJywgJyMyMTg4MzgnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1jb2xvcicsICcjZGMzNTQ1Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDIyNSwgODMsIDk3LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItaG92ZXItY29sb3InLCAnI2M4MjMzMycpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1jb2xvcicsICcjMTdhMmI4Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoNTgsIDE3NiwgMTk1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWhvdmVyLWNvbG9yJywgJyMxMzg0OTYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktY29sb3InLCAnIzAwN2JmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDM4LCAxNDMsIDI1NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1ob3Zlci1jb2xvcicsICcjMDA2OWQ5Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktY29sb3InLCAnIzg2OGU5NicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgxMzAsIDEzOCwgMTQ1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktaG92ZXItY29sb3InLCAnIzVhNjI2OCcpO1xuXHRcdFx0XHR0aGlzLmZvbnRTaXplID0gMTI7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMudXNlciA9IHVzZXI7XG5cblx0XHRcdGlmICh1c2VyKSB7XG5cdFx0XHRcdGlmICh1c2VyLnNldHRpbmdzICYmIHRoaXMudG91clN0b3BzLmxlbmd0aCAmJiAhKHVzZXIub3RoZXIgJiYgdXNlci5vdGhlci50b3VyVGFrZW4pICYmICF0aGlzLnRvdXJTdGFydGVkKSB7XG5cdFx0XHRcdFx0Ly8gdGhpcy50b3VyU2VydmljZS5pbml0aWFsaXplKHRoaXMudG91clN0b3BzKTtcblx0XHQgIFxuXHRcdFx0XHRcdC8vIHRoaXMudG91clNlcnZpY2Uuc3RhcnQoKTtcblx0XHRcdFx0XHR0aGlzLnRvdXJTdGFydGVkID0gdHJ1ZTtcblx0XHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldFRvdXJTdGFydGVkKHRoaXMudG91clN0YXJ0ZWQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBpZiAoIXRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIpIHtcblx0XHQvLyBcdHRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIgPSB0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLmVycm9ySGFuZGxlcjtcblx0XHQvLyBcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIuZXJyb3JIYW5kbGVyID0gZnVuY3Rpb24gKGVycjogYW55KSB7XHRcblx0XHQvLyBcdFx0cmV0dXJuIHRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIuYXBwbHkodGhpcy5wcmV2aW91c1JvdXRlckVycm9ySGFuZGxlciwgYXJndW1lbnRzKTtcblx0XHQvLyBcdH07XG5cdFx0Ly8gfVxuXG5cdFx0aWYgKHRoaXMuX2RldmljZURldC5pc01vYmlsZSgpIHx8IHRoaXMuX2RldmljZURldC5pc1RhYmxldCgpKSB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldElzRGV2aWNlKHRydWUpO1xuXHRcdFx0dGhpcy5pc0RldmljZSA9IHRydWU7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRJc0RldmljZShmYWxzZSk7XG5cdFx0XHR0aGlzLmlzRGV2aWNlID0gZmFsc2U7XG5cdFx0fVxuXG5cdFx0bGV0IHZlcnNpb25BbGVydCA9IG51bGw7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LnN1YnNjcmliZUJ5cGFzc1JvdXRlKCdhcHB2ZXJzaW9uJykuc3Vic2NyaWJlKGFwcFZlcnNpb24gPT4ge1xuXHRcdFx0aWYgKGFwcFZlcnNpb24pIHtcblx0XHRcdFx0dGhpcy5zZXJ2ZXJWZXJzaW9uID0gYXBwVmVyc2lvbi52ZXJzaW9uO1xuXG5cdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnc2V0V1NBcHBWZXJzaW9uJywgdGhpcy5hcHBWZXJzaW9uKTtcblxuXHRcdFx0XHRpZiAodGhpcy5hcHBWZXJzaW9uIDwgdGhpcy5zZXJ2ZXJWZXJzaW9uKSB7IC8vUmVsb2FkIHRvIGdldCBuZXcgdmVyc2lvblxuXHRcdFx0XHRcdHRoaXMuaW52YWxpZFZlcnNpb24gPSB0cnVlO1xuXG5cdFx0XHRcdFx0aWYgKHRoaXMuZW52aXJvbm1lbnQuSVNfUFJPRFVDVElPTikge1xuXHRcdFx0XHRcdFx0dmVyc2lvbkFsZXJ0ID0gdGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCdlcnJvcicsICdJbnZhbGlkIHZlcnNpb24sIGF0dGVtcHRpbmcgdG8gdXBkYXRlIGFuZCB3aWxsIHJlbG9hZC4gIElmIG5vIHJlbG9hZCB0YWtlcyBwbGFjZSwgcGxlYXNlIG1hbnVhbGx5IHJlbG9hZCcsIDApO1xuXHRcdFx0XHRcdFx0dmVyc2lvbkFsZXJ0ID0gdGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCd3YXJuaW5nJywgJ0lmIHlvdSBhcmUgaGF2aW5nIHRyb3VibGUgcmVtb3ZpbmcgdGhpcyBtZXNzYWdlLCB0cnkgdG8gaG9sZCBTaGlmdCBrZXkgYW5kIGNsaWNrIHRoZSByZWxvYWQgYnV0dG9uLiAgSWYgdGhhdCBkb2VzblxcJ3Qgd29yayB0cnkgdG8gY2xvc2UgYWxsIHRhYnMgYW5kIGJyb3dzZXIgYW5kIHJlb3Blbi4gTGFzdCByZXNvcnQgLSBjbGVhciBhbGwgYnJvd3NlciBkYXRhL2NhY2hlLicsIDApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0SXNJbnZhbGlkVmVyc2lvbih0cnVlKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRpZiAodmVyc2lvbkFsZXJ0KSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYWxlcnQuY2xlYXJBbGVydCh2ZXJzaW9uQWxlcnQudG9hc3RJZCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRpZiAodGhpcy5lbnZpcm9ubWVudC5JU19QUk9EVUNUSU9OKSB7XG5cdFx0XHRsZXQgZmlyc3RUaW1lU1dGbGFnID0gZmFsc2U7XG5cblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuc3Vic2NyaWJlQnlwYXNzUm91dGUoJ2ZsYWdXaXRoVHlwZScsICduZXdTVycpLnN1YnNjcmliZShmbGFnID0+IHtcblx0XHRcdFx0aWYgKGZpcnN0VGltZVNXRmxhZyAmJiBmbGFnKSB7XG5cdFx0XHRcdFx0aWYgKCF0aGlzLmludmFsaWRWZXJzaW9uKSB7XG5cdFx0XHRcdFx0XHRsZXQgY291bnQgPSAxNTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0bGV0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAoY291bnQgPD0gMCkge1xuXHRcdFx0XHRcdFx0XHRcdGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCdpbmZvJywgJ1RoaXMgcGFnZSB3aWxsIHJlbG9hZCBpbiAnICsgKGNvdW50LS0pICsgJyBzZWNvbmRzIScsIDYwMCk7XG5cdFx0XHRcdFx0XHR9LCAxMDAwKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmaXJzdFRpbWVTV0ZsYWcgPSB0cnVlO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fb2ZmbGluZS5vZmZsaW5lTW9kZS5zdWJzY3JpYmUob2ZmbGluZSA9PiB7XG5cdFx0XHR0aGlzLmlzT2ZmbGluZSA9IG9mZmxpbmU7XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRTb2NrZXRTdGF0dXMoKS5zdWJzY3JpYmUoc3RhdHVzID0+IHtcblx0XHRcdHRoaXMuc29ja2V0U3RhdHVzID0gc3RhdHVzO1xuXHRcdFx0XG5cdFx0XHRpZiAoIXRoaXMudXNlcikge1xuXHRcdFx0XHR0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7XG5cblx0XHRcdFx0aWYgKHRoaXMuaXNSZXNvbHZlSU8pIHtcblx0XHRcdFx0XHR0aGlzLmNvbm5lY3RlZEhlaWdodCA9IDA7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5jb25uZWN0ZWRIZWlnaHQgPSA0MDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGlmICh0aGlzLnNvY2tldFN0YXR1cyA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcblx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGVkID0gdHJ1ZTtcblx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuaXNDb25uZWN0ZWQgPSBmYWxzZTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLnNvY2tldFN0YXR1cyA9PT0gV2ViU29ja2V0LkNPTk5FQ1RJTkcpIHtcblx0XHRcdFx0XHRcdHRoaXMuaXNDb25uZWN0aW5nID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0aWYgKCF0aGlzLmlzQ29ubmVjdGVkKSB7XG5cdFx0XHRcdFx0dGhpcy5jb25uZWN0ZWRIZWlnaHQgPSA0MDtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmNvbm5lY3RlZEhlaWdodCA9IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuc3Vic2NyaWJlQnlwYXNzUm91dGUoJ2FwcHN0YXR1cycpLnN1YnNjcmliZShhcHBzdGF0dXMgPT4ge1xuXHRcdFx0dGhpcy5zdGF0dXMgPSBhcHBzdGF0dXM7IC8vT0sgaWYgbm90IGRlZmluZWRcblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0SGFzU3RhdHVzTWVzc2FnZSh0aGlzLnN0YXR1cyA/IHRydWUgOiBmYWxzZSk7XG5cdFx0XHR0aGlzLnN0YXR1c0hlaWdodCA9IHRoaXMuc3RhdHVzID8gNDAgOiAwO1xuXHRcdH0pO1xuXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLm5hdmJhck1haW5IZWlnaHQgPSB0aGlzLmVsX25hdkJhck1haW4ubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5jbGllbnRIZWlnaHQ7XG5cdFx0fSwgMTAwKTtcblx0XHRcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMubmF2YmFyTWFpbkhlaWdodCA9IHRoaXMuZWxfbmF2QmFyTWFpbi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodDtcblx0XHR9LCAxMDAwKTtcblxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5uYXZiYXJNYWluSGVpZ2h0ID0gdGhpcy5lbF9uYXZCYXJNYWluLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0O1xuXHRcdH0sIDUwMDApO1xuXG5cdFx0aWYgKHRoaXMuaXNEZXZpY2UpIHtcblx0XHRcdGxldCBmaXJzdFJlZGlyZWN0ID0gZmFsc2U7XG5cdFx0XHRsZXQgbGFzdFVSTCA9IHRoaXMuX3N0b3JhZ2UuZ2V0KCdsYXN0VVJMJyk7XG5cblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IE5hdmlnYXRpb25FbmQpID0+IHtcblx0XHRcdFx0aWYgKGxhc3RVUkwgJiYgbGFzdFVSTCAhPT0gJy8nICYmICFmaXJzdFJlZGlyZWN0KSB7XG5cdFx0XHRcdFx0aWYgKGV2ZW50LnVybCA9PT0gJycgfHwgZXZlbnQudXJsID09PSAnLycpIHtcblx0XHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChsYXN0VVJMKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmaXJzdFJlZGlyZWN0ID0gdHJ1ZTtcblxuXHRcdFx0XHRpZiAoZXZlbnQudXJsKSB7XG5cdFx0XHRcdFx0dGhpcy5fc3RvcmFnZS5zZXQoJ2xhc3RVUkwnLCBldmVudC51cmwpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKSB7XG5cdFx0XHRcdFx0dGhpcy5fc3RvcmFnZS5zZXQoJ2xhc3RVUkwnLCBldmVudC51cmxBZnRlclJlZGlyZWN0cyk7XG5cdFx0XHRcdH1cdFx0XHRcdFxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0aWYgKFsnaVBhZCcsICdpUGhvbmUnLCAnaVBvZCddLmluZGV4T2YobmF2aWdhdG9yLnBsYXRmb3JtKSA+PSAwICYmICgnc3RhbmRhbG9uZScgaW4gd2luZG93Lm5hdmlnYXRvcikgJiYgKDxhbnk+d2luZG93Lm5hdmlnYXRvcikuc3RhbmRhbG9uZSkge1xuXHRcdFx0dGhpcy5zaG93TmF2aWdhdGlvbk1lbnUgPSB0cnVlO1xuXHRcdH1cblxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsICgpID0+IHtcblx0XHRcdGlmICh3aW5kb3cub3JpZW50YXRpb24gPT09IC05MCkge1xuXHRcdFx0XHR0aGlzLm9yaWVudGF0aW9uID0gJ2xhbmRzY2FwZSc7XG5cdFx0XHR9XG5cdFx0XHRpZiAod2luZG93Lm9yaWVudGF0aW9uID09PSA5MCkge1xuXHRcdFx0XHR0aGlzLm9yaWVudGF0aW9uID0gJ2xhbmRzY2FwZSc7XG5cdFx0XHR9XG5cdFx0XHRpZiAod2luZG93Lm9yaWVudGF0aW9uID09PSAwKSB7XG5cdFx0XHRcdHRoaXMub3JpZW50YXRpb24gPSAncG9ydHJhaXQnO1xuXHRcdFx0fVxuXHRcdH0sIHRydWUpO1xuXG5cdFx0bGV0IG1vdXNld2hlZWxFdmVudDtcblxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50Lm5vZGVOYW1lID09PSAnSU5QVVQnICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRbJ3R5cGUnXSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICBtb3VzZXdoZWVsRXZlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCBoYW5kbGVNb3VzZXdoZWVsRXZlbnQsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdHJ1ZSk7XG5cbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKG1vdXNld2hlZWxFdmVudCkge1xuICAgICAgICAgICAgICAgIG1vdXNld2hlZWxFdmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCBoYW5kbGVNb3VzZXdoZWVsRXZlbnQpO1xuICAgICAgICAgICAgfVxuXHRcdH0sIHRydWUpO1xuXHRcdFxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIChlKSA9PiB7XG5cdFx0XHRsZXQgZXYgPSBlIHx8IGV2ZW50O1xuXHRcdFx0ZXYucHJldmVudERlZmF1bHQoKTtcblx0XHR9LCBmYWxzZSk7XG5cdFx0XG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCAoZSkgPT4ge1xuXHRcdFx0bGV0IGV2ID0gZSB8fCBldmVudDtcblx0XHRcdGV2LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fSwgZmFsc2UpO1xuXG5cdFx0Ly8gdGhpcy50b3VyU2VydmljZS5ldmVudHMkLnN1YnNjcmliZShldmVudCA9PiB7XG5cdFx0Ly8gXHRpZiAoZXZlbnQubmFtZSA9PT0gJ3N0ZXBTaG93JyAmJiBldmVudC52YWx1ZSAmJiBldmVudC52YWx1ZS5hbmNob3JJZC5zdGFydHNXaXRoKCduYXZCYXJNb2R1bGUnKSkge1xuXHRcdC8vIFx0XHR0aGlzLm9wZW5OYXZNb2QgPSB0cnVlO1xuXHRcdC8vIFx0XHR0aGlzLm9wZW5OYXYoKTtcblx0XHQvLyBcdH1cblx0XHQvLyBcdGVsc2UgaWYgKGV2ZW50Lm5hbWUgPT09ICdlbmQnKSB7XG5cdFx0Ly8gXHRcdHRoaXMudG91clN0YXJ0ZWQgPSBmYWxzZTtcblx0XHQvLyBcdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRUb3VyU3RhcnRlZCh0aGlzLnRvdXJTdGFydGVkKTtcblx0XHQvLyBcdFx0aWYgKHRoaXMudXNlclsnb3RoZXInXSkge1xuXHRcdC8vIFx0XHRcdHRoaXMudXNlclsnb3RoZXInXS50b3VyVGFrZW4gPSB0cnVlO1xuXHRcdC8vIFx0XHR9XG5cdFx0Ly8gXHRcdGVsc2Uge1xuXHRcdC8vIFx0XHRcdHRoaXMudXNlclsnb3RoZXInXSA9IHsgXG5cdFx0Ly8gXHRcdFx0XHR0b3VyVGFrZW46IHRydWVcblx0XHQvLyBcdFx0XHR9O1xuXHRcdC8vIFx0XHR9XG5cdFx0XHRcdFxuXHRcdC8vIFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ3VwZGF0ZURvY3VtZW50UHJvcHMnLCAndXNlcnMnLCB0aGlzLnVzZXIuX2lkLCBbXG5cdFx0Ly8gXHRcdFx0e3Byb3A6ICdvdGhlcicsIGRhdGE6IHRoaXMudXNlci5vdGhlcn1cblx0XHQvLyBcdFx0XSwgdGhpcy51c2VyLl9fdiwgKGVyciwgcmVzKSA9PiB7XG5cdFx0Ly8gXHRcdFx0aWYgKGVyciB8fCAhcmVzKSB7XG5cdFx0Ly8gXHRcdFx0XHR0aGlzLl9kcy5lcnJvcignQ291bGQgbm90IHVwZGF0ZSB1c2VyJyk7XG5cdFx0Ly8gXHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2luc2VydEVycm9yTG9nJywgJ1VwZGF0ZSB1c2VyIHRvdXInLCBbZXJyLCB0aGlzLnVzZXJdKTtcblx0XHQvLyBcdFx0XHR9XG5cdFx0Ly8gXHRcdH0pO1xuXHRcdC8vIFx0XHR0aGlzLm9wZW5OYXZNb2QgPSBmYWxzZTtcblx0XHQvLyBcdH1cblx0XHQvLyBcdGVsc2Uge1xuXHRcdC8vIFx0XHR0aGlzLm9wZW5OYXZNb2QgPSBmYWxzZTtcblx0XHQvLyBcdH1cbiAgICAgICAgLy8gfSk7XG5cdH1cblxuXHRnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWxfbmF2QmFyTW9kdWxlLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0O1xuXHR9XG5cblx0b25QdXNoQmFja0J1dHRvbigpIHtcblx0XHR3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XG5cdH1cblxuXHRvblB1c2hSZWxvYWRCdXR0b24oKSB7XG5cdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuXHR9XG5cblx0b25QdXNoRm9yd2FyZEJ1dHRvbigpIHtcblx0XHR3aW5kb3cuaGlzdG9yeS5mb3J3YXJkKCk7XG5cdH1cblxuXHRvcGVuTmF2KCkge1xuXHRcdGxldCB4ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdlNpZCcpO1xuXHRcdGxldCB5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5fY29udCcpO1xuXHRcdGlmICgoeC5zdHlsZS53aWR0aCA9PT0gJzQwcHgnICYmIHkuc3R5bGUucGFkZGluZ0xlZnQgPT09ICc1NXB4JykgfHwgdGhpcy5vcGVuTmF2TW9kKSB7XG5cdFx0XHR4LnN0eWxlLndpZHRoID0gJzE5NXB4Jztcblx0XHRcdHkuc3R5bGUucGFkZGluZ0xlZnQgPSAnMjEwcHgnO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHguc3R5bGUud2lkdGggPSAnNDBweCc7XG5cdFx0XHR5LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzU1cHgnO1xuXHRcdH1cblx0fVxuXHRcdFxuXHRjbG9zZU5hdigpIHtcblx0XHRpZiAoIXRoaXMub3Blbk5hdk1vZCkge1xuXHRcdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdlNpZCcpLnN0eWxlLndpZHRoID0gJzQwcHgnO1xuXHRcdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5fY29udCcpLnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzU1cHgnO1x0XHRcdFxuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBoYW5kbGVNb3VzZXdoZWVsRXZlbnQoKSB7XG5cdCg8YW55PmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpLmJsdXIoKTtcbn1cblxuZnVuY3Rpb24gaGV4VG9SR0IoaGV4LCBhbHBoYSkge1xuICAgIGxldCByID0gcGFyc2VJbnQoaGV4LnNsaWNlKDEsIDMpLCAxNiksXG4gICAgICAgIGcgPSBwYXJzZUludChoZXguc2xpY2UoMywgNSksIDE2KSxcbiAgICAgICAgYiA9IHBhcnNlSW50KGhleC5zbGljZSg1LCA3KSwgMTYpO1xuXG4gICAgaWYgKGFscGhhKSB7XG4gICAgICAgIHJldHVybiBcInJnYmEoXCIgKyByICsgXCIsIFwiICsgZyArIFwiLCBcIiArIGIgKyBcIiwgXCIgKyBhbHBoYSArIFwiKVwiO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBcInJnYihcIiArIHIgKyBcIiwgXCIgKyBnICsgXCIsIFwiICsgYiArIFwiKVwiO1xuICAgIH1cbn0iLCI8c3R5bGU+XG5cdDpyb290IHtcbiAgICAgICAgLS13YXJuaW5nLWNvbG9yOiAjZmZjMTA3O1xuICAgICAgICAtLXdhcm5pbmctZm9udC1jb2xvcjogIzAwMDAwMDtcbiAgICAgICAgLS13YXJuaW5nLWhvdmVyLWNvbG9yOiAjZTBhODAwO1xuICAgICAgICAtLXdhcm5pbmctc2hhZG93LWNvbG9yOiAwIDAgMCAwLjJyZW0gcmdiYSgyMjIsIDE3MCwgMTIsIDAuNSk7XG4gICAgICAgIC0tc3VjY2Vzcy1jb2xvcjogIzI4YTc0NTtcbiAgICAgICAgLS1zdWNjZXNzLWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0tc3VjY2Vzcy1ob3Zlci1jb2xvcjogIzIxODgzODtcbiAgICAgICAgLS1zdWNjZXNzLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoNzIsIDE4MCwgOTcsIDAuNSk7XG4gICAgICAgIC0tZGFuZ2VyLWNvbG9yOiAjZGMzNTQ1O1xuICAgICAgICAtLWRhbmdlci1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLWRhbmdlci1ob3Zlci1jb2xvcjogI2M4MjMzMztcbiAgICAgICAgLS1kYW5nZXItc2hhZG93LWNvbG9yOiAwIDAgMCAwLjJyZW0gcmdiYSgyMjUsIDgzLCA5NywgMC41KTtcbiAgICAgICAgLS1pbmZvLWNvbG9yOiAjMTdhMmI4O1xuICAgICAgICAtLWluZm8tZm9udC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgLS1pbmZvLWhvdmVyLWNvbG9yOiAjMTM4NDk2O1xuICAgICAgICAtLWluZm8tc2hhZG93LWNvbG9yOiAwIDAgMCAwLjJyZW0gcmdiYSg1OCwgMTc2LCAxOTUsIDAuNSk7XG4gICAgICAgIC0tcHJpbWFyeS1jb2xvcjogIzAwN2JmZjtcbiAgICAgICAgLS1wcmltYXJ5LWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0tcHJpbWFyeS1ob3Zlci1jb2xvcjogIzAwNjlkOTtcbiAgICAgICAgLS1wcmltYXJ5LXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoMzgsIDE0MywgMjU1LCAwLjUpO1xuICAgICAgICAtLXNlY29uZGFyeS1jb2xvcjogIzg2OGU5NjtcbiAgICAgICAgLS1zZWNvbmRhcnktZm9udC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgLS1zZWNvbmRhcnktaG92ZXItY29sb3I6ICM1YTYyNjg7XG4gICAgICAgIC0tc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoMTMwLCAxMzgsIDE0NSwgMC41KTtcbiAgICB9XG5cblx0Omhvc3QgL2RlZXAvIC5idG4td2FybmluZyB7XG5cdFx0Y29sb3I6IHZhcigtLXdhcm5pbmctZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZy1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS13YXJuaW5nLWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi13YXJuaW5nOmZvY3VzLCAuYnRuLXdhcm5pbmcuZm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLXdhcm5pbmctc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi13YXJuaW5nOmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0td2FybmluZy1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nLWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXdhcm5pbmctaG92ZXItY29sb3IpO1xuXHR9XG5cblx0Omhvc3QgL2RlZXAvIC5idG4tc3VjY2VzcyB7XG5cdFx0Y29sb3I6IHZhcigtLXN1Y2Nlc3MtZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzcy1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzLWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zdWNjZXNzOmZvY3VzLCAuYnRuLXN1Y2Nlc3MuZm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLXN1Y2Nlc3Mtc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zdWNjZXNzOmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0tc3VjY2Vzcy1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzLWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3MtaG92ZXItY29sb3IpO1xuXHR9XG5cblx0Omhvc3QgL2RlZXAvIC5idG4tZGFuZ2VyIHtcblx0XHRjb2xvcjogdmFyKC0tZGFuZ2VyLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhbmdlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1kYW5nZXItY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLWRhbmdlcjpmb2N1cywgLmJ0bi1kYW5nZXIuZm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWRhbmdlci1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLWRhbmdlcjpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLWRhbmdlci1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYW5nZXItaG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tZGFuZ2VyLWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLWluZm8ge1xuXHRcdGNvbG9yOiB2YXIoLS1pbmZvLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWluZm8tY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0taW5mby1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4taW5mbzpmb2N1cywgLmJ0bi1pbmZvLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1pbmZvLXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4taW5mbzpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLWluZm8tZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5mby1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1pbmZvLWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLXByaW1hcnkge1xuXHRcdGNvbG9yOiB2YXIoLS1wcmltYXJ5LWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tcHJpbWFyeTpmb2N1cywgLmJ0bi1wcmltYXJ5LmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1wcmltYXJ5LXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tcHJpbWFyeTpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXByaW1hcnktZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLXNlY29uZGFyeSB7XG5cdFx0Y29sb3I6IHZhcigtLXNlY29uZGFyeS1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zZWNvbmRhcnk6Zm9jdXMsIC5idG4tc2Vjb25kYXJ5LmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1zZWNvbmRhcnktc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zZWNvbmRhcnk6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1ob3Zlci1jb2xvcik7XG5cdH1cblx0XG4gIFx0QG1lZGlhIHByaW50IHtcblx0ICBcdC5kb250UHJpbnQgKiB7XG5cdFx0ICBcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0ICBcdH1cblxuXHRcdC5teURpdlRvUHJpbnRDcyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEycHg7XG5cdFx0XHRwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcblx0XHRcdGRpc3BsYXk6IGluaXRpYWw7XG5cdFx0fVxuXG5cdFx0LnJlbW92ZU92ZXJmbG93IHtcblx0XHRcdG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50OyBcblx0XHRcdGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuXHRcdH1cbiAgXHR9XG5cbiAgXHQuaGlkZVRoaXMge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXG5cdC5uYXZTaWRiYXIge1xuXHRcdHdpZHRoOiAwcHg7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHotaW5kZXg6IDE7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRyYW5zaXRpb246IDAuNXM7XG5cdFx0cGFkZGluZy10b3A6IDBweDtcblx0fVxuXG5cdC5uYXZTaWRiYXIgYSB7XG5cdFx0cGFkZGluZzogOHB4IDhweCA4cHggMzJweDtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Zm9udC1zaXplOiAyNXB4O1xuXHRcdGNvbG9yOiAjODE4MTgxO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHRyYW5zaXRpb246IDAuM3M7XG5cdH1cblxuXHQubmF2U2lkYmFyIGE6aG92ZXIge1xuXHRcdGNvbG9yOiAjZjFmMWYxO1xuXHR9XG5cblx0Lm9wZW5idG4ge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMzNDNhNDA7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdHBhZGRpbmc6IDVweCAyMHB4O1xuXHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRyaWdodDogMDtcblx0XHR0b3A6IDBweDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogOTk5OTk5O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cblx0Lm9wZW5idG4gc3BhbiB7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGhlaWdodDogYXV0bztcblx0XHR3aWR0aDogYXV0bztcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0b3A6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTkwZGVnKTtcblx0XHRtYXJnaW4tdG9wOiAtNTVweDtcblx0XHRsZXR0ZXItc3BhY2luZzogMzBweDtcblx0fVxuXHQjbWFpbl9jb250IHtcblx0XHR0cmFuc2l0aW9uOiBwYWRkaW5nLWxlZnQgLjVzO1xuXHR9XG5cblx0LnNpZF9pbnIge1xuXHRcdHBhZGRpbmctbGVmdDogMjVweDtcblx0fVxuXG48L3N0eWxlPlxuPGRpdiAqbmdJZj1cImlzRGV2aWNlXCI+XG5cdDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiB0eXBlPVwidGV4dC9jc3NcIiBocmVmPVwiL2Fzc2V0cy9jc3MvdGFibGV0LmNzc1wiPlxuPC9kaXY+XG48IS0tIDx0b3VyLXN0ZXAtdGVtcGxhdGU+PC90b3VyLXN0ZXAtdGVtcGxhdGU+IC0tPlxuPGRpdiAjc2hlbGw+XG5cdDxkaXYgKm5nSWY9XCJ1c2VyICYmICghaXNDb25uZWN0ZWQgfHwgaXNPZmZsaW5lKVwiPlxuXHRcdDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyBjb2xvcjogd2hpdGU7XCI+XG5cdFx0XHQ8ZGl2IHN0eWxlPVwicGFkZGluZy10b3A6IDlweDsgcGFkZGluZy1ib3R0b206IDlweDtcIj4qKiogT0ZGTElORSBNT0RFICoqKjwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiAqbmdJZj1cIiF1c2VyICYmICghaXNDb25uZWN0ZWQgfHwgaXNPZmZsaW5lKSAmJiAhaXNSZXNvbHZlSU9cIj5cblx0XHQ8ZGl2IHN0eWxlPVwiaGVpZ2h0OiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgY29sb3I6IHdoaXRlO1wiPlxuXHRcdFx0PGRpdiBzdHlsZT1cInBhZGRpbmctdG9wOiA5cHg7IHBhZGRpbmctYm90dG9tOiA5cHg7XCI+KioqIFBMRUFTRSBMT0dJTiAqKio8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxkaXYgKm5nSWY9XCJzdGF0dXNcIj5cblx0XHQ8ZGl2IHN0eWxlPVwiaGVpZ2h0OiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgY29sb3I6IHdoaXRlO1wiPlxuXHRcdFx0PGRpdiBzdHlsZT1cInBhZGRpbmctdG9wOiA5cHg7IHBhZGRpbmctYm90dG9tOiA5cHg7XCI+KioqIHt7IHN0YXR1cy5tZXNzYWdlIH19ICoqKjwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiAqbmdJZj1cImZ1bGxTY3JlZW5cIj5cblx0XHQ8cm91dGVyLW91dGxldCBuYW1lPVwiam9iYm9hcmRmc291dGxldFwiPjwvcm91dGVyLW91dGxldD5cblx0PC9kaXY+XG5cdDxkaXYgW25nQ2xhc3NdPVwiWydjb250YWluZXItZmx1aWQnLCBmdWxsU2NyZWVuID8gJ2hpZGVUaGlzJyA6ICcnXVwiIFtzdHlsZS5mb250LXNpemUucHhdPVwiZm9udFNpemVcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiZG9udFByaW50XCI+XG5cdFx0XHQ8bmF2YmFyLW1haW4gc3R5bGU9XCJ3aWR0aDogMTAwJVwiIHRvdXJBbmNob3I9XCJuYXZCYXJNYWluXCIgI25hdkJhck1haW4gW2xvZ29dPVwibG9nb1wiIFtuYXZUYWJzXT1cIm5hdlRhYnNcIiBbZm9udFNpemVdPVwiZm9udFNpemVcIj48L25hdmJhci1tYWluPlxuXHRcdDwvZGl2PlxuXHRcdDxuZy10ZW1wbGF0ZSBuZ2JNb2RhbENvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuXHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdDxkaXYgaWQ9XCJuYXZTaWRcIiBbbmdDbGFzc109XCJbJ2RvbnRQcmludCcsIHdpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gJ25hdlNpZGJhcicgOiAnY29sLXhsLTEnXVwiIFtzdHlsZS53aWR0aF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/IDQwICsgJ3B4JyA6IDEwMCArICclJ1wiIFtzdHlsZS5tYXJnaW4tdG9wLnB4XT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gbmF2YmFyTWFpbkhlaWdodCArIHN0YXR1c0hlaWdodCArIGNvbm5lY3RlZEhlaWdodCA6IDBcIiA+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJvcGVuYnRuXCIgKm5nSWY9XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudVwiIChtb3VzZWVudGVyKT1cIm9wZW5OYXYoKVwiPjxzcGFuPk1FTlU8L3NwYW4+PC9kaXY+XG5cdFx0XHRcdDxkaXYgW25nQ2xhc3NdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyAnc2lkX2lucicgOiAnJ1wiPlxuXHRcdFx0XHRcdDxuYXZiYXItbW9kdWxlICNuYXZCYXJNb2R1bGUgdG91ckFuY2hvcj1cIm5hdkJhck1vZHVsZVwiIFtzaWRlTmF2V2lkdGhdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyAnOTAlJyA6ICdhdXRvJ1wiIFtzaWRlTmF2SGVpZ2h0XT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gd2luZG93U2l6ZUhlaWdodCAtIG5hdmJhck1haW5IZWlnaHQgLSBzdGF0dXNIZWlnaHQgLSBjb25uZWN0ZWRIZWlnaHQgLSAoc2hvd05hdmlnYXRpb25NZW51ID8gKDU0ICsgZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkpIDogMCkgLSAoKCFpc0RldmljZSB8fCAoaXNEZXZpY2UgJiYgc2hvd05hdmlnYXRpb25NZW51KSkgPyAyMCA6IDApIDogJydcIj48L25hdmJhci1tb2R1bGU+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IFtpZF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwID8gJ21haW5fY29udCcgOiAnbWFpbl9jb250X21vYmlsZSdcIiBbbmdDbGFzc109XCJbd2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyAnY29sLXhsLTEyJyA6ICdjb2wteGwtMTEnXVwiIFtzdHlsZS5wYWRkaW5nLWxlZnQucHhdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyA1NSA6IDBcIiAobW91c2VlbnRlcik9XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/IGNsb3NlTmF2KCkgOiBudWxsXCI+XG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJwYWRkaW5nLXRvcDogMTVweDsgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoXCIgW3N0eWxlLm92ZXJmbG93LXldPVwiKGlzRGV2aWNlICYmICFzaG93TmF2aWdhdGlvbk1lbnUpID8gJ2luaXRpYWwnIDogJ3Njcm9sbCdcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cIndpbmRvd1NpemVIZWlnaHQgLSAoKGlzRGV2aWNlIHx8IHdpbmRvd1NpemVXaWR0aCA8PSAxMjAwKSAmJiAhc2hvd05hdmlnYXRpb25NZW51ID8gKGdldE5hdmJhck1vZHVsZUhlaWdodCgpID4gMTAwID8gMCA6IGdldE5hdmJhck1vZHVsZUhlaWdodCgpKSA6IDApIC0gbmF2YmFyTWFpbkhlaWdodCAtIHN0YXR1c0hlaWdodCAtIGNvbm5lY3RlZEhlaWdodCAtIChpc0RldmljZSAmJiBzaG93TmF2aWdhdGlvbk1lbnUgPyAoNTQgKyAoZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkgPiAxMDAgPyAwIDogZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkpKSA6IDApIC0gKCghaXNEZXZpY2UgfHwgKGlzRGV2aWNlICYmIHNob3dOYXZpZ2F0aW9uTWVudSkpID8gMjAgOiAwKVwiIGNsYXNzPVwicmVtb3ZlT3ZlcmZsb3dcIj5cblx0XHRcdFx0XHQ8ZGl2IFtzdHlsZS5oZWlnaHQucHhdPVwid2luZG93U2l6ZUhlaWdodCArIDEgLSAoKGlzRGV2aWNlIHx8IHdpbmRvd1NpemVXaWR0aCA8PSAxMjAwKSAmJiAhc2hvd05hdmlnYXRpb25NZW51ID8gKGdldE5hdmJhck1vZHVsZUhlaWdodCgpID4gMTAwID8gMCA6IGdldE5hdmJhck1vZHVsZUhlaWdodCgpKSA6IDApIC0gbmF2YmFyTWFpbkhlaWdodCAtIHN0YXR1c0hlaWdodCAtIGNvbm5lY3RlZEhlaWdodCAtIChpc0RldmljZSAmJiBzaG93TmF2aWdhdGlvbk1lbnUgPyAoNTQgKyAoZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkgPiAxMDAgPyAwIDogZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkpKSA6IDApIC0gKCghaXNEZXZpY2UgfHwgKGlzRGV2aWNlICYmIHNob3dOYXZpZ2F0aW9uTWVudSkpID8gNjAgOiAwKVwiIGNsYXNzPVwicmVtb3ZlT3ZlcmZsb3dcIj5cblx0XHRcdFx0XHRcdDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwiaXNEZXZpY2UgJiYgc2hvd05hdmlnYXRpb25NZW51XCIgc3R5bGU9XCJoZWlnaHQ6IDU0cHg7IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsgbWFyZ2luLWxlZnQ6IC0xNXB4OyBtYXJnaW4tcmlnaHQ6IC0xNXB4O1wiIGNsYXNzPVwiZG9udFByaW50XCI+XG5cdFx0XHQ8dGFibGUgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxuXHRcdFx0XHQ8dHI+XG5cdFx0XHRcdFx0PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyXCI+XG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5XCIgKGNsaWNrKT1cIm9uUHVzaEJhY2tCdXR0b24oKVwiPjxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctbGVmdFwiIHN0eWxlPVwiY29sb3I6IGJsYWNrOyBmb250LXNpemU6IDIwcHhcIj48L2k+PC9idXR0b24+XG5cdFx0XHRcdFx0PC90ZD5cblx0XHRcdFx0XHQ8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIj5cblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXlcIiAoY2xpY2spPVwib25QdXNoUmVsb2FkQnV0dG9uKClcIj48aSBjbGFzcz1cImZhIGZhLXJlZnJlc2hcIiBzdHlsZT1cImNvbG9yOiBibGFjazsgZm9udC1zaXplOiAyMHB4XCI+PC9pPjwvYnV0dG9uPlxuXHRcdFx0XHRcdDwvdGQ+XG5cdFx0XHRcdFx0PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyXCI+XG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5XCIgKGNsaWNrKT1cIm9uUHVzaEZvcndhcmRCdXR0b24oKVwiPjxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctcmlnaHRcIiBzdHlsZT1cImNvbG9yOiBibGFjazsgZm9udC1zaXplOiAyMHB4XCI+PC9pPjwvYnV0dG9uPlxuXHRcdFx0XHRcdDwvdGQ+XG5cdFx0XHRcdDwvdHI+XG5cdFx0XHQ8L3RhYmxlPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCIhaXNEZXZpY2VcIiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgaGVpZ2h0OiAyMHB4OyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtd2VpZ2h0OiBib2xkOyBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7IG1hcmdpbi1sZWZ0OiAtMTVweDsgbWFyZ2luLXJpZ2h0OiAtMTVweDtcIj4mY29weTsge3t5ZWFyfX0gUkVTT0xWRUlPIEFMTCBSSUdIVFMgUkVTRVJWRUQ8L2Rpdj5cblx0PC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -34,7 +34,7 @@ export class SocketManagerService {
|
|
|
34
34
|
this._socket.onmessage = (event) => {
|
|
35
35
|
let resData = JSON.parse(event.data, dateReviver);
|
|
36
36
|
if (resData.data === 'reloadWSCommand') {
|
|
37
|
-
window.location.href = window.location.href;
|
|
37
|
+
window.location.href = window.location.href + '?forceReload=true';
|
|
38
38
|
}
|
|
39
39
|
else if (resData.data === 'reconnectWSCommand') {
|
|
40
40
|
this._socket.reconnect();
|
|
@@ -357,4 +357,4 @@ SocketManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0",
|
|
|
357
357
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SocketManagerService, decorators: [{
|
|
358
358
|
type: Injectable
|
|
359
359
|
}], ctorParameters: function () { return [{ type: i1.SocketService }, { type: i2.OfflineManagerService }, { type: i3.AlertService }, { type: i4.Router }]; } });
|
|
360
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zb2NrZXQtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBR3pDLE1BQU0sT0FBTyxvQkFBb0I7SUFnQmhDLFlBQW9CLE9BQXNCLEVBQVUsUUFBK0IsRUFBVSxNQUFvQixFQUFVLE9BQWU7UUFBdEgsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFibEksY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxjQUFTLEdBQW9DLEVBQUUsQ0FBQztRQUNoRCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRXJCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLDRCQUF1QixHQUFHLElBQUks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Q0osT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQzdEO29CQUVELElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDL0QsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDaEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUMvRTtpQkFDRDthQUNEO1NBQ0Q7YUFDSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDL0IsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDM0I7U0FDRDtJQUNGLENBQUM7SUFFRCxTQUFTO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNqQyxDQUFDOztpSEEvWVcsb0JBQW9CO3FIQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvY2tldFNlcnZpY2UgfSBmcm9tICcuL3NvY2tldC5zZXJ2aWNlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWN0aXZlQ2xpZW50U3Vic2NyaXB0aW9uTW9kZWwgfSBmcm9tICcuL21vZGVscy9zdWJzY3JpcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgZGF0ZVJldml2ZXIsIGRlZXBDb3B5IH0gZnJvbSAnLi91dGlsL2NvbW1vbi5oZWxwZXInO1xuaW1wb3J0IHsgT2ZmbGluZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9vZmZsaW5lLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldHMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU29ja2V0TWFuYWdlclNlcnZpY2Uge1xuXHRwcml2YXRlIHNvY2tldFN0YXR1cztcblxuXHRwcml2YXRlIG1lc3NhZ2VJZCA9IDA7XG5cdHByaXZhdGUgX2NiQXJyYXkgPSBbXTtcblx0cHJpdmF0ZSBfc3ViQXJyYXk6IEFjdGl2ZUNsaWVudFN1YnNjcmlwdGlvbk1vZGVsW10gPSBbXTtcblx0cHJpdmF0ZSBfc2VuZFF1ZXVlID0gW107XG5cdHByaXZhdGUgX29mZmxpbmVVcGRhdGVzID0gW107XG5cblx0cHJpdmF0ZSBfcnVubmluZ1F1ZXVlID0gZmFsc2U7XG5cdHByaXZhdGUgaW5pdENvbm5lY3Rpb24gPSBmYWxzZTtcblxuXHRwcml2YXRlIF9jb25uZWN0aW9uRGVsYXlUaW1lb3V0ID0gbnVsbDtcblxuXHRwdWJsaWMgb25lcnJvcjogKCkgPT4gdm9pZCA9IGZ1bmN0aW9uICgpIHt9O1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX3NvY2tldDogU29ja2V0U2VydmljZSwgcHJpdmF0ZSBfb2ZmbGluZTogT2ZmbGluZU1hbmFnZXJTZXJ2aWNlLCBwcml2YXRlIF9hbGVydDogQWxlcnRTZXJ2aWNlLCBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcikge31cblxuXHRwdWJsaWMgaW5pdFNvY2tldE1hbmFnZXIoKTogdm9pZCB7XG5cdFx0dGhpcy5fc29ja2V0LnJlYWR5U3RhdGUkLnN1YnNjcmliZShzb2NrZXRTdGF0dXMgPT4ge1xuXHRcdFx0dGhpcy5zb2NrZXRTdGF0dXMgPSBzb2NrZXRTdGF0dXM7XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zb2NrZXQub25tZXNzYWdlID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcblx0XHRcdGxldCByZXNEYXRhID0gSlNPTi5wYXJzZShldmVudC5kYXRhLCBkYXRlUmV2aXZlcik7XG5cblx0XHRcdGlmIChyZXNEYXRhLmRhdGEgPT09ICdyZWxvYWRXU0NvbW1hbmQnKSB7XG5cdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmIChyZXNEYXRhLmRhdGEgPT09ICdyZWNvbm5lY3RXU0NvbW1hbmQnKSB7XG5cdFx0XHRcdHRoaXMuX3NvY2tldC5yZWNvbm5lY3QoKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHJlc0RhdGEuZGF0YSA9PT0gJ2Rpc2Nvbm5lY3RXU0NvbW1hbmQnKSB7XG5cdFx0XHRcdHRoaXMuY2xvc2VTb2NrZXQoKTtcblx0XHRcdH1cblxuXHRcdFx0bGV0IG9mZmxpbmVJbmRleCA9IHRoaXMuX29mZmxpbmVVcGRhdGVzLmZpbmRJbmRleChhID0+IGEubWVzc2FnZUlkID09PSByZXNEYXRhLm1lc3NhZ2VJZCk7XG5cdFx0XHRpZiAob2ZmbGluZUluZGV4ID49IDApIHtcblx0XHRcdFx0dGhpcy5fb2ZmbGluZS5yZW1vdmVEb2N1bWVudCh0aGlzLl9vZmZsaW5lVXBkYXRlc1tvZmZsaW5lSW5kZXhdLnR5cGUsIHRoaXMuX29mZmxpbmVVcGRhdGVzW29mZmxpbmVJbmRleF0uaWRfb2ZmbGluZV9kb2MpO1xuXHRcdFx0XHR0aGlzLl9vZmZsaW5lVXBkYXRlcy5zcGxpY2Uob2ZmbGluZUluZGV4LCAxKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHJlc0RhdGEuZGF0YSAhPT0gJ0FDSycgJiYgcmVzRGF0YS5kYXRhICE9PSAnTkFDSycpIHtcblx0XHRcdFx0aWYgKHRoaXMuX2NiQXJyYXkubWFwKGEgPT4gYS5tZXNzYWdlSWQpLmluY2x1ZGVzKHJlc0RhdGEubWVzc2FnZUlkKSkge1x0XG5cdFx0XHRcdFx0bGV0IGluZGV4ID0gdGhpcy5fY2JBcnJheS5maW5kSW5kZXgoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gcmVzRGF0YS5tZXNzYWdlSWQpO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGlmIChpbmRleCA+PSAwKSB7XG5cdFx0XHRcdFx0XHRjbGVhckludGVydmFsKHRoaXMuX2NiQXJyYXlbaW5kZXhdLnRpbWVySWQpO1xuXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5fY2JBcnJheVtpbmRleF0uY2IpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheVtpbmRleF0uY2IocmVzRGF0YS5oYXNFcnJvciA/IHJlc0RhdGEuZGF0YSA6IG51bGwsIHJlc0RhdGEuaGFzRXJyb3IgPyBudWxsIDogcmVzRGF0YS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheVtpbmRleF0ucmVzb2x2ZUZuKHJlc0RhdGEuaGFzRXJyb3IgPyByZXNEYXRhLmRhdGEgOiBudWxsKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRpZiAocmVzRGF0YS5oYXNFcnJvcikge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX2NiQXJyYXlbaW5kZXhdLnJlamVjdEZuKHJlc0RhdGEuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheVtpbmRleF0ucmVzb2x2ZUZuKHJlc0RhdGEuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheS5zcGxpY2UoaW5kZXgsIDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLl9zdWJBcnJheS5tYXAoYSA9PiBhLm1lc3NhZ2VJZCkuaW5jbHVkZXMocmVzRGF0YS5tZXNzYWdlSWQpKSB7XHRcblx0XHRcdFx0XHRsZXQgaW5kZXggPSB0aGlzLl9zdWJBcnJheS5maW5kSW5kZXgoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gcmVzRGF0YS5tZXNzYWdlSWQpO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGlmIChpbmRleCA+PSAwKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9zdWJBcnJheVtpbmRleF0uc3ViamVjdC5uZXh0KHJlc0RhdGEuZGF0YSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdHRoaXMuX3NvY2tldC5vbm9wZW4gPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG5cdFx0XHR0aGlzLl9jb25uZWN0aW9uRGVsYXlUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuX2Nvbm5lY3Rpb25EZWxheVRpbWVvdXQgPSBudWxsO1xuXG5cdFx0XHRcdHRoaXMuX29mZmxpbmUuc2V0T2ZmbGluZShmYWxzZSk7XG5cdFx0XHRcdFxuXHRcdFx0XHRsZXQgY29sbGVjdGlvblVwZGF0ZXMgPSB0aGlzLl9vZmZsaW5lLmZpbmQoJ2NvbGxlY3Rpb25VcGRhdGUnLCB7fSk7XG5cblx0XHRcdFx0Y29sbGVjdGlvblVwZGF0ZXMuZm9yRWFjaCh1cGRhdGUgPT4ge1xuXHRcdFx0XHRcdGxldCBtZXNzYWdlSWQgPSB0aGlzLm1lc3NhZ2VJZCsrO1xuXG5cdFx0XHRcdFx0dGhpcy5fb2ZmbGluZVVwZGF0ZXMucHVzaCh7XG5cdFx0XHRcdFx0XHRpZF9vZmZsaW5lX2RvYzogdXBkYXRlLl9pZCxcblx0XHRcdFx0XHRcdG1lc3NhZ2VJZDogbWVzc2FnZUlkLFxuXHRcdFx0XHRcdFx0dHlwZTogJ2NvbGxlY3Rpb25VcGRhdGUnXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHR1cGRhdGUuZGF0YVsyXSA9IG1lc3NhZ2VJZDtcblxuXHRcdFx0XHRcdGlmICh1cGRhdGUudHlwZSA9PT0gJ3VwZGF0ZURvY3VtZW50JyAmJiB1cGRhdGUub2xkRGF0YSkge1xuXHRcdFx0XHRcdFx0dXBkYXRlLmRhdGFbNF0gPSAndXBkYXRlRG9jdW1lbnRPZmZsaW5lJztcblx0XHRcdFx0XHRcdHVwZGF0ZS5kYXRhWzBdID0gJ09mZmxpbmUgLSAnICsgdXBkYXRlLmRhdGFbMF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2UgaWYgKHVwZGF0ZS50eXBlID09PSAndXBkYXRlRG9jdW1lbnRQcm9wcycgJiYgdXBkYXRlLm9sZERhdGEpIHtcblx0XHRcdFx0XHRcdHVwZGF0ZS5kYXRhWzRdID0gJ3VwZGF0ZURvY3VtZW50UHJvcHNPZmZsaW5lJztcblx0XHRcdFx0XHRcdHVwZGF0ZS5kYXRhWzBdID0gJ09mZmxpbmUgLSAnICsgdXBkYXRlLmRhdGFbMF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0dXBkYXRlLmRhdGFbMF0gPSAnT2ZmbGluZSAtICcgKyB1cGRhdGUuZGF0YVswXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdGlmIChjb2xsZWN0aW9uVXBkYXRlcy5sZW5ndGgpIHtcblx0XHRcdFx0XHR0aGlzLnNlbmQoJ09mZmxpbmUgVXBkYXRlcycsIG5ldyBEYXRlKCksIHRoaXMubWVzc2FnZUlkKyssICdvZmZsaW5lJywgY29sbGVjdGlvblVwZGF0ZXMuc29ydCgoYSwgYikgPT4gYS5kYXRlLmdldFRpbWUoKSAtIGIuZGF0ZS5nZXRUaW1lKCkpKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICh0aGlzLmluaXRDb25uZWN0aW9uKSB7XG5cdFx0XHRcdFx0dGhpcy5fc3ViQXJyYXkuZm9yRWFjaChzdWIgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5zZW5kKHN1Yi5tZXNzYWdlUm91dGUsIG5ldyBEYXRlKCksIHN1Yi5tZXNzYWdlSWQsICdzdWJzY3JpcHRpb24nLCAnc3ViJywgc3ViLnN1YnNjcmlwdGlvbiwgLi4uc3ViLnBhcmFtZXRlcnMpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhpcy5pbml0Q29ubmVjdGlvbiA9IHRydWU7XG5cdFx0XHR9LCAxMDAwKTtcblx0XHR9O1xuXG5cdFx0dGhpcy5fc29ja2V0Lm9uZXJyb3IgPSAoZXY6IEVycm9yRXZlbnQpID0+IHtcblx0XHRcdGlmICh0aGlzLl9jb25uZWN0aW9uRGVsYXlUaW1lb3V0KSB7XG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLl9jb25uZWN0aW9uRGVsYXlUaW1lb3V0KTtcblx0XHRcdH1cblx0XHRcdGNvbnNvbGUubG9nKG5ldyBEYXRlKCksICdTT0NLRVQgRVJST1InLCBldik7XG5cdFx0XHR0aGlzLm9uZXJyb3IoKTtcblx0XHR9O1xuXG5cdFx0dGhpcy5fc29ja2V0Lm9uY2xvc2UgPSAoZXY6IENsb3NlRXZlbnQpID0+IHtcblx0XHRcdGlmICh0aGlzLl9jb25uZWN0aW9uRGVsYXlUaW1lb3V0KSB7XG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLl9jb25uZWN0aW9uRGVsYXlUaW1lb3V0KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5pbml0Q29ubmVjdGlvbikge1xuXHRcdFx0XHRpZiAoIXRoaXMuX3J1bm5pbmdRdWV1ZSkge1xuXHRcdFx0XHRcdGlmICh0aGlzLl9zZW5kUXVldWUubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9ydW5uaW5nUXVldWUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IHRoaXMuX3NlbmRRdWV1ZS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5fc29ja2V0ICYmIHRoaXMuX3NvY2tldC53cykge1xuXHRcdFx0XHRcdFx0XHRcdGlmICh0aGlzLnNvY2tldFN0YXR1cyA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBuZXh0U2VuZEl0ZW0gPSB0aGlzLl9zZW5kUXVldWUucG9wKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3NvY2tldC5zZW5kKC4uLm5leHRTZW5kSXRlbSk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdHRoaXMuX3J1bm5pbmdRdWV1ZSA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sIDI1KTtcblx0fVxuXG5cdHB1YmxpYyBvcGVuU29ja2V0KGVudmlyb25tZW50LCBwcm90b2NvbHMpIHtcblx0XHR0aGlzLl9zb2NrZXQub3BlblNvY2tldChlbnZpcm9ubWVudCwgcHJvdG9jb2xzKTtcblx0fVxuXG5cdHB1YmxpYyBjbG9zZVNvY2tldCgpIHtcblx0XHR0aGlzLl9zb2NrZXQuY2xvc2UoKTtcblx0fVxuXG5cdHB1YmxpYyBjYWxsKG1ldGhvZDogc3RyaW5nLCAuLi5wYXJhbWV0ZXJzOiBhbnlbXSkge1xuXHRcdGxldCByZXNvbHZlRm4gPSBudWxsO1xuXHRcdGxldCByZWplY3RGbiA9IG51bGw7XG5cblx0XHRsZXQgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHJlc29sdmVGbiA9IHJlc29sdmU7XG5cdFx0XHRyZWplY3RGbiA9IHJlamVjdDtcblx0XHR9KTtcblxuXHRcdGxldCBtZXNzYWdlSWQgPSB0aGlzLm1lc3NhZ2VJZCsrO1xuXG5cdFx0bGV0IHRpbWVySWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5fY2JBcnJheS5maWx0ZXIoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gbWVzc2FnZUlkKVswXSkge1xuXHRcdFx0XHR0aGlzLnNlbmQoKHRoaXMuX3JvdXRlci51cmwuaW5jbHVkZXMoJz8nKSA/IHRoaXMuX3JvdXRlci51cmwuc3Vic3RyaW5nKDAsIHRoaXMuX3JvdXRlci51cmwuaW5kZXhPZignPycpKSA6IHRoaXMuX3JvdXRlci51cmwpLCBuZXcgRGF0ZSgpLCBtZXNzYWdlSWQsICdtZXRob2RSZXNwb25zZScsIG1ldGhvZCwgLi4ucGFyYW1ldGVycyk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0Y2xlYXJJbnRlcnZhbCh0aW1lcklkKTtcblx0XHRcdH1cblx0XHR9LCA1MDAwKTtcblxuXHRcdGlmIChwYXJhbWV0ZXJzW3BhcmFtZXRlcnMubGVuZ3RoIC0gMV0gJiYgdHlwZW9mKHBhcmFtZXRlcnNbcGFyYW1ldGVycy5sZW5ndGggLSAxXSkgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdHRoaXMuX2NiQXJyYXkucHVzaCh7XG5cdFx0XHRcdG1lc3NhZ2VJZDogbWVzc2FnZUlkLFxuXHRcdFx0XHRjYjogcGFyYW1ldGVycy5wb3AoKSxcblx0XHRcdFx0cmVzb2x2ZUZuOiByZXNvbHZlRm4sXG5cdFx0XHRcdHJlamVjdEZuOiByZWplY3RGbixcblx0XHRcdFx0dGltZXJJZDogdGltZXJJZCxcblx0XHRcdFx0cmV0cnlDbnQ6IDBcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHRoaXMuX2NiQXJyYXkucHVzaCh7XG5cdFx0XHRcdG1lc3NhZ2VJZDogbWVzc2FnZUlkLFxuXHRcdFx0XHRjYjogbnVsbCxcblx0XHRcdFx0cmVzb2x2ZUZuOiByZXNvbHZlRm4sXG5cdFx0XHRcdHJlamVjdEZuOiByZWplY3RGbixcblx0XHRcdFx0dGltZXJJZDogdGltZXJJZCxcblx0XHRcdFx0cmV0cnlDbnQ6IDBcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGxldCBjbnQgPSBwYXJhbWV0ZXJzLmxlbmd0aDtcblx0XHR3aGlsZSAoKHBhcmFtZXRlcnNbcGFyYW1ldGVycy5sZW5ndGggLSAxXSA9PT0gdW5kZWZpbmVkIHx8IHBhcmFtZXRlcnNbcGFyYW1ldGVycy5sZW5ndGggLSAxXSA9PT0gbnVsbCkgJiYgY250ID4gMCkge1xuXHRcdFx0cGFyYW1ldGVycy5wb3AoKTtcblx0XHRcdGNudCA9IHBhcmFtZXRlcnMubGVuZ3RoO1xuXHRcdH1cblxuXHRcdHRoaXMuc2VuZCgodGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcygnPycpID8gdGhpcy5fcm91dGVyLnVybC5zdWJzdHJpbmcoMCwgdGhpcy5fcm91dGVyLnVybC5pbmRleE9mKCc/JykpIDogdGhpcy5fcm91dGVyLnVybCksIG5ldyBEYXRlKCksIG1lc3NhZ2VJZCwgJ21ldGhvZCcsIG1ldGhvZCwgLi4ucGFyYW1ldGVycyk7XG5cblx0XHRyZXR1cm4gcHJvbWlzZTtcblx0fVxuXG5cdHB1YmxpYyBzdWJzY3JpYmUoc3Vic2NyaXB0aW9uOiBzdHJpbmcsIC4uLnBhcmFtZXRlcnMpIHtcblx0XHRjb25zdCBjb3B5UGFyYW1ldGVycyA9IGRlZXBDb3B5KHBhcmFtZXRlcnMpO1xuXHRcdGNvbnN0IG5ld1N1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cblx0XHRsZXQgbWVzc2FnZUlkID0gdGhpcy5tZXNzYWdlSWQrKztcblxuXHRcdHRoaXMuX3N1YkFycmF5LnB1c2goe1xuXHRcdFx0bWVzc2FnZUlkOiBtZXNzYWdlSWQsXG5cdFx0XHRtZXNzYWdlUm91dGU6ICh0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKCc/JykgPyB0aGlzLl9yb3V0ZXIudXJsLnN1YnN0cmluZygwLCB0aGlzLl9yb3V0ZXIudXJsLmluZGV4T2YoJz8nKSkgOiB0aGlzLl9yb3V0ZXIudXJsKSxcblx0XHRcdHN1YnNjcmlwdGlvbjogc3Vic2NyaXB0aW9uLFxuXHRcdFx0cGFyYW1ldGVyczogY29weVBhcmFtZXRlcnMsXG5cdFx0XHRzdWJqZWN0OiBuZXdTdWJqZWN0XG5cdFx0fSk7XG5cblx0XHRjb25zdCBvYnNlcnZhYmxlID0gbmV3U3ViamVjdC5waXBlKGZpbmFsaXplKCgpID0+IHtcblx0XHRcdHRoaXMudW5zdWJzY3JpYmUobWVzc2FnZUlkLCBzdWJzY3JpcHRpb24sIC4uLmNvcHlQYXJhbWV0ZXJzKTtcblx0XHRcdHRoaXMuX3N1YkFycmF5LnNwbGljZSh0aGlzLl9zdWJBcnJheS5tYXAoYSA9PiBhLm1lc3NhZ2VJZCkuaW5kZXhPZihtZXNzYWdlSWQpLCAxKTtcblx0XHR9KSk7XG5cblx0XHR0aGlzLnNlbmQoKHRoaXMuX3JvdXRlci51cmwuaW5jbHVkZXMoJz8nKSA/IHRoaXMuX3JvdXRlci51cmwuc3Vic3RyaW5nKDAsIHRoaXMuX3JvdXRlci51cmwuaW5kZXhPZignPycpKSA6IHRoaXMuX3JvdXRlci51cmwpLCBuZXcgRGF0ZSgpLCBtZXNzYWdlSWQsICdzdWJzY3JpcHRpb24nLCAnc3ViJywgc3Vic2NyaXB0aW9uLCAuLi5jb3B5UGFyYW1ldGVycyk7XG5cblx0XHRyZXR1cm4gb2JzZXJ2YWJsZTtcblx0fVxuXG5cdHB1YmxpYyBzdWJzY3JpYmVCeXBhc3NSb3V0ZShzdWJzY3JpcHRpb246IHN0cmluZywgLi4ucGFyYW1ldGVycykge1xuXHRcdGNvbnN0IGNvcHlQYXJhbWV0ZXJzID0gZGVlcENvcHkocGFyYW1ldGVycyk7XG5cdFx0Y29uc3QgbmV3U3ViamVjdCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuXHRcdGxldCBtZXNzYWdlSWQgPSB0aGlzLm1lc3NhZ2VJZCsrO1xuXG5cdFx0dGhpcy5fc3ViQXJyYXkucHVzaCh7XG5cdFx0XHRtZXNzYWdlSWQ6IG1lc3NhZ2VJZCxcblx0XHRcdG1lc3NhZ2VSb3V0ZTogJ0J5cGFzcycsXG5cdFx0XHRzdWJzY3JpcHRpb246IHN1YnNjcmlwdGlvbixcblx0XHRcdHBhcmFtZXRlcnM6IGNvcHlQYXJhbWV0ZXJzLFxuXHRcdFx0c3ViamVjdDogbmV3U3ViamVjdFxuXHRcdH0pO1xuXG5cdFx0Y29uc3Qgb2JzZXJ2YWJsZSA9IG5ld1N1YmplY3QucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG5cdFx0XHR0aGlzLnVuc3Vic2NyaWJlKG1lc3NhZ2VJZCwgc3Vic2NyaXB0aW9uLCAuLi5jb3B5UGFyYW1ldGVycyk7XG5cdFx0XHR0aGlzLl9zdWJBcnJheS5zcGxpY2UodGhpcy5fc3ViQXJyYXkubWFwKGEgPT4gYS5tZXNzYWdlSWQpLmluZGV4T2YobWVzc2FnZUlkKSwgMSk7XG5cdFx0fSkpO1xuXG5cdFx0dGhpcy5zZW5kKCdCeXBhc3MnLCBuZXcgRGF0ZSgpLCBtZXNzYWdlSWQsICdzdWJzY3JpcHRpb24nLCAnc3ViJywgc3Vic2NyaXB0aW9uLCAuLi5jb3B5UGFyYW1ldGVycyk7XG5cblx0XHRyZXR1cm4gb2JzZXJ2YWJsZTtcblx0fVxuXG5cdHB1YmxpYyB1bnN1YnNjcmliZShtZXNzYWdlSWQsIHN1YnNjcmlwdGlvbjogc3RyaW5nLCAuLi5wYXJhbWV0ZXJzKSB7XG5cdFx0dGhpcy5zZW5kKCh0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKCc/JykgPyB0aGlzLl9yb3V0ZXIudXJsLnN1YnN0cmluZygwLCB0aGlzLl9yb3V0ZXIudXJsLmluZGV4T2YoJz8nKSkgOiB0aGlzLl9yb3V0ZXIudXJsKSwgbmV3IERhdGUoKSwgbWVzc2FnZUlkLCAnc3Vic2NyaXB0aW9uJywgJ3Vuc3ViJywgc3Vic2NyaXB0aW9uLCAuLi5wYXJhbWV0ZXJzKTtcblx0fVxuXHRcblx0cHJpdmF0ZSBzZW5kKC4uLmRhdGE6IGFueVtdKSB7XG5cdFx0aWYgKGRhdGFbM10gPT09ICdzdWJzY3JpcHRpb24nKSB7XG5cdFx0XHRpZiAodGhpcy5zb2NrZXRTdGF0dXMgPT09IFdlYlNvY2tldC5PUEVOKSB7XG5cdFx0XHRcdHRoaXMuX3NvY2tldC5zZW5kKC4uLmRhdGEpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGlmICghdGhpcy5fc2VuZFF1ZXVlLmZpbHRlcihhID0+IEpTT04uc3RyaW5naWZ5KGEpID09PSBKU09OLnN0cmluZ2lmeShkYXRhKSkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dGhpcy5fc2VuZFF1ZXVlLnNwbGljZSgwLCAwLCBkYXRhKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRlbHNlIGlmIChkYXRhWzNdID09PSAnbWV0aG9kJyAmJiBkYXRhWzRdID09PSAnc2V0V1NBcHBWZXJzaW9uJykge1xuXHRcdFx0aWYgKHRoaXMuc29ja2V0U3RhdHVzID09PSBXZWJTb2NrZXQuT1BFTikge1xuXHRcdFx0XHR0aGlzLl9zb2NrZXQuc2VuZCguLi5kYXRhKTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRpZiAoIXRoaXMuX3NlbmRRdWV1ZS5maWx0ZXIoYSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoZGF0YSkpLmxlbmd0aCkge1xuXHRcdFx0XHRcdHRoaXMuX3NlbmRRdWV1ZS5zcGxpY2UoMCwgMCwgZGF0YSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0ZWxzZSBpZiAoZGF0YVszXSA9PT0gJ21ldGhvZCcpIHtcblx0XHRcdGlmICh0aGlzLnNvY2tldFN0YXR1cyA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcblx0XHRcdFx0aWYgKCF0aGlzLl9zZW5kUXVldWUuZmlsdGVyKGEgPT4gSlNPTi5zdHJpbmdpZnkoYSkgPT09IEpTT04uc3RyaW5naWZ5KGRhdGEpKS5sZW5ndGgpIHtcblx0XHRcdFx0XHR0aGlzLl9zZW5kUXVldWUuc3BsaWNlKDAsIDAsIGRhdGEpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0aWYgKGRhdGFbNF0gPT09ICdpbnNlcnREb2N1bWVudCcpIHtcblx0XHRcdFx0XHR0aGlzLl9hbGVydC5zZXRBbGVydCgnd2FybmluZycsICdUaGlzIGluc2VydCBjb21tYW5kIGhhcyBub3QgdGFrZW4gcGxhY2Ugb24gdGhlIHNlcnZlciB5ZXQgYmVjYXVzZSB5b3UgYXJlIG9mZmxpbmUuICBJdCB3aWxsIGF1dG9tYXRpY2FsbHkgc3luYyB1cCBuZXh0IHRpbWUgeW91IGFyZSBvbmxpbmUgYXMgbG9uZyBhcyB5b3UgZG8gbm90IGNsZWFyIHlvdXIgY2FjaGUhJyk7XG5cblx0XHRcdFx0XHR0aGlzLl9vZmZsaW5lLmluc2VydERvY3VtZW50KCdjb2xsZWN0aW9uVXBkYXRlJywge1xuXHRcdFx0XHRcdFx0dHlwZTogJ2luc2VydCcsXG5cdFx0XHRcdFx0XHRkYXRhOiBkYXRhLFxuXHRcdFx0XHRcdFx0b2xkRGF0YTogbnVsbCxcblx0XHRcdFx0XHRcdGRhdGU6IG5ldyBEYXRlKClcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdGxldCByZXMgPSB0aGlzLl9vZmZsaW5lLmluc2VydERvY3VtZW50KGRhdGFbNV0sIGRhdGFbNl0pO1xuXG5cdFx0XHRcdFx0bGV0IGNiID0gdGhpcy5fY2JBcnJheS5maWx0ZXIoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gZGF0YVsyXSlbMF07XG5cdFx0XHRcdFx0aWYgKGNiICYmIGNiLmNiKSB7XG5cdFx0XHRcdFx0XHRjYi5jYihudWxsLCByZXMpO1xuXG5cdFx0XHRcdFx0XHR0aGlzLl9jYkFycmF5LnNwbGljZSh0aGlzLl9jYkFycmF5LmZpbmRJbmRleChhID0+IGEubWVzc2FnZUlkID09PSBkYXRhWzJdKSwgMSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKGRhdGFbNF0gPT09ICd1cGRhdGVEb2N1bWVudCcpIHtcblx0XHRcdFx0XHR0aGlzLl9hbGVydC5zZXRBbGVydCgnd2FybmluZycsICdUaGlzIHVwZGF0ZSBjb21tYW5kIGhhcyBub3QgdGFrZW4gcGxhY2Ugb24gdGhlIHNlcnZlciB5ZXQgYmVjYXVzZSB5b3UgYXJlIG9mZmxpbmUuICBJdCB3aWxsIGF1dG9tYXRpY2FsbHkgc3luYyB1cCBuZXh0IHRpbWUgeW91IGFyZSBvbmxpbmUgYXMgbG9uZyBhcyB5b3UgZG8gbm90IGNsZWFyIHlvdXIgY2FjaGUhJyk7XG5cdFx0XHRcdFx0dGhpcy5fb2ZmbGluZS5pbnNlcnREb2N1bWVudCgnY29sbGVjdGlvblVwZGF0ZScsIHtcblx0XHRcdFx0XHRcdHR5cGU6ICd1cGRhdGVEb2N1bWVudCcsXG5cdFx0XHRcdFx0XHRkYXRhOiBkYXRhLFxuXHRcdFx0XHRcdFx0b2xkRGF0YTogdGhpcy5fb2ZmbGluZS5maW5kT25lKGRhdGFbNV0sIGRhdGFbNl0uX2lkKSxcblx0XHRcdFx0XHRcdGRhdGU6IG5ldyBEYXRlKClcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLl9vZmZsaW5lLmZpbmRPbmUoZGF0YVs1XSwge19pZDogZGF0YVs2XS5faWR9KSkge1xuXHRcdFx0XHRcdFx0dGhpcy5fb2ZmbGluZS51cGRhdGVEb2N1bWVudChkYXRhWzVdLCBkYXRhWzZdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnQ291bGQgbm90IGZpbmQgT2ZmbGluZSBkYXRhJywgZGF0YVs1XSwgZGF0YVs2XSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0bGV0IGNiID0gdGhpcy5fY2JBcnJheS5maWx0ZXIoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gZGF0YVsyXSlbMF07XG5cdFx0XHRcdFx0aWYgKGNiICYmIGNiLmNiKSB7XG5cdFx0XHRcdFx0XHRjYi5jYihudWxsLCAxKTtcblx0XHRcdFx0XHRcdHRoaXMuX2NiQXJyYXkuc3BsaWNlKHRoaXMuX2NiQXJyYXkuZmluZEluZGV4KGEgPT4gYS5tZXNzYWdlSWQgPT09IGRhdGFbMl0pLCAxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAoZGF0YVs0XSA9PT0gJ3VwZGF0ZURvY3VtZW50UHJvcHMnKSB7XG5cdFx0XHRcdFx0dGhpcy5fYWxlcnQuc2V0QWxlcnQoJ3dhcm5pbmcnLCAnVGhpcyB1cGRhdGUgY29tbWFuZCBoYXMgbm90IHRha2VuIHBsYWNlIG9uIHRoZSBzZXJ2ZXIgeWV0IGJlY2F1c2UgeW91IGFyZSBvZmZsaW5lLiAgSXQgd2lsbCBhdXRvbWF0aWNhbGx5IHN5bmMgdXAgbmV4dCB0aW1lIHlvdSBhcmUgb25saW5lIGFzIGxvbmcgYXMgeW91IGRvIG5vdCBjbGVhciB5b3VyIGNhY2hlIScpO1xuXHRcdFx0XHRcdHRoaXMuX29mZmxpbmUuaW5zZXJ0RG9jdW1lbnQoJ2NvbGxlY3Rpb25VcGRhdGUnLCB7XG5cdFx0XHRcdFx0XHR0eXBlOiAndXBkYXRlRG9jdW1lbnRQcm9wcycsXG5cdFx0XHRcdFx0XHRkYXRhOiBkYXRhLFxuXHRcdFx0XHRcdFx0b2xkRGF0YTogdGhpcy5fb2ZmbGluZS5maW5kT25lKGRhdGFbNV0sIGRhdGFbNl0pLFxuXHRcdFx0XHRcdFx0ZGF0ZTogbmV3IERhdGUoKVxuXHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0aWYgKHRoaXMuX29mZmxpbmUuZmluZE9uZShkYXRhWzVdLCB7X2lkOiBkYXRhWzZdfSkpIHtcblx0XHRcdFx0XHRcdHRoaXMuX29mZmxpbmUudXBkYXRlRG9jdW1lbnRQcm9wcyhkYXRhWzVdLCBkYXRhWzZdLCBkYXRhWzddLCBkYXRhWzhdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnQ291bGQgbm90IGZpbmQgT2ZmbGluZSBkYXRhJywgZGF0YVs1XSwgZGF0YVs2XSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0bGV0IGNiID0gdGhpcy5fY2JBcnJheS5maWx0ZXIoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gZGF0YVsyXSlbMF07XG5cdFx0XHRcdFx0aWYgKGNiICYmIGNiLmNiKSB7XG5cdFx0XHRcdFx0XHRjYi5jYihudWxsLCAxKTtcblx0XHRcdFx0XHRcdHRoaXMuX2NiQXJyYXkuc3BsaWNlKHRoaXMuX2NiQXJyYXkuZmluZEluZGV4KGEgPT4gYS5tZXNzYWdlSWQgPT09IGRhdGFbMl0pLCAxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAoZGF0YVs0XSA9PT0gJ3JlbW92ZURvY3VtZW50Jykge1xuXHRcdFx0XHRcdHRoaXMuX2FsZXJ0LnNldEFsZXJ0KCd3YXJuaW5nJywgJ1RoaXMgcmVtb3ZlIGNvbW1hbmQgaGFzIG5vdCB0YWtlbiBwbGFjZSBvbiB0aGUgc2VydmVyIHlldCBiZWNhdXNlIHlvdSBhcmUgb2ZmbGluZS4gIEl0IHdpbGwgYXV0b21hdGljYWxseSBzeW5jIHVwIG5leHQgdGltZSB5b3UgYXJlIG9ubGluZSBhcyBsb25nIGFzIHlvdSBkbyBub3QgY2xlYXIgeW91ciBjYWNoZSEnKTtcblx0XHRcdFx0XHR0aGlzLl9vZmZsaW5lLmluc2VydERvY3VtZW50KCdjb2xsZWN0aW9uVXBkYXRlJywge1xuXHRcdFx0XHRcdFx0dHlwZTogJ3JlbW92ZURvY3VtZW50Jyxcblx0XHRcdFx0XHRcdGRhdGE6IGRhdGEsXG5cdFx0XHRcdFx0XHRvbGREYXRhOiBudWxsLFxuXHRcdFx0XHRcdFx0ZGF0ZTogbmV3IERhdGUoKVxuXHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0aWYgKHRoaXMuX29mZmxpbmUuZmluZE9uZShkYXRhWzVdLCB7X2lkOiBkYXRhWzZdfSkpIHtcblx0XHRcdFx0XHRcdHRoaXMuX29mZmxpbmUucmVtb3ZlRG9jdW1lbnQoZGF0YVs1XSwgZGF0YVs2XSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ0NvdWxkIG5vdCBmaW5kIE9mZmxpbmUgZGF0YScsIGRhdGFbNV0sIGRhdGFbNl0pO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGxldCBjYiA9IHRoaXMuX2NiQXJyYXkuZmlsdGVyKGEgPT4gYS5tZXNzYWdlSWQgPT09IGRhdGFbMl0pWzBdO1xuXHRcdFx0XHRcdGlmIChjYiAmJiBjYi5jYikge1xuXHRcdFx0XHRcdFx0Y2IuY2IobnVsbCwgMSk7XG5cdFx0XHRcdFx0XHR0aGlzLl9jYkFycmF5LnNwbGljZSh0aGlzLl9jYkFycmF5LmZpbmRJbmRleChhID0+IGEubWVzc2FnZUlkID09PSBkYXRhWzJdKSwgMSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGVsc2UgaWYgKGRhdGFbM10gPT09ICdvZmZsaW5lJykge1xuXHRcdFx0aWYgKHRoaXMuc29ja2V0U3RhdHVzID09PSBXZWJTb2NrZXQuT1BFTikge1xuXHRcdFx0XHR0aGlzLl9zb2NrZXQuc2VuZCguLi5kYXRhKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRnZXRTdGF0dXMoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NvY2tldC5yZWFkeVN0YXRlJDtcblx0fVxufVxuIl19
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zb2NrZXQtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBR3pDLE1BQU0sT0FBTyxvQkFBb0I7SUFnQmhDLFlBQW9CLE9BQXNCLEVBQVUsUUFBK0IsRUFBVSxNQUFvQixFQUFVLE9BQWU7UUFBdEgsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFibEksY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxjQUFTLEdBQW9DLEVBQUUsQ0FBQztRQUNoRCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRXJCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLDRCQUF1QixHQUFHLElBQUks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L0M7eUJBQ0k7d0JBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQzdEO29CQUVELElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDL0QsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDaEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUMvRTtpQkFDRDthQUNEO1NBQ0Q7YUFDSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDL0IsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDM0I7U0FDRDtJQUNGLENBQUM7SUFFRCxTQUFTO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNqQyxDQUFDOztpSEEvWVcsb0JBQW9CO3FIQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvY2tldFNlcnZpY2UgfSBmcm9tICcuL3NvY2tldC5zZXJ2aWNlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWN0aXZlQ2xpZW50U3Vic2NyaXB0aW9uTW9kZWwgfSBmcm9tICcuL21vZGVscy9zdWJzY3JpcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgZGF0ZVJldml2ZXIsIGRlZXBDb3B5IH0gZnJvbSAnLi91dGlsL2NvbW1vbi5oZWxwZXInO1xuaW1wb3J0IHsgT2ZmbGluZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9vZmZsaW5lLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldHMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU29ja2V0TWFuYWdlclNlcnZpY2Uge1xuXHRwcml2YXRlIHNvY2tldFN0YXR1cztcblxuXHRwcml2YXRlIG1lc3NhZ2VJZCA9IDA7XG5cdHByaXZhdGUgX2NiQXJyYXkgPSBbXTtcblx0cHJpdmF0ZSBfc3ViQXJyYXk6IEFjdGl2ZUNsaWVudFN1YnNjcmlwdGlvbk1vZGVsW10gPSBbXTtcblx0cHJpdmF0ZSBfc2VuZFF1ZXVlID0gW107XG5cdHByaXZhdGUgX29mZmxpbmVVcGRhdGVzID0gW107XG5cblx0cHJpdmF0ZSBfcnVubmluZ1F1ZXVlID0gZmFsc2U7XG5cdHByaXZhdGUgaW5pdENvbm5lY3Rpb24gPSBmYWxzZTtcblxuXHRwcml2YXRlIF9jb25uZWN0aW9uRGVsYXlUaW1lb3V0ID0gbnVsbDtcblxuXHRwdWJsaWMgb25lcnJvcjogKCkgPT4gdm9pZCA9IGZ1bmN0aW9uICgpIHt9O1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX3NvY2tldDogU29ja2V0U2VydmljZSwgcHJpdmF0ZSBfb2ZmbGluZTogT2ZmbGluZU1hbmFnZXJTZXJ2aWNlLCBwcml2YXRlIF9hbGVydDogQWxlcnRTZXJ2aWNlLCBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcikge31cblxuXHRwdWJsaWMgaW5pdFNvY2tldE1hbmFnZXIoKTogdm9pZCB7XG5cdFx0dGhpcy5fc29ja2V0LnJlYWR5U3RhdGUkLnN1YnNjcmliZShzb2NrZXRTdGF0dXMgPT4ge1xuXHRcdFx0dGhpcy5zb2NrZXRTdGF0dXMgPSBzb2NrZXRTdGF0dXM7XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zb2NrZXQub25tZXNzYWdlID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcblx0XHRcdGxldCByZXNEYXRhID0gSlNPTi5wYXJzZShldmVudC5kYXRhLCBkYXRlUmV2aXZlcik7XG5cblx0XHRcdGlmIChyZXNEYXRhLmRhdGEgPT09ICdyZWxvYWRXU0NvbW1hbmQnKSB7XG5cdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gd2luZG93LmxvY2F0aW9uLmhyZWYgKyAnP2ZvcmNlUmVsb2FkPXRydWUnO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSBpZiAocmVzRGF0YS5kYXRhID09PSAncmVjb25uZWN0V1NDb21tYW5kJykge1xuXHRcdFx0XHR0aGlzLl9zb2NrZXQucmVjb25uZWN0KCk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmIChyZXNEYXRhLmRhdGEgPT09ICdkaXNjb25uZWN0V1NDb21tYW5kJykge1xuXHRcdFx0XHR0aGlzLmNsb3NlU29ja2V0KCk7XG5cdFx0XHR9XG5cblx0XHRcdGxldCBvZmZsaW5lSW5kZXggPSB0aGlzLl9vZmZsaW5lVXBkYXRlcy5maW5kSW5kZXgoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gcmVzRGF0YS5tZXNzYWdlSWQpO1xuXHRcdFx0aWYgKG9mZmxpbmVJbmRleCA+PSAwKSB7XG5cdFx0XHRcdHRoaXMuX29mZmxpbmUucmVtb3ZlRG9jdW1lbnQodGhpcy5fb2ZmbGluZVVwZGF0ZXNbb2ZmbGluZUluZGV4XS50eXBlLCB0aGlzLl9vZmZsaW5lVXBkYXRlc1tvZmZsaW5lSW5kZXhdLmlkX29mZmxpbmVfZG9jKTtcblx0XHRcdFx0dGhpcy5fb2ZmbGluZVVwZGF0ZXMuc3BsaWNlKG9mZmxpbmVJbmRleCwgMSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChyZXNEYXRhLmRhdGEgIT09ICdBQ0snICYmIHJlc0RhdGEuZGF0YSAhPT0gJ05BQ0snKSB7XG5cdFx0XHRcdGlmICh0aGlzLl9jYkFycmF5Lm1hcChhID0+IGEubWVzc2FnZUlkKS5pbmNsdWRlcyhyZXNEYXRhLm1lc3NhZ2VJZCkpIHtcdFxuXHRcdFx0XHRcdGxldCBpbmRleCA9IHRoaXMuX2NiQXJyYXkuZmluZEluZGV4KGEgPT4gYS5tZXNzYWdlSWQgPT09IHJlc0RhdGEubWVzc2FnZUlkKTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRpZiAoaW5kZXggPj0gMCkge1xuXHRcdFx0XHRcdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLl9jYkFycmF5W2luZGV4XS50aW1lcklkKTtcblxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuX2NiQXJyYXlbaW5kZXhdLmNiKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2NiQXJyYXlbaW5kZXhdLmNiKHJlc0RhdGEuaGFzRXJyb3IgPyByZXNEYXRhLmRhdGEgOiBudWxsLCByZXNEYXRhLmhhc0Vycm9yID8gbnVsbCA6IHJlc0RhdGEuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2NiQXJyYXlbaW5kZXhdLnJlc29sdmVGbihyZXNEYXRhLmhhc0Vycm9yID8gcmVzRGF0YS5kYXRhIDogbnVsbCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0aWYgKHJlc0RhdGEuaGFzRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLl9jYkFycmF5W2luZGV4XS5yZWplY3RGbihyZXNEYXRhLmRhdGEpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuX2NiQXJyYXlbaW5kZXhdLnJlc29sdmVGbihyZXNEYXRhLmRhdGEpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHRoaXMuX2NiQXJyYXkuc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5fc3ViQXJyYXkubWFwKGEgPT4gYS5tZXNzYWdlSWQpLmluY2x1ZGVzKHJlc0RhdGEubWVzc2FnZUlkKSkge1x0XG5cdFx0XHRcdFx0bGV0IGluZGV4ID0gdGhpcy5fc3ViQXJyYXkuZmluZEluZGV4KGEgPT4gYS5tZXNzYWdlSWQgPT09IHJlc0RhdGEubWVzc2FnZUlkKTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRpZiAoaW5kZXggPj0gMCkge1xuXHRcdFx0XHRcdFx0dGhpcy5fc3ViQXJyYXlbaW5kZXhdLnN1YmplY3QubmV4dChyZXNEYXRhLmRhdGEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cblx0XHR0aGlzLl9zb2NrZXQub25vcGVuID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuXHRcdFx0dGhpcy5fY29ubmVjdGlvbkRlbGF5VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLl9jb25uZWN0aW9uRGVsYXlUaW1lb3V0ID0gbnVsbDtcblxuXHRcdFx0XHR0aGlzLl9vZmZsaW5lLnNldE9mZmxpbmUoZmFsc2UpO1xuXHRcdFx0XHRcblx0XHRcdFx0bGV0IGNvbGxlY3Rpb25VcGRhdGVzID0gdGhpcy5fb2ZmbGluZS5maW5kKCdjb2xsZWN0aW9uVXBkYXRlJywge30pO1xuXG5cdFx0XHRcdGNvbGxlY3Rpb25VcGRhdGVzLmZvckVhY2godXBkYXRlID0+IHtcblx0XHRcdFx0XHRsZXQgbWVzc2FnZUlkID0gdGhpcy5tZXNzYWdlSWQrKztcblxuXHRcdFx0XHRcdHRoaXMuX29mZmxpbmVVcGRhdGVzLnB1c2goe1xuXHRcdFx0XHRcdFx0aWRfb2ZmbGluZV9kb2M6IHVwZGF0ZS5faWQsXG5cdFx0XHRcdFx0XHRtZXNzYWdlSWQ6IG1lc3NhZ2VJZCxcblx0XHRcdFx0XHRcdHR5cGU6ICdjb2xsZWN0aW9uVXBkYXRlJ1xuXHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0dXBkYXRlLmRhdGFbMl0gPSBtZXNzYWdlSWQ7XG5cblx0XHRcdFx0XHRpZiAodXBkYXRlLnR5cGUgPT09ICd1cGRhdGVEb2N1bWVudCcgJiYgdXBkYXRlLm9sZERhdGEpIHtcblx0XHRcdFx0XHRcdHVwZGF0ZS5kYXRhWzRdID0gJ3VwZGF0ZURvY3VtZW50T2ZmbGluZSc7XG5cdFx0XHRcdFx0XHR1cGRhdGUuZGF0YVswXSA9ICdPZmZsaW5lIC0gJyArIHVwZGF0ZS5kYXRhWzBdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIGlmICh1cGRhdGUudHlwZSA9PT0gJ3VwZGF0ZURvY3VtZW50UHJvcHMnICYmIHVwZGF0ZS5vbGREYXRhKSB7XG5cdFx0XHRcdFx0XHR1cGRhdGUuZGF0YVs0XSA9ICd1cGRhdGVEb2N1bWVudFByb3BzT2ZmbGluZSc7XG5cdFx0XHRcdFx0XHR1cGRhdGUuZGF0YVswXSA9ICdPZmZsaW5lIC0gJyArIHVwZGF0ZS5kYXRhWzBdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdHVwZGF0ZS5kYXRhWzBdID0gJ09mZmxpbmUgLSAnICsgdXBkYXRlLmRhdGFbMF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHRpZiAoY29sbGVjdGlvblVwZGF0ZXMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dGhpcy5zZW5kKCdPZmZsaW5lIFVwZGF0ZXMnLCBuZXcgRGF0ZSgpLCB0aGlzLm1lc3NhZ2VJZCsrLCAnb2ZmbGluZScsIGNvbGxlY3Rpb25VcGRhdGVzLnNvcnQoKGEsIGIpID0+IGEuZGF0ZS5nZXRUaW1lKCkgLSBiLmRhdGUuZ2V0VGltZSgpKSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAodGhpcy5pbml0Q29ubmVjdGlvbikge1xuXHRcdFx0XHRcdHRoaXMuX3N1YkFycmF5LmZvckVhY2goc3ViID0+IHtcblx0XHRcdFx0XHRcdHRoaXMuc2VuZChzdWIubWVzc2FnZVJvdXRlLCBuZXcgRGF0ZSgpLCBzdWIubWVzc2FnZUlkLCAnc3Vic2NyaXB0aW9uJywgJ3N1YicsIHN1Yi5zdWJzY3JpcHRpb24sIC4uLnN1Yi5wYXJhbWV0ZXJzKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRoaXMuaW5pdENvbm5lY3Rpb24gPSB0cnVlO1xuXHRcdFx0fSwgMTAwMCk7XG5cdFx0fTtcblxuXHRcdHRoaXMuX3NvY2tldC5vbmVycm9yID0gKGV2OiBFcnJvckV2ZW50KSA9PiB7XG5cdFx0XHRpZiAodGhpcy5fY29ubmVjdGlvbkRlbGF5VGltZW91dCkge1xuXHRcdFx0XHRjbGVhclRpbWVvdXQodGhpcy5fY29ubmVjdGlvbkRlbGF5VGltZW91dCk7XG5cdFx0XHR9XG5cdFx0XHRjb25zb2xlLmxvZyhuZXcgRGF0ZSgpLCAnU09DS0VUIEVSUk9SJywgZXYpO1xuXHRcdFx0dGhpcy5vbmVycm9yKCk7XG5cdFx0fTtcblxuXHRcdHRoaXMuX3NvY2tldC5vbmNsb3NlID0gKGV2OiBDbG9zZUV2ZW50KSA9PiB7XG5cdFx0XHRpZiAodGhpcy5fY29ubmVjdGlvbkRlbGF5VGltZW91dCkge1xuXHRcdFx0XHRjbGVhclRpbWVvdXQodGhpcy5fY29ubmVjdGlvbkRlbGF5VGltZW91dCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0c2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuaW5pdENvbm5lY3Rpb24pIHtcblx0XHRcdFx0aWYgKCF0aGlzLl9ydW5uaW5nUXVldWUpIHtcblx0XHRcdFx0XHRpZiAodGhpcy5fc2VuZFF1ZXVlLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0dGhpcy5fcnVubmluZ1F1ZXVlID0gdHJ1ZTtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLl9zZW5kUXVldWUubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcblx0XHRcdFx0XHRcdFx0aWYgKHRoaXMuX3NvY2tldCAmJiB0aGlzLl9zb2NrZXQud3MpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAodGhpcy5zb2NrZXRTdGF0dXMgPT09IFdlYlNvY2tldC5PUEVOKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgbmV4dFNlbmRJdGVtID0gdGhpcy5fc2VuZFF1ZXVlLnBvcCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9zb2NrZXQuc2VuZCguLi5uZXh0U2VuZEl0ZW0pO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHR0aGlzLl9ydW5uaW5nUXVldWUgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LCAyNSk7XG5cdH1cblxuXHRwdWJsaWMgb3BlblNvY2tldChlbnZpcm9ubWVudCwgcHJvdG9jb2xzKSB7XG5cdFx0dGhpcy5fc29ja2V0Lm9wZW5Tb2NrZXQoZW52aXJvbm1lbnQsIHByb3RvY29scyk7XG5cdH1cblxuXHRwdWJsaWMgY2xvc2VTb2NrZXQoKSB7XG5cdFx0dGhpcy5fc29ja2V0LmNsb3NlKCk7XG5cdH1cblxuXHRwdWJsaWMgY2FsbChtZXRob2Q6IHN0cmluZywgLi4ucGFyYW1ldGVyczogYW55W10pIHtcblx0XHRsZXQgcmVzb2x2ZUZuID0gbnVsbDtcblx0XHRsZXQgcmVqZWN0Rm4gPSBudWxsO1xuXG5cdFx0bGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRyZXNvbHZlRm4gPSByZXNvbHZlO1xuXHRcdFx0cmVqZWN0Rm4gPSByZWplY3Q7XG5cdFx0fSk7XG5cblx0XHRsZXQgbWVzc2FnZUlkID0gdGhpcy5tZXNzYWdlSWQrKztcblxuXHRcdGxldCB0aW1lcklkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuX2NiQXJyYXkuZmlsdGVyKGEgPT4gYS5tZXNzYWdlSWQgPT09IG1lc3NhZ2VJZClbMF0pIHtcblx0XHRcdFx0dGhpcy5zZW5kKCh0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKCc/JykgPyB0aGlzLl9yb3V0ZXIudXJsLnN1YnN0cmluZygwLCB0aGlzLl9yb3V0ZXIudXJsLmluZGV4T2YoJz8nKSkgOiB0aGlzLl9yb3V0ZXIudXJsKSwgbmV3IERhdGUoKSwgbWVzc2FnZUlkLCAnbWV0aG9kUmVzcG9uc2UnLCBtZXRob2QsIC4uLnBhcmFtZXRlcnMpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGNsZWFySW50ZXJ2YWwodGltZXJJZCk7XG5cdFx0XHR9XG5cdFx0fSwgNTAwMCk7XG5cblx0XHRpZiAocGFyYW1ldGVyc1twYXJhbWV0ZXJzLmxlbmd0aCAtIDFdICYmIHR5cGVvZihwYXJhbWV0ZXJzW3BhcmFtZXRlcnMubGVuZ3RoIC0gMV0pID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHR0aGlzLl9jYkFycmF5LnB1c2goe1xuXHRcdFx0XHRtZXNzYWdlSWQ6IG1lc3NhZ2VJZCxcblx0XHRcdFx0Y2I6IHBhcmFtZXRlcnMucG9wKCksXG5cdFx0XHRcdHJlc29sdmVGbjogcmVzb2x2ZUZuLFxuXHRcdFx0XHRyZWplY3RGbjogcmVqZWN0Rm4sXG5cdFx0XHRcdHRpbWVySWQ6IHRpbWVySWQsXG5cdFx0XHRcdHJldHJ5Q250OiAwXG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHR0aGlzLl9jYkFycmF5LnB1c2goe1xuXHRcdFx0XHRtZXNzYWdlSWQ6IG1lc3NhZ2VJZCxcblx0XHRcdFx0Y2I6IG51bGwsXG5cdFx0XHRcdHJlc29sdmVGbjogcmVzb2x2ZUZuLFxuXHRcdFx0XHRyZWplY3RGbjogcmVqZWN0Rm4sXG5cdFx0XHRcdHRpbWVySWQ6IHRpbWVySWQsXG5cdFx0XHRcdHJldHJ5Q250OiAwXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRsZXQgY250ID0gcGFyYW1ldGVycy5sZW5ndGg7XG5cdFx0d2hpbGUgKChwYXJhbWV0ZXJzW3BhcmFtZXRlcnMubGVuZ3RoIC0gMV0gPT09IHVuZGVmaW5lZCB8fCBwYXJhbWV0ZXJzW3BhcmFtZXRlcnMubGVuZ3RoIC0gMV0gPT09IG51bGwpICYmIGNudCA+IDApIHtcblx0XHRcdHBhcmFtZXRlcnMucG9wKCk7XG5cdFx0XHRjbnQgPSBwYXJhbWV0ZXJzLmxlbmd0aDtcblx0XHR9XG5cblx0XHR0aGlzLnNlbmQoKHRoaXMuX3JvdXRlci51cmwuaW5jbHVkZXMoJz8nKSA/IHRoaXMuX3JvdXRlci51cmwuc3Vic3RyaW5nKDAsIHRoaXMuX3JvdXRlci51cmwuaW5kZXhPZignPycpKSA6IHRoaXMuX3JvdXRlci51cmwpLCBuZXcgRGF0ZSgpLCBtZXNzYWdlSWQsICdtZXRob2QnLCBtZXRob2QsIC4uLnBhcmFtZXRlcnMpO1xuXG5cdFx0cmV0dXJuIHByb21pc2U7XG5cdH1cblxuXHRwdWJsaWMgc3Vic2NyaWJlKHN1YnNjcmlwdGlvbjogc3RyaW5nLCAuLi5wYXJhbWV0ZXJzKSB7XG5cdFx0Y29uc3QgY29weVBhcmFtZXRlcnMgPSBkZWVwQ29weShwYXJhbWV0ZXJzKTtcblx0XHRjb25zdCBuZXdTdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG5cdFx0bGV0IG1lc3NhZ2VJZCA9IHRoaXMubWVzc2FnZUlkKys7XG5cblx0XHR0aGlzLl9zdWJBcnJheS5wdXNoKHtcblx0XHRcdG1lc3NhZ2VJZDogbWVzc2FnZUlkLFxuXHRcdFx0bWVzc2FnZVJvdXRlOiAodGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcygnPycpID8gdGhpcy5fcm91dGVyLnVybC5zdWJzdHJpbmcoMCwgdGhpcy5fcm91dGVyLnVybC5pbmRleE9mKCc/JykpIDogdGhpcy5fcm91dGVyLnVybCksXG5cdFx0XHRzdWJzY3JpcHRpb246IHN1YnNjcmlwdGlvbixcblx0XHRcdHBhcmFtZXRlcnM6IGNvcHlQYXJhbWV0ZXJzLFxuXHRcdFx0c3ViamVjdDogbmV3U3ViamVjdFxuXHRcdH0pO1xuXG5cdFx0Y29uc3Qgb2JzZXJ2YWJsZSA9IG5ld1N1YmplY3QucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG5cdFx0XHR0aGlzLnVuc3Vic2NyaWJlKG1lc3NhZ2VJZCwgc3Vic2NyaXB0aW9uLCAuLi5jb3B5UGFyYW1ldGVycyk7XG5cdFx0XHR0aGlzLl9zdWJBcnJheS5zcGxpY2UodGhpcy5fc3ViQXJyYXkubWFwKGEgPT4gYS5tZXNzYWdlSWQpLmluZGV4T2YobWVzc2FnZUlkKSwgMSk7XG5cdFx0fSkpO1xuXG5cdFx0dGhpcy5zZW5kKCh0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKCc/JykgPyB0aGlzLl9yb3V0ZXIudXJsLnN1YnN0cmluZygwLCB0aGlzLl9yb3V0ZXIudXJsLmluZGV4T2YoJz8nKSkgOiB0aGlzLl9yb3V0ZXIudXJsKSwgbmV3IERhdGUoKSwgbWVzc2FnZUlkLCAnc3Vic2NyaXB0aW9uJywgJ3N1YicsIHN1YnNjcmlwdGlvbiwgLi4uY29weVBhcmFtZXRlcnMpO1xuXG5cdFx0cmV0dXJuIG9ic2VydmFibGU7XG5cdH1cblxuXHRwdWJsaWMgc3Vic2NyaWJlQnlwYXNzUm91dGUoc3Vic2NyaXB0aW9uOiBzdHJpbmcsIC4uLnBhcmFtZXRlcnMpIHtcblx0XHRjb25zdCBjb3B5UGFyYW1ldGVycyA9IGRlZXBDb3B5KHBhcmFtZXRlcnMpO1xuXHRcdGNvbnN0IG5ld1N1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cblx0XHRsZXQgbWVzc2FnZUlkID0gdGhpcy5tZXNzYWdlSWQrKztcblxuXHRcdHRoaXMuX3N1YkFycmF5LnB1c2goe1xuXHRcdFx0bWVzc2FnZUlkOiBtZXNzYWdlSWQsXG5cdFx0XHRtZXNzYWdlUm91dGU6ICdCeXBhc3MnLFxuXHRcdFx0c3Vic2NyaXB0aW9uOiBzdWJzY3JpcHRpb24sXG5cdFx0XHRwYXJhbWV0ZXJzOiBjb3B5UGFyYW1ldGVycyxcblx0XHRcdHN1YmplY3Q6IG5ld1N1YmplY3Rcblx0XHR9KTtcblxuXHRcdGNvbnN0IG9ic2VydmFibGUgPSBuZXdTdWJqZWN0LnBpcGUoZmluYWxpemUoKCkgPT4ge1xuXHRcdFx0dGhpcy51bnN1YnNjcmliZShtZXNzYWdlSWQsIHN1YnNjcmlwdGlvbiwgLi4uY29weVBhcmFtZXRlcnMpO1xuXHRcdFx0dGhpcy5fc3ViQXJyYXkuc3BsaWNlKHRoaXMuX3N1YkFycmF5Lm1hcChhID0+IGEubWVzc2FnZUlkKS5pbmRleE9mKG1lc3NhZ2VJZCksIDEpO1xuXHRcdH0pKTtcblxuXHRcdHRoaXMuc2VuZCgnQnlwYXNzJywgbmV3IERhdGUoKSwgbWVzc2FnZUlkLCAnc3Vic2NyaXB0aW9uJywgJ3N1YicsIHN1YnNjcmlwdGlvbiwgLi4uY29weVBhcmFtZXRlcnMpO1xuXG5cdFx0cmV0dXJuIG9ic2VydmFibGU7XG5cdH1cblxuXHRwdWJsaWMgdW5zdWJzY3JpYmUobWVzc2FnZUlkLCBzdWJzY3JpcHRpb246IHN0cmluZywgLi4ucGFyYW1ldGVycykge1xuXHRcdHRoaXMuc2VuZCgodGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcygnPycpID8gdGhpcy5fcm91dGVyLnVybC5zdWJzdHJpbmcoMCwgdGhpcy5fcm91dGVyLnVybC5pbmRleE9mKCc/JykpIDogdGhpcy5fcm91dGVyLnVybCksIG5ldyBEYXRlKCksIG1lc3NhZ2VJZCwgJ3N1YnNjcmlwdGlvbicsICd1bnN1YicsIHN1YnNjcmlwdGlvbiwgLi4ucGFyYW1ldGVycyk7XG5cdH1cblx0XG5cdHByaXZhdGUgc2VuZCguLi5kYXRhOiBhbnlbXSkge1xuXHRcdGlmIChkYXRhWzNdID09PSAnc3Vic2NyaXB0aW9uJykge1xuXHRcdFx0aWYgKHRoaXMuc29ja2V0U3RhdHVzID09PSBXZWJTb2NrZXQuT1BFTikge1xuXHRcdFx0XHR0aGlzLl9zb2NrZXQuc2VuZCguLi5kYXRhKTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRpZiAoIXRoaXMuX3NlbmRRdWV1ZS5maWx0ZXIoYSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoZGF0YSkpLmxlbmd0aCkge1xuXHRcdFx0XHRcdHRoaXMuX3NlbmRRdWV1ZS5zcGxpY2UoMCwgMCwgZGF0YSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0ZWxzZSBpZiAoZGF0YVszXSA9PT0gJ21ldGhvZCcgJiYgZGF0YVs0XSA9PT0gJ3NldFdTQXBwVmVyc2lvbicpIHtcblx0XHRcdGlmICh0aGlzLnNvY2tldFN0YXR1cyA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcblx0XHRcdFx0dGhpcy5fc29ja2V0LnNlbmQoLi4uZGF0YSk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0aWYgKCF0aGlzLl9zZW5kUXVldWUuZmlsdGVyKGEgPT4gSlNPTi5zdHJpbmdpZnkoYSkgPT09IEpTT04uc3RyaW5naWZ5KGRhdGEpKS5sZW5ndGgpIHtcblx0XHRcdFx0XHR0aGlzLl9zZW5kUXVldWUuc3BsaWNlKDAsIDAsIGRhdGEpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGVsc2UgaWYgKGRhdGFbM10gPT09ICdtZXRob2QnKSB7XG5cdFx0XHRpZiAodGhpcy5zb2NrZXRTdGF0dXMgPT09IFdlYlNvY2tldC5PUEVOKSB7XG5cdFx0XHRcdGlmICghdGhpcy5fc2VuZFF1ZXVlLmZpbHRlcihhID0+IEpTT04uc3RyaW5naWZ5KGEpID09PSBKU09OLnN0cmluZ2lmeShkYXRhKSkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dGhpcy5fc2VuZFF1ZXVlLnNwbGljZSgwLCAwLCBkYXRhKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGlmIChkYXRhWzRdID09PSAnaW5zZXJ0RG9jdW1lbnQnKSB7XG5cdFx0XHRcdFx0dGhpcy5fYWxlcnQuc2V0QWxlcnQoJ3dhcm5pbmcnLCAnVGhpcyBpbnNlcnQgY29tbWFuZCBoYXMgbm90IHRha2VuIHBsYWNlIG9uIHRoZSBzZXJ2ZXIgeWV0IGJlY2F1c2UgeW91IGFyZSBvZmZsaW5lLiAgSXQgd2lsbCBhdXRvbWF0aWNhbGx5IHN5bmMgdXAgbmV4dCB0aW1lIHlvdSBhcmUgb25saW5lIGFzIGxvbmcgYXMgeW91IGRvIG5vdCBjbGVhciB5b3VyIGNhY2hlIScpO1xuXG5cdFx0XHRcdFx0dGhpcy5fb2ZmbGluZS5pbnNlcnREb2N1bWVudCgnY29sbGVjdGlvblVwZGF0ZScsIHtcblx0XHRcdFx0XHRcdHR5cGU6ICdpbnNlcnQnLFxuXHRcdFx0XHRcdFx0ZGF0YTogZGF0YSxcblx0XHRcdFx0XHRcdG9sZERhdGE6IG51bGwsXG5cdFx0XHRcdFx0XHRkYXRlOiBuZXcgRGF0ZSgpXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRsZXQgcmVzID0gdGhpcy5fb2ZmbGluZS5pbnNlcnREb2N1bWVudChkYXRhWzVdLCBkYXRhWzZdKTtcblxuXHRcdFx0XHRcdGxldCBjYiA9IHRoaXMuX2NiQXJyYXkuZmlsdGVyKGEgPT4gYS5tZXNzYWdlSWQgPT09IGRhdGFbMl0pWzBdO1xuXHRcdFx0XHRcdGlmIChjYiAmJiBjYi5jYikge1xuXHRcdFx0XHRcdFx0Y2IuY2IobnVsbCwgcmVzKTtcblxuXHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheS5zcGxpY2UodGhpcy5fY2JBcnJheS5maW5kSW5kZXgoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gZGF0YVsyXSksIDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIGlmIChkYXRhWzRdID09PSAndXBkYXRlRG9jdW1lbnQnKSB7XG5cdFx0XHRcdFx0dGhpcy5fYWxlcnQuc2V0QWxlcnQoJ3dhcm5pbmcnLCAnVGhpcyB1cGRhdGUgY29tbWFuZCBoYXMgbm90IHRha2VuIHBsYWNlIG9uIHRoZSBzZXJ2ZXIgeWV0IGJlY2F1c2UgeW91IGFyZSBvZmZsaW5lLiAgSXQgd2lsbCBhdXRvbWF0aWNhbGx5IHN5bmMgdXAgbmV4dCB0aW1lIHlvdSBhcmUgb25saW5lIGFzIGxvbmcgYXMgeW91IGRvIG5vdCBjbGVhciB5b3VyIGNhY2hlIScpO1xuXHRcdFx0XHRcdHRoaXMuX29mZmxpbmUuaW5zZXJ0RG9jdW1lbnQoJ2NvbGxlY3Rpb25VcGRhdGUnLCB7XG5cdFx0XHRcdFx0XHR0eXBlOiAndXBkYXRlRG9jdW1lbnQnLFxuXHRcdFx0XHRcdFx0ZGF0YTogZGF0YSxcblx0XHRcdFx0XHRcdG9sZERhdGE6IHRoaXMuX29mZmxpbmUuZmluZE9uZShkYXRhWzVdLCBkYXRhWzZdLl9pZCksXG5cdFx0XHRcdFx0XHRkYXRlOiBuZXcgRGF0ZSgpXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRpZiAodGhpcy5fb2ZmbGluZS5maW5kT25lKGRhdGFbNV0sIHtfaWQ6IGRhdGFbNl0uX2lkfSkpIHtcblx0XHRcdFx0XHRcdHRoaXMuX29mZmxpbmUudXBkYXRlRG9jdW1lbnQoZGF0YVs1XSwgZGF0YVs2XSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ0NvdWxkIG5vdCBmaW5kIE9mZmxpbmUgZGF0YScsIGRhdGFbNV0sIGRhdGFbNl0pO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGxldCBjYiA9IHRoaXMuX2NiQXJyYXkuZmlsdGVyKGEgPT4gYS5tZXNzYWdlSWQgPT09IGRhdGFbMl0pWzBdO1xuXHRcdFx0XHRcdGlmIChjYiAmJiBjYi5jYikge1xuXHRcdFx0XHRcdFx0Y2IuY2IobnVsbCwgMSk7XG5cdFx0XHRcdFx0XHR0aGlzLl9jYkFycmF5LnNwbGljZSh0aGlzLl9jYkFycmF5LmZpbmRJbmRleChhID0+IGEubWVzc2FnZUlkID09PSBkYXRhWzJdKSwgMSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKGRhdGFbNF0gPT09ICd1cGRhdGVEb2N1bWVudFByb3BzJykge1xuXHRcdFx0XHRcdHRoaXMuX2FsZXJ0LnNldEFsZXJ0KCd3YXJuaW5nJywgJ1RoaXMgdXBkYXRlIGNvbW1hbmQgaGFzIG5vdCB0YWtlbiBwbGFjZSBvbiB0aGUgc2VydmVyIHlldCBiZWNhdXNlIHlvdSBhcmUgb2ZmbGluZS4gIEl0IHdpbGwgYXV0b21hdGljYWxseSBzeW5jIHVwIG5leHQgdGltZSB5b3UgYXJlIG9ubGluZSBhcyBsb25nIGFzIHlvdSBkbyBub3QgY2xlYXIgeW91ciBjYWNoZSEnKTtcblx0XHRcdFx0XHR0aGlzLl9vZmZsaW5lLmluc2VydERvY3VtZW50KCdjb2xsZWN0aW9uVXBkYXRlJywge1xuXHRcdFx0XHRcdFx0dHlwZTogJ3VwZGF0ZURvY3VtZW50UHJvcHMnLFxuXHRcdFx0XHRcdFx0ZGF0YTogZGF0YSxcblx0XHRcdFx0XHRcdG9sZERhdGE6IHRoaXMuX29mZmxpbmUuZmluZE9uZShkYXRhWzVdLCBkYXRhWzZdKSxcblx0XHRcdFx0XHRcdGRhdGU6IG5ldyBEYXRlKClcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLl9vZmZsaW5lLmZpbmRPbmUoZGF0YVs1XSwge19pZDogZGF0YVs2XX0pKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9vZmZsaW5lLnVwZGF0ZURvY3VtZW50UHJvcHMoZGF0YVs1XSwgZGF0YVs2XSwgZGF0YVs3XSwgZGF0YVs4XSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ0NvdWxkIG5vdCBmaW5kIE9mZmxpbmUgZGF0YScsIGRhdGFbNV0sIGRhdGFbNl0pO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGxldCBjYiA9IHRoaXMuX2NiQXJyYXkuZmlsdGVyKGEgPT4gYS5tZXNzYWdlSWQgPT09IGRhdGFbMl0pWzBdO1xuXHRcdFx0XHRcdGlmIChjYiAmJiBjYi5jYikge1xuXHRcdFx0XHRcdFx0Y2IuY2IobnVsbCwgMSk7XG5cdFx0XHRcdFx0XHR0aGlzLl9jYkFycmF5LnNwbGljZSh0aGlzLl9jYkFycmF5LmZpbmRJbmRleChhID0+IGEubWVzc2FnZUlkID09PSBkYXRhWzJdKSwgMSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKGRhdGFbNF0gPT09ICdyZW1vdmVEb2N1bWVudCcpIHtcblx0XHRcdFx0XHR0aGlzLl9hbGVydC5zZXRBbGVydCgnd2FybmluZycsICdUaGlzIHJlbW92ZSBjb21tYW5kIGhhcyBub3QgdGFrZW4gcGxhY2Ugb24gdGhlIHNlcnZlciB5ZXQgYmVjYXVzZSB5b3UgYXJlIG9mZmxpbmUuICBJdCB3aWxsIGF1dG9tYXRpY2FsbHkgc3luYyB1cCBuZXh0IHRpbWUgeW91IGFyZSBvbmxpbmUgYXMgbG9uZyBhcyB5b3UgZG8gbm90IGNsZWFyIHlvdXIgY2FjaGUhJyk7XG5cdFx0XHRcdFx0dGhpcy5fb2ZmbGluZS5pbnNlcnREb2N1bWVudCgnY29sbGVjdGlvblVwZGF0ZScsIHtcblx0XHRcdFx0XHRcdHR5cGU6ICdyZW1vdmVEb2N1bWVudCcsXG5cdFx0XHRcdFx0XHRkYXRhOiBkYXRhLFxuXHRcdFx0XHRcdFx0b2xkRGF0YTogbnVsbCxcblx0XHRcdFx0XHRcdGRhdGU6IG5ldyBEYXRlKClcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLl9vZmZsaW5lLmZpbmRPbmUoZGF0YVs1XSwge19pZDogZGF0YVs2XX0pKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9vZmZsaW5lLnJlbW92ZURvY3VtZW50KGRhdGFbNV0sIGRhdGFbNl0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdDb3VsZCBub3QgZmluZCBPZmZsaW5lIGRhdGEnLCBkYXRhWzVdLCBkYXRhWzZdKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRsZXQgY2IgPSB0aGlzLl9jYkFycmF5LmZpbHRlcihhID0+IGEubWVzc2FnZUlkID09PSBkYXRhWzJdKVswXTtcblx0XHRcdFx0XHRpZiAoY2IgJiYgY2IuY2IpIHtcblx0XHRcdFx0XHRcdGNiLmNiKG51bGwsIDEpO1xuXHRcdFx0XHRcdFx0dGhpcy5fY2JBcnJheS5zcGxpY2UodGhpcy5fY2JBcnJheS5maW5kSW5kZXgoYSA9PiBhLm1lc3NhZ2VJZCA9PT0gZGF0YVsyXSksIDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRlbHNlIGlmIChkYXRhWzNdID09PSAnb2ZmbGluZScpIHtcblx0XHRcdGlmICh0aGlzLnNvY2tldFN0YXR1cyA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcblx0XHRcdFx0dGhpcy5fc29ja2V0LnNlbmQoLi4uZGF0YSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Z2V0U3RhdHVzKCkge1xuXHRcdHJldHVybiB0aGlzLl9zb2NrZXQucmVhZHlTdGF0ZSQ7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1105,7 +1105,7 @@ class SocketManagerService {
|
|
|
1105
1105
|
this._socket.onmessage = (event) => {
|
|
1106
1106
|
let resData = JSON.parse(event.data, dateReviver);
|
|
1107
1107
|
if (resData.data === 'reloadWSCommand') {
|
|
1108
|
-
window.location.href = window.location.href;
|
|
1108
|
+
window.location.href = window.location.href + '?forceReload=true';
|
|
1109
1109
|
}
|
|
1110
1110
|
else if (resData.data === 'reconnectWSCommand') {
|
|
1111
1111
|
this._socket.reconnect();
|
|
@@ -4357,10 +4357,11 @@ class CoreComponent extends BaseComponent {
|
|
|
4357
4357
|
}
|
|
4358
4358
|
});
|
|
4359
4359
|
if (this.environment.IS_PRODUCTION) {
|
|
4360
|
+
let firstTimeSWFlag = false;
|
|
4360
4361
|
this._services._socket.subscribeBypassRoute('flagWithType', 'newSW').subscribe(flag => {
|
|
4361
|
-
if (flag) {
|
|
4362
|
+
if (firstTimeSWFlag && flag) {
|
|
4362
4363
|
if (!this.invalidVersion) {
|
|
4363
|
-
let count =
|
|
4364
|
+
let count = 15;
|
|
4364
4365
|
let interval = setInterval(() => {
|
|
4365
4366
|
if (count <= 0) {
|
|
4366
4367
|
clearInterval(interval);
|
|
@@ -4370,6 +4371,7 @@ class CoreComponent extends BaseComponent {
|
|
|
4370
4371
|
}, 1000);
|
|
4371
4372
|
}
|
|
4372
4373
|
}
|
|
4374
|
+
firstTimeSWFlag = true;
|
|
4373
4375
|
});
|
|
4374
4376
|
}
|
|
4375
4377
|
this._offline.offlineMode.subscribe(offline => {
|