@resolveio/client-lib-core 1.1.14 → 1.1.15
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.
|
@@ -185,6 +185,20 @@ export class CoreComponent extends BaseComponent {
|
|
|
185
185
|
if (flag) {
|
|
186
186
|
this.swFlagAlert = this._services._alert.setAlert('info', 'This page will reload once new version has been downloaded', 0);
|
|
187
187
|
this._services._app.setIsInvalidSW(true);
|
|
188
|
+
if (!navigator.serviceWorker) {
|
|
189
|
+
setTimeout(() => {
|
|
190
|
+
window.location.reload();
|
|
191
|
+
}, 10000);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
navigator.serviceWorker.getRegistrations().then(registrations => {
|
|
195
|
+
if (!registrations || !registrations.length) {
|
|
196
|
+
setTimeout(() => {
|
|
197
|
+
window.location.reload();
|
|
198
|
+
}, 10000);
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
}
|
|
188
202
|
}
|
|
189
203
|
else if (this.swFlagAlert) {
|
|
190
204
|
this._services._app.setIsInvalidSW(false);
|
|
@@ -361,4 +375,4 @@ function hexToRGB(hex, alpha) {
|
|
|
361
375
|
return "rgb(" + r + ", " + g + ", " + b + ")";
|
|
362
376
|
}
|
|
363
377
|
}
|
|
364
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFVBQVUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUWhFLE1BQU0sT0FBTyxhQUFjLFNBQVEsYUFBYTtJQXlDL0MscUNBQXFDO0lBRXJDLFlBQW9CLFVBQWlDLEVBQVUsR0FBa0IsRUFBVSxjQUE2QixFQUFTLFNBQTBCLEVBQVUsUUFBK0IsRUFBVSxRQUE2QixFQUFVLEtBQWtCLEVBQVUsSUFBMkI7UUFDM1MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBUyxj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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBBcHBTdGF0dXNNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2FwcC1zdGF0dXMubW9kZWwnO1xuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XG5pbXBvcnQgeyBSZXNpemVTZXJ2aWNlIH0gZnJvbSAnLi91dGlsL3dpbmRvdy1yZXNpemUuc2VydmljZSc7XG5pbXBvcnQgeyBQcm92aWRlclNlcnZpY2UsIEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3Jlc29sdmVpby1jbGFzcyc7XG5pbXBvcnQgeyBPZmZsaW5lTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL29mZmxpbmUtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICduZ3gtbG9jYWxzdG9yYWdlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4vYXV0aC9hdXRoLXBlcm1pc3Npb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZlVG9hc3QgfSBmcm9tICduZ3gtdG9hc3RyJztcblxuQENvbXBvbmVudCh7XG5cdHByb3ZpZGVyczogW1Byb3ZpZGVyU2VydmljZV0sXG5cdHNlbGVjdG9yOiAncmVzb2x2ZWlvLWNsaWVudC1saWItY29yZScsXG5cdHRlbXBsYXRlVXJsOiAnLi9jb3JlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDb3JlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdEBJbnB1dCgnZW52aXJvbm1lbnQnKSBlbnZpcm9ubWVudDtcblx0QElucHV0KCdsb2dvJykgbG9nbyA9ICcnO1xuXHRASW5wdXQoJ25hdlRhYnMnKSBuYXZUYWJzID0gJyc7XG5cdEBJbnB1dCgndXNlckhhc1Bob25lTnVtYmVyJykgdXNlckhhc1Bob25lTnVtYmVyID0gZmFsc2U7XG5cdEBJbnB1dCgnY2xpZW50JykgY2xpZW50ID0gJyc7XG5cblx0QFZpZXdDaGlsZCgnbmF2QmFyTWFpbicsIHtyZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWV9KSBlbF9uYXZCYXJNYWluOiBFbGVtZW50UmVmO1xuXHRAVmlld0NoaWxkKCduYXZCYXJNb2R1bGUnLCB7cmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlfSkgZWxfbmF2QmFyTW9kdWxlOiBFbGVtZW50UmVmO1xuXG5cdHllYXI6IHN0cmluZyA9IChuZXcgRGF0ZSgpKS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCk7XG5cblx0ZnVsbFNjcmVlbiA9IGZhbHNlO1xuXG5cdHdpbmRvd1NpemVIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cdHdpbmRvd1NpemVXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuXG5cdG5hdmJhck1haW5IZWlnaHQgPSAwO1xuXHRzdGF0dXNIZWlnaHQgPSAwO1xuXHRjb25uZWN0ZWRIZWlnaHQgPSAwO1xuXHRpc0RldmljZSA9IGZhbHNlO1xuXHRzaG93TmF2aWdhdGlvbk1lbnUgPSBmYWxzZTtcblxuXHRzd0ZsYWdBbGVydDogQWN0aXZlVG9hc3Q8YW55PiA9IG51bGw7XG5cdFxuXHRpc0Nvbm5lY3RlZCA9IGZhbHNlO1xuXHRpc0Nvbm5lY3RpbmcgPSBmYWxzZTtcblx0c29ja2V0U3RhdHVzOiBudW1iZXI7XG5cblx0dXNlcjogVXNlck1vZGVsO1xuXHRzdGF0dXM6IEFwcFN0YXR1c01vZGVsO1xuXG5cdGNvbGxhcHNhYmxlTWVudSA9IHRydWU7XG5cdGZvbnRTaXplID0gMTI7XG5cdG9wZW5lZFdpbmRvdyA9IGZhbHNlO1xuXG5cdGlzT2ZmbGluZSA9IGZhbHNlO1xuXHRmb3VuZFVwZGF0ZSA9IGZhbHNlO1xuXG5cdG9yaWVudGF0aW9uID0gJ3BvcnRyYWl0JztcblxuXHQvLyBwcmV2aW91c1JvdXRlckVycm9ySGFuZGxlciA9IG51bGw7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfZGV2aWNlRGV0OiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsIHByaXZhdGUgX2RzOiBEaWFsb2dTZXJ2aWNlLCBwcml2YXRlIF9yZXNpemVTZXJ2aWNlOiBSZXNpemVTZXJ2aWNlLCBwdWJsaWMgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UsIHByaXZhdGUgX29mZmxpbmU6IE9mZmxpbmVNYW5hZ2VyU2VydmljZSwgcHJpdmF0ZSBfc3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSwgcHJpdmF0ZSBfYXV0aDogQXV0aFNlcnZpY2UsIHByaXZhdGUgX2FwczogQXV0aFBlcm1pc3Npb25TZXJ2aWNlKSB7XG5cdFx0c3VwZXIoX3NlcnZpY2VzKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0RW52aXJvbm1lbnQodGhpcy5lbnZpcm9ubWVudCk7XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRDbGllbnQodGhpcy5jbGllbnQpO1xuXHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0TmF2VGFicyh0aGlzLm5hdlRhYnMpO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX2FjY291bnQuaW5pdExvZ2luTWFuYWdlcih0aGlzLmVudmlyb25tZW50KTtcblx0XHRcblx0XHRpZiAodGhpcy5lbnZpcm9ubWVudCAmJiB0aGlzLmVudmlyb25tZW50Lk1TX0FMTE9XRUQpIHtcblx0XHRcdHRoaXMuX2F1dGguc2V0dXBNU1NpbmdsZVNpZ25Pbih0aGlzLmVudmlyb25tZW50KTtcblx0XHR9XG5cdFx0ZWxzZSBpZiAodGhpcy5lbnZpcm9ubWVudCkge1xuXHRcdFx0dGhpcy5fYXV0aC5zZXRFbnZpcm9ubWVudCh0aGlzLmVudmlyb25tZW50KTtcblx0XHR9XG5cblx0XHR0aGlzLl9hdXRoLnNldFVzZXJIYXNQaG9uZU51bWJlcih0aGlzLnVzZXJIYXNQaG9uZU51bWJlcik7XG5cblx0XHQvLyB0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldEN1c3RvbUhvbWVQYWdlKHRoaXMuY3VzdG9tSG9tZVBhZ2UpO1xuXG5cdFx0Ly8gdGhpcy5fc2VydmljZXMuX2FwcC5zZXRMb2dvKHRoaXMubG9nbyk7XG5cblx0XHR0aGlzLl9yZXNpemVTZXJ2aWNlLm9uUmVzaXplJC5zdWJzY3JpYmUoKHZhbCkgPT4ge1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMud2luZG93U2l6ZUhlaWdodCA9IHZhbC5pbm5lckhlaWdodDtcblx0XHRcdFx0dGhpcy53aW5kb3dTaXplV2lkdGggPSB2YWwuaW5uZXJXaWR0aDtcblx0XHRcdH0sIDEwMCk7XG5cdFx0fSk7XG5cdFx0XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5mdWxsU2NyZWVuLnN1YnNjcmliZShmdWxsU2NyZWVuID0+IHtcblx0XHRcdHRoaXMuZnVsbFNjcmVlbiA9IGZ1bGxTY3JlZW47XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC51c2VyLnN1YnNjcmliZSh1c2VyID0+IHtcblx0XHRcdGlmICh1c2VyICYmIHVzZXIuc2V0dGluZ3MpIHtcblx0XHRcdFx0dGhpcy5jb2xsYXBzYWJsZU1lbnUgPSB1c2VyLnNldHRpbmdzLmNvbGxhcHNhYmxlX21lbnU7XG5cdFx0XHRcdHRoaXMuZm9udFNpemUgPSB1c2VyLnNldHRpbmdzLmZvbnRfc2l6ZTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctY29sb3InLCB1c2VyLnNldHRpbmdzLndhcm5pbmdfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy53YXJuaW5nX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLndhcm5pbmdfY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3Mud2FybmluZ19ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWNvbG9yJywgdXNlci5zZXR0aW5ncy5zdWNjZXNzX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3Muc3VjY2Vzc19mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3Mtc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSAnICsgaGV4VG9SR0IodXNlci5zZXR0aW5ncy5zdWNjZXNzX2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLnN1Y2Nlc3NfaG92ZXJfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWNvbG9yJywgdXNlci5zZXR0aW5ncy5kYW5nZXJfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLmRhbmdlcl9mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLmRhbmdlcl9jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLmRhbmdlcl9ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWNvbG9yJywgdXNlci5zZXR0aW5ncy5pbmZvX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3MuaW5mb19mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSAnICsgaGV4VG9SR0IodXNlci5zZXR0aW5ncy5pbmZvX2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8taG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLmluZm9faG92ZXJfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1jb2xvcicsIHVzZXIuc2V0dGluZ3MucHJpbWFyeV9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLnByaW1hcnlfZm9udF9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3MucHJpbWFyeV9jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWhvdmVyLWNvbG9yJywgdXNlci5zZXR0aW5ncy5wcmltYXJ5X2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1jb2xvcicsIHVzZXIuc2V0dGluZ3Muc2Vjb25kYXJ5X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5zZWNvbmRhcnlfZm9udF9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSAnICsgaGV4VG9SR0IodXNlci5zZXR0aW5ncy5zZWNvbmRhcnlfY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yJywgdXNlci5zZXR0aW5ncy5zZWNvbmRhcnlfaG92ZXJfY29sb3IpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSBpZiAodXNlciAmJiAoIXVzZXIub3RoZXJbJ2N1c3RvbWVycyddIHx8ICF1c2VyLm90aGVyWydjdXN0b21lcnMnXS5sZW5ndGgpICYmICF1c2VyLm90aGVyWydpZF9jdXN0b21lciddICYmICF1c2VyLnNldHRpbmdzICYmICF0aGlzLm9wZW5lZFdpbmRvdykge1xuXHRcdFx0XHR0aGlzLm9wZW5lZFdpbmRvdyA9IHRydWU7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWNvbG9yJywgJyNmZmMxMDcnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctZm9udC1jb2xvcicsICcjMDAwMDAwJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgyMjIsIDE3MCwgMTIsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctaG92ZXItY29sb3InLCAnI2UwYTgwMCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1jb2xvcicsICcjMjhhNzQ1Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoNzIsIDE4MCwgOTcsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtaG92ZXItY29sb3InLCAnIzIxODgzOCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWNvbG9yJywgJyNkYzM1NDUnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMjI1LCA4MywgOTcsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1ob3Zlci1jb2xvcicsICcjYzgyMzMzJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWNvbG9yJywgJyMxN2EyYjgnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSg1OCwgMTc2LCAxOTUsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8taG92ZXItY29sb3InLCAnIzEzODQ5NicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1jb2xvcicsICcjMDA3YmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMzgsIDE0MywgMjU1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWhvdmVyLWNvbG9yJywgJyMwMDY5ZDknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1jb2xvcicsICcjODY4ZTk2Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDEzMCwgMTM4LCAxNDUsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1ob3Zlci1jb2xvcicsICcjNWE2MjY4Jyk7XG5cdFx0XHRcdHRoaXMuZm9udFNpemUgPSAxMjtcblx0XHRcdFx0dGhpcy5fZHMubm90aWZ5KCdIZWxsbywgJyArIHVzZXIuZnVsbG5hbWUgKyAnIGl0IGxvb2tzIGxpa2UgdGhlcmUgYXJlIG5vIHVzZXIgc2V0dGluZ3Mgc2F2ZWQgZm9yIHlvdS4gVG8gYWRqdXN0IHlvdXIgdXNlciBzZXR0aW5ncyBjbGljayB5b3VyIG5hbWUgYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSBuZXh0IHRvIHRoZSBsb2dvdXQgYnV0dG9uLCBhZGp1c3QgYW55IHNldHRpbmdzIHlvdSB3YW50LCB0aGVuIGNsaWNrIHN1Ym1pdCB0byBhcHBseSB0aGVtLicpO1xuXHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5fc2VydmljZXMuX3JvdXRlci51cmwuc3BsaXQoJy8nKVswXSArICcvdXNlci1zZXR0aW5ncy9zZXR0aW5ncycpXG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctY29sb3InLCAnI2ZmYzEwNycpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1mb250LWNvbG9yJywgJyMwMDAwMDAnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDIyMiwgMTcwLCAxMiwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1ob3Zlci1jb2xvcicsICcjZTBhODAwJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWNvbG9yJywgJyMyOGE3NDUnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSg3MiwgMTgwLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1ob3Zlci1jb2xvcicsICcjMjE4ODM4Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItY29sb3InLCAnI2RjMzU0NScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgyMjUsIDgzLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWhvdmVyLWNvbG9yJywgJyNjODIzMzMnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tY29sb3InLCAnIzE3YTJiOCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDU4LCAxNzYsIDE5NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1ob3Zlci1jb2xvcicsICcjMTM4NDk2Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWNvbG9yJywgJyMwMDdiZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgzOCwgMTQzLCAyNTUsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktaG92ZXItY29sb3InLCAnIzAwNjlkOScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWNvbG9yJywgJyM4NjhlOTYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMTMwLCAxMzgsIDE0NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yJywgJyM1YTYyNjgnKTtcblx0XHRcdFx0dGhpcy5mb250U2l6ZSA9IDEyO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnVzZXIgPSB1c2VyO1xuXHRcdH0pO1xuXG5cdFx0Ly8gaWYgKCF0aGlzLnByZXZpb3VzUm91dGVyRXJyb3JIYW5kbGVyKSB7XG5cdFx0Ly8gXHR0aGlzLnByZXZpb3VzUm91dGVyRXJyb3JIYW5kbGVyID0gdGhpcy5fc2VydmljZXMuX3JvdXRlci5lcnJvckhhbmRsZXI7XG5cdFx0Ly8gXHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLmVycm9ySGFuZGxlciA9IGZ1bmN0aW9uIChlcnI6IGFueSkge1x0XG5cdFx0Ly8gXHRcdHJldHVybiB0aGlzLnByZXZpb3VzUm91dGVyRXJyb3JIYW5kbGVyLmFwcGx5KHRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIsIGFyZ3VtZW50cyk7XG5cdFx0Ly8gXHR9O1xuXHRcdC8vIH1cblxuXHRcdGlmICh0aGlzLl9kZXZpY2VEZXQuaXNNb2JpbGUoKSB8fCB0aGlzLl9kZXZpY2VEZXQuaXNUYWJsZXQoKSkge1xuXHRcdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRJc0RldmljZSh0cnVlKTtcblx0XHRcdHRoaXMuaXNEZXZpY2UgPSB0cnVlO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0SXNEZXZpY2UoZmFsc2UpO1xuXHRcdFx0dGhpcy5pc0RldmljZSA9IGZhbHNlO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLmVudmlyb25tZW50LklTX1BST0RVQ1RJT04pIHtcblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuc3Vic2NyaWJlQnlwYXNzUm91dGUoJ2ZsYWdXaXRoVHlwZScsICduZXdTVycpLnN1YnNjcmliZShmbGFnID0+IHtcblx0XHRcdFx0aWYgKGZsYWcpIHtcblx0XHRcdFx0XHR0aGlzLnN3RmxhZ0FsZXJ0ID0gdGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCdpbmZvJywgJ1RoaXMgcGFnZSB3aWxsIHJlbG9hZCBvbmNlIG5ldyB2ZXJzaW9uIGhhcyBiZWVuIGRvd25sb2FkZWQnLCAwKTtcblx0XHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldElzSW52YWxpZFNXKHRydWUpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKHRoaXMuc3dGbGFnQWxlcnQpIHtcblx0XHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldElzSW52YWxpZFNXKGZhbHNlKTtcblx0XHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYWxlcnQuY2xlYXJBbGVydCh0aGlzLnN3RmxhZ0FsZXJ0LnRvYXN0SWQpO1xuXHRcdFx0XHRcdHRoaXMuc3dGbGFnQWxlcnQgPSBudWxsO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHR0aGlzLl9vZmZsaW5lLm9mZmxpbmVNb2RlLnN1YnNjcmliZShvZmZsaW5lID0+IHtcblx0XHRcdHRoaXMuaXNPZmZsaW5lID0gb2ZmbGluZTtcblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LmdldFNvY2tldFN0YXR1cygpLnN1YnNjcmliZShzdGF0dXMgPT4ge1xuXHRcdFx0dGhpcy5zb2NrZXRTdGF0dXMgPSBzdGF0dXM7XG5cdFx0XHRcblx0XHRcdGlmICghdGhpcy51c2VyKSB7XG5cdFx0XHRcdHRoaXMuaXNDb25uZWN0ZWQgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcblxuXHRcdFx0XHR0aGlzLmNvbm5lY3RlZEhlaWdodCA9IDQwO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdGlmICh0aGlzLnNvY2tldFN0YXR1cyA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcblx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGVkID0gdHJ1ZTtcblx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuaXNDb25uZWN0ZWQgPSBmYWxzZTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLnNvY2tldFN0YXR1cyA9PT0gV2ViU29ja2V0LkNPTk5FQ1RJTkcpIHtcblx0XHRcdFx0XHRcdHRoaXMuaXNDb25uZWN0aW5nID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHR0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0aWYgKCF0aGlzLmlzQ29ubmVjdGVkKSB7XG5cdFx0XHRcdFx0dGhpcy5jb25uZWN0ZWRIZWlnaHQgPSA0MDtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmNvbm5lY3RlZEhlaWdodCA9IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuc3Vic2NyaWJlQnlwYXNzUm91dGUoJ2FwcHN0YXR1cycpLnN1YnNjcmliZShhcHBzdGF0dXMgPT4ge1xuXHRcdFx0dGhpcy5zdGF0dXMgPSBhcHBzdGF0dXM7IC8vT0sgaWYgbm90IGRlZmluZWRcblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0SGFzU3RhdHVzTWVzc2FnZSh0aGlzLnN0YXR1cyA/IHRydWUgOiBmYWxzZSk7XG5cdFx0XHR0aGlzLnN0YXR1c0hlaWdodCA9IHRoaXMuc3RhdHVzID8gNDAgOiAwO1xuXHRcdH0pO1xuXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLm5hdmJhck1haW5IZWlnaHQgPSB0aGlzLmVsX25hdkJhck1haW4ubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5jbGllbnRIZWlnaHQ7XG5cdFx0fSwgMTAwKTtcblx0XHRcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMubmF2YmFyTWFpbkhlaWdodCA9IHRoaXMuZWxfbmF2QmFyTWFpbi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodDtcblx0XHR9LCAxMDAwKTtcblxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5uYXZiYXJNYWluSGVpZ2h0ID0gdGhpcy5lbF9uYXZCYXJNYWluLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0O1xuXHRcdH0sIDUwMDApO1xuXG5cdFx0aWYgKHRoaXMuaXNEZXZpY2UpIHtcblx0XHRcdGxldCBmaXJzdFJlZGlyZWN0ID0gZmFsc2U7XG5cdFx0XHRsZXQgbGFzdFVSTCA9IHRoaXMuX3N0b3JhZ2UuZ2V0KCdsYXN0VVJMJyk7XG5cblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IE5hdmlnYXRpb25FbmQpID0+IHtcblx0XHRcdFx0aWYgKGxhc3RVUkwgJiYgbGFzdFVSTCAhPT0gJy8nICYmICFmaXJzdFJlZGlyZWN0KSB7XG5cdFx0XHRcdFx0aWYgKGV2ZW50LnVybCA9PT0gJycgfHwgZXZlbnQudXJsID09PSAnLycpIHtcblx0XHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChsYXN0VVJMKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmaXJzdFJlZGlyZWN0ID0gdHJ1ZTtcblxuXHRcdFx0XHRpZiAoZXZlbnQudXJsKSB7XG5cdFx0XHRcdFx0dGhpcy5fc3RvcmFnZS5zZXQoJ2xhc3RVUkwnLCBldmVudC51cmwpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKSB7XG5cdFx0XHRcdFx0dGhpcy5fc3RvcmFnZS5zZXQoJ2xhc3RVUkwnLCBldmVudC51cmxBZnRlclJlZGlyZWN0cyk7XG5cdFx0XHRcdH1cdFx0XHRcdFxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0aWYgKFsnaVBhZCcsICdpUGhvbmUnLCAnaVBvZCddLmluZGV4T2YobmF2aWdhdG9yLnBsYXRmb3JtKSA+PSAwICYmICgnc3RhbmRhbG9uZScgaW4gd2luZG93Lm5hdmlnYXRvcikgJiYgKDxhbnk+d2luZG93Lm5hdmlnYXRvcikuc3RhbmRhbG9uZSkge1xuXHRcdFx0dGhpcy5zaG93TmF2aWdhdGlvbk1lbnUgPSB0cnVlO1xuXHRcdH1cblxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsICgpID0+IHtcblx0XHRcdGlmICh3aW5kb3cub3JpZW50YXRpb24gPT09IC05MCkge1xuXHRcdFx0XHR0aGlzLm9yaWVudGF0aW9uID0gJ2xhbmRzY2FwZSc7XG5cdFx0XHR9XG5cdFx0XHRpZiAod2luZG93Lm9yaWVudGF0aW9uID09PSA5MCkge1xuXHRcdFx0XHR0aGlzLm9yaWVudGF0aW9uID0gJ2xhbmRzY2FwZSc7XG5cdFx0XHR9XG5cdFx0XHRpZiAod2luZG93Lm9yaWVudGF0aW9uID09PSAwKSB7XG5cdFx0XHRcdHRoaXMub3JpZW50YXRpb24gPSAncG9ydHJhaXQnO1xuXHRcdFx0fVxuXHRcdH0sIHRydWUpO1xuXG5cdFx0bGV0IG1vdXNld2hlZWxFdmVudDtcblxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50Lm5vZGVOYW1lID09PSAnSU5QVVQnICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRbJ3R5cGUnXSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICBtb3VzZXdoZWVsRXZlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCBoYW5kbGVNb3VzZXdoZWVsRXZlbnQsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdHJ1ZSk7XG5cbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKG1vdXNld2hlZWxFdmVudCkge1xuICAgICAgICAgICAgICAgIG1vdXNld2hlZWxFdmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCBoYW5kbGVNb3VzZXdoZWVsRXZlbnQpO1xuICAgICAgICAgICAgfVxuXHRcdH0sIHRydWUpO1xuXHRcdFxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIChlKSA9PiB7XG5cdFx0XHRsZXQgZXYgPSBlIHx8IGV2ZW50O1xuXHRcdFx0ZXYucHJldmVudERlZmF1bHQoKTtcblx0XHR9LCBmYWxzZSk7XG5cdFx0XG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCAoZSkgPT4ge1xuXHRcdFx0bGV0IGV2ID0gZSB8fCBldmVudDtcblx0XHRcdGV2LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fSwgZmFsc2UpO1xuXHR9XG5cblx0Z2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkge1xuXHRcdHJldHVybiB0aGlzLmVsX25hdkJhck1vZHVsZS5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodDtcblx0fVxuXG5cdG9uUHVzaEJhY2tCdXR0b24oKSB7XG5cdFx0d2luZG93Lmhpc3RvcnkuYmFjaygpO1xuXHR9XG5cblx0b25QdXNoUmVsb2FkQnV0dG9uKCkge1xuXHRcdHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcblx0fVxuXG5cdG9uUHVzaEZvcndhcmRCdXR0b24oKSB7XG5cdFx0d2luZG93Lmhpc3RvcnkuZm9yd2FyZCgpO1xuXHR9XG5cblx0b3Blbk5hdigpIHtcblx0XHRsZXQgeCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZTaWQnKTtcblx0XHRsZXQgeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluX2NvbnQnKTtcblx0XHRpZiAoeC5zdHlsZS53aWR0aCA9PT0gJzQwcHgnICYmIHkuc3R5bGUucGFkZGluZ0xlZnQgPT09ICc1NXB4Jykge1xuXHRcdFx0eC5zdHlsZS53aWR0aCA9ICcxOTVweCc7XG5cdFx0XHR5LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzIxMHB4Jztcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHR4LnN0eWxlLndpZHRoID0gJzQwcHgnO1xuXHRcdFx0eS5zdHlsZS5wYWRkaW5nTGVmdCA9ICc1NXB4Jztcblx0XHR9XG5cdH1cblx0XHRcblx0Y2xvc2VOYXYoKSB7XG5cdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdlNpZCcpLnN0eWxlLndpZHRoID0gJzQwcHgnO1xuXHRcdGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluX2NvbnQnKS5zdHlsZS5wYWRkaW5nTGVmdCA9ICc1NXB4JztcdFxuXHR9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZU1vdXNld2hlZWxFdmVudCgpIHtcblx0KDxhbnk+ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkuYmx1cigpO1xufVxuXG5mdW5jdGlvbiBoZXhUb1JHQihoZXgsIGFscGhhKSB7XG4gICAgbGV0IHIgPSBwYXJzZUludChoZXguc2xpY2UoMSwgMyksIDE2KSxcbiAgICAgICAgZyA9IHBhcnNlSW50KGhleC5zbGljZSgzLCA1KSwgMTYpLFxuICAgICAgICBiID0gcGFyc2VJbnQoaGV4LnNsaWNlKDUsIDcpLCAxNik7XG5cbiAgICBpZiAoYWxwaGEpIHtcbiAgICAgICAgcmV0dXJuIFwicmdiYShcIiArIHIgKyBcIiwgXCIgKyBnICsgXCIsIFwiICsgYiArIFwiLCBcIiArIGFscGhhICsgXCIpXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFwicmdiKFwiICsgciArIFwiLCBcIiArIGcgKyBcIiwgXCIgKyBiICsgXCIpXCI7XG4gICAgfVxufSIsIjxzdHlsZT5cblx0OnJvb3Qge1xuICAgICAgICAtLXdhcm5pbmctY29sb3I6ICNmZmMxMDc7XG4gICAgICAgIC0td2FybmluZy1mb250LWNvbG9yOiAjMDAwMDAwO1xuICAgICAgICAtLXdhcm5pbmctaG92ZXItY29sb3I6ICNlMGE4MDA7XG4gICAgICAgIC0td2FybmluZy1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDIyMiwgMTcwLCAxMiwgMC41KTtcbiAgICAgICAgLS1zdWNjZXNzLWNvbG9yOiAjMjhhNzQ1O1xuICAgICAgICAtLXN1Y2Nlc3MtZm9udC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgLS1zdWNjZXNzLWhvdmVyLWNvbG9yOiAjMjE4ODM4O1xuICAgICAgICAtLXN1Y2Nlc3Mtc2hhZG93LWNvbG9yOiAwIDAgMCAwLjJyZW0gcmdiYSg3MiwgMTgwLCA5NywgMC41KTtcbiAgICAgICAgLS1kYW5nZXItY29sb3I6ICNkYzM1NDU7XG4gICAgICAgIC0tZGFuZ2VyLWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0tZGFuZ2VyLWhvdmVyLWNvbG9yOiAjYzgyMzMzO1xuICAgICAgICAtLWRhbmdlci1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDIyNSwgODMsIDk3LCAwLjUpO1xuICAgICAgICAtLWluZm8tY29sb3I6ICMxN2EyYjg7XG4gICAgICAgIC0taW5mby1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLWluZm8taG92ZXItY29sb3I6ICMxMzg0OTY7XG4gICAgICAgIC0taW5mby1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDU4LCAxNzYsIDE5NSwgMC41KTtcbiAgICAgICAgLS1wcmltYXJ5LWNvbG9yOiAjMDA3YmZmO1xuICAgICAgICAtLXByaW1hcnktZm9udC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgLS1wcmltYXJ5LWhvdmVyLWNvbG9yOiAjMDA2OWQ5O1xuICAgICAgICAtLXByaW1hcnktc2hhZG93LWNvbG9yOiAwIDAgMCAwLjJyZW0gcmdiYSgzOCwgMTQzLCAyNTUsIDAuNSk7XG4gICAgICAgIC0tc2Vjb25kYXJ5LWNvbG9yOiAjODY4ZTk2O1xuICAgICAgICAtLXNlY29uZGFyeS1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLXNlY29uZGFyeS1ob3Zlci1jb2xvcjogIzVhNjI2ODtcbiAgICAgICAgLS1zZWNvbmRhcnktc2hhZG93LWNvbG9yOiAwIDAgMCAwLjJyZW0gcmdiYSgxMzAsIDEzOCwgMTQ1LCAwLjUpO1xuICAgIH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi13YXJuaW5nIHtcblx0XHRjb2xvcjogdmFyKC0td2FybmluZy1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXdhcm5pbmctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXdhcm5pbmc6Zm9jdXMsIC5idG4td2FybmluZy5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0td2FybmluZy1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXdhcm5pbmc6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS13YXJuaW5nLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmctaG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZy1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zdWNjZXNzIHtcblx0XHRjb2xvcjogdmFyKC0tc3VjY2Vzcy1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3MtY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXN1Y2Nlc3M6Zm9jdXMsIC5idG4tc3VjY2Vzcy5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tc3VjY2Vzcy1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXN1Y2Nlc3M6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1zdWNjZXNzLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3MtaG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tc3VjY2Vzcy1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1kYW5nZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1kYW5nZXItZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFuZ2VyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWRhbmdlci1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tZGFuZ2VyOmZvY3VzLCAuYnRuLWRhbmdlci5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tZGFuZ2VyLXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tZGFuZ2VyOmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0tZGFuZ2VyLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhbmdlci1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1kYW5nZXItaG92ZXItY29sb3IpO1xuXHR9XG5cblx0Omhvc3QgL2RlZXAvIC5idG4taW5mbyB7XG5cdFx0Y29sb3I6IHZhcigtLWluZm8tZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5mby1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1pbmZvLWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1pbmZvOmZvY3VzLCAuYnRuLWluZm8uZm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWluZm8tc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1pbmZvOmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0taW5mby1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbmZvLWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWluZm8taG92ZXItY29sb3IpO1xuXHR9XG5cblx0Omhvc3QgL2RlZXAvIC5idG4tcHJpbWFyeSB7XG5cdFx0Y29sb3I6IHZhcigtLXByaW1hcnktZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1wcmltYXJ5OmZvY3VzLCAuYnRuLXByaW1hcnkuZm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLXByaW1hcnktc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1wcmltYXJ5OmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0tcHJpbWFyeS1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktaG92ZXItY29sb3IpO1xuXHR9XG5cblx0Omhvc3QgL2RlZXAvIC5idG4tc2Vjb25kYXJ5IHtcblx0XHRjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXNlY29uZGFyeTpmb2N1cywgLmJ0bi1zZWNvbmRhcnkuZm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLXNlY29uZGFyeS1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXNlY29uZGFyeTpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXNlY29uZGFyeS1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktaG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yKTtcblx0fVxuXHRcbiAgXHRAbWVkaWEgcHJpbnQge1xuXHQgIFx0LmRvbnRQcmludCAqIHtcblx0XHQgIFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHQgIFx0fVxuXG5cdFx0Lm15RGl2VG9QcmludENzIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMTJweDtcblx0XHRcdHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuXHRcdFx0ZGlzcGxheTogaW5pdGlhbDtcblx0XHR9XG5cblx0XHQucmVtb3ZlT3ZlcmZsb3cge1xuXHRcdFx0b3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7IFxuXHRcdFx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0fVxuICBcdH1cblxuICBcdC5oaWRlVGhpcyB7XG5cdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cblx0Lm5hdlNpZGJhciB7XG5cdFx0d2lkdGg6IDBweDtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0ei1pbmRleDogMTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzYTQwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dHJhbnNpdGlvbjogMC41cztcblx0XHRwYWRkaW5nLXRvcDogMHB4O1xuXHR9XG5cblx0Lm5hdlNpZGJhciBhIHtcblx0XHRwYWRkaW5nOiA4cHggOHB4IDhweCAzMnB4O1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRmb250LXNpemU6IDI1cHg7XG5cdFx0Y29sb3I6ICM4MTgxODE7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0dHJhbnNpdGlvbjogMC4zcztcblx0fVxuXG5cdC5uYXZTaWRiYXIgYTpob3ZlciB7XG5cdFx0Y29sb3I6ICNmMWYxZjE7XG5cdH1cblxuXHQub3BlbmJ0biB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzM0M2E0MDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0cGFkZGluZzogNXB4IDIwcHg7XG5cdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdHJpZ2h0OiAwO1xuXHRcdHRvcDogMHB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiA5OTk5OTk7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cblxuXHQub3BlbmJ0biBzcGFuIHtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRvcDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgtOTBkZWcpO1xuXHRcdG1hcmdpbi10b3A6IC01NXB4O1xuXHRcdGxldHRlci1zcGFjaW5nOiAzMHB4O1xuXHR9XG5cdCNtYWluX2NvbnQge1xuXHRcdHRyYW5zaXRpb246IHBhZGRpbmctbGVmdCAuNXM7XG5cdH1cblxuXHQuc2lkX2luciB7XG5cdFx0cGFkZGluZy1sZWZ0OiAyNXB4O1xuXHR9XG5cbjwvc3R5bGU+XG48ZGl2ICpuZ0lmPVwiaXNEZXZpY2VcIj5cblx0PGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIGhyZWY9XCIvYXNzZXRzL2Nzcy90YWJsZXQuY3NzXCI+XG48L2Rpdj5cbjxkaXYgI3NoZWxsPlxuXHQ8ZGl2ICpuZ0lmPVwidXNlciAmJiAoIWlzQ29ubmVjdGVkIHx8IGlzT2ZmbGluZSlcIj5cblx0XHQ8ZGl2IHN0eWxlPVwiaGVpZ2h0OiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgY29sb3I6IHdoaXRlO1wiPlxuXHRcdFx0PGRpdiBzdHlsZT1cInBhZGRpbmctdG9wOiA5cHg7IHBhZGRpbmctYm90dG9tOiA5cHg7XCI+KioqIE9GRkxJTkUgTU9ERSAqKio8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxkaXYgKm5nSWY9XCIhdXNlciAmJiAoIWlzQ29ubmVjdGVkIHx8IGlzT2ZmbGluZSlcIj5cblx0XHQ8ZGl2IHN0eWxlPVwiaGVpZ2h0OiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgY29sb3I6IHdoaXRlO1wiPlxuXHRcdFx0PGRpdiBzdHlsZT1cInBhZGRpbmctdG9wOiA5cHg7IHBhZGRpbmctYm90dG9tOiA5cHg7XCI+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==
|
|
378
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFVBQVUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUWhFLE1BQU0sT0FBTyxhQUFjLFNBQVEsYUFBYTtJQXlDL0MscUNBQXFDO0lBRXJDLFlBQW9CLFVBQWlDLEVBQVUsR0FBa0IsRUFBVSxjQUE2QixFQUFTLFNBQTBCLEVBQVUsUUFBK0IsRUFBVSxRQUE2QixFQUFVLEtBQWtCLEVBQVUsSUFBMkI7UUFDM1MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBUyxj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QUMsRUFDakMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDakMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV0QyxJQUFJLEtBQUssRUFBRTtRQUNQLE9BQU8sT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUM7S0FDakU7U0FBTTtRQUNILE9BQU8sTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0tBQ2pEO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuL21vZGVscy91c2VyLm1vZGVsJztcbmltcG9ydCB7IEFwcFN0YXR1c01vZGVsIH0gZnJvbSAnLi9tb2RlbHMvYXBwLXN0YXR1cy5tb2RlbCc7XG5pbXBvcnQgeyBEZXZpY2VEZXRlY3RvclNlcnZpY2UgfSBmcm9tICduZ3gtZGV2aWNlLWRldGVjdG9yJztcbmltcG9ydCB7IFJlc2l6ZVNlcnZpY2UgfSBmcm9tICcuL3V0aWwvd2luZG93LXJlc2l6ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByb3ZpZGVyU2VydmljZSwgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcmVzb2x2ZWlvLWNsYXNzJztcbmltcG9ydCB7IE9mZmxpbmVNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vb2ZmbGluZS1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJ25neC1sb2NhbHN0b3JhZ2UnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9hdXRoL2F1dGgtcGVybWlzc2lvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi93aWRnZXRzL2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmVUb2FzdCB9IGZyb20gJ25neC10b2FzdHInO1xuXG5AQ29tcG9uZW50KHtcblx0cHJvdmlkZXJzOiBbUHJvdmlkZXJTZXJ2aWNlXSxcblx0c2VsZWN0b3I6ICdyZXNvbHZlaW8tY2xpZW50LWxpYi1jb3JlJyxcblx0dGVtcGxhdGVVcmw6ICcuL2NvcmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvcmVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblx0QElucHV0KCdlbnZpcm9ubWVudCcpIGVudmlyb25tZW50O1xuXHRASW5wdXQoJ2xvZ28nKSBsb2dvID0gJyc7XG5cdEBJbnB1dCgnbmF2VGFicycpIG5hdlRhYnMgPSAnJztcblx0QElucHV0KCd1c2VySGFzUGhvbmVOdW1iZXInKSB1c2VySGFzUGhvbmVOdW1iZXIgPSBmYWxzZTtcblx0QElucHV0KCdjbGllbnQnKSBjbGllbnQgPSAnJztcblxuXHRAVmlld0NoaWxkKCduYXZCYXJNYWluJywge3JlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZX0pIGVsX25hdkJhck1haW46IEVsZW1lbnRSZWY7XG5cdEBWaWV3Q2hpbGQoJ25hdkJhck1vZHVsZScsIHtyZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWV9KSBlbF9uYXZCYXJNb2R1bGU6IEVsZW1lbnRSZWY7XG5cblx0eWVhcjogc3RyaW5nID0gKG5ldyBEYXRlKCkpLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtcblxuXHRmdWxsU2NyZWVuID0gZmFsc2U7XG5cblx0d2luZG93U2l6ZUhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcblx0d2luZG93U2l6ZVdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG5cblx0bmF2YmFyTWFpbkhlaWdodCA9IDA7XG5cdHN0YXR1c0hlaWdodCA9IDA7XG5cdGNvbm5lY3RlZEhlaWdodCA9IDA7XG5cdGlzRGV2aWNlID0gZmFsc2U7XG5cdHNob3dOYXZpZ2F0aW9uTWVudSA9IGZhbHNlO1xuXG5cdHN3RmxhZ0FsZXJ0OiBBY3RpdmVUb2FzdDxhbnk+ID0gbnVsbDtcblx0XG5cdGlzQ29ubmVjdGVkID0gZmFsc2U7XG5cdGlzQ29ubmVjdGluZyA9IGZhbHNlO1xuXHRzb2NrZXRTdGF0dXM6IG51bWJlcjtcblxuXHR1c2VyOiBVc2VyTW9kZWw7XG5cdHN0YXR1czogQXBwU3RhdHVzTW9kZWw7XG5cblx0Y29sbGFwc2FibGVNZW51ID0gdHJ1ZTtcblx0Zm9udFNpemUgPSAxMjtcblx0b3BlbmVkV2luZG93ID0gZmFsc2U7XG5cblx0aXNPZmZsaW5lID0gZmFsc2U7XG5cdGZvdW5kVXBkYXRlID0gZmFsc2U7XG5cblx0b3JpZW50YXRpb24gPSAncG9ydHJhaXQnO1xuXG5cdC8vIHByZXZpb3VzUm91dGVyRXJyb3JIYW5kbGVyID0gbnVsbDtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9kZXZpY2VEZXQ6IERldmljZURldGVjdG9yU2VydmljZSwgcHJpdmF0ZSBfZHM6IERpYWxvZ1NlcnZpY2UsIHByaXZhdGUgX3Jlc2l6ZVNlcnZpY2U6IFJlc2l6ZVNlcnZpY2UsIHB1YmxpYyBfc2VydmljZXM6IFByb3ZpZGVyU2VydmljZSwgcHJpdmF0ZSBfb2ZmbGluZTogT2ZmbGluZU1hbmFnZXJTZXJ2aWNlLCBwcml2YXRlIF9zdG9yYWdlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBwcml2YXRlIF9hdXRoOiBBdXRoU2VydmljZSwgcHJpdmF0ZSBfYXBzOiBBdXRoUGVybWlzc2lvblNlcnZpY2UpIHtcblx0XHRzdXBlcihfc2VydmljZXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRFbnZpcm9ubWVudCh0aGlzLmVudmlyb25tZW50KTtcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldENsaWVudCh0aGlzLmNsaWVudCk7XG5cdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXROYXZUYWJzKHRoaXMubmF2VGFicyk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5pbml0TG9naW5NYW5hZ2VyKHRoaXMuZW52aXJvbm1lbnQpO1xuXHRcdFxuXHRcdGlmICh0aGlzLmVudmlyb25tZW50ICYmIHRoaXMuZW52aXJvbm1lbnQuTVNfQUxMT1dFRCkge1xuXHRcdFx0dGhpcy5fYXV0aC5zZXR1cE1TU2luZ2xlU2lnbk9uKHRoaXMuZW52aXJvbm1lbnQpO1xuXHRcdH1cblx0XHRlbHNlIGlmICh0aGlzLmVudmlyb25tZW50KSB7XG5cdFx0XHR0aGlzLl9hdXRoLnNldEVudmlyb25tZW50KHRoaXMuZW52aXJvbm1lbnQpO1xuXHRcdH1cblxuXHRcdHRoaXMuX2F1dGguc2V0VXNlckhhc1Bob25lTnVtYmVyKHRoaXMudXNlckhhc1Bob25lTnVtYmVyKTtcblxuXHRcdC8vIHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0Q3VzdG9tSG9tZVBhZ2UodGhpcy5jdXN0b21Ib21lUGFnZSk7XG5cblx0XHQvLyB0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldExvZ28odGhpcy5sb2dvKTtcblxuXHRcdHRoaXMuX3Jlc2l6ZVNlcnZpY2Uub25SZXNpemUkLnN1YnNjcmliZSgodmFsKSA9PiB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy53aW5kb3dTaXplSGVpZ2h0ID0gdmFsLmlubmVySGVpZ2h0O1xuXHRcdFx0XHR0aGlzLndpbmRvd1NpemVXaWR0aCA9IHZhbC5pbm5lcldpZHRoO1xuXHRcdFx0fSwgMTAwKTtcblx0XHR9KTtcblx0XHRcblx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLmZ1bGxTY3JlZW4uc3Vic2NyaWJlKGZ1bGxTY3JlZW4gPT4ge1xuXHRcdFx0dGhpcy5mdWxsU2NyZWVuID0gZnVsbFNjcmVlbjtcblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9hY2NvdW50LnVzZXIuc3Vic2NyaWJlKHVzZXIgPT4ge1xuXHRcdFx0aWYgKHVzZXIgJiYgdXNlci5zZXR0aW5ncykge1xuXHRcdFx0XHR0aGlzLmNvbGxhcHNhYmxlTWVudSA9IHVzZXIuc2V0dGluZ3MuY29sbGFwc2FibGVfbWVudTtcblx0XHRcdFx0dGhpcy5mb250U2l6ZSA9IHVzZXIuc2V0dGluZ3MuZm9udF9zaXplO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1jb2xvcicsIHVzZXIuc2V0dGluZ3Mud2FybmluZ19jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLndhcm5pbmdfZm9udF9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3Mud2FybmluZ19jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWhvdmVyLWNvbG9yJywgdXNlci5zZXR0aW5ncy53YXJuaW5nX2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtY29sb3InLCB1c2VyLnNldHRpbmdzLnN1Y2Nlc3NfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5zdWNjZXNzX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLnN1Y2Nlc3NfY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3Muc3VjY2Vzc19ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItY29sb3InLCB1c2VyLnNldHRpbmdzLmRhbmdlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gJyArIGhleFRvUkdCKHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3MuZGFuZ2VyX2hvdmVyX2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tY29sb3InLCB1c2VyLnNldHRpbmdzLmluZm9fY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1mb250LWNvbG9yJywgdXNlci5zZXR0aW5ncy5pbmZvX2ZvbnRfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLmluZm9fY29sb3IsIDAuNSkpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1ob3Zlci1jb2xvcicsIHVzZXIuc2V0dGluZ3MuaW5mb19ob3Zlcl9jb2xvcik7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWNvbG9yJywgdXNlci5zZXR0aW5ncy5wcmltYXJ5X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktZm9udC1jb2xvcicsIHVzZXIuc2V0dGluZ3MucHJpbWFyeV9mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSAnICsgaGV4VG9SR0IodXNlci5zZXR0aW5ncy5wcmltYXJ5X2NvbG9yLCAwLjUpKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLnByaW1hcnlfaG92ZXJfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWNvbG9yJywgdXNlci5zZXR0aW5ncy5zZWNvbmRhcnlfY29sb3IpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWZvbnQtY29sb3InLCB1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9mb250X2NvbG9yKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtICcgKyBoZXhUb1JHQih1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9jb2xvciwgMC41KSk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktaG92ZXItY29sb3InLCB1c2VyLnNldHRpbmdzLnNlY29uZGFyeV9ob3Zlcl9jb2xvcik7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmICh1c2VyICYmICghdXNlci5vdGhlclsnY3VzdG9tZXJzJ10gfHwgIXVzZXIub3RoZXJbJ2N1c3RvbWVycyddLmxlbmd0aCkgJiYgIXVzZXIub3RoZXJbJ2lkX2N1c3RvbWVyJ10gJiYgIXVzZXIuc2V0dGluZ3MgJiYgIXRoaXMub3BlbmVkV2luZG93KSB7XG5cdFx0XHRcdHRoaXMub3BlbmVkV2luZG93ID0gdHJ1ZTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctY29sb3InLCAnI2ZmYzEwNycpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1mb250LWNvbG9yJywgJyMwMDAwMDAnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXdhcm5pbmctc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDIyMiwgMTcwLCAxMiwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1ob3Zlci1jb2xvcicsICcjZTBhODAwJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWNvbG9yJywgJyMyOGE3NDUnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSg3MiwgMTgwLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1ob3Zlci1jb2xvcicsICcjMjE4ODM4Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItY29sb3InLCAnI2RjMzU0NScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgyMjUsIDgzLCA5NywgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tZGFuZ2VyLWhvdmVyLWNvbG9yJywgJyNjODIzMzMnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tY29sb3InLCAnIzE3YTJiOCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8tc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDU4LCAxNzYsIDE5NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1ob3Zlci1jb2xvcicsICcjMTM4NDk2Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LWNvbG9yJywgJyMwMDdiZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wcmltYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgzOCwgMTQzLCAyNTUsIDAuNSknKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktaG92ZXItY29sb3InLCAnIzAwNjlkOScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWNvbG9yJywgJyM4NjhlOTYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXNlY29uZGFyeS1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMTMwLCAxMzgsIDE0NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yJywgJyM1YTYyNjgnKTtcblx0XHRcdFx0dGhpcy5mb250U2l6ZSA9IDEyO1xuXHRcdFx0XHR0aGlzLl9kcy5ub3RpZnkoJ0hlbGxvLCAnICsgdXNlci5mdWxsbmFtZSArICcgaXQgbG9va3MgbGlrZSB0aGVyZSBhcmUgbm8gdXNlciBzZXR0aW5ncyBzYXZlZCBmb3IgeW91LiBUbyBhZGp1c3QgeW91ciB1c2VyIHNldHRpbmdzIGNsaWNrIHlvdXIgbmFtZSBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlIG5leHQgdG8gdGhlIGxvZ291dCBidXR0b24sIGFkanVzdCBhbnkgc2V0dGluZ3MgeW91IHdhbnQsIHRoZW4gY2xpY2sgc3VibWl0IHRvIGFwcGx5IHRoZW0uJyk7XG5cdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLnVybC5zcGxpdCgnLycpWzBdICsgJy91c2VyLXNldHRpbmdzL3NldHRpbmdzJylcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1jb2xvcicsICcjZmZjMTA3Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWZvbnQtY29sb3InLCAnIzAwMDAwMCcpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0td2FybmluZy1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoMjIyLCAxNzAsIDEyLCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS13YXJuaW5nLWhvdmVyLWNvbG9yJywgJyNlMGE4MDAnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3MtY29sb3InLCAnIzI4YTc0NScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc3VjY2Vzcy1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXN1Y2Nlc3Mtc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDcyLCAxODAsIDk3LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdWNjZXNzLWhvdmVyLWNvbG9yJywgJyMyMTg4MzgnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRhbmdlci1jb2xvcicsICcjZGMzNTQ1Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItZm9udC1jb2xvcicsICcjZmZmZmZmJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDIyNSwgODMsIDk3LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1kYW5nZXItaG92ZXItY29sb3InLCAnI2M4MjMzMycpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1jb2xvcicsICcjMTdhMmI4Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby1zaGFkb3ctY29sb3InLCAnMCAwIDAgMC4ycmVtIHJnYmEoNTgsIDE3NiwgMTk1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLWhvdmVyLWNvbG9yJywgJyMxMzg0OTYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktY29sb3InLCAnIzAwN2JmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1mb250LWNvbG9yJywgJyNmZmZmZmYnKTtcblx0XHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXByaW1hcnktc2hhZG93LWNvbG9yJywgJzAgMCAwIDAuMnJlbSByZ2JhKDM4LCAxNDMsIDI1NSwgMC41KScpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcHJpbWFyeS1ob3Zlci1jb2xvcicsICcjMDA2OWQ5Jyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktY29sb3InLCAnIzg2OGU5NicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LWZvbnQtY29sb3InLCAnI2ZmZmZmZicpO1xuXHRcdFx0XHRkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcicsICcwIDAgMCAwLjJyZW0gcmdiYSgxMzAsIDEzOCwgMTQ1LCAwLjUpJyk7XG5cdFx0XHRcdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zZWNvbmRhcnktaG92ZXItY29sb3InLCAnIzVhNjI2OCcpO1xuXHRcdFx0XHR0aGlzLmZvbnRTaXplID0gMTI7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMudXNlciA9IHVzZXI7XG5cdFx0fSk7XG5cblx0XHQvLyBpZiAoIXRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIpIHtcblx0XHQvLyBcdHRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIgPSB0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLmVycm9ySGFuZGxlcjtcblx0XHQvLyBcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIuZXJyb3JIYW5kbGVyID0gZnVuY3Rpb24gKGVycjogYW55KSB7XHRcblx0XHQvLyBcdFx0cmV0dXJuIHRoaXMucHJldmlvdXNSb3V0ZXJFcnJvckhhbmRsZXIuYXBwbHkodGhpcy5wcmV2aW91c1JvdXRlckVycm9ySGFuZGxlciwgYXJndW1lbnRzKTtcblx0XHQvLyBcdH07XG5cdFx0Ly8gfVxuXG5cdFx0aWYgKHRoaXMuX2RldmljZURldC5pc01vYmlsZSgpIHx8IHRoaXMuX2RldmljZURldC5pc1RhYmxldCgpKSB7XG5cdFx0XHR0aGlzLl9zZXJ2aWNlcy5fYXBwLnNldElzRGV2aWNlKHRydWUpO1xuXHRcdFx0dGhpcy5pc0RldmljZSA9IHRydWU7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRJc0RldmljZShmYWxzZSk7XG5cdFx0XHR0aGlzLmlzRGV2aWNlID0gZmFsc2U7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZW52aXJvbm1lbnQuSVNfUFJPRFVDVElPTikge1xuXHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5zdWJzY3JpYmVCeXBhc3NSb3V0ZSgnZmxhZ1dpdGhUeXBlJywgJ25ld1NXJykuc3Vic2NyaWJlKGZsYWcgPT4ge1xuXHRcdFx0XHRpZiAoZmxhZykge1xuXHRcdFx0XHRcdHRoaXMuc3dGbGFnQWxlcnQgPSB0aGlzLl9zZXJ2aWNlcy5fYWxlcnQuc2V0QWxlcnQoJ2luZm8nLCAnVGhpcyBwYWdlIHdpbGwgcmVsb2FkIG9uY2UgbmV3IHZlcnNpb24gaGFzIGJlZW4gZG93bmxvYWRlZCcsIDApO1xuXHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0SXNJbnZhbGlkU1codHJ1ZSk7XG5cblx0XHRcdFx0XHRpZiAoIW5hdmlnYXRvci5zZXJ2aWNlV29ya2VyKSB7XG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdFx0XHRcdFx0fSwgMTAwMDApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKS50aGVuKHJlZ2lzdHJhdGlvbnMgPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAoIXJlZ2lzdHJhdGlvbnMgfHwgIXJlZ2lzdHJhdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG5cdFx0XHRcdFx0XHRcdFx0fSwgMTAwMDApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAodGhpcy5zd0ZsYWdBbGVydCkge1xuXHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hcHAuc2V0SXNJbnZhbGlkU1coZmFsc2UpO1xuXHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hbGVydC5jbGVhckFsZXJ0KHRoaXMuc3dGbGFnQWxlcnQudG9hc3RJZCk7XG5cdFx0XHRcdFx0dGhpcy5zd0ZsYWdBbGVydCA9IG51bGw7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHRoaXMuX29mZmxpbmUub2ZmbGluZU1vZGUuc3Vic2NyaWJlKG9mZmxpbmUgPT4ge1xuXHRcdFx0dGhpcy5pc09mZmxpbmUgPSBvZmZsaW5lO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX2FjY291bnQuZ2V0U29ja2V0U3RhdHVzKCkuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XG5cdFx0XHR0aGlzLnNvY2tldFN0YXR1cyA9IHN0YXR1cztcblx0XHRcdFxuXHRcdFx0aWYgKCF0aGlzLnVzZXIpIHtcblx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuXG5cdFx0XHRcdHRoaXMuY29ubmVjdGVkSGVpZ2h0ID0gNDA7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0aWYgKHRoaXMuc29ja2V0U3RhdHVzID09PSBXZWJTb2NrZXQuT1BFTikge1xuXHRcdFx0XHRcdHRoaXMuaXNDb25uZWN0ZWQgPSB0cnVlO1xuXHRcdFx0XHRcdHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RlZCA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0aWYgKHRoaXMuc29ja2V0U3RhdHVzID09PSBXZWJTb2NrZXQuQ09OTkVDVElORykge1xuXHRcdFx0XHRcdFx0dGhpcy5pc0Nvbm5lY3RpbmcgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHRpZiAoIXRoaXMuaXNDb25uZWN0ZWQpIHtcblx0XHRcdFx0XHR0aGlzLmNvbm5lY3RlZEhlaWdodCA9IDQwO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuY29ubmVjdGVkSGVpZ2h0ID0gMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5zdWJzY3JpYmVCeXBhc3NSb3V0ZSgnYXBwc3RhdHVzJykuc3Vic2NyaWJlKGFwcHN0YXR1cyA9PiB7XG5cdFx0XHR0aGlzLnN0YXR1cyA9IGFwcHN0YXR1czsgLy9PSyBpZiBub3QgZGVmaW5lZFxuXHRcdFx0dGhpcy5fc2VydmljZXMuX2FwcC5zZXRIYXNTdGF0dXNNZXNzYWdlKHRoaXMuc3RhdHVzID8gdHJ1ZSA6IGZhbHNlKTtcblx0XHRcdHRoaXMuc3RhdHVzSGVpZ2h0ID0gdGhpcy5zdGF0dXMgPyA0MCA6IDA7XG5cdFx0fSk7XG5cblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMubmF2YmFyTWFpbkhlaWdodCA9IHRoaXMuZWxfbmF2QmFyTWFpbi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodDtcblx0XHR9LCAxMDApO1xuXHRcdFxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5uYXZiYXJNYWluSGVpZ2h0ID0gdGhpcy5lbF9uYXZCYXJNYWluLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0O1xuXHRcdH0sIDEwMDApO1xuXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLm5hdmJhck1haW5IZWlnaHQgPSB0aGlzLmVsX25hdkJhck1haW4ubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5jbGllbnRIZWlnaHQ7XG5cdFx0fSwgNTAwMCk7XG5cblx0XHRpZiAodGhpcy5pc0RldmljZSkge1xuXHRcdFx0bGV0IGZpcnN0UmVkaXJlY3QgPSBmYWxzZTtcblx0XHRcdGxldCBsYXN0VVJMID0gdGhpcy5fc3RvcmFnZS5nZXQoJ2xhc3RVUkwnKTtcblxuXHRcdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuXHRcdFx0XHRpZiAobGFzdFVSTCAmJiBsYXN0VVJMICE9PSAnLycgJiYgIWZpcnN0UmVkaXJlY3QpIHtcblx0XHRcdFx0XHRpZiAoZXZlbnQudXJsID09PSAnJyB8fCBldmVudC51cmwgPT09ICcvJykge1xuXHRcdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxhc3RVUkwpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZpcnN0UmVkaXJlY3QgPSB0cnVlO1xuXG5cdFx0XHRcdGlmIChldmVudC51cmwpIHtcblx0XHRcdFx0XHR0aGlzLl9zdG9yYWdlLnNldCgnbGFzdFVSTCcsIGV2ZW50LnVybCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSBpZiAoZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMpIHtcblx0XHRcdFx0XHR0aGlzLl9zdG9yYWdlLnNldCgnbGFzdFVSTCcsIGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKTtcblx0XHRcdFx0fVx0XHRcdFx0XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRpZiAoWydpUGFkJywgJ2lQaG9uZScsICdpUG9kJ10uaW5kZXhPZihuYXZpZ2F0b3IucGxhdGZvcm0pID49IDAgJiYgKCdzdGFuZGFsb25lJyBpbiB3aW5kb3cubmF2aWdhdG9yKSAmJiAoPGFueT53aW5kb3cubmF2aWdhdG9yKS5zdGFuZGFsb25lKSB7XG5cdFx0XHR0aGlzLnNob3dOYXZpZ2F0aW9uTWVudSA9IHRydWU7XG5cdFx0fVxuXG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29yaWVudGF0aW9uY2hhbmdlJywgKCkgPT4ge1xuXHRcdFx0aWYgKHdpbmRvdy5vcmllbnRhdGlvbiA9PT0gLTkwKSB7XG5cdFx0XHRcdHRoaXMub3JpZW50YXRpb24gPSAnbGFuZHNjYXBlJztcblx0XHRcdH1cblx0XHRcdGlmICh3aW5kb3cub3JpZW50YXRpb24gPT09IDkwKSB7XG5cdFx0XHRcdHRoaXMub3JpZW50YXRpb24gPSAnbGFuZHNjYXBlJztcblx0XHRcdH1cblx0XHRcdGlmICh3aW5kb3cub3JpZW50YXRpb24gPT09IDApIHtcblx0XHRcdFx0dGhpcy5vcmllbnRhdGlvbiA9ICdwb3J0cmFpdCc7XG5cdFx0XHR9XG5cdFx0fSwgdHJ1ZSk7XG5cblx0XHRsZXQgbW91c2V3aGVlbEV2ZW50O1xuXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUgPT09ICdJTlBVVCcgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudFsndHlwZSddID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIG1vdXNld2hlZWxFdmVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V3aGVlbCcsIGhhbmRsZU1vdXNld2hlZWxFdmVudCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCB0cnVlKTtcblxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAobW91c2V3aGVlbEV2ZW50KSB7XG4gICAgICAgICAgICAgICAgbW91c2V3aGVlbEV2ZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V3aGVlbCcsIGhhbmRsZU1vdXNld2hlZWxFdmVudCk7XG4gICAgICAgICAgICB9XG5cdFx0fSwgdHJ1ZSk7XG5cdFx0XG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgKGUpID0+IHtcblx0XHRcdGxldCBldiA9IGUgfHwgZXZlbnQ7XG5cdFx0XHRldi5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH0sIGZhbHNlKTtcblx0XHRcblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIChlKSA9PiB7XG5cdFx0XHRsZXQgZXYgPSBlIHx8IGV2ZW50O1xuXHRcdFx0ZXYucHJldmVudERlZmF1bHQoKTtcblx0XHR9LCBmYWxzZSk7XG5cdH1cblxuXHRnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWxfbmF2QmFyTW9kdWxlLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0O1xuXHR9XG5cblx0b25QdXNoQmFja0J1dHRvbigpIHtcblx0XHR3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XG5cdH1cblxuXHRvblB1c2hSZWxvYWRCdXR0b24oKSB7XG5cdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuXHR9XG5cblx0b25QdXNoRm9yd2FyZEJ1dHRvbigpIHtcblx0XHR3aW5kb3cuaGlzdG9yeS5mb3J3YXJkKCk7XG5cdH1cblxuXHRvcGVuTmF2KCkge1xuXHRcdGxldCB4ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdlNpZCcpO1xuXHRcdGxldCB5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5fY29udCcpO1xuXHRcdGlmICh4LnN0eWxlLndpZHRoID09PSAnNDBweCcgJiYgeS5zdHlsZS5wYWRkaW5nTGVmdCA9PT0gJzU1cHgnKSB7XG5cdFx0XHR4LnN0eWxlLndpZHRoID0gJzE5NXB4Jztcblx0XHRcdHkuc3R5bGUucGFkZGluZ0xlZnQgPSAnMjEwcHgnO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHguc3R5bGUud2lkdGggPSAnNDBweCc7XG5cdFx0XHR5LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzU1cHgnO1xuXHRcdH1cblx0fVxuXHRcdFxuXHRjbG9zZU5hdigpIHtcblx0XHRkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmF2U2lkJykuc3R5bGUud2lkdGggPSAnNDBweCc7XG5cdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5fY29udCcpLnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzU1cHgnO1x0XG5cdH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlTW91c2V3aGVlbEV2ZW50KCkge1xuXHQoPGFueT5kb2N1bWVudC5hY3RpdmVFbGVtZW50KS5ibHVyKCk7XG59XG5cbmZ1bmN0aW9uIGhleFRvUkdCKGhleCwgYWxwaGEpIHtcbiAgICBsZXQgciA9IHBhcnNlSW50KGhleC5zbGljZSgxLCAzKSwgMTYpLFxuICAgICAgICBnID0gcGFyc2VJbnQoaGV4LnNsaWNlKDMsIDUpLCAxNiksXG4gICAgICAgIGIgPSBwYXJzZUludChoZXguc2xpY2UoNSwgNyksIDE2KTtcblxuICAgIGlmIChhbHBoYSkge1xuICAgICAgICByZXR1cm4gXCJyZ2JhKFwiICsgciArIFwiLCBcIiArIGcgKyBcIiwgXCIgKyBiICsgXCIsIFwiICsgYWxwaGEgKyBcIilcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gXCJyZ2IoXCIgKyByICsgXCIsIFwiICsgZyArIFwiLCBcIiArIGIgKyBcIilcIjtcbiAgICB9XG59IiwiPHN0eWxlPlxuXHQ6cm9vdCB7XG4gICAgICAgIC0td2FybmluZy1jb2xvcjogI2ZmYzEwNztcbiAgICAgICAgLS13YXJuaW5nLWZvbnQtY29sb3I6ICMwMDAwMDA7XG4gICAgICAgIC0td2FybmluZy1ob3Zlci1jb2xvcjogI2UwYTgwMDtcbiAgICAgICAgLS13YXJuaW5nLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoMjIyLCAxNzAsIDEyLCAwLjUpO1xuICAgICAgICAtLXN1Y2Nlc3MtY29sb3I6ICMyOGE3NDU7XG4gICAgICAgIC0tc3VjY2Vzcy1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLXN1Y2Nlc3MtaG92ZXItY29sb3I6ICMyMTg4Mzg7XG4gICAgICAgIC0tc3VjY2Vzcy1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDcyLCAxODAsIDk3LCAwLjUpO1xuICAgICAgICAtLWRhbmdlci1jb2xvcjogI2RjMzU0NTtcbiAgICAgICAgLS1kYW5nZXItZm9udC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgLS1kYW5nZXItaG92ZXItY29sb3I6ICNjODIzMzM7XG4gICAgICAgIC0tZGFuZ2VyLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoMjI1LCA4MywgOTcsIDAuNSk7XG4gICAgICAgIC0taW5mby1jb2xvcjogIzE3YTJiODtcbiAgICAgICAgLS1pbmZvLWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0taW5mby1ob3Zlci1jb2xvcjogIzEzODQ5NjtcbiAgICAgICAgLS1pbmZvLXNoYWRvdy1jb2xvcjogMCAwIDAgMC4ycmVtIHJnYmEoNTgsIDE3NiwgMTk1LCAwLjUpO1xuICAgICAgICAtLXByaW1hcnktY29sb3I6ICMwMDdiZmY7XG4gICAgICAgIC0tcHJpbWFyeS1mb250LWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAtLXByaW1hcnktaG92ZXItY29sb3I6ICMwMDY5ZDk7XG4gICAgICAgIC0tcHJpbWFyeS1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDM4LCAxNDMsIDI1NSwgMC41KTtcbiAgICAgICAgLS1zZWNvbmRhcnktY29sb3I6ICM4NjhlOTY7XG4gICAgICAgIC0tc2Vjb25kYXJ5LWZvbnQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIC0tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yOiAjNWE2MjY4O1xuICAgICAgICAtLXNlY29uZGFyeS1zaGFkb3ctY29sb3I6IDAgMCAwIDAuMnJlbSByZ2JhKDEzMCwgMTM4LCAxNDUsIDAuNSk7XG4gICAgfVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLXdhcm5pbmcge1xuXHRcdGNvbG9yOiB2YXIoLS13YXJuaW5nLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmctY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4td2FybmluZzpmb2N1cywgLmJ0bi13YXJuaW5nLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS13YXJuaW5nLXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4td2FybmluZzpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXdhcm5pbmctZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZy1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS13YXJuaW5nLWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLXN1Y2Nlc3Mge1xuXHRcdGNvbG9yOiB2YXIoLS1zdWNjZXNzLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3MtY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tc3VjY2Vzcy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc3VjY2Vzczpmb2N1cywgLmJ0bi1zdWNjZXNzLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1zdWNjZXNzLXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc3VjY2Vzczpob3ZlciB7XG5cdFx0Y29sb3I6IHZhcigtLXN1Y2Nlc3MtZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzcy1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzLWhvdmVyLWNvbG9yKTtcblx0fVxuXG5cdDpob3N0IC9kZWVwLyAuYnRuLWRhbmdlciB7XG5cdFx0Y29sb3I6IHZhcigtLWRhbmdlci1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYW5nZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tZGFuZ2VyLWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1kYW5nZXI6Zm9jdXMsIC5idG4tZGFuZ2VyLmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1kYW5nZXItc2hhZG93LWNvbG9yKTtcblx0fVxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1kYW5nZXI6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1kYW5nZXItZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFuZ2VyLWhvdmVyLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWRhbmdlci1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1pbmZvIHtcblx0XHRjb2xvcjogdmFyKC0taW5mby1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbmZvLWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWluZm8tY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLWluZm86Zm9jdXMsIC5idG4taW5mby5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0taW5mby1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLWluZm86aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1pbmZvLWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWluZm8taG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0taW5mby1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1wcmltYXJ5IHtcblx0XHRjb2xvcjogdmFyKC0tcHJpbWFyeS1mb250LWNvbG9yKTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXByaW1hcnk6Zm9jdXMsIC5idG4tcHJpbWFyeS5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tcHJpbWFyeS1zaGFkb3ctY29sb3IpO1xuXHR9XG5cdDpob3N0IC9kZWVwLyAuYnRuLXByaW1hcnk6aG92ZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1wcmltYXJ5LWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktaG92ZXItY29sb3IpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1ob3Zlci1jb2xvcik7XG5cdH1cblxuXHQ6aG9zdCAvZGVlcC8gLmJ0bi1zZWNvbmRhcnkge1xuXHRcdGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktZm9udC1jb2xvcik7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc2Vjb25kYXJ5OmZvY3VzLCAuYnRuLXNlY29uZGFyeS5mb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcik7XG5cdH1cblx0Omhvc3QgL2RlZXAvIC5idG4tc2Vjb25kYXJ5OmhvdmVyIHtcblx0XHRjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWZvbnQtY29sb3IpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1ob3Zlci1jb2xvcik7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktaG92ZXItY29sb3IpO1xuXHR9XG5cdFxuICBcdEBtZWRpYSBwcmludCB7XG5cdCAgXHQuZG9udFByaW50ICoge1xuXHRcdCAgXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdCAgXHR9XG5cblx0XHQubXlEaXZUb1ByaW50Q3Mge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxMnB4O1xuXHRcdFx0cGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG5cdFx0XHRkaXNwbGF5OiBpbml0aWFsO1xuXHRcdH1cblxuXHRcdC5yZW1vdmVPdmVyZmxvdyB7XG5cdFx0XHRvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDsgXG5cdFx0XHRoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcblx0XHR9XG4gIFx0fVxuXG4gIFx0LmhpZGVUaGlzIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQubmF2U2lkYmFyIHtcblx0XHR3aWR0aDogMHB4O1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR6LWluZGV4OiAxO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMzNDNhNDA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0cmFuc2l0aW9uOiAwLjVzO1xuXHRcdHBhZGRpbmctdG9wOiAwcHg7XG5cdH1cblxuXHQubmF2U2lkYmFyIGEge1xuXHRcdHBhZGRpbmc6IDhweCA4cHggOHB4IDMycHg7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGZvbnQtc2l6ZTogMjVweDtcblx0XHRjb2xvcjogIzgxODE4MTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR0cmFuc2l0aW9uOiAwLjNzO1xuXHR9XG5cblx0Lm5hdlNpZGJhciBhOmhvdmVyIHtcblx0XHRjb2xvcjogI2YxZjFmMTtcblx0fVxuXG5cdC5vcGVuYnRuIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzYTQwO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRwYWRkaW5nOiA1cHggMjBweDtcblx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0dG9wOiAwcHg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IDk5OTk5OTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXG5cdC5vcGVuYnRuIHNwYW4ge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC05MGRlZyk7XG5cdFx0bWFyZ2luLXRvcDogLTU1cHg7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDMwcHg7XG5cdH1cblx0I21haW5fY29udCB7XG5cdFx0dHJhbnNpdGlvbjogcGFkZGluZy1sZWZ0IC41cztcblx0fVxuXG5cdC5zaWRfaW5yIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDI1cHg7XG5cdH1cblxuPC9zdHlsZT5cbjxkaXYgKm5nSWY9XCJpc0RldmljZVwiPlxuXHQ8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgdHlwZT1cInRleHQvY3NzXCIgaHJlZj1cIi9hc3NldHMvY3NzL3RhYmxldC5jc3NcIj5cbjwvZGl2PlxuPGRpdiAjc2hlbGw+XG5cdDxkaXYgKm5nSWY9XCJ1c2VyICYmICghaXNDb25uZWN0ZWQgfHwgaXNPZmZsaW5lKVwiPlxuXHRcdDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyBjb2xvcjogd2hpdGU7XCI+XG5cdFx0XHQ8ZGl2IHN0eWxlPVwicGFkZGluZy10b3A6IDlweDsgcGFkZGluZy1ib3R0b206IDlweDtcIj4qKiogT0ZGTElORSBNT0RFICoqKjwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiAqbmdJZj1cIiF1c2VyICYmICghaXNDb25uZWN0ZWQgfHwgaXNPZmZsaW5lKVwiPlxuXHRcdDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyBjb2xvcjogd2hpdGU7XCI+XG5cdFx0XHQ8ZGl2IHN0eWxlPVwicGFkZGluZy10b3A6IDlweDsgcGFkZGluZy1ib3R0b206IDlweDtcIj4qKiogUExFQVNFIExPR0lOICoqKjwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiAqbmdJZj1cInN0YXR1c1wiPlxuXHRcdDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyBjb2xvcjogd2hpdGU7XCI+XG5cdFx0XHQ8ZGl2IHN0eWxlPVwicGFkZGluZy10b3A6IDlweDsgcGFkZGluZy1ib3R0b206IDlweDtcIj4qKioge3sgc3RhdHVzLm1lc3NhZ2UgfX0gKioqPC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHQ8ZGl2ICpuZ0lmPVwiZnVsbFNjcmVlblwiPlxuXHRcdDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJqb2Jib2FyZGZzb3V0bGV0XCI+PC9yb3V0ZXItb3V0bGV0PlxuXHQ8L2Rpdj5cblx0PGRpdiBbbmdDbGFzc109XCJbJ2NvbnRhaW5lci1mbHVpZCcsIGZ1bGxTY3JlZW4gPyAnaGlkZVRoaXMnIDogJyddXCIgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJmb250U2l6ZVwiPlxuXHRcdDxkaXYgY2xhc3M9XCJkb250UHJpbnRcIj5cblx0XHRcdDxuYXZiYXItbWFpbiBzdHlsZT1cIndpZHRoOiAxMDAlXCIgdG91ckFuY2hvcj1cIm5hdkJhck1haW5cIiAjbmF2QmFyTWFpbiBbbG9nb109XCJsb2dvXCIgW25hdlRhYnNdPVwibmF2VGFic1wiIFtmb250U2l6ZV09XCJmb250U2l6ZVwiPjwvbmF2YmFyLW1haW4+XG5cdFx0PC9kaXY+XG5cdFx0PG5nLXRlbXBsYXRlIG5nYk1vZGFsQ29udGFpbmVyPjwvbmctdGVtcGxhdGU+XG5cdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0PGRpdiBpZD1cIm5hdlNpZFwiIFtuZ0NsYXNzXT1cIlsnZG9udFByaW50Jywgd2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyAnbmF2U2lkYmFyJyA6ICdjb2wteGwtMSddXCIgW3N0eWxlLndpZHRoXT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gNDAgKyAncHgnIDogMTAwICsgJyUnXCIgW3N0eWxlLm1hcmdpbi10b3AucHhdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyBuYXZiYXJNYWluSGVpZ2h0ICsgc3RhdHVzSGVpZ2h0ICsgY29ubmVjdGVkSGVpZ2h0IDogMFwiID5cblx0XHRcdFx0PGRpdiBjbGFzcz1cIm9wZW5idG5cIiAqbmdJZj1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51XCIgKG1vdXNlZW50ZXIpPVwib3Blbk5hdigpXCI+PHNwYW4+TUVOVTwvc3Bhbj48L2Rpdj5cblx0XHRcdFx0PGRpdiBbbmdDbGFzc109XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/ICdzaWRfaW5yJyA6ICcnXCI+XG5cdFx0XHRcdFx0PG5hdmJhci1tb2R1bGUgI25hdkJhck1vZHVsZSB0b3VyQW5jaG9yPVwibmF2QmFyTW9kdWxlXCIgW3NpZGVOYXZXaWR0aF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/ICc5MCUnIDogJ2F1dG8nXCIgW3NpZGVOYXZIZWlnaHRdPVwid2luZG93U2l6ZVdpZHRoID4gMTIwMCAmJiBjb2xsYXBzYWJsZU1lbnUgPyB3aW5kb3dTaXplSGVpZ2h0IC0gbmF2YmFyTWFpbkhlaWdodCAtIHN0YXR1c0hlaWdodCAtIGNvbm5lY3RlZEhlaWdodCAtIChzaG93TmF2aWdhdGlvbk1lbnUgPyAoNTQgKyBnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSkgOiAwKSAtICgoIWlzRGV2aWNlIHx8IChpc0RldmljZSAmJiBzaG93TmF2aWdhdGlvbk1lbnUpKSA/IDIwIDogMCkgOiAnJ1wiPjwvbmF2YmFyLW1vZHVsZT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgW2lkXT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgPyAnbWFpbl9jb250JyA6ICdtYWluX2NvbnRfbW9iaWxlJ1wiIFtuZ0NsYXNzXT1cIlt3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/ICdjb2wteGwtMTInIDogJ2NvbC14bC0xMSddXCIgW3N0eWxlLnBhZGRpbmctbGVmdC5weF09XCJ3aW5kb3dTaXplV2lkdGggPiAxMjAwICYmIGNvbGxhcHNhYmxlTWVudSA/IDU1IDogMFwiIChtb3VzZWVudGVyKT1cIndpbmRvd1NpemVXaWR0aCA+IDEyMDAgJiYgY29sbGFwc2FibGVNZW51ID8gY2xvc2VOYXYoKSA6IG51bGxcIj5cblx0XHRcdFx0PGRpdiBzdHlsZT1cInBhZGRpbmctdG9wOiAxNXB4OyAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2hcIiBbc3R5bGUub3ZlcmZsb3cteV09XCIoaXNEZXZpY2UgJiYgIXNob3dOYXZpZ2F0aW9uTWVudSkgPyAnaW5pdGlhbCcgOiAnc2Nyb2xsJ1wiIFtzdHlsZS5oZWlnaHQucHhdPVwid2luZG93U2l6ZUhlaWdodCAtICgoaXNEZXZpY2UgfHwgd2luZG93U2l6ZVdpZHRoIDw9IDEyMDApICYmICFzaG93TmF2aWdhdGlvbk1lbnUgPyAoZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkgPiAxMDAgPyAwIDogZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkpIDogMCkgLSBuYXZiYXJNYWluSGVpZ2h0IC0gc3RhdHVzSGVpZ2h0IC0gY29ubmVjdGVkSGVpZ2h0IC0gKGlzRGV2aWNlICYmIHNob3dOYXZpZ2F0aW9uTWVudSA/ICg1NCArIChnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSA+IDEwMCA/IDAgOiBnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSkpIDogMCkgLSAoKCFpc0RldmljZSB8fCAoaXNEZXZpY2UgJiYgc2hvd05hdmlnYXRpb25NZW51KSkgPyAyMCA6IDApXCIgY2xhc3M9XCJyZW1vdmVPdmVyZmxvd1wiPlxuXHRcdFx0XHRcdDxkaXYgW3N0eWxlLmhlaWdodC5weF09XCJ3aW5kb3dTaXplSGVpZ2h0ICsgMSAtICgoaXNEZXZpY2UgfHwgd2luZG93U2l6ZVdpZHRoIDw9IDEyMDApICYmICFzaG93TmF2aWdhdGlvbk1lbnUgPyAoZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkgPiAxMDAgPyAwIDogZ2V0TmF2YmFyTW9kdWxlSGVpZ2h0KCkpIDogMCkgLSBuYXZiYXJNYWluSGVpZ2h0IC0gc3RhdHVzSGVpZ2h0IC0gY29ubmVjdGVkSGVpZ2h0IC0gKGlzRGV2aWNlICYmIHNob3dOYXZpZ2F0aW9uTWVudSA/ICg1NCArIChnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSA+IDEwMCA/IDAgOiBnZXROYXZiYXJNb2R1bGVIZWlnaHQoKSkpIDogMCkgLSAoKCFpc0RldmljZSB8fCAoaXNEZXZpY2UgJiYgc2hvd05hdmlnYXRpb25NZW51KSkgPyA2MCA6IDApXCIgY2xhc3M9XCJyZW1vdmVPdmVyZmxvd1wiPlxuXHRcdFx0XHRcdFx0PHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJpc0RldmljZSAmJiBzaG93TmF2aWdhdGlvbk1lbnVcIiBzdHlsZT1cImhlaWdodDogNTRweDsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5OyBtYXJnaW4tbGVmdDogLTE1cHg7IG1hcmdpbi1yaWdodDogLTE1cHg7XCIgY2xhc3M9XCJkb250UHJpbnRcIj5cblx0XHRcdDx0YWJsZSBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG5cdFx0XHRcdDx0cj5cblx0XHRcdFx0XHQ8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIj5cblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXlcIiAoY2xpY2spPVwib25QdXNoQmFja0J1dHRvbigpXCI+PGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1sZWZ0XCIgc3R5bGU9XCJjb2xvcjogYmxhY2s7IGZvbnQtc2l6ZTogMjBweFwiPjwvaT48L2J1dHRvbj5cblx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlclwiPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheVwiIChjbGljayk9XCJvblB1c2hSZWxvYWRCdXR0b24oKVwiPjxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaFwiIHN0eWxlPVwiY29sb3I6IGJsYWNrOyBmb250LXNpemU6IDIwcHhcIj48L2k+PC9idXR0b24+XG5cdFx0XHRcdFx0PC90ZD5cblx0XHRcdFx0XHQ8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIj5cblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXlcIiAoY2xpY2spPVwib25QdXNoRm9yd2FyZEJ1dHRvbigpXCI+PGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1yaWdodFwiIHN0eWxlPVwiY29sb3I6IGJsYWNrOyBmb250LXNpemU6IDIwcHhcIj48L2k+PC9idXR0b24+XG5cdFx0XHRcdFx0PC90ZD5cblx0XHRcdFx0PC90cj5cblx0XHRcdDwvdGFibGU+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cIiFpc0RldmljZVwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBoZWlnaHQ6IDIwcHg7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC13ZWlnaHQ6IGJvbGQ7IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsgbWFyZ2luLWxlZnQ6IC0xNXB4OyBtYXJnaW4tcmlnaHQ6IC0xNXB4O1wiPiZjb3B5OyB7e3llYXJ9fSBSRVNPTFZFSU8gQUxMIFJJR0hUUyBSRVNFUlZFRDwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -5058,6 +5058,20 @@ class CoreComponent extends BaseComponent {
|
|
|
5058
5058
|
if (flag) {
|
|
5059
5059
|
this.swFlagAlert = this._services._alert.setAlert('info', 'This page will reload once new version has been downloaded', 0);
|
|
5060
5060
|
this._services._app.setIsInvalidSW(true);
|
|
5061
|
+
if (!navigator.serviceWorker) {
|
|
5062
|
+
setTimeout(() => {
|
|
5063
|
+
window.location.reload();
|
|
5064
|
+
}, 10000);
|
|
5065
|
+
}
|
|
5066
|
+
else {
|
|
5067
|
+
navigator.serviceWorker.getRegistrations().then(registrations => {
|
|
5068
|
+
if (!registrations || !registrations.length) {
|
|
5069
|
+
setTimeout(() => {
|
|
5070
|
+
window.location.reload();
|
|
5071
|
+
}, 10000);
|
|
5072
|
+
}
|
|
5073
|
+
});
|
|
5074
|
+
}
|
|
5061
5075
|
}
|
|
5062
5076
|
else if (this.swFlagAlert) {
|
|
5063
5077
|
this._services._app.setIsInvalidSW(false);
|