http-request-manager 15.0.19 → 15.0.24
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/esm2022/lib/http-request-manager.module.mjs +2 -2
- package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +71 -0
- package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +5 -5
- package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +2 -2
- package/esm2022/lib/interceptors/request-error.interceptor.mjs +3 -3
- package/esm2022/lib/services/database-manager-services/database.manager.service.mjs +119 -0
- package/esm2022/lib/services/database-manager-services/db.storage.service.mjs +143 -0
- package/esm2022/lib/services/database-manager-services/index.mjs +4 -0
- package/esm2022/lib/services/database-manager-services/models/table-schema.mjs +20 -0
- package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +2 -2
- package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +3 -3
- package/esm2022/lib/services/request-manager-services/request.service.mjs +5 -5
- package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +3 -3
- package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +3 -3
- package/esm2022/lib/services/utils/object-merger.service.mjs +3 -3
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/http-request-manager.mjs +360 -18
- package/fesm2022/http-request-manager.mjs.map +1 -1
- package/http-request-manager-15.0.24.tgz +0 -0
- package/lib/http-request-services-demo/database-data-demo/database-data-demo.component.d.ts +19 -0
- package/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.d.ts +9 -9
- package/lib/interceptors/request-error.interceptor.d.ts +2 -2
- package/lib/services/database-manager-services/database.manager.service.d.ts +31 -0
- package/lib/services/database-manager-services/db.storage.service.d.ts +26 -0
- package/lib/services/database-manager-services/index.d.ts +3 -0
- package/lib/services/database-manager-services/models/table-schema.d.ts +11 -0
- package/lib/services/request-manager-services/http-manager.service.d.ts +2 -2
- package/lib/services/request-manager-state-service/models/api-request.model.d.ts +8 -8
- package/package.json +10 -1
- package/public-api.d.ts +4 -0
- package/http-request-manager-15.0.19.tgz +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
|
-
import { ToastMessageDisplayModule } from 'toast-message-display';
|
|
4
3
|
import { WithCredentialsInterceptor, RequestHeadersInterceptor } from './interceptors';
|
|
5
4
|
import { TranslateModule } from '@ngx-translate/core';
|
|
6
5
|
import { RequestManagerDemoComponent } from './http-request-services-demo/request-manager-demo/request-manager-demo.component';
|
|
@@ -30,6 +29,7 @@ import { ConfigOptions } from './models';
|
|
|
30
29
|
import { CONFIG_SETTINGS_TOKEN } from './models/config-token.model';
|
|
31
30
|
import { HTTPManagerService, LocalStorageManagerService } from './services';
|
|
32
31
|
import { FileDownloaderModule } from './http-request-services-demo/request-manager-demo/file-downloader/file-download.module';
|
|
32
|
+
import { ToastMessageDisplayModule } from 'toast-message-display';
|
|
33
33
|
import * as i0 from "@angular/core";
|
|
34
34
|
import * as i1 from "@ngx-translate/core";
|
|
35
35
|
export class HttpRequestManagerModule {
|
|
@@ -143,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
143
143
|
],
|
|
144
144
|
}]
|
|
145
145
|
}] });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LW1hbmFnZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3QtbWFuYWdlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtGQUFrRixDQUFDO0FBQy9ILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDhGQUE4RixDQUFDO0FBQ2hKLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBQ3pILGtIQUFrSDtBQUVsSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFF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LEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUNuRSxrQkFBa0IsRUFBRSwwQkFBMEI7cUJBQy9DO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUb2FzdE1lc3NhZ2VEaXNwbGF5TW9kdWxlIH0gZnJvbSAndG9hc3QtbWVzc2FnZS1kaXNwbGF5JztcblxuaW1wb3J0IHsgV2l0aENyZWRlbnRpYWxzSW50ZXJjZXB0b3IsIFJlcXVlc3RIZWFkZXJzSW50ZXJjZXB0b3IgfSBmcm9tICcuL2ludGVyY2VwdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgUmVxdWVzdE1hbmFnZXJEZW1vQ29tcG9uZW50IH0gZnJvbSAnLi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LW1hbmFnZXItZGVtby9yZXF1ZXN0LW1hbmFnZXItZGVtby5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVxdWVzdE1hbmFnZXJTdGF0ZURlbW9Db21wb25lbnQgfSBmcm9tICcuL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1kZW1vL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1kZW1vLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VEZW1vQ29tcG9uZW50IH0gZnJvbSAnLi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9sb2NhbC1zdG9yYWdlLWRlbW8vbG9jYWwtc3RvcmFnZS1kZW1vLmNvbXBvbmVudCc7XG4vLyBpbXBvcnQgeyBEYXRhYmFzZURhdGFEZW1vQ29tcG9uZW50IH0gZnJvbSAnLi9nbG9iYWwtZGF0YS1kZW1vL2RhdGFiYXNlLWRhdGEtZGVtby9kYXRhYmFzZS1kYXRhLWRlbW8uY29tcG9uZW50JztcblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgUHJveHlEZWJ1Z2dlckludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvcHJveHktZGVidWdnZXIuaW50ZXJjZXB0b3InO1xuXG5pbXBvcnQgeyBIdHRwUmVxdWVzdFNlcnZpY2VzRGVtb0NvbXBvbmVudCB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8uY29tcG9uZW50JztcblxuaW1wb3J0IHsgQ29uZmlnT3B0aW9ucyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IENPTkZJR19TRVRUSU5HU19UT0tFTiB9IGZyb20gJy4vbW9kZWxzL2NvbmZpZy10b2tlbi5tb2RlbCc7XG5pbXBvcnQgeyBIVFRQTWFuYWdlclNlcnZpY2UsIExvY2FsU3RvcmFnZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5cbmltcG9ydCB7IEZpbGVEb3dubG9hZGVyTW9kdWxlIH0gZnJvbSAnLi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LW1hbmFnZXItZGVtby9maWxlLWRvd25sb2FkZXIvZmlsZS1kb3dubG9hZC5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRvYXN0TWVzc2FnZURpc3BsYXlNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFRvb2xiYXJNb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvclJvb3QoKSxcbiAgICBNYXRTaWRlbmF2TW9kdWxlLFxuICAgIEZpbGVEb3dubG9hZGVyTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBIdHRwUmVxdWVzdFNlcnZpY2VzRGVtb0NvbXBvbmVudCxcbiAgICBSZXF1ZXN0TWFuYWdlclN0YXRlRGVtb0NvbXBvbmVudCxcbiAgICBSZXF1ZXN0TWFuYWdlckRlbW9Db21wb25lbnQsXG4gICAgTG9jYWxTdG9yYWdlRGVtb0NvbXBvbmVudFxuICAgIC8vIERhdGFiYXNlRGF0YURlbW9Db21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBIdHRwUmVxdWVzdFNlcnZpY2VzRGVtb0NvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IFdpdGhDcmVkZW50aWFsc0ludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBSZXF1ZXN0SGVhZGVyc0ludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBQcm94eURlYnVnZ2VySW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBDT05GSUdfU0VUVElOR1NfVE9LRU4sIHVzZVZhbHVlOiBDb25maWdPcHRpb25zLmFkYXB0KCkgfSxcbiAgICBIVFRQTWFuYWdlclNlcnZpY2UsIExvY2FsU3RvcmFnZU1hbmFnZXJTZXJ2aWNlXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEh0dHBSZXF1ZXN0TWFuYWdlck1vZHVsZSB7XG5cbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBDb25maWdPcHRpb25zID0gQ29uZmlnT3B0aW9ucy5hZGFwdCgpKTogTW9kdWxlV2l0aFByb3ZpZGVyczxIdHRwUmVxdWVzdE1hbmFnZXJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEh0dHBSZXF1ZXN0TWFuYWdlck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IENPTkZJR19TRVRUSU5HU19UT0tFTiwgdXNlVmFsdWU6IENvbmZpZ09wdGlvbnMuYWRhcHQoY29uZmlnKSB9LFxuICAgICAgICBIVFRQTWFuYWdlclNlcnZpY2UsIExvY2FsU3RvcmFnZU1hbmFnZXJTZXJ2aWNlIC8vYWxsIHNlcnZpY2VzIHRoYXQgbmVlZCBhY2Nlc3MgdG8gY29uZmlnXG4gICAgICBdLFxuICAgIH07XG4gICAgfVxuXG59XG5cblxuIl19
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LW1hbmFnZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3QtbWFuYWdlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtGQUFrRixDQUFDO0FBQy9ILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDhGQUE4RixDQUFDO0FBQ2hKLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBQ3pILGtIQUFrSDtBQUVsSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxj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LEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUNuRSxrQkFBa0IsRUFBRSwwQkFBMEI7cUJBQy9DO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmltcG9ydCB7IFdpdGhDcmVkZW50aWFsc0ludGVyY2VwdG9yLCBSZXF1ZXN0SGVhZGVyc0ludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IFJlcXVlc3RNYW5hZ2VyRGVtb0NvbXBvbmVudCB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLWRlbW8uY29tcG9uZW50JztcbmltcG9ydCB7IFJlcXVlc3RNYW5hZ2VyU3RhdGVEZW1vQ29tcG9uZW50IH0gZnJvbSAnLi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LW1hbmFnZXItc3RhdGUtZGVtby9yZXF1ZXN0LW1hbmFnZXItc3RhdGUtZGVtby5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlRGVtb0NvbXBvbmVudCB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vbG9jYWwtc3RvcmFnZS1kZW1vL2xvY2FsLXN0b3JhZ2UtZGVtby5jb21wb25lbnQnO1xuLy8gaW1wb3J0IHsgRGF0YWJhc2VEYXRhRGVtb0NvbXBvbmVudCB9IGZyb20gJy4vZ2xvYmFsLWRhdGEtZGVtby9kYXRhYmFzZS1kYXRhLWRlbW8vZGF0YWJhc2UtZGF0YS1kZW1vLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IFByb3h5RGVidWdnZXJJbnRlcmNlcHRvciB9IGZyb20gJy4vaW50ZXJjZXB0b3JzL3Byb3h5LWRlYnVnZ2VyLmludGVyY2VwdG9yJztcblxuaW1wb3J0IHsgSHR0cFJlcXVlc3RTZXJ2aWNlc0RlbW9Db21wb25lbnQgfSBmcm9tICcuL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IENvbmZpZ09wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBDT05GSUdfU0VUVElOR1NfVE9LRU4gfSBmcm9tICcuL21vZGVscy9jb25maWctdG9rZW4ubW9kZWwnO1xuaW1wb3J0IHsgSFRUUE1hbmFnZXJTZXJ2aWNlLCBMb2NhbFN0b3JhZ2VNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuXG5pbXBvcnQgeyBGaWxlRG93bmxvYWRlck1vZHVsZSB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLWRlbW8vZmlsZS1kb3dubG9hZGVyL2ZpbGUtZG93bmxvYWQubW9kdWxlJztcblxuaW1wb3J0IHsgVG9hc3RNZXNzYWdlRGlzcGxheU1vZHVsZSB9IGZyb20gJ3RvYXN0LW1lc3NhZ2UtZGlzcGxheSc7XG5cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUb2FzdE1lc3NhZ2VEaXNwbGF5TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JSb290KCksXG4gICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICBGaWxlRG93bmxvYWRlck1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgSHR0cFJlcXVlc3RTZXJ2aWNlc0RlbW9Db21wb25lbnQsXG4gICAgUmVxdWVzdE1hbmFnZXJTdGF0ZURlbW9Db21wb25lbnQsXG4gICAgUmVxdWVzdE1hbmFnZXJEZW1vQ29tcG9uZW50LFxuICAgIExvY2FsU3RvcmFnZURlbW9Db21wb25lbnRcbiAgICAvLyBEYXRhYmFzZURhdGFEZW1vQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgSHR0cFJlcXVlc3RTZXJ2aWNlc0RlbW9Db21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBXaXRoQ3JlZGVudGlhbHNJbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfSxcbiAgICB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogUmVxdWVzdEhlYWRlcnNJbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfSxcbiAgICB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogUHJveHlEZWJ1Z2dlckludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogQ09ORklHX1NFVFRJTkdTX1RPS0VOLCB1c2VWYWx1ZTogQ29uZmlnT3B0aW9ucy5hZGFwdCgpIH0sXG4gICAgSFRUUE1hbmFnZXJTZXJ2aWNlLCBMb2NhbFN0b3JhZ2VNYW5hZ2VyU2VydmljZVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBIdHRwUmVxdWVzdE1hbmFnZXJNb2R1bGUge1xuXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogQ29uZmlnT3B0aW9ucyA9IENvbmZpZ09wdGlvbnMuYWRhcHQoKSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8SHR0cFJlcXVlc3RNYW5hZ2VyTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBIdHRwUmVxdWVzdE1hbmFnZXJNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBDT05GSUdfU0VUVElOR1NfVE9LRU4sIHVzZVZhbHVlOiBDb25maWdPcHRpb25zLmFkYXB0KGNvbmZpZykgfSxcbiAgICAgICAgSFRUUE1hbmFnZXJTZXJ2aWNlLCBMb2NhbFN0b3JhZ2VNYW5hZ2VyU2VydmljZSAvL2FsbCBzZXJ2aWNlcyB0aGF0IG5lZWQgYWNjZXNzIHRvIGNvbmZpZ1xuICAgICAgXSxcbiAgICB9O1xuICAgIH1cblxufVxuXG5cbiJdfQ==
|
package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Component, inject } from '@angular/core';
|
|
2
|
+
import { TableSchemaDef } from '../../services/database-manager-services/models/table-schema';
|
|
3
|
+
import { DatabaseManagerService } from '../../services/database-manager-services';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DatabaseDataDemoComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.db = inject(DatabaseManagerService);
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() {
|
|
10
|
+
const tableDef = TableSchemaDef.adapt({ table: 'Sample Table', schema: ['id', 'lastName', 'age'] });
|
|
11
|
+
console.log(tableDef);
|
|
12
|
+
this.createTable(tableDef).subscribe(() => {
|
|
13
|
+
// hasTable
|
|
14
|
+
this.db.hasDatabaseTable('Sample Table').subscribe(data => console.log(data));
|
|
15
|
+
// Tables
|
|
16
|
+
this.db.getDatabaseTables().subscribe(data => console.log(data));
|
|
17
|
+
// getTable
|
|
18
|
+
this.db.getDatabaseTable('Sample Table').subscribe(data => console.log(data));
|
|
19
|
+
// Table Schema
|
|
20
|
+
this.db.getDatabaseTableSchema('Sample Table').subscribe(data => console.log(data));
|
|
21
|
+
// Update Table Schema
|
|
22
|
+
// const newTableDef = TableSchemaDef.adapt({table: 'sample', schema: ['id', 'name', 'age', 'amount']})
|
|
23
|
+
// this.db.updateDatabaseTableSchema(newTableDef)
|
|
24
|
+
// Insert Table Record
|
|
25
|
+
const record = { id: 12, age: 45, last_name: 'Bonifacio', amount: 1200 };
|
|
26
|
+
this.db.createTableRecord('Sample Table', record).subscribe(data => console.log(data));
|
|
27
|
+
// Insert Table Records
|
|
28
|
+
const records = [
|
|
29
|
+
{ id: 12, age: 12, last_name: 'Bonifacio', amount: 80 },
|
|
30
|
+
{ id: 10, age: 15, last_name: 'Johns', amount: 700 },
|
|
31
|
+
{ id: 1, age: 22, last_name: 'Kims', amount: 234 },
|
|
32
|
+
{ id: 2, age: 45, last_name: 'Harrys', amount: 1200 },
|
|
33
|
+
];
|
|
34
|
+
this.db.createTableRecords('Sample Table', records).subscribe(data => console.log(data));
|
|
35
|
+
// Update Table Record
|
|
36
|
+
const recordUpdate = { id: 12, age: 45, last_name: 'Bonifacio', amount: 5000 };
|
|
37
|
+
this.db.createTableRecord('Sample Table', record).subscribe(data => console.log(data));
|
|
38
|
+
// Update Table Records
|
|
39
|
+
// const recordsUpdate = [
|
|
40
|
+
// { id: 12, age: 12, last_name: 'Bonifacio', amount: 5000 },
|
|
41
|
+
// { id: 10, age: 15, last_name: 'Johns', amount: 5000 },
|
|
42
|
+
// ]
|
|
43
|
+
// this.db.updateTableRecords('sample_table', records).subscribe(data => console.log(data))
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
createTable(tableDef) {
|
|
47
|
+
return this.db.createDatabaseTable(tableDef);
|
|
48
|
+
}
|
|
49
|
+
// CRUD
|
|
50
|
+
findTableRecords(table, column, value) {
|
|
51
|
+
}
|
|
52
|
+
findTableRecord(table, column, value) {
|
|
53
|
+
}
|
|
54
|
+
getTableRecords(table) {
|
|
55
|
+
}
|
|
56
|
+
getTableRecord(table, id) {
|
|
57
|
+
}
|
|
58
|
+
createTableRecord(table, record) {
|
|
59
|
+
}
|
|
60
|
+
updateTableRecord(table, record) {
|
|
61
|
+
}
|
|
62
|
+
deleteTableRecord(table, id) {
|
|
63
|
+
}
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatabaseDataDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DatabaseDataDemoComponent, selector: "app-database-data-demo", ngImport: i0, template: "<p>\n database-data-demo works!\n</p>\n", styles: [""] }); }
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatabaseDataDemoComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: 'app-database-data-demo', template: "<p>\n database-data-demo works!\n</p>\n" }]
|
|
70
|
+
}], ctorParameters: function () { return []; } });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UtZGF0YS1kZW1vLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vZGF0YWJhc2UtZGF0YS1kZW1vL2RhdGFiYXNlLWRhdGEtZGVtby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL2RhdGFiYXNlLWRhdGEtZGVtby9kYXRhYmFzZS1kYXRhLWRlbW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOztBQU9sRixNQUFNLE9BQU8seUJBQXlCO0lBSXBDO1FBRkEsT0FBRSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0lBRW5CLENBQUM7SUFFakIsUUFBUTtRQUVOLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFBO1FBQ2pHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBRXhDLFdBQVc7WUFDWCxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFD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S0FBVTtJQUUxRCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWEsRUFBRSxNQUFjLEVBQUUsS0FBVTtJQUV6RCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7SUFFN0IsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFhLEVBQUUsRUFBVTtJQUV4QyxDQUFDO0lBRUQsaUJBQWlCLENBQUksS0FBYSxFQUFFLE1BQVM7SUFFN0MsQ0FBQztJQUVELGlCQUFpQixDQUFJLEtBQWEsRUFBRSxNQUFTO0lBRTdDLENBQUM7SUFFRCxpQkFBaUIsQ0FBSSxLQUFhLEVBQUUsRUFBVTtJQUU5QyxDQUFDOytHQTVGVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qiw4RENWdEMsMENBR0E7OzRGRE9hLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRhYmxlU2NoZW1hRGVmIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YWJhc2UtbWFuYWdlci1zZXJ2aWNlcy9tb2RlbHMvdGFibGUtc2NoZW1hJztcbmltcG9ydCB7IERhdGFiYXNlTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhYmFzZS1tYW5hZ2VyLXNlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRhdGFiYXNlLWRhdGEtZGVtbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhYmFzZS1kYXRhLWRlbW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhYmFzZS1kYXRhLWRlbW8uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhYmFzZURhdGFEZW1vQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBkYiA9IGluamVjdChEYXRhYmFzZU1hbmFnZXJTZXJ2aWNlKVxuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgICBjb25zdCB0YWJsZURlZiA9IFRhYmxlU2NoZW1hRGVmLmFkYXB0KHt0YWJsZTogJ1NhbXBsZSBUYWJsZScsIHNjaGVtYTogWydpZCcsICdsYXN0TmFtZScsICdhZ2UnXX0pXG4gICAgY29uc29sZS5sb2codGFibGVEZWYpXG5cbiAgICB0aGlzLmNyZWF0ZVRhYmxlKHRhYmxlRGVmKS5zdWJzY3JpYmUoKCkgPT4ge1xuXG4gICAgICAvLyBoYXNUYWJsZVxuICAgICAgdGhpcy5kYi5oYXNEYXRhYmFzZVRhYmxlKCdTYW1wbGUgVGFibGUnKS5zdWJzY3JpYmUoZGF0YSA9PiBjb25zb2xlLmxvZyhkYXRhKSlcblxuICAgICAgLy8gVGFibGVzXG4gICAgICB0aGlzLmRiLmdldERhdGFiYXNlVGFibGVzKCkuc3Vic2NyaWJlKGRhdGEgPT4gY29uc29sZS5sb2coZGF0YSkpXG5cbiAgICAgIC8vIGdldFRhYmxlXG4gICAgICB0aGlzLmRiLmdldERhdGFiYXNlVGFibGUoJ1NhbXBsZSBUYWJsZScpLnN1YnNjcmliZShkYXRhID0+IGNvbnNvbGUubG9nKGRhdGEpKVxuXG4gICAgICAvLyBUYWJsZSBTY2hlbWFcbiAgICAgIHRoaXMuZGIuZ2V0RGF0YWJhc2VUYWJsZVNjaGVtYSgnU2FtcGxlIFRhYmxlJykuc3Vic2NyaWJlKGRhdGEgPT4gY29uc29sZS5sb2coZGF0YSkpXG5cbiAgICAgIC8vIFVwZGF0ZSBUYWJsZSBTY2hlbWFcbiAgICAgIC8vIGNvbnN0IG5ld1RhYmxlRGVmID0gVGFibGVTY2hlbWFEZWYuYWRhcHQoe3RhYmxlOiAnc2FtcGxlJywgc2NoZW1hOiBbJ2lkJywgJ25hbWUnLCAnYWdlJywgJ2Ftb3VudCddfSlcbiAgICAgIC8vIHRoaXMuZGIudXBkYXRlRGF0YWJhc2VUYWJsZVNjaGVtYShuZXdUYWJsZURlZilcblxuICAgICAgLy8gSW5zZXJ0IFRhYmxlIFJlY29yZFxuICAgICAgY29uc3QgcmVjb3JkID0geyBpZDogMTIsIGFnZTogNDUsIGxhc3RfbmFtZTogJ0JvbmlmYWNpbycsIGFtb3VudDogMTIwMCB9XG5cbiAgICAgIHRoaXMuZGIuY3JlYXRlVGFibGVSZWNvcmQoJ1NhbXBsZSBUYWJsZScsIHJlY29yZCkuc3Vic2NyaWJlKGRhdGEgPT4gY29uc29sZS5sb2coZGF0YSkpXG5cbiAgICAgIC8vIEluc2VydCBUYWJsZSBSZWNvcmRzXG4gICAgICBjb25zdCByZWNvcmRzID0gW1xuICAgICAgICB7IGlkOiAxMiwgYWdlOiAxMiwgbGFzdF9uYW1lOiAnQm9uaWZhY2lvJywgYW1vdW50OiA4MCB9LFxuICAgICAgICB7IGlkOiAxMCwgYWdlOiAxNSwgbGFzdF9uYW1lOiAnSm9obnMnLCBhbW91bnQ6IDcwMCB9LFxuICAgICAgICB7IGlkOiAxLCBhZ2U6IDIyLCBsYXN0X25hbWU6ICdLaW1zJywgYW1vdW50OiAyMzQgfSxcbiAgICAgICAgeyBpZDogMiwgYWdlOiA0NSwgbGFzdF9uYW1lOiAnSGFycnlzJywgYW1vdW50OiAxMjAwIH0sXG4gICAgICBdXG5cbiAgICAgIHRoaXMuZGIuY3JlYXRlVGFibGVSZWNvcmRzKCdTYW1wbGUgVGFibGUnLCByZWNvcmRzKS5zdWJzY3JpYmUoZGF0YSA9PiBjb25zb2xlLmxvZyhkYXRhKSlcblxuICAgICAgLy8gVXBkYXRlIFRhYmxlIFJlY29yZFxuICAgICAgY29uc3QgcmVjb3JkVXBkYXRlID0geyBpZDogMTIsIGFnZTogNDUsIGxhc3RfbmFtZTogJ0JvbmlmYWNpbycsIGFtb3VudDogNTAwMCB9XG5cbiAgICAgIHRoaXMuZGIuY3JlYXRlVGFibGVSZWNvcmQoJ1NhbXBsZSBUYWJsZScsIHJlY29yZCkuc3Vic2NyaWJlKGRhdGEgPT4gY29uc29sZS5sb2coZGF0YSkpXG5cbiAgICAgIC8vIFVwZGF0ZSBUYWJsZSBSZWNvcmRzXG4gICAgICAvLyBjb25zdCByZWNvcmRzVXBkYXRlID0gW1xuICAgICAgLy8gICB7IGlkOiAxMiwgYWdlOiAxMiwgbGFzdF9uYW1lOiAnQm9uaWZhY2lvJywgYW1vdW50OiA1MDAwIH0sXG4gICAgICAvLyAgIHsgaWQ6IDEwLCBhZ2U6IDE1LCBsYXN0X25hbWU6ICdKb2hucycsIGFtb3VudDogNTAwMCB9LFxuICAgICAgLy8gXVxuXG4gICAgICAvLyB0aGlzLmRiLnVwZGF0ZVRhYmxlUmVjb3Jkcygnc2FtcGxlX3RhYmxlJywgcmVjb3Jkcykuc3Vic2NyaWJlKGRhdGEgPT4gY29uc29sZS5sb2coZGF0YSkpXG5cbiAgICB9KVxuXG4gIH1cblxuICBjcmVhdGVUYWJsZSh0YWJsZURlZjogVGFibGVTY2hlbWFEZWYpIHtcbiAgICByZXR1cm4gdGhpcy5kYi5jcmVhdGVEYXRhYmFzZVRhYmxlKHRhYmxlRGVmKVxuICB9XG5cbiAgLy8gQ1JVRFxuICBmaW5kVGFibGVSZWNvcmRzKHRhYmxlOiBzdHJpbmcsIGNvbHVtbjogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG5cbiAgfVxuXG4gIGZpbmRUYWJsZVJlY29yZCh0YWJsZTogc3RyaW5nLCBjb2x1bW46IHN0cmluZywgdmFsdWU6IGFueSkge1xuXG4gIH1cblxuICBnZXRUYWJsZVJlY29yZHModGFibGU6IHN0cmluZykge1xuXG4gIH1cblxuICBnZXRUYWJsZVJlY29yZCh0YWJsZTogc3RyaW5nLCBpZDogbnVtYmVyKSB7XG5cbiAgfVxuXG4gIGNyZWF0ZVRhYmxlUmVjb3JkPFQ+KHRhYmxlOiBzdHJpbmcsIHJlY29yZDogVCkge1xuXG4gIH1cblxuICB1cGRhdGVUYWJsZVJlY29yZDxUPih0YWJsZTogc3RyaW5nLCByZWNvcmQ6IFQpIHtcblxuICB9XG5cbiAgZGVsZXRlVGFibGVSZWNvcmQ8VD4odGFibGU6IHN0cmluZywgaWQ6IG51bWJlcikge1xuXG4gIH1cblxufVxuIiwiPHA+XG4gIGRhdGFiYXNlLWRhdGEtZGVtbyB3b3JrcyFcbjwvcD5cbiJdfQ==
|
|
@@ -6,7 +6,7 @@ import { ClientInfoMapper } from './models/sample-mapper-client-info';
|
|
|
6
6
|
import { AIPrompt } from './models/sample-ai-prompt';
|
|
7
7
|
import { ApiRequest, HTTPManagerService } from '../..';
|
|
8
8
|
import { catchError, map, tap } from 'rxjs/operators';
|
|
9
|
-
import {
|
|
9
|
+
import { ToastMessageService, ToastDisplay, ToastColors } from 'toast-message-display';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
import * as i1 from "@angular/common";
|
|
12
12
|
import * as i2 from "@angular/forms";
|
|
@@ -36,7 +36,7 @@ export class RequestManagerDemoComponent {
|
|
|
36
36
|
constructor() {
|
|
37
37
|
this.displayedColumns = ['id', 'name', 'lastName', 'age'];
|
|
38
38
|
this.fb = inject(FormBuilder);
|
|
39
|
-
this.toastMessage = inject(
|
|
39
|
+
this.toastMessage = inject(ToastMessageService);
|
|
40
40
|
this.httpManagerService = inject(HTTPManagerService);
|
|
41
41
|
this.isPending$ = this.httpManagerService.isPending$;
|
|
42
42
|
this.countdown$ = this.httpManagerService.countdown$;
|
|
@@ -56,7 +56,7 @@ export class RequestManagerDemoComponent {
|
|
|
56
56
|
this.questionControl = this.fb.control("", [Validators.required]);
|
|
57
57
|
this.downloadRequest = ApiRequest.adapt({
|
|
58
58
|
server: 'assets/images',
|
|
59
|
-
path: ['me.
|
|
59
|
+
path: ['me.jpg'],
|
|
60
60
|
// saveAs: 'john.jpg' // Optional
|
|
61
61
|
});
|
|
62
62
|
// downloadRequest = ApiRequest.adapt({
|
|
@@ -76,7 +76,7 @@ export class RequestManagerDemoComponent {
|
|
|
76
76
|
email: "wavecoders@gmail.com"
|
|
77
77
|
};
|
|
78
78
|
this.requestForm = this.fb.group({
|
|
79
|
-
path: this.fb.control("
|
|
79
|
+
path: this.fb.control("ai/"),
|
|
80
80
|
headers: this.fb.array([]),
|
|
81
81
|
adapter: [null],
|
|
82
82
|
mapper: [null],
|
|
@@ -312,4 +312,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
312
312
|
type: ViewChild,
|
|
313
313
|
args: ["pollingState", { static: true }]
|
|
314
314
|
}] } });
|
|
315
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1tYW5hZ2VyLWRlbW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LW1hbmFnZXItZGVtby9yZXF1ZXN0LW1hbmFnZXItZGVtby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci1kZW1vL3JlcXVlc3QtbWFuYWdlci1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDckUsT0FBTyxFQUFhLFdBQVcsRUFBRSxVQUFVLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDckUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7OztBQU83RixNQUFN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SSxFQUFFO2dCQUNHLFlBQVk7c0JBQXhELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcblxuaW1wb3J0IHsgQ2xpZW50SW5mbyB9IGZyb20gJy4vbW9kZWxzL3NhbXBsZS1jbGllbnQtaW5mbydcbmltcG9ydCB7IENsaWVudEluZm9NYXBwZXIgfSBmcm9tICcuL21vZGVscy9zYW1wbGUtbWFwcGVyLWNsaWVudC1pbmZvJ1xuaW1wb3J0IHsgQUlQcm9tcHQgfSBmcm9tICcuL21vZGVscy9zYW1wbGUtYWktcHJvbXB0J1xuaW1wb3J0IHsgQXBpUmVxdWVzdCwgSFRUUE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4nXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBUb2FzdENvbG9ycywgVG9hc3REaXNwbGF5LCBUb2FzdE1lc3NhZ2VEaXNwbGF5U2VydmljZSB9IGZyb20gJ3RvYXN0LW1lc3NhZ2UtZGlzcGxheSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJlcXVlc3QtbWFuYWdlci1kZW1vJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcXVlc3QtbWFuYWdlci1kZW1vLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVxdWVzdC1tYW5hZ2VyLWRlbW8uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVxdWVzdE1hbmFnZXJEZW1vQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBkaXNwbGF5ZWRDb2x1bW5zID0gWydpZCcsJ25hbWUnLCAnbGFzdE5hbWUnLCAnYWdlJ11cblxuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKVxuICBwcml2YXRlIHRvYXN0TWVzc2FnZSA9IGluamVjdChUb2FzdE1lc3NhZ2VEaXNwbGF5U2VydmljZSlcblxuICBodHRwTWFuYWdlclNlcnZpY2UgPSBpbmplY3QoSFRUUE1hbmFnZXJTZXJ2aWNlKVxuXG4gIGlzUGVuZGluZyQgPSB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5pc1BlbmRpbmckXG4gIGNvdW50ZG93biQgPSB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5jb3VudGRvd24kXG5cbiAgR0VUX2Vycm9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcbiAgUE9TVF9lcnJvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpXG4gIFBVVF9lcnJvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpXG4gIERFTEVURV9lcnJvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpXG5cbiAgU1RSRUFNX2Vycm9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcbiAgU1RSRUFNX0FJX2Vycm9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcblxuICBHRVQkPzogT2JzZXJ2YWJsZTxhbnk+XG4gIFBPU1QkPzogT2JzZXJ2YWJsZTxhbnk+XG4gIFBVVCQ/OiBPYnNlcnZhYmxlPGFueT5cbiAgREVMRVRFJD86IE9ic2VydmFibGU8YW55PlxuXG4gIFNUUkVBTV9BSSQ/OiBPYnNlcnZhYmxlPGFueT5cbiAgU1RSRUFNJD86IE9ic2VydmFibGU8YW55PlxuXG4gIHJlcXVlc3RQYXJhbXMgPSB7XG4gICAgR0VUOiBBcGlSZXF1ZXN0LmFkYXB0KCksXG4gICAgUE9TVDogQXBpUmVxdWVzdC5hZGFwdCgpLFxuICAgIFBVVDogQXBpUmVxdWVzdC5hZGFwdCgpLFxuICAgIERFTEVURTogQXBpUmVxdWVzdC5hZGFwdCgpLFxuICAgIFNUUkVBTTogQXBpUmVxdWVzdC5hZGFwdCgpLFxuICB9XG5cbiAgQFZpZXdDaGlsZChcImZhaWxlZFN0YXRlXCIsIHsgc3RhdGljOiB0cnVlIH0pIGZhaWxlZFN0YXRlOiBhbnlcbiAgQFZpZXdDaGlsZChcInBvbGxpbmdTdGF0ZVwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBwb2xsaW5nU3RhdGU6IGFueVxuXG4gIHF1ZXN0aW9uQ29udHJvbCA9IHRoaXMuZmIuY29udHJvbChcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXG5cbiAgZG93bmxvYWRSZXF1ZXN0ID0gQXBpUmVxdWVzdC5hZGFwdCh7XG4gICAgc2VydmVyOiAnYXNzZXRzL2ltYWdlcycsXG4gICAgcGF0aDogWydtZS5wbmcnXSxcbiAgICAvLyBzYXZlQXM6ICdqb2huLmpwZycgLy8gT3B0aW9uYWxcbiAgfSlcblxuICAvLyBkb3dubG9hZFJlcXVlc3QgPSBBcGlSZXF1ZXN0LmFkYXB0KHtcbiAgLy8gICBzZXJ2ZXI6ICdvaWRjL2FpL2ZpbGUnXG4gIC8vIH0pXG5cbiAgc2FtcGxlQ2xpZW50RGF0YSA9IHtcbiAgICAgIGlkOiAwLFxuICAgICAgbmFtZTogXCJPbGQgU2Nob29sIERhdGVzXCIsXG4gICAgICBkb21haW46IFwib3NkLmNvbVwiLFxuICAgICAgc2VydmljZTogXCJvc2RcIixcbiAgICAgIHNwaWZmZTogXCJvc2QuY29tL29zZFwiLFxuICAgICAgc2VjcmV0OiBcIlNNT1BFQ1hQLU9TNFAtVVNPRy1YMklJLTNYTUQxRlFEUjNJSlhcIixcbiAgICAgIGNyZWF0ZWQ6IDE2OTMwMDMxMzgsXG4gICAgICBtb2RpZmllZDogMTY5MzAwMzEzOCxcbiAgICAgIGljb246IFwiXCIsXG4gICAgICBpbWFnZUZpbGU6IFwiXCIsXG4gICAgICBlbWFpbDogXCJ3YXZlY29kZXJzQGdtYWlsLmNvbVwiXG4gIH1cblxuICByZXF1ZXN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIHBhdGg6IHRoaXMuZmIuY29udHJvbDxzdHJpbmc+KFwib2lkYy9haS9cIiksXG4gICAgaGVhZGVyczogdGhpcy5mYi5hcnJheShbXSksXG4gICAgYWRhcHRlcjogW251bGxdLFxuICAgIG1hcHBlcjogW251bGxdLFxuICAgIHJldHJ5OiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHRpbWVzOiBbM10sXG4gICAgICBkZWxheTogWzNdLFxuICAgIH0pLFxuICAgIHBvbGxpbmc6IFszXSxcbiAgfSlcblxuICBBSVR5cGUgPSAwXG5cbiAgc2FtcGxlQWRhcHRvcnMgPSBbXG4gICAgeyBsYWJlbDogXCJDbGllbnRJbmZvIEJhc2ljXCIsIHZhbHVlOiBDbGllbnRJbmZvLmFkYXB0IH0sXG4gICAgeyBsYWJlbDogXCJBSSBQcm9tcHRcIiwgdmFsdWU6IEFJUHJvbXB0LmFkYXB0IH0sXG4gIF1cblxuICBzYW1wbGVNYXBwZXJzID0gW1xuICAgIHsgbGFiZWw6IFwiTWFwcGVyIEJhc2ljXCIsIHZhbHVlOiBDbGllbnRJbmZvTWFwcGVyLmFkYXB0IH0sXG4gICAgeyBsYWJlbDogXCJBSSBQcm9tcHRcIiwgdmFsdWU6IEFJUHJvbXB0LmFkYXB0IH0sXG4gIF1cblxuICBnZXQgcmV0cnkoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdEZvcm0uZ2V0KCdyZXRyeScpPy52YWx1ZVxuICB9XG5cbiAgZ2V0IGhlYWRlcnMoKTogRm9ybUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0Rm9ybS5nZXQoJ2hlYWRlcnMnKSBhcyBGb3JtQXJyYXlcbiAgfVxuXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHRoaXMucmVxdWVzdEZvcm0ubWFya0FsbEFzVG91Y2hlZCgpXG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdEZvcm0udmFsaWRcbiAgfVxuXG4gIGhhc0lkID0gKGFycjogYW55W10pID0+IHtcbiAgICBpZiAoYXJyLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlXG4gICAgcmV0dXJuICFpc05hTihhcnJbYXJyLmxlbmd0aCAtIDFdKVxuICB9XG5cbiAgcHJvcHMgPSAoYWRhcHRlcjogYW55KSA9PiB7XG4gICAgcmV0dXJuIChhZGFwdGVyKSA/IGFkYXB0ZXIoKSA6IG51bGxcbiAgfVxuXG4gIC8vIHNlcnZlciA9IGBodHRwOi8vc2FtcGxlLWVuZHBvaW50L2FzL2F1dGhvcml6YXRpb24ub2F1dGgyYFxuXG4gIGFycmF5T2JqZWN0c1RvT2JqZWN0cyA9IChhcnI6IGFueVtdKSA9PiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYXJyKSA/IGFyci5yZWR1Y2UoKG9iaiwgaXRlbSkgPT4gT2JqZWN0LmFzc2lnbihvYmosIHsgW2l0ZW0ua2V5XTogaXRlbS52YWx1ZSB9KSwge30pIDoge31cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgICAvLyBjb25zdCByZXFHZXQyID0gQXBpUmVxdWVzdC5hZGFwdCh7XG4gICAgLy8gICBzZXJ2ZXIsXG4gICAgLy8gICBwYXRoOiBbJ2NsaWVudHMnXSxcbiAgICAvLyAgIGhlYWRlcnM6IHsgYXV0aGVudGljYXRpb246IFwiQmVhcmVyIDxLRVk+XCIgfSxcbiAgICAvLyAgIGFkYXB0ZXI6IENsaWVudEluZm8sXG4gICAgLy8gICBkYXRhVHlwZTogRGF0YVR5cGUuT0JKRUNULFxuICAgIC8vICAgLy8gY29uY3VycmVudDogZmFsc2UsXG4gICAgLy8gICAvLyBwb2xsaW5nOiAzLCAvL3NlY29uZHNcbiAgICAvLyB9KVxuXG4gICAgLy8gY29uc3QgcmVxMiA9IFsxMDI0LDEwMjUsMTAyNl0ubWFwKGl0ZW0gPT4ge1xuICAgIC8vICAgcmV0dXJuIHRoaXMuaHR0cE1hbmFnZXJTZXJ2aWNlLmdldFJlcXVlc3Q8Q2xpZW50SW5mb1tdPihyZXFHZXQyLCBbaXRlbV0pXG4gICAgLy8gICAucGlwZShcbiAgICAvLyAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgLy8gICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGVycm9yLmVycm9yLm1lc3NhZ2UpKVxuICAgIC8vICAgICB9KVxuICAgIC8vICAgKVxuICAgIC8vIH0pXG5cbiAgICAvLyBmb3JrSm9pbihyZXEyKVxuICAgIC8vIC5zdWJzY3JpYmUocmVzID0+IGNvbnNvbGUubG9nKHJlcykpXG5cbiAgfVxuXG4gIGFkZEhlYWRlcigpIHtcbiAgICBjb25zdCBoZWFkZXIgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGtleTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHZhbHVlOiBbJyddXG4gICAgfSlcbiAgICB0aGlzLmhlYWRlcnMucHVzaChoZWFkZXIpXG4gIH1cblxuICByZW1vdmVIZWFkZXIoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuaGVhZGVycy5yZW1vdmVBdChpbmRleClcbiAgfVxuXG4gIGNvbXBpbGVSZXF1ZXN0KCkge1xuXG4gICAgY29uc3QgcmVxdWVzdFBhcmFtcyA9IHRoaXMucmVxdWVzdEZvcm0udmFsdWVcblxuICAgIHJlcXVlc3RQYXJhbXMuaGVhZGVycyA9IHRoaXMuYXJyYXlPYmplY3RzVG9PYmplY3RzKFxuICAgICAgcmVxdWVzdFBhcmFtcy5oZWFkZXJzIHx8IFtdXG4gICAgKVxuXG4gICAgY29uc3QgcGF0aFJlcSA9IChyZXF1ZXN0UGFyYW1zLnBhdGggPT09IFwiXCIpID8gW10gOiAocmVxdWVzdFBhcmFtcy5wYXRoIHx8IFwiXCIpLnNwbGl0KFwiL1wiKVxuXG4gICAgaWYgKCF0aGlzLnBvbGxpbmdTdGF0ZS5jaGVja2VkKSByZXF1ZXN0UGFyYW1zLnBvbGxpbmcgPSAwXG5cbiAgICBpZiAoIXRoaXMuZmFpbGVkU3RhdGUuY2hlY2tlZCkge1xuICAgICAgcmVxdWVzdFBhcmFtcy5yZXRyeSA9IHsgdGltZXM6IDAsZGVsYXk6IDAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFwaU9wdGlvbnMgPSBBcGlSZXF1ZXN0LmFkYXB0KHJlcXVlc3RQYXJhbXMpXG4gICAgYXBpT3B0aW9ucy5wYXRoID0gW11cblxuICAgIHJldHVybiB7IGFwaU9wdGlvbnM6IGFwaU9wdGlvbnMsIHBhdGg6IHBhdGhSZXEgfVxuXG4gIH1cblxuICBvbkdldFJlcXVlc3QoKSB7XG5cbiAgICBpZighdGhpcy5pc1ZhbGlkKSByZXR1cm5cblxuICAgIGNvbnN0IHJlcVBhcmFtcyA9IHRoaXMuY29tcGlsZVJlcXVlc3QoKVxuXG4gICAgdGhpcy5yZXF1ZXN0UGFyYW1zLkdFVCA9IHJlcVBhcmFtcy5hcGlPcHRpb25zXG5cbiAgICB0aGlzLkdFVCQgPSBFTVBUWSAvL0NhbmNlbHMgUHJldmlvdXNcbiAgICB0aGlzLkdFVF9lcnJvciQubmV4dCgnJylcblxuICAgIHRoaXMuR0VUJCA9IHRoaXMuaHR0cE1hbmFnZXJTZXJ2aWNlLmdldFJlcXVlc3Q8Q2xpZW50SW5mb1tdPihyZXFQYXJhbXMuYXBpT3B0aW9ucywgcmVxUGFyYW1zLnBhdGgpXG4gICAgLnBpcGUoXG4gICAgICAvLyB0YXAoKGRhdGEpID0+IGNvbnNvbGUubG9nKFwiQVBJIEdFVCByZXNwb25zZVwiLCBkYXRhKSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gdGhpcy5lcnJvckhhbmRsaW5nKGVycm9yLCAnR0VUJykpXG4gICAgICB9KVxuICAgIClcblxuICB9XG5cbiAgb25DcmVhdGVSZXF1ZXN0KCkge1xuXG4gICAgaWYoIXRoaXMuaXNWYWxpZCkgcmV0dXJuXG5cbiAgICBjb25zdCByZXFQYXJhbXMgPSB0aGlzLmNvbXBpbGVSZXF1ZXN0KClcbiAgICB0aGlzLnJlcXVlc3RQYXJhbXMuUE9TVCA9IHJlcVBhcmFtcy5hcGlPcHRpb25zXG5cbiAgICB0aGlzLlBPU1QkID0gRU1QVFkgLy9DYW5jZWxzIFByZXZpb3VzXG4gICAgdGhpcy5QT1NUX2Vycm9yJC5uZXh0KCcnKVxuXG4gICAgY29uc29sZS5sb2coXCJQT1NUXCIsIHRoaXMuc2FtcGxlQ2xpZW50RGF0YSlcbiAgICBjb25zb2xlLmxvZyhcIlBPU1RcIiwgcmVxUGFyYW1zLmFwaU9wdGlvbnMpXG4gICAgY29uc29sZS5sb2coXCJQT1NUXCIsIHJlcVBhcmFtcy5wYXRoKVxuXG4gICAgdGhpcy5QT1NUJCA9IHRoaXMuaHR0cE1hbmFnZXJTZXJ2aWNlLnBvc3RSZXF1ZXN0PENsaWVudEluZm8+KHRoaXMuc2FtcGxlQ2xpZW50RGF0YSwgcmVxUGFyYW1zLmFwaU9wdGlvbnMsIHJlcVBhcmFtcy5wYXRoKVxuICAgIC5waXBlKFxuICAgICAgLy8gdGFwKChkYXRhKSA9PiBjb25zb2xlLmxvZyhcIkFQSSBQT1NUIHJlc3BvbnNlXCIsIGRhdGEpKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiB0aGlzLmVycm9ySGFuZGxpbmcoZXJyb3IsICdQT1NUJykpXG4gICAgICB9KVxuICAgIClcblxuICB9XG5cbiAgb25VcGRhdGVSZXF1ZXN0KCkge1xuXG4gICAgaWYoIXRoaXMuaXNWYWxpZCkgcmV0dXJuXG5cbiAgICBjb25zdCByZXFQYXJhbXMgPSB0aGlzLmNvbXBpbGVSZXF1ZXN0KClcblxuICAgIGlmKCF0aGlzLmhhc0lkKHJlcVBhcmFtcy5wYXRoKSkge1xuICAgICAgY29uc29sZS5sb2coXCJNaXNzaW5nIElEXCIpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLnNhbXBsZUNsaWVudERhdGEuaWQgPSBwYXJzZUludChyZXFQYXJhbXMucGF0aFtyZXFQYXJhbXMucGF0aC5sZW5ndGgtMV0pXG4gICAgdGhpcy5yZXF1ZXN0UGFyYW1zLlBVVCA9IHJlcVBhcmFtcy5hcGlPcHRpb25zXG5cbiAgICB0aGlzLlBVVCQgPSBFTVBUWSAvL0NhbmNlbHMgUHJldmlvdXNcbiAgICB0aGlzLlBVVF9lcnJvciQubmV4dCgnJylcblxuICAgIHRoaXMuUFVUJCA9IHRoaXMuaHR0cE1hbmFnZXJTZXJ2aWNlLnB1dFJlcXVlc3Q8YW55Pih0aGlzLnNhbXBsZUNsaWVudERhdGEsIHJlcVBhcmFtcy5hcGlPcHRpb25zLCByZXFQYXJhbXMucGF0aClcbiAgICAucGlwZShcbiAgICAgIC8vIHRhcCgoZGF0YSkgPT4gY29uc29sZS5sb2coXCJBUEkgUFVUIHJlc3BvbnNlXCIsIGRhdGEpKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiB0aGlzLmVycm9ySGFuZGxpbmcoZXJyb3IsICdQVVQnKSlcbiAgICAgIH0pXG4gICAgKVxuXG4gIH1cblxuICBvbkRlbGV0ZVJlcXVlc3QoKSB7XG5cbiAgICBpZighdGhpcy5pc1ZhbGlkKSByZXR1cm5cblxuICAgIGNvbnN0IHJlcVBhcmFtcyA9IHRoaXMuY29tcGlsZVJlcXVlc3QoKVxuICAgIHRoaXMucmVxdWVzdFBhcmFtcy5ERUxFVEUgPSByZXFQYXJhbXMuYXBpT3B0aW9uc1xuXG4gICAgaWYoIXRoaXMuaGFzSWQocmVxUGFyYW1zLnBhdGgpKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIk1pc3NpbmcgSURcIilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuc2FtcGxlQ2xpZW50RGF0YS5pZCA9IHBhcnNlSW50KHJlcVBhcmFtcy5wYXRoW3JlcVBhcmFtcy5wYXRoLmxlbmd0aC0xXSlcbiAgICB0aGlzLnJlcXVlc3RQYXJhbXMuREVMRVRFID0gcmVxUGFyYW1zLmFwaU9wdGlvbnNcblxuICAgIHRoaXMuREVMRVRFJCA9IEVNUFRZIC8vQ2FuY2VscyBQcmV2aW91c1xuICAgIHRoaXMuREVMRVRFX2Vycm9yJC5uZXh0KCcnKVxuXG4gICAgdGhpcy5ERUxFVEUkID0gdGhpcy5odHRwTWFuYWdlclNlcnZpY2UuZGVsZXRlUmVxdWVzdDxDbGllbnRJbmZvPihyZXFQYXJhbXMuYXBpT3B0aW9ucywgcmVxUGFyYW1zLnBhdGgpXG4gICAgLnBpcGUoXG4gICAgICAvLyB0YXAoKGRhdGEpID0+IGNvbnNvbGUubG9nKFwiQVBJIERFTEVURSByZXNwb25zZVwiLCBkYXRhKSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gdGhpcy5lcnJvckhhbmRsaW5nKGVycm9yLCAnREVMRVRFJykpXG4gICAgICB9KVxuICAgIClcblxuICB9XG5cbiAgb25TdHJlYW1Qb3N0UmVxdWVzdCgpIHtcblxuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm5cblxuICAgIGNvbnN0IHJlcVBhcmFtcyA9IHRoaXMuY29tcGlsZVJlcXVlc3QoKVxuXG4gICAgbGV0IHBheWxvYWQgPSB7fVxuICAgIGxldCBhcGlQYXRoOiBzdHJpbmdbXSA9IHJlcVBhcmFtcy5wYXRoXG4gICAgbGV0IGFwaU9wdGlvbnMgPSByZXFQYXJhbXMuYXBpT3B0aW9uc1xuICAgIGxldCByZXNwb25zZU1hcHBlcjogKGl0ZW1zOiBhbnkpID0+IGFueSA9IChpdGVtcykgPT4gaXRlbXMucmVzcG9uc2VcblxuICAgIGlmICh0aGlzLkFJVHlwZSA9PT0gMCkge1xuXG4gICAgICAvLyBBUEkgcmVxdWVzdFxuICAgICAgcGF5bG9hZCA9IHsgcHJvbXB0OiB0aGlzLnF1ZXN0aW9uQ29udHJvbC52YWx1ZSB9XG5cbiAgICB9IGVsc2Uge1xuXG4gICAgICAvLyBMb2NhbCBPbGxhbWEgcmVxdWVzdFxuICAgICAgYXBpT3B0aW9ucy5zZXJ2ZXIgPSBcImFwaVwiXG4gICAgICBhcGlQYXRoID0gW1wiZ2VuZXJhdGVcIl1cbiAgICAgIGFwaU9wdGlvbnMuc3RyZWFtID0gdHJ1ZVxuICAgICAgcGF5bG9hZCA9IHtcbiAgICAgICAgbW9kZWw6IFwicGhpMzpsYXRlc3RcIixcbiAgICAgICAgcHJvbXB0OiB0aGlzLnF1ZXN0aW9uQ29udHJvbC52YWx1ZSxcbiAgICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgfVxuXG4gICAgICByZXNwb25zZU1hcHBlciA9IChpdGVtcykgPT4gaXRlbXMubWFwKCh3b3JkOiBhbnkpID0+IHdvcmQucmVzcG9uc2UpLmZsYXQoKS5qb2luKCcnKVxuXG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0UGFyYW1zLlNUUkVBTSA9IGFwaU9wdGlvbnNcbiAgICB0aGlzLlNUUkVBTV9BSSQgPSBFTVBUWVxuICAgIHRoaXMuU1RSRUFNX0FJX2Vycm9yJC5uZXh0KCcnKVxuXG4gICAgdGhpcy5TVFJFQU1fQUkkID0gdGhpcy5odHRwTWFuYWdlclNlcnZpY2UucG9zdFJlcXVlc3Q8YW55PihwYXlsb2FkLCBhcGlPcHRpb25zLCBhcGlQYXRoKS5waXBlKFxuICAgICAgbWFwKHJlc3BvbnNlTWFwcGVyKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnF1ZXN0aW9uQ29udHJvbC5yZXNldCgpKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gdGhyb3dFcnJvcigoKSA9PiB0aGlzLmVycm9ySGFuZGxpbmcoZXJyb3IsICdTVFJFQU0nKSkpXG4gICAgKVxuXG4gIH1cblxuXG4gIG9uU3RyZWFtUmVxdWVzdCgpIHtcblxuICAgIGlmKCF0aGlzLmlzVmFsaWQpIHJldHVyblxuXG4gICAgY29uc3QgcmVxUGFyYW1zID0gdGhpcy5jb21waWxlUmVxdWVzdCgpXG5cbiAgICByZXFQYXJhbXMuYXBpT3B0aW9ucy5zdHJlYW0gPSB0cnVlXG5cbiAgICB0aGlzLnJlcXVlc3RQYXJhbXMuR0VUID0gcmVxUGFyYW1zLmFwaU9wdGlvbnNcbiAgICB0aGlzLlNUUkVBTSQgPSB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5nZXRSZXF1ZXN0PENsaWVudEluZm9bXT4ocmVxUGFyYW1zLmFwaU9wdGlvbnMsIHJlcVBhcmFtcy5wYXRoKVxuICAgICAgICAucGlwZShcbiAgICAgIC8vIHRhcCgoZGF0YSkgPT4gY29uc29sZS5sb2coXCJBUEkgU1RSRUFNIHJlc3BvbnNlXCIsIGRhdGEpKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiB0aGlzLmVycm9ySGFuZGxpbmcoZXJyb3IsICdTVFJFQU0nKSlcbiAgICAgIH0pXG4gICAgKVxuXG4gIH1cblxuICBvbkRvd25sb2FkQ29tcGxldGVkKCkge1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IFwiRG93bmxvYWQgQ29tcGxldGVkXCJcblxuICAgIGNvbnN0IGRpc3BsYXkgPSBUb2FzdERpc3BsYXkuYWRhcHQoe1xuICAgICAgbWVzc2FnZSxcbiAgICAgIGFjdGlvbjogJ09rJyxcbiAgICAgIGNvbG9yOiBUb2FzdENvbG9ycy5TVUNDRVNTLFxuICAgICAgaWNvbjogJ3NlbnRpbWVudF9zYXRpc2ZpZWRfYWx0JyxcbiAgICB9KVxuXG4gICAgdGhpcy50b2FzdE1lc3NhZ2UudG9hc3RNZXNzYWdlKGRpc3BsYXkpXG4gIH1cblxuICBvbkRvd25sb2FkRmFpbGVkKGVycjogc3RyaW5nKSB7XG5cbiAgICBjb25zdCBtZXNzYWdlID0gXCJEb3dubG9hZCBGYWlsZWRcIlxuXG4gICAgY29uc3QgZGlzcGxheSA9IFRvYXN0RGlzcGxheS5hZGFwdCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgYWN0aW9uOiAnT2snLFxuICAgICAgY29sb3I6IFRvYXN0Q29sb3JzLkVSUk9SLFxuICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgIH0pXG5cbiAgICB0aGlzLnRvYXN0TWVzc2FnZS50b2FzdE1lc3NhZ2UoZGlzcGxheSlcbiAgfVxuXG4gIGVycm9ySGFuZGxpbmcoZXJyOiBhbnksIHR5cGU6IHN0cmluZykge1xuICAgIGlmKHR5cGUgPT09ICdHRVQnKSB0aGlzLkdFVF9lcnJvciQubmV4dChlcnIubWVzc2FnZSlcbiAgICBpZih0eXBlID09PSAnUE9TVCcpIHRoaXMuUE9TVF9lcnJvciQubmV4dChlcnIubWVzc2FnZSlcbiAgICBpZih0eXBlID09PSAnUFVUJykgdGhpcy5QVVRfZXJyb3IkLm5leHQoZXJyLm1lc3NhZ2UpXG4gICAgaWYodHlwZSA9PT0gJ0RFTEVURScpIHRoaXMuREVMRVRFX2Vycm9yJC5uZXh0KGVyci5tZXNzYWdlKVxuICAgIGlmKHR5cGUgPT09ICdTVFJFQU0nKSB0aGlzLlNUUkVBTV9lcnJvciQubmV4dChlcnIubWVzc2FnZSlcbiAgfVxuXG4gIG9uU2VsZWN0QUlUeXBlKHR5cGU6IG51bWJlcikge1xuICAgIHRoaXMuQUlUeXBlID0gdHlwZVxuICB9XG5cbn1cbiIsIjxkaXYgc3R5bGU9XCJtYXJnaW46IDJyZW07XCI+XG5cbiAgPGgyPlxuICAgIEhUVFAgUmVxdWVzdCBNYW5hZ2VyXG4gIDwvaDI+XG5cbiAgPGRpdiBbZm9ybUdyb3VwXT1cInJlcXVlc3RGb3JtXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAycmVtO1wiPlxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IC41cmVtXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgPG1hdC1sYWJlbD5BZGFwdGVyIChNb2RlbCk8L21hdC1sYWJlbD5cbiAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiYWRhcHRlclwiICNhZGFwdGVyU2VsZWN0PlxuICAgICAgICAgIDxtYXQtb3B0aW9uPk5vbmU8L21hdC1vcHRpb24+XG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGFkYXB0ZXIgb2Ygc2FtcGxlQWRhcHRvcnNcIiBbdmFsdWVdPVwiYWRhcHRlci52YWx1ZVwiPlxuICAgICAgICAgICAge3thZGFwdGVyLmxhYmVsfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgPG1hdC1sYWJlbD5NYXBwZXIgKE1vZGVsKTwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJtYXBwZXJcIiAjbWFwcGVyU2VsZWN0PlxuICAgICAgICAgIDxtYXQtb3B0aW9uPk5vbmU8L21hdC1vcHRpb24+XG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG1hcHBlciBvZiBzYW1wbGVNYXBwZXJzXCIgW3ZhbHVlXT1cIm1hcHBlci52YWx1ZVwiPlxuICAgICAgICAgICAge3ttYXBwZXIubGFiZWx9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgbWFyZ2luLWJvdHRvbTogMnJlbTtcIiAqbmdJZj1cImFkYXB0ZXJTZWxlY3QudmFsdWUgfHwgbWFwcGVyU2VsZWN0LnZhbHVlXCI+XG4gICAgICA8ZGl2IHN0eWxlPVwiZmxleDoxXCIgY2xhc3M9XCJib3hcIj5cbiAgICAgICAgPGgzPkFkYXB0ZXIgKEluY29taW5nKTwvaDM+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJhZGFwdGVyU2VsZWN0LnZhbHVlOyBlbHNlIE5PX0FEQVBURVJcIj5cbiAgICAgICAgICB7eyBwcm9wcyhhZGFwdGVyU2VsZWN0LnZhbHVlKSB8IGpzb24gfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjTk9fQURBUFRFUj5ObyBUcmFuc2Zvcm1hdGlvbjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OjFcIiBjbGFzcz1cImJveFwiPlxuICAgICAgICA8aDM+TWFwcGVyIChPdXRnb2luZyk8L2gzPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibWFwcGVyU2VsZWN0LnZhbHVlOyBlbHNlIE5PX01BUFBFUlwiPlxuICAgICAgICAgIHt7IHByb3BzKG1hcHBlclNlbGVjdC52YWx1ZSkgfCBqc29uIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI05PX01BUFBFUj5ObyBUcmFuc2Zvcm1hdGlvbjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+UmVzdFBhdGggKC8gZGVsaW1pdGVkKTwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJjbGllbnRzL2xpc3RcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXRoXCI+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJoZWFkZXJzXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRhc2sgb2YgaGVhZGVycy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiIFtmb3JtR3JvdXBOYW1lXT1cImlcIj5cbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiAuNXJlbVwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+S2V5PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cImF1dGhlbnRpY2F0aW9uXCIgZm9ybUNvbnRyb2xOYW1lPVwia2V5XCI+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgc3R5bGU9XCJmbGV4OjFcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WYWx1ZTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJzYW1wbGVcIiBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAuNXJlbTtcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlbW92ZUhlYWRlcihpKVwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJhZGRIZWFkZXIoKVwiIGNsYXNzPVwiYnRuXCI+QWRkIEhlYWRlcjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAycmVtOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGdhcDogMXJlbTtcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlICNmYWlsZWRTdGF0ZT5SZXRyeSBvbiBGYWlsZWQ8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJmYWlsZWRTdGF0ZS5jaGVja2VkXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IC41cmVtOyBtYXJnaW4tdG9wOiAxcmVtO1wiIGZvcm1Hcm91cE5hbWU9XCJyZXRyeVwiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD4jb2YgVGltZXM8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIjNcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aW1lc1wiIHZhbHVlPVwiM1wiPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPkRlbGF5IFVudGlsIE5leHQ8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIjNcIiBmb3JtQ29udHJvbE5hbWU9XCJkZWxheVwiIHZhbHVlPVwiM1wiPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSAjcG9sbGluZ1N0YXRlPlBvbGxpbmc8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJwb2xsaW5nU3RhdGUuY2hlY2tlZFwiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIHN0eWxlPVwibWFyZ2luLXRvcDogMXJlbVwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD4jb2YgU2Vjb25kczwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiM1wiIGZvcm1Db250cm9sTmFtZT1cInBvbGxpbmdcIiB2YWx1ZT1cIjNcIj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMXJlbTsgbWFyZ2luLXRvcDogMnJlbTtcIj5cbiAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAqbmdJZj1cIihpc1BlbmRpbmckIHwgYXN5bmMpXCJcbiAgICA+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJkZXRlcm1pbmF0ZVwiXG4gICAgICAqbmdJZj1cInBvbGxpbmdTdGF0ZS5jaGVja2VkICYmICEoaXNQZW5kaW5nJCB8IGFzeW5jKVwiXG4gICAgICBbdmFsdWVdPVwiKHRoaXMuY291bnRkb3duJCB8IGFzeW5jKVwiXG4gICAgPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW1cIj5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW1cIj5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgIDxoMiBzdHlsZT1cImZsZXg6MVwiPkdFVCBSZXF1ZXN0PC9oMj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIm9uR2V0UmVxdWVzdCgpXCIgY2xhc3M9XCJidG5cIj5SZXF1ZXN0PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCIoR0VUX2Vycm9yJCB8IGFzeW5jKSBhcyBnZXRfZXJyb3JcIiBzdHlsZT1cIm1hcmdpbi10b3A6IC41cmVtO1wiPlxuICAgICAgPG1hdC1lcnJvcj57eyBnZXRfZXJyb3IgfX08L21hdC1lcnJvcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtO1wiICpuZ0lmPVwiKEdFVCQgfCBhc3luYykgYXMgZGF0YVJlY29yZFwiPlxuICAgICAgPCEtLSA8ZGl2IFtpbm5lckhUTUxdPVwiKEdFVCQgfCBhc3luYykgfCBqc29udlwiPjwvZGl2PiAtLT5cbiAgICAgIHt7IGRhdGFSZWNvcmQgfCBqc29uIH19XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW1cIj5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW1cIj5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgIDxoMiBzdHlsZT1cImZsZXg6MVwiPlBPU1QgUmVxdWVzdDwvaDI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJvbkNyZWF0ZVJlcXVlc3QoKVwiIGNsYXNzPVwiYnRuXCI+UmVxdWVzdDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiKFBPU1RfZXJyb3IkIHwgYXN5bmMpIGFzIHBvc3RfZXJyb3JcIiBzdHlsZT1cIm1hcmdpbi10b3A6IC41cmVtO1wiPlxuICAgICAgPG1hdC1lcnJvcj57eyBwb3N0X2Vycm9yIH19PC9tYXQtZXJyb3I+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogMXJlbTtcIiAqbmdJZj1cIihQT1NUJCB8IGFzeW5jKSBhcyBkYXRhUmVjb3JkXCI+XG4gICAgICA8IS0tIDxkaXYgW2lubmVySFRNTF09XCIoUE9TVCQgfCBhc3luYykgfCBqc29udlwiPjwvZGl2PiAtLT5cbiAgICAgIHt7IGRhdGFSZWNvcmQgfCBqc29uIH19XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW1cIj5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW1cIj5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgIDxoMiBzdHlsZT1cImZsZXg6MVwiPlBVVCBSZXF1ZXN0PC9oMj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIm9uVXBkYXRlUmVxdWVzdCgpXCIgY2xhc3M9XCJidG5cIj5SZXF1ZXN0PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCIoUFVUX2Vycm9yJCB8IGFzeW5jKSBhcyBwdXRfZXJyb3JcIiBzdHlsZT1cIm1hcmdpbi10b3A6IC41cmVtO1wiPlxuICAgICAgPG1hdC1lcnJvcj57eyBwdXRfZXJyb3IgfX08L21hdC1lcnJvcj5cbiAgICA8L2Rpdj5cblxuICAgIDxoMz5JbmNsdWRlIFJlY29yZCBJRCBpbiB0aGUgUmVzdFBhdGg8L2gzPlxuXG4gICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW07XCIgKm5nSWY9XCIoUFVUJCB8IGFzeW5jKSBhcyBkYXRhUmVjb3JkXCI+XG4gICAgICA8IS0tIDxkaXYgW2lubmVySFRNTF09XCIoUFVUJCB8IGFzeW5jKSB8IGpzb252XCI+PC9kaXY+IC0tPlxuICAgICAgIHt7IGRhdGFSZWNvcmQgfCBqc29uIH19XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW1cIj5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW1cIj5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgIDxoMiBzdHlsZT1cImZsZXg6MVwiPkRFTEVURSBSZXF1ZXN0PC9oMj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIm9uRGVsZXRlUmVxdWVzdCgpXCIgY2xhc3M9XCJidG5cIj5SZXF1ZXN0PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxoMz5JbmNsdWRlIFJlY29yZCBJRCBpbiB0aGUgUmVzdFBhdGg8L2gzPlxuXG4gICAgPGRpdiAqbmdJZj1cIihERUxFVEVfZXJyb3IkIHwgYXN5bmMpIGFzIGRlbGV0ZV9lcnJvclwiIHN0eWxlPVwibWFyZ2luLXRvcDogLjVyZW07XCI+XG4gICAgICA8bWF0LWVycm9yPnt7IGRlbGV0ZV9lcnJvciB9fTwvbWF0LWVycm9yPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW07XCIgKm5nSWY9XCIoREVMRVRFJCB8IGFzeW5jKSBhcyBkYXRhUmVjb3JkXCI+XG4gICAgICA8IS0tIDxkaXYgW2lubmVySFRNTF09XCIoREVMRVRFJCB8IGFzeW5jKSB8IGpzb252XCI+PC9kaXY+IC0tPlxuICAgICAge3sgZGF0YVJlY29yZCB8IGpzb24gfX1cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cblxuICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogMnJlbVwiPlxuICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8L2Rpdj5cblxuICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogMnJlbVwiPlxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICAgICAgPGgyIHN0eWxlPVwiZmxleDoxXCI+U3RyZWFtaW5nIEdFVCBSZXF1ZXN0PC9oMj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIm9uU3RyZWFtUmVxdWVzdCgpXCIgY2xhc3M9XCJidG5cIj5SZXF1ZXN0PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gPGRpdiAqbmdJZj1cIihTVFJFQU1fZXJyb3IkIHwgYXN5bmMpIGFzIHN0cmVhbV9lcnJvclwiIHN0eWxlPVwibWFyZ2luLXRvcDogLjVyZW07XCI+XG4gICAgICA8bWF0LWVycm9yPnt7IHN0cmVhbV9lcnJvciB9fTwvbWF0LWVycm9yPlxuICAgIDwvZGl2PiAtLT5cblxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtO1wiPlxuICAgICAgPGRpdiAqbmdJZj1cIihTVFJFQU0kIHwgYXN5bmMpIGFzIGRhdGFcIiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImlkXCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBJRCA8L3RoPlxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmlkfX0gPC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibmFtZVwiPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gRmlyc3QgTmFtZSA8L3RoPlxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Lm5hbWV9fSA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsYXN0TmFtZVwiPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTGFzdCBOYW1lIDwvdGg+XG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQubGFzdE5hbWV9fSA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhZ2VcIj5cbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEFnZSA8L3RoPlxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmFnZX19IDwvdGQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgICAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cblxuICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogMnJlbVwiPlxuICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8L2Rpdj5cblxuICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogMnJlbVwiPlxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICAgICAgPGgyIHN0eWxlPVwiZmxleDoxOyBwYWRkaW5nLXRvcDogLjVyZW07XCI+QUkgLTxzcGFuICpuZ0lmPVwiQUlUeXBlID09PSAxXCI+U1RSRUFNSU5HPC9zcGFuPiBQT1NUIFJlcXVlc3Q8L2gyPlxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbTtcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIHN0eWxlPVwibWluLXdpZHRoOiAxMjBweDtcIj5cbiAgICAgICAgICA8bWF0LWljb24+bGFuPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiQUlUeXBlID09PSAwOyBlbHNlIExPQ0FMXCI+U2VydmVyPC9zcGFuPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNMT0NBTD5cbiAgICAgICAgICAgICAgTG9jYWxcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJvblNlbGVjdEFJVHlwZSgwKVwiPlNlcnZlcjwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib25TZWxlY3RBSVR5cGUoMSlcIj5Mb2NhbDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIm9uU3RyZWFtUG9zdFJlcXVlc3QoKVwiIGNsYXNzPVwiYnRuXCI+QXNrIE1lPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIHN0eWxlPVwiZmxleDoxXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+QXNrIG1lIGEgUXVlc3Rpb248L21hdC1sYWJlbD5cbiAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IHBsYWNlaG9sZGVyPVwiV2h5IGlzIHRoZSBza3kgYmx1ZT9cIiBbZm9ybUNvbnRyb2xdPVwicXVlc3Rpb25Db250cm9sXCI+PC90ZXh0YXJlYT5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiKFNUUkVBTV9BSV9lcnJvciQgfCBhc3luYykgYXMgc3RyZWFtX2Vycm9yXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAuNXJlbTtcIj5cbiAgICAgIDxtYXQtZXJyb3I+e3sgc3RyZWFtX2Vycm9yIH19PC9tYXQtZXJyb3I+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiQUlUeXBlID09PSAxOyBlbHNlIEFMVEVSTkFUSVZFXCIgc3R5bGU9XCJjb2xvcjogcmVkO1wiPlxuICAgICAgWW91IG11c3QgaGF2ZSBPbGxhbWEgYWN0aXZlIGFuZCB0aGUgJ3BoaTM6bGF0ZXN0JyBtb2RlbCB0byB1c2UgdGhpcyBmZWF0dXJlLlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjQUxURVJOQVRJVkU+XG4gICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiBncmF5O1wiPlxuICAgICAgICBEZWZpbmUgdGhlIFJlc3RQYXRoIHRvIHRoZSBBUEkgZW5kcG9pbnQgdGhhdCB3aWxsIGhhbmRsZSB0aGUgQUkgcmVxdWVzdC5cbiAgICAgICAgVXNlOiAnYWkvY2hhdCcgZm9yIHNlcnZlclxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIihTVFJFQU1fQUkkIHwgYXN5bmMpIGFzIGRhdGFcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW07IGZvbnQtc2l6ZTogMS4ycmVtOyBib3JkZXItcmFkaXVzOiAxcmVtOyBib3JkZXI6IGJsYWNrIDFweCBzb2xpZDsgcGFkZGluZzogMnJlbTtcIj5cbiAgICAgICAgPHAgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAuNXJlbTsgd2hpdGUtc3BhY2U6cHJlLXdyYXA7IGxpbmUtaGVpZ2h0OiAxLjZyZW07XCI+e3tkYXRhfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cblxuICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogMS41cmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtOyBsaW5lLWhlaWdodDogMS41cmVtO1wiPlxuICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8L2Rpdj5cblxuICA8ZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICAgICAgPGgyIHN0eWxlPVwiZmxleDoxOyBtYXJnaW4tYm90dG9tOiAwOyBwYWRkaW5nLXRvcDogLjVyZW07IGRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgRG93bmxvYWQgRmlsZVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXg6MTsgbWFyZ2luLWxlZnQ6IDFyZW07XCI+XG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgI2Rpc2FibGU+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRpc2FibGUuY2hlY2tlZDsgZWxzZSBESVNBQkxFXCI+XG4gICAgICAgICAgICAgIEVuYWJsZVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNESVNBQkxFPkRpc2FibGU8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2gyPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGFwcC1maWxlLWRvd25sb2FkZXJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZS5jaGVja2VkXCJcbiAgICAgICAgICBbZGVsYXlFcnJvcl09XCIzXCJcbiAgICAgICAgICBbYXBpUmVxdWVzdF09XCJkb3dubG9hZFJlcXVlc3RcIlxuICAgICAgICAgIChjb21wbGV0ZWQpPVwib25Eb3dubG9hZENvbXBsZXRlZCgpXCJcbiAgICAgICAgICAoZmFpbGVkKT1cIm9uRG93bmxvYWRGYWlsZWQoJGV2ZW50KVwiXG4gICAgICAgID48L2FwcC1maWxlLWRvd25sb2FkZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
|
|
315
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1tYW5hZ2VyLWRlbW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LW1hbmFnZXItZGVtby9yZXF1ZXN0LW1hbmFnZXItZGVtby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci1kZW1vL3JlcXVlc3QtbWFuYWdlci1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDckUsT0FBTyxFQUFhLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDckUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7OztBQU90RixNQUFN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SSxFQUFFO2dCQUNHLFlBQVk7c0JBQXhELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuXG5pbXBvcnQgeyBDbGllbnRJbmZvIH0gZnJvbSAnLi9tb2RlbHMvc2FtcGxlLWNsaWVudC1pbmZvJ1xuaW1wb3J0IHsgQ2xpZW50SW5mb01hcHBlciB9IGZyb20gJy4vbW9kZWxzL3NhbXBsZS1tYXBwZXItY2xpZW50LWluZm8nXG5pbXBvcnQgeyBBSVByb21wdCB9IGZyb20gJy4vbW9kZWxzL3NhbXBsZS1haS1wcm9tcHQnXG5pbXBvcnQgeyBBcGlSZXF1ZXN0LCBIVFRQTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLidcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IFRvYXN0TWVzc2FnZVNlcnZpY2UsIFRvYXN0RGlzcGxheSwgVG9hc3RDb2xvcnMgfSBmcm9tICd0b2FzdC1tZXNzYWdlLWRpc3BsYXknXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yZXF1ZXN0LW1hbmFnZXItZGVtbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXF1ZXN0LW1hbmFnZXItZGVtby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlcXVlc3QtbWFuYWdlci1kZW1vLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJlcXVlc3RNYW5hZ2VyRGVtb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgZGlzcGxheWVkQ29sdW1ucyA9IFsnaWQnLCduYW1lJywgJ2xhc3ROYW1lJywgJ2FnZSddXG5cbiAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcilcbiAgcHJpdmF0ZSB0b2FzdE1lc3NhZ2UgPSBpbmplY3QoVG9hc3RNZXNzYWdlU2VydmljZSlcblxuICBodHRwTWFuYWdlclNlcnZpY2UgPSBpbmplY3QoSFRUUE1hbmFnZXJTZXJ2aWNlKVxuXG4gIGlzUGVuZGluZyQgPSB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5pc1BlbmRpbmckXG4gIGNvdW50ZG93biQgPSB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5jb3VudGRvd24kXG5cbiAgR0VUX2Vycm9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcbiAgUE9TVF9lcnJvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpXG4gIFBVVF9lcnJvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpXG4gIERFTEVURV9lcnJvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpXG5cbiAgU1RSRUFNX2Vycm9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcbiAgU1RSRUFNX0FJX2Vycm9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcblxuICBHRVQkPzogT2JzZXJ2YWJsZTxhbnk+XG4gIFBPU1QkPzogT2JzZXJ2YWJsZTxhbnk+XG4gIFBVVCQ/OiBPYnNlcnZhYmxlPGFueT5cbiAgREVMRVRFJD86IE9ic2VydmFibGU8YW55PlxuXG4gIFNUUkVBTV9BSSQ/OiBPYnNlcnZhYmxlPGFueT5cbiAgU1RSRUFNJD86IE9ic2VydmFibGU8YW55PlxuXG4gIHJlcXVlc3RQYXJhbXMgPSB7XG4gICAgR0VUOiBBcGlSZXF1ZXN0LmFkYXB0KCksXG4gICAgUE9TVDogQXBpUmVxdWVzdC5hZGFwdCgpLFxuICAgIFBVVDogQXBpUmVxdWVzdC5hZGFwdCgpLFxuICAgIERFTEVURTogQXBpUmVxdWVzdC5hZGFwdCgpLFxuICAgIFNUUkVBTTogQXBpUmVxdWVzdC5hZGFwdCgpLFxuICB9XG5cbiAgQFZpZXdDaGlsZChcImZhaWxlZFN0YXRlXCIsIHsgc3RhdGljOiB0cnVlIH0pIGZhaWxlZFN0YXRlOiBhbnlcbiAgQFZpZXdDaGlsZChcInBvbGxpbmdTdGF0ZVwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBwb2xsaW5nU3RhdGU6IGFueVxuXG4gIHF1ZXN0aW9uQ29udHJvbCA9IHRoaXMuZmIuY29udHJvbChcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXG5cbiAgZG93bmxvYWRSZXF1ZXN0ID0gQXBpUmVxdWVzdC5hZGFwdCh7XG4gICAgc2VydmVyOiAnYXNzZXRzL2ltYWdlcycsXG4gICAgcGF0aDogWydtZS5qcGcnXSxcbiAgICAvLyBzYXZlQXM6ICdqb2huLmpwZycgLy8gT3B0aW9uYWxcbiAgfSlcblxuICAvLyBkb3dubG9hZFJlcXVlc3QgPSBBcGlSZXF1ZXN0LmFkYXB0KHtcbiAgLy8gICBzZXJ2ZXI6ICdvaWRjL2FpL2ZpbGUnXG4gIC8vIH0pXG5cbiAgc2FtcGxlQ2xpZW50RGF0YSA9IHtcbiAgICAgIGlkOiAwLFxuICAgICAgbmFtZTogXCJPbGQgU2Nob29sIERhdGVzXCIsXG4gICAgICBkb21haW46IFwib3NkLmNvbVwiLFxuICAgICAgc2VydmljZTogXCJvc2RcIixcbiAgICAgIHNwaWZmZTogXCJvc2QuY29tL29zZFwiLFxuICAgICAgc2VjcmV0OiBcIlNNT1BFQ1hQLU9TNFAtVVNPRy1YMklJLTNYTUQxRlFEUjNJSlhcIixcbiAgICAgIGNyZWF0ZWQ6IDE2OTMwMDMxMzgsXG4gICAgICBtb2RpZmllZDogMTY5MzAwMzEzOCxcbiAgICAgIGljb246IFwiXCIsXG4gICAgICBpbWFnZUZpbGU6IFwiXCIsXG4gICAgICBlbWFpbDogXCJ3YXZlY29kZXJzQGdtYWlsLmNvbVwiXG4gIH1cblxuICByZXF1ZXN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIHBhdGg6IHRoaXMuZmIuY29udHJvbDxzdHJpbmc+KFwiYWkvXCIpLFxuICAgIGhlYWRlcnM6IHRoaXMuZmIuYXJyYXkoW10pLFxuICAgIGFkYXB0ZXI6IFtudWxsXSxcbiAgICBtYXBwZXI6IFtudWxsXSxcbiAgICByZXRyeTogdGhpcy5mYi5ncm91cCh7XG4gICAgICB0aW1lczogWzNdLFxuICAgICAgZGVsYXk6IFszXSxcbiAgICB9KSxcbiAgICBwb2xsaW5nOiBbM10sXG4gIH0pXG5cbiAgQUlUeXBlID0gMFxuXG4gIHNhbXBsZUFkYXB0b3JzID0gW1xuICAgIHsgbGFiZWw6IFwiQ2xpZW50SW5mbyBCYXNpY1wiLCB2YWx1ZTogQ2xpZW50SW5mby5hZGFwdCB9LFxuICAgIHsgbGFiZWw6IFwiQUkgUHJvbXB0XCIsIHZhbHVlOiBBSVByb21wdC5hZGFwdCB9LFxuICBdXG5cbiAgc2FtcGxlTWFwcGVycyA9IFtcbiAgICB7IGxhYmVsOiBcIk1hcHBlciBCYXNpY1wiLCB2YWx1ZTogQ2xpZW50SW5mb01hcHBlci5hZGFwdCB9LFxuICAgIHsgbGFiZWw6IFwiQUkgUHJvbXB0XCIsIHZhbHVlOiBBSVByb21wdC5hZGFwdCB9LFxuICBdXG5cbiAgZ2V0IHJldHJ5KCkge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3RGb3JtLmdldCgncmV0cnknKT8udmFsdWVcbiAgfVxuXG4gIGdldCBoZWFkZXJzKCk6IEZvcm1BcnJheSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdEZvcm0uZ2V0KCdoZWFkZXJzJykgYXMgRm9ybUFycmF5XG4gIH1cblxuICBnZXQgaXNWYWxpZCgpIHtcbiAgICB0aGlzLnJlcXVlc3RGb3JtLm1hcmtBbGxBc1RvdWNoZWQoKVxuICAgIHJldHVybiB0aGlzLnJlcXVlc3RGb3JtLnZhbGlkXG4gIH1cblxuICBoYXNJZCA9IChhcnI6IGFueVtdKSA9PiB7XG4gICAgaWYgKGFyci5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZVxuICAgIHJldHVybiAhaXNOYU4oYXJyW2Fyci5sZW5ndGggLSAxXSlcbiAgfVxuXG4gIHByb3BzID0gKGFkYXB0ZXI6IGFueSkgPT4ge1xuICAgIHJldHVybiAoYWRhcHRlcikgPyBhZGFwdGVyKCkgOiBudWxsXG4gIH1cblxuICAvLyBzZXJ2ZXIgPSBgaHR0cDovL3NhbXBsZS1lbmRwb2ludC9hcy9hdXRob3JpemF0aW9uLm9hdXRoMmBcblxuICBhcnJheU9iamVjdHNUb09iamVjdHMgPSAoYXJyOiBhbnlbXSkgPT4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGFycikgPyBhcnIucmVkdWNlKChvYmosIGl0ZW0pID0+IE9iamVjdC5hc3NpZ24ob2JqLCB7IFtpdGVtLmtleV06IGl0ZW0udmFsdWUgfSksIHt9KSA6IHt9XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgLy8gY29uc3QgcmVxR2V0MiA9IEFwaVJlcXVlc3QuYWRhcHQoe1xuICAgIC8vICAgc2VydmVyLFxuICAgIC8vICAgcGF0aDogWydjbGllbnRzJ10sXG4gICAgLy8gICBoZWFkZXJzOiB7IGF1dGhlbnRpY2F0aW9uOiBcIkJlYXJlciA8S0VZPlwiIH0sXG4gICAgLy8gICBhZGFwdGVyOiBDbGllbnRJbmZvLFxuICAgIC8vICAgZGF0YVR5cGU6IERhdGFUeXBlLk9CSkVDVCxcbiAgICAvLyAgIC8vIGNvbmN1cnJlbnQ6IGZhbHNlLFxuICAgIC8vICAgLy8gcG9sbGluZzogMywgLy9zZWNvbmRzXG4gICAgLy8gfSlcblxuICAgIC8vIGNvbnN0IHJlcTIgPSBbMTAyNCwxMDI1LDEwMjZdLm1hcChpdGVtID0+IHtcbiAgICAvLyAgIHJldHVybiB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5nZXRSZXF1ZXN0PENsaWVudEluZm9bXT4ocmVxR2V0MiwgW2l0ZW1dKVxuICAgIC8vICAgLnBpcGUoXG4gICAgLy8gICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgIC8vICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihlcnJvci5lcnJvci5tZXNzYWdlKSlcbiAgICAvLyAgICAgfSlcbiAgICAvLyAgIClcbiAgICAvLyB9KVxuXG4gICAgLy8gZm9ya0pvaW4ocmVxMilcbiAgICAvLyAuc3Vic2NyaWJlKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKVxuXG4gIH1cblxuICBhZGRIZWFkZXIoKSB7XG4gICAgY29uc3QgaGVhZGVyID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBrZXk6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICB2YWx1ZTogWycnXVxuICAgIH0pXG4gICAgdGhpcy5oZWFkZXJzLnB1c2goaGVhZGVyKVxuICB9XG5cbiAgcmVtb3ZlSGVhZGVyKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmhlYWRlcnMucmVtb3ZlQXQoaW5kZXgpXG4gIH1cblxuICBjb21waWxlUmVxdWVzdCgpIHtcblxuICAgIGNvbnN0IHJlcXVlc3RQYXJhbXMgPSB0aGlzLnJlcXVlc3RGb3JtLnZhbHVlXG5cbiAgICByZXF1ZXN0UGFyYW1zLmhlYWRlcnMgPSB0aGlzLmFycmF5T2JqZWN0c1RvT2JqZWN0cyhcbiAgICAgIHJlcXVlc3RQYXJhbXMuaGVhZGVycyB8fCBbXVxuICAgIClcblxuICAgIGNvbnN0IHBhdGhSZXEgPSAocmVxdWVzdFBhcmFtcy5wYXRoID09PSBcIlwiKSA/IFtdIDogKHJlcXVlc3RQYXJhbXMucGF0aCB8fCBcIlwiKS5zcGxpdChcIi9cIilcblxuICAgIGlmICghdGhpcy5wb2xsaW5nU3RhdGUuY2hlY2tlZCkgcmVxdWVzdFBhcmFtcy5wb2xsaW5nID0gMFxuXG4gICAgaWYgKCF0aGlzLmZhaWxlZFN0YXRlLmNoZWNrZWQpIHtcbiAgICAgIHJlcXVlc3RQYXJhbXMucmV0cnkgPSB7IHRpbWVzOiAwLGRlbGF5OiAwIH1cbiAgICB9XG5cbiAgICBjb25zdCBhcGlPcHRpb25zID0gQXBpUmVxdWVzdC5hZGFwdChyZXF1ZXN0UGFyYW1zKVxuICAgIGFwaU9wdGlvbnMucGF0aCA9IFtdXG5cbiAgICByZXR1cm4geyBhcGlPcHRpb25zOiBhcGlPcHRpb25zLCBwYXRoOiBwYXRoUmVxIH1cblxuICB9XG5cbiAgb25HZXRSZXF1ZXN0KCkge1xuXG4gICAgaWYoIXRoaXMuaXNWYWxpZCkgcmV0dXJuXG5cbiAgICBjb25zdCByZXFQYXJhbXMgPSB0aGlzLmNvbXBpbGVSZXF1ZXN0KClcblxuICAgIHRoaXMucmVxdWVzdFBhcmFtcy5HRVQgPSByZXFQYXJhbXMuYXBpT3B0aW9uc1xuXG4gICAgdGhpcy5HRVQkID0gRU1QVFkgLy9DYW5jZWxzIFByZXZpb3VzXG4gICAgdGhpcy5HRVRfZXJyb3IkLm5leHQoJycpXG5cbiAgICB0aGlzLkdFVCQgPSB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5nZXRSZXF1ZXN0PENsaWVudEluZm9bXT4ocmVxUGFyYW1zLmFwaU9wdGlvbnMsIHJlcVBhcmFtcy5wYXRoKVxuICAgIC5waXBlKFxuICAgICAgLy8gdGFwKChkYXRhKSA9PiBjb25zb2xlLmxvZyhcIkFQSSBHRVQgcmVzcG9uc2VcIiwgZGF0YSkpLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IHRoaXMuZXJyb3JIYW5kbGluZyhlcnJvciwgJ0dFVCcpKVxuICAgICAgfSlcbiAgICApXG5cbiAgfVxuXG4gIG9uQ3JlYXRlUmVxdWVzdCgpIHtcblxuICAgIGlmKCF0aGlzLmlzVmFsaWQpIHJldHVyblxuXG4gICAgY29uc3QgcmVxUGFyYW1zID0gdGhpcy5jb21waWxlUmVxdWVzdCgpXG4gICAgdGhpcy5yZXF1ZXN0UGFyYW1zLlBPU1QgPSByZXFQYXJhbXMuYXBpT3B0aW9uc1xuXG4gICAgdGhpcy5QT1NUJCA9IEVNUFRZIC8vQ2FuY2VscyBQcmV2aW91c1xuICAgIHRoaXMuUE9TVF9lcnJvciQubmV4dCgnJylcblxuICAgIGNvbnNvbGUubG9nKFwiUE9TVFwiLCB0aGlzLnNhbXBsZUNsaWVudERhdGEpXG4gICAgY29uc29sZS5sb2coXCJQT1NUXCIsIHJlcVBhcmFtcy5hcGlPcHRpb25zKVxuICAgIGNvbnNvbGUubG9nKFwiUE9TVFwiLCByZXFQYXJhbXMucGF0aClcblxuICAgIHRoaXMuUE9TVCQgPSB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5wb3N0UmVxdWVzdDxDbGllbnRJbmZvPih0aGlzLnNhbXBsZUNsaWVudERhdGEsIHJlcVBhcmFtcy5hcGlPcHRpb25zLCByZXFQYXJhbXMucGF0aClcbiAgICAucGlwZShcbiAgICAgIC8vIHRhcCgoZGF0YSkgPT4gY29uc29sZS5sb2coXCJBUEkgUE9TVCByZXNwb25zZVwiLCBkYXRhKSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gdGhpcy5lcnJvckhhbmRsaW5nKGVycm9yLCAnUE9TVCcpKVxuICAgICAgfSlcbiAgICApXG5cbiAgfVxuXG4gIG9uVXBkYXRlUmVxdWVzdCgpIHtcblxuICAgIGlmKCF0aGlzLmlzVmFsaWQpIHJldHVyblxuXG4gICAgY29uc3QgcmVxUGFyYW1zID0gdGhpcy5jb21waWxlUmVxdWVzdCgpXG5cbiAgICBpZighdGhpcy5oYXNJZChyZXFQYXJhbXMucGF0aCkpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiTWlzc2luZyBJRFwiKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5zYW1wbGVDbGllbnREYXRhLmlkID0gcGFyc2VJbnQocmVxUGFyYW1zLnBhdGhbcmVxUGFyYW1zLnBhdGgubGVuZ3RoLTFdKVxuICAgIHRoaXMucmVxdWVzdFBhcmFtcy5QVVQgPSByZXFQYXJhbXMuYXBpT3B0aW9uc1xuXG4gICAgdGhpcy5QVVQkID0gRU1QVFkgLy9DYW5jZWxzIFByZXZpb3VzXG4gICAgdGhpcy5QVVRfZXJyb3IkLm5leHQoJycpXG5cbiAgICB0aGlzLlBVVCQgPSB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5wdXRSZXF1ZXN0PGFueT4odGhpcy5zYW1wbGVDbGllbnREYXRhLCByZXFQYXJhbXMuYXBpT3B0aW9ucywgcmVxUGFyYW1zLnBhdGgpXG4gICAgLnBpcGUoXG4gICAgICAvLyB0YXAoKGRhdGEpID0+IGNvbnNvbGUubG9nKFwiQVBJIFBVVCByZXNwb25zZVwiLCBkYXRhKSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gdGhpcy5lcnJvckhhbmRsaW5nKGVycm9yLCAnUFVUJykpXG4gICAgICB9KVxuICAgIClcblxuICB9XG5cbiAgb25EZWxldGVSZXF1ZXN0KCkge1xuXG4gICAgaWYoIXRoaXMuaXNWYWxpZCkgcmV0dXJuXG5cbiAgICBjb25zdCByZXFQYXJhbXMgPSB0aGlzLmNvbXBpbGVSZXF1ZXN0KClcbiAgICB0aGlzLnJlcXVlc3RQYXJhbXMuREVMRVRFID0gcmVxUGFyYW1zLmFwaU9wdGlvbnNcblxuICAgIGlmKCF0aGlzLmhhc0lkKHJlcVBhcmFtcy5wYXRoKSkge1xuICAgICAgY29uc29sZS5sb2coXCJNaXNzaW5nIElEXCIpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLnNhbXBsZUNsaWVudERhdGEuaWQgPSBwYXJzZUludChyZXFQYXJhbXMucGF0aFtyZXFQYXJhbXMucGF0aC5sZW5ndGgtMV0pXG4gICAgdGhpcy5yZXF1ZXN0UGFyYW1zLkRFTEVURSA9IHJlcVBhcmFtcy5hcGlPcHRpb25zXG5cbiAgICB0aGlzLkRFTEVURSQgPSBFTVBUWSAvL0NhbmNlbHMgUHJldmlvdXNcbiAgICB0aGlzLkRFTEVURV9lcnJvciQubmV4dCgnJylcblxuICAgIHRoaXMuREVMRVRFJCA9IHRoaXMuaHR0cE1hbmFnZXJTZXJ2aWNlLmRlbGV0ZVJlcXVlc3Q8Q2xpZW50SW5mbz4ocmVxUGFyYW1zLmFwaU9wdGlvbnMsIHJlcVBhcmFtcy5wYXRoKVxuICAgIC5waXBlKFxuICAgICAgLy8gdGFwKChkYXRhKSA9PiBjb25zb2xlLmxvZyhcIkFQSSBERUxFVEUgcmVzcG9uc2VcIiwgZGF0YSkpLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IHRoaXMuZXJyb3JIYW5kbGluZyhlcnJvciwgJ0RFTEVURScpKVxuICAgICAgfSlcbiAgICApXG5cbiAgfVxuXG4gIG9uU3RyZWFtUG9zdFJlcXVlc3QoKSB7XG5cbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuXG5cbiAgICBjb25zdCByZXFQYXJhbXMgPSB0aGlzLmNvbXBpbGVSZXF1ZXN0KClcblxuICAgIGxldCBwYXlsb2FkID0ge31cbiAgICBsZXQgYXBpUGF0aDogc3RyaW5nW10gPSByZXFQYXJhbXMucGF0aFxuICAgIGxldCBhcGlPcHRpb25zID0gcmVxUGFyYW1zLmFwaU9wdGlvbnNcbiAgICBsZXQgcmVzcG9uc2VNYXBwZXI6IChpdGVtczogYW55KSA9PiBhbnkgPSAoaXRlbXMpID0+IGl0ZW1zLnJlc3BvbnNlXG5cbiAgICBpZiAodGhpcy5BSVR5cGUgPT09IDApIHtcblxuICAgICAgLy8gQVBJIHJlcXVlc3RcbiAgICAgIHBheWxvYWQgPSB7IHByb21wdDogdGhpcy5xdWVzdGlvbkNvbnRyb2wudmFsdWUgfVxuXG4gICAgfSBlbHNlIHtcblxuICAgICAgLy8gTG9jYWwgT2xsYW1hIHJlcXVlc3RcbiAgICAgIGFwaU9wdGlvbnMuc2VydmVyID0gXCJhcGlcIlxuICAgICAgYXBpUGF0aCA9IFtcImdlbmVyYXRlXCJdXG4gICAgICBhcGlPcHRpb25zLnN0cmVhbSA9IHRydWVcbiAgICAgIHBheWxvYWQgPSB7XG4gICAgICAgIG1vZGVsOiBcInBoaTM6bGF0ZXN0XCIsXG4gICAgICAgIHByb21wdDogdGhpcy5xdWVzdGlvbkNvbnRyb2wudmFsdWUsXG4gICAgICAgIHN0cmVhbTogdHJ1ZSxcbiAgICAgIH1cblxuICAgICAgcmVzcG9uc2VNYXBwZXIgPSAoaXRlbXMpID0+IGl0ZW1zLm1hcCgod29yZDogYW55KSA9PiB3b3JkLnJlc3BvbnNlKS5mbGF0KCkuam9pbignJylcblxuICAgIH1cblxuICAgIHRoaXMucmVxdWVzdFBhcmFtcy5TVFJFQU0gPSBhcGlPcHRpb25zXG4gICAgdGhpcy5TVFJFQU1fQUkkID0gRU1QVFlcbiAgICB0aGlzLlNUUkVBTV9BSV9lcnJvciQubmV4dCgnJylcblxuICAgIHRoaXMuU1RSRUFNX0FJJCA9IHRoaXMuaHR0cE1hbmFnZXJTZXJ2aWNlLnBvc3RSZXF1ZXN0PGFueT4ocGF5bG9hZCwgYXBpT3B0aW9ucywgYXBpUGF0aCkucGlwZShcbiAgICAgIG1hcChyZXNwb25zZU1hcHBlciksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5xdWVzdGlvbkNvbnRyb2wucmVzZXQoKSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHRocm93RXJyb3IoKCkgPT4gdGhpcy5lcnJvckhhbmRsaW5nKGVycm9yLCAnU1RSRUFNJykpKVxuICAgIClcblxuICB9XG5cblxuICBvblN0cmVhbVJlcXVlc3QoKSB7XG5cbiAgICBpZighdGhpcy5pc1ZhbGlkKSByZXR1cm5cblxuICAgIGNvbnN0IHJlcVBhcmFtcyA9IHRoaXMuY29tcGlsZVJlcXVlc3QoKVxuXG4gICAgcmVxUGFyYW1zLmFwaU9wdGlvbnMuc3RyZWFtID0gdHJ1ZVxuXG4gICAgdGhpcy5yZXF1ZXN0UGFyYW1zLkdFVCA9IHJlcVBhcmFtcy5hcGlPcHRpb25zXG4gICAgdGhpcy5TVFJFQU0kID0gdGhpcy5odHRwTWFuYWdlclNlcnZpY2UuZ2V0UmVxdWVzdDxDbGllbnRJbmZvW10+KHJlcVBhcmFtcy5hcGlPcHRpb25zLCByZXFQYXJhbXMucGF0aClcbiAgICAgICAgLnBpcGUoXG4gICAgICAvLyB0YXAoKGRhdGEpID0+IGNvbnNvbGUubG9nKFwiQVBJIFNUUkVBTSByZXNwb25zZVwiLCBkYXRhKSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gdGhpcy5lcnJvckhhbmRsaW5nKGVycm9yLCAnU1RSRUFNJykpXG4gICAgICB9KVxuICAgIClcblxuICB9XG5cbiAgb25Eb3dubG9hZENvbXBsZXRlZCgpIHtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBcIkRvd25sb2FkIENvbXBsZXRlZFwiXG5cbiAgICBjb25zdCBkaXNwbGF5ID0gVG9hc3REaXNwbGF5LmFkYXB0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBhY3Rpb246ICdPaycsXG4gICAgICBjb2xvcjogVG9hc3RDb2xvcnMuU1VDQ0VTUyxcbiAgICAgIGljb246ICdzZW50aW1lbnRfc2F0aXNmaWVkX2FsdCcsXG4gICAgfSlcblxuICAgIHRoaXMudG9hc3RNZXNzYWdlLnRvYXN0TWVzc2FnZShkaXNwbGF5KVxuICB9XG5cbiAgb25Eb3dubG9hZEZhaWxlZChlcnI6IHN0cmluZykge1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IFwiRG93bmxvYWQgRmFpbGVkXCJcblxuICAgIGNvbnN0IGRpc3BsYXkgPSBUb2FzdERpc3BsYXkuYWRhcHQoe1xuICAgICAgbWVzc2FnZSxcbiAgICAgIGFjdGlvbjogJ09rJyxcbiAgICAgIGNvbG9yOiBUb2FzdENvbG9ycy5FUlJPUixcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICB9KVxuXG4gICAgdGhpcy50b2FzdE1lc3NhZ2UudG9hc3RNZXNzYWdlKGRpc3BsYXkpXG4gIH1cblxuICBlcnJvckhhbmRsaW5nKGVycjogYW55LCB0eXBlOiBzdHJpbmcpIHtcbiAgICBpZih0eXBlID09PSAnR0VUJykgdGhpcy5HRVRfZXJyb3IkLm5leHQoZXJyLm1lc3NhZ2UpXG4gICAgaWYodHlwZSA9PT0gJ1BPU1QnKSB0aGlzLlBPU1RfZXJyb3IkLm5leHQoZXJyLm1lc3NhZ2UpXG4gICAgaWYodHlwZSA9PT0gJ1BVVCcpIHRoaXMuUFVUX2Vycm9yJC5uZXh0KGVyci5tZXNzYWdlKVxuICAgIGlmKHR5cGUgPT09ICdERUxFVEUnKSB0aGlzLkRFTEVURV9lcnJvciQubmV4dChlcnIubWVzc2FnZSlcbiAgICBpZih0eXBlID09PSAnU1RSRUFNJykgdGhpcy5TVFJFQU1fZXJyb3IkLm5leHQoZXJyLm1lc3NhZ2UpXG4gIH1cblxuICBvblNlbGVjdEFJVHlwZSh0eXBlOiBudW1iZXIpIHtcbiAgICB0aGlzLkFJVHlwZSA9IHR5cGVcbiAgfVxuXG59XG4iLCI8ZGl2IHN0eWxlPVwibWFyZ2luOiAycmVtO1wiPlxuXG4gIDxoMj5cbiAgICBIVFRQIFJlcXVlc3QgTWFuYWdlclxuICA8L2gyPlxuXG4gIDxkaXYgW2Zvcm1Hcm91cF09XCJyZXF1ZXN0Rm9ybVwiIHN0eWxlPVwibWFyZ2luLXRvcDogMnJlbTtcIj5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiAuNXJlbVwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+QWRhcHRlciAoTW9kZWwpPC9tYXQtbGFiZWw+XG4gICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImFkYXB0ZXJcIiAjYWRhcHRlclNlbGVjdD5cbiAgICAgICAgICA8bWF0LW9wdGlvbj5Ob25lPC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBhZGFwdGVyIG9mIHNhbXBsZUFkYXB0b3JzXCIgW3ZhbHVlXT1cImFkYXB0ZXIudmFsdWVcIj5cbiAgICAgICAgICAgIHt7YWRhcHRlci5sYWJlbH19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+TWFwcGVyIChNb2RlbCk8L21hdC1sYWJlbD5cbiAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwibWFwcGVyXCIgI21hcHBlclNlbGVjdD5cbiAgICAgICAgICA8bWF0LW9wdGlvbj5Ob25lPC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBtYXBwZXIgb2Ygc2FtcGxlTWFwcGVyc1wiIFt2YWx1ZV09XCJtYXBwZXIudmFsdWVcIj5cbiAgICAgICAgICAgIHt7bWFwcGVyLmxhYmVsfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IG1hcmdpbi1ib3R0b206IDJyZW07XCIgKm5nSWY9XCJhZGFwdGVyU2VsZWN0LnZhbHVlIHx8IG1hcHBlclNlbGVjdC52YWx1ZVwiPlxuICAgICAgPGRpdiBzdHlsZT1cImZsZXg6MVwiIGNsYXNzPVwiYm94XCI+XG4gICAgICAgIDxoMz5BZGFwdGVyIChJbmNvbWluZyk8L2gzPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiYWRhcHRlclNlbGVjdC52YWx1ZTsgZWxzZSBOT19BREFQVEVSXCI+XG4gICAgICAgICAge3sgcHJvcHMoYWRhcHRlclNlbGVjdC52YWx1ZSkgfCBqc29uIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI05PX0FEQVBURVI+Tm8gVHJhbnNmb3JtYXRpb248L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IHN0eWxlPVwiZmxleDoxXCIgY2xhc3M9XCJib3hcIj5cbiAgICAgICAgPGgzPk1hcHBlciAoT3V0Z29pbmcpPC9oMz5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm1hcHBlclNlbGVjdC52YWx1ZTsgZWxzZSBOT19NQVBQRVJcIj5cbiAgICAgICAgICB7eyBwcm9wcyhtYXBwZXJTZWxlY3QudmFsdWUpIHwganNvbiB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNOT19NQVBQRVI+Tm8gVHJhbnNmb3JtYXRpb248L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICA8bWF0LWxhYmVsPlJlc3RQYXRoICgvIGRlbGltaXRlZCk8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiY2xpZW50cy9saXN0XCIgZm9ybUNvbnRyb2xOYW1lPVwicGF0aFwiPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPVwiaGVhZGVyc1wiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0YXNrIG9mIGhlYWRlcnMuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIiBbZm9ybUdyb3VwTmFtZV09XCJpXCI+XG4gICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogLjVyZW1cIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICA8bWF0LWxhYmVsPktleTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJhdXRoZW50aWNhdGlvblwiIGZvcm1Db250cm9sTmFtZT1cImtleVwiPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIHN0eWxlPVwiZmxleDoxXCI+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmFsdWU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwic2FtcGxlXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogLjVyZW07XCI+XG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZW1vdmVIZWFkZXIoaSlcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkSGVhZGVyKClcIiBjbGFzcz1cImJ0blwiPkFkZCBIZWFkZXI8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogMnJlbTsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBnYXA6IDFyZW07XCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSAjZmFpbGVkU3RhdGU+UmV0cnkgb24gRmFpbGVkPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZmFpbGVkU3RhdGUuY2hlY2tlZFwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiAuNXJlbTsgbWFyZ2luLXRvcDogMXJlbTtcIiBmb3JtR3JvdXBOYW1lPVwicmV0cnlcIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+I29mIFRpbWVzPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCIzXCIgZm9ybUNvbnRyb2xOYW1lPVwidGltZXNcIiB2YWx1ZT1cIjNcIj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5EZWxheSBVbnRpbCBOZXh0PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCIzXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVsYXlcIiB2YWx1ZT1cIjNcIj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgI3BvbGxpbmdTdGF0ZT5Qb2xsaW5nPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwicG9sbGluZ1N0YXRlLmNoZWNrZWRcIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW1cIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+I29mIFNlY29uZHM8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIjNcIiBmb3JtQ29udHJvbE5hbWU9XCJwb2xsaW5nXCIgdmFsdWU9XCIzXCI+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDFyZW07IG1hcmdpbi10b3A6IDJyZW07XCI+XG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIlxuICAgICAgKm5nSWY9XCIoaXNQZW5kaW5nJCB8IGFzeW5jKVwiXG4gICAgPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiZGV0ZXJtaW5hdGVcIlxuICAgICAgKm5nSWY9XCJwb2xsaW5nU3RhdGUuY2hlY2tlZCAmJiAhKGlzUGVuZGluZyQgfCBhc3luYylcIlxuICAgICAgW3ZhbHVlXT1cIih0aGlzLmNvdW50ZG93biQgfCBhc3luYylcIlxuICAgID48L21hdC1wcm9ncmVzcy1iYXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtXCI+XG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAycmVtXCI+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICA8aDIgc3R5bGU9XCJmbGV4OjFcIj5HRVQgUmVxdWVzdDwvaDI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJvbkdldFJlcXVlc3QoKVwiIGNsYXNzPVwiYnRuXCI+UmVxdWVzdDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiKEdFVF9lcnJvciQgfCBhc3luYykgYXMgZ2V0X2Vycm9yXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAuNXJlbTtcIj5cbiAgICAgIDxtYXQtZXJyb3I+e3sgZ2V0X2Vycm9yIH19PC9tYXQtZXJyb3I+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogMXJlbTtcIiAqbmdJZj1cIihHRVQkIHwgYXN5bmMpIGFzIGRhdGFSZWNvcmRcIj5cbiAgICAgIDwhLS0gPGRpdiBbaW5uZXJIVE1MXT1cIihHRVQkIHwgYXN5bmMpIHwganNvbnZcIj48L2Rpdj4gLS0+XG4gICAgICB7eyBkYXRhUmVjb3JkIHwganNvbiB9fVxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG4gIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAycmVtXCI+XG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAycmVtXCI+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICA8aDIgc3R5bGU9XCJmbGV4OjFcIj5QT1NUIFJlcXVlc3Q8L2gyPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwib25DcmVhdGVSZXF1ZXN0KClcIiBjbGFzcz1cImJ0blwiPlJlcXVlc3Q8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIihQT1NUX2Vycm9yJCB8IGFzeW5jKSBhcyBwb3N0X2Vycm9yXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAuNXJlbTtcIj5cbiAgICAgIDxtYXQtZXJyb3I+e3sgcG9zdF9lcnJvciB9fTwvbWF0LWVycm9yPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW07XCIgKm5nSWY9XCIoUE9TVCQgfCBhc3luYykgYXMgZGF0YVJlY29yZFwiPlxuICAgICAgPCEtLSA8ZGl2IFtpbm5lckhUTUxdPVwiKFBPU1QkIHwgYXN5bmMpIHwganNvbnZcIj48L2Rpdj4gLS0+XG4gICAgICB7eyBkYXRhUmVjb3JkIHwganNvbiB9fVxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG4gIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAycmVtXCI+XG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAycmVtXCI+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICA8aDIgc3R5bGU9XCJmbGV4OjFcIj5QVVQgUmVxdWVzdDwvaDI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJvblVwZGF0ZVJlcXVlc3QoKVwiIGNsYXNzPVwiYnRuXCI+UmVxdWVzdDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiKFBVVF9lcnJvciQgfCBhc3luYykgYXMgcHV0X2Vycm9yXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAuNXJlbTtcIj5cbiAgICAgIDxtYXQtZXJyb3I+e3sgcHV0X2Vycm9yIH19PC9tYXQtZXJyb3I+XG4gICAgPC9kaXY+XG5cbiAgICA8aDM+SW5jbHVkZSBSZWNvcmQgSUQgaW4gdGhlIFJlc3RQYXRoPC9oMz5cblxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtO1wiICpuZ0lmPVwiKFBVVCQgfCBhc3luYykgYXMgZGF0YVJlY29yZFwiPlxuICAgICAgPCEtLSA8ZGl2IFtpbm5lckhUTUxdPVwiKFBVVCQgfCBhc3luYykgfCBqc29udlwiPjwvZGl2PiAtLT5cbiAgICAgICB7eyBkYXRhUmVjb3JkIHwganNvbiB9fVxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG4gIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAycmVtXCI+XG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAycmVtXCI+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICA8aDIgc3R5bGU9XCJmbGV4OjFcIj5ERUxFVEUgUmVxdWVzdDwvaDI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJvbkRlbGV0ZVJlcXVlc3QoKVwiIGNsYXNzPVwiYnRuXCI+UmVxdWVzdDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8aDM+SW5jbHVkZSBSZWNvcmQgSUQgaW4gdGhlIFJlc3RQYXRoPC9oMz5cblxuICAgIDxkaXYgKm5nSWY9XCIoREVMRVRFX2Vycm9yJCB8IGFzeW5jKSBhcyBkZWxldGVfZXJyb3JcIiBzdHlsZT1cIm1hcmdpbi10b3A6IC41cmVtO1wiPlxuICAgICAgPG1hdC1lcnJvcj57eyBkZWxldGVfZXJyb3IgfX08L21hdC1lcnJvcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtO1wiICpuZ0lmPVwiKERFTEVURSQgfCBhc3luYykgYXMgZGF0YVJlY29yZFwiPlxuICAgICAgPCEtLSA8ZGl2IFtpbm5lckhUTUxdPVwiKERFTEVURSQgfCBhc3luYykgfCBqc29udlwiPjwvZGl2PiAtLT5cbiAgICAgIHt7IGRhdGFSZWNvcmQgfCBqc29uIH19XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW1cIj5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW1cIj5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgIDxoMiBzdHlsZT1cImZsZXg6MVwiPlN0cmVhbWluZyBHRVQgUmVxdWVzdDwvaDI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJvblN0cmVhbVJlcXVlc3QoKVwiIGNsYXNzPVwiYnRuXCI+UmVxdWVzdDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIDxkaXYgKm5nSWY9XCIoU1RSRUFNX2Vycm9yJCB8IGFzeW5jKSBhcyBzdHJlYW1fZXJyb3JcIiBzdHlsZT1cIm1hcmdpbi10b3A6IC41cmVtO1wiPlxuICAgICAgPG1hdC1lcnJvcj57eyBzdHJlYW1fZXJyb3IgfX08L21hdC1lcnJvcj5cbiAgICA8L2Rpdj4gLS0+XG5cbiAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDogMXJlbTtcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCIoU1RSRUFNJCB8IGFzeW5jKSBhcyBkYXRhXCIgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpZFwiPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gSUQgPC90aD5cbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5pZH19IDwvdGQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm5hbWVcIj5cbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEZpcnN0IE5hbWUgPC90aD5cbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5uYW1lfX0gPC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibGFzdE5hbWVcIj5cbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IExhc3QgTmFtZSA8L3RoPlxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Lmxhc3ROYW1lfX0gPC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWdlXCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBZ2UgPC90aD5cbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5hZ2V9fSA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW1cIj5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW1cIj5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgIDxoMiBzdHlsZT1cImZsZXg6MTsgcGFkZGluZy10b3A6IC41cmVtO1wiPkFJIC08c3BhbiAqbmdJZj1cIkFJVHlwZSA9PT0gMVwiPlNUUkVBTUlORzwvc3Bhbj4gUE9TVCBSZXF1ZXN0PC9oMj5cbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDFyZW07XCI+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBzdHlsZT1cIm1pbi13aWR0aDogMTIwcHg7XCI+XG4gICAgICAgICAgPG1hdC1pY29uPmxhbjwvbWF0LWljb24+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkFJVHlwZSA9PT0gMDsgZWxzZSBMT0NBTFwiPlNlcnZlcjwvc3Bhbj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjTE9DQUw+XG4gICAgICAgICAgICAgIExvY2FsXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib25TZWxlY3RBSVR5cGUoMClcIj5TZXJ2ZXI8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uU2VsZWN0QUlUeXBlKDEpXCI+TG9jYWw8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJvblN0cmVhbVBvc3RSZXF1ZXN0KClcIiBjbGFzcz1cImJ0blwiPkFzayBNZTwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBzdHlsZT1cImZsZXg6MVwiPlxuICAgICAgICA8bWF0LWxhYmVsPkFzayBtZSBhIFF1ZXN0aW9uPC9tYXQtbGFiZWw+XG4gICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIldoeSBpcyB0aGUgc2t5IGJsdWU/XCIgW2Zvcm1Db250cm9sXT1cInF1ZXN0aW9uQ29udHJvbFwiPjwvdGV4dGFyZWE+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIihTVFJFQU1fQUlfZXJyb3IkIHwgYXN5bmMpIGFzIHN0cmVhbV9lcnJvclwiIHN0eWxlPVwibWFyZ2luLXRvcDogLjVyZW07XCI+XG4gICAgICA8bWF0LWVycm9yPnt7IHN0cmVhbV9lcnJvciB9fTwvbWF0LWVycm9yPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIkFJVHlwZSA9PT0gMTsgZWxzZSBBTFRFUk5BVElWRVwiIHN0eWxlPVwiY29sb3I6IHJlZDtcIj5cbiAgICAgIFlvdSBtdXN0IGhhdmUgT2xsYW1hIGFjdGl2ZSBhbmQgdGhlICdwaGkzOmxhdGVzdCcgbW9kZWwgdG8gdXNlIHRoaXMgZmVhdHVyZS5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI0FMVEVSTkFUSVZFPlxuICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogZ3JheTtcIj5cbiAgICAgICAgRGVmaW5lIHRoZSBSZXN0UGF0aCB0byB0aGUgQVBJIGVuZHBvaW50IHRoYXQgd2lsbCBoYW5kbGUgdGhlIEFJIHJlcXVlc3QuXG4gICAgICAgIFVzZTogJ2FpL2NoYXQnIGZvciBzZXJ2ZXJcbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGRpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIoU1RSRUFNX0FJJCB8IGFzeW5jKSBhcyBkYXRhXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtOyBmb250LXNpemU6IDEuMnJlbTsgYm9yZGVyLXJhZGl1czogMXJlbTsgYm9yZGVyOiBibGFjayAxcHggc29saWQ7IHBhZGRpbmc6IDJyZW07XCI+XG4gICAgICAgIDxwIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogLjVyZW07IHdoaXRlLXNwYWNlOnByZS13cmFwOyBsaW5lLWhlaWdodDogMS42cmVtO1wiPnt7ZGF0YX19PC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDEuNXJlbTsgbWFyZ2luLWJvdHRvbTogMXJlbTsgbGluZS1oZWlnaHQ6IDEuNXJlbTtcIj5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgPC9kaXY+XG5cbiAgPGRpdj5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgIDxoMiBzdHlsZT1cImZsZXg6MTsgbWFyZ2luLWJvdHRvbTogMDsgcGFkZGluZy10b3A6IC41cmVtOyBkaXNwbGF5OiBmbGV4O1wiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIERvd25sb2FkIEZpbGVcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OjE7IG1hcmdpbi1sZWZ0OiAxcmVtO1wiPlxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlICNkaXNhYmxlPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkaXNhYmxlLmNoZWNrZWQ7IGVsc2UgRElTQUJMRVwiPlxuICAgICAgICAgICAgICBFbmFibGVcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjRElTQUJMRT5EaXNhYmxlPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9oMj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxhcHAtZmlsZS1kb3dubG9hZGVyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGUuY2hlY2tlZFwiXG4gICAgICAgICAgW2RlbGF5RXJyb3JdPVwiM1wiXG4gICAgICAgICAgW2FwaVJlcXVlc3RdPVwiZG93bmxvYWRSZXF1ZXN0XCJcbiAgICAgICAgICAoY29tcGxldGVkKT1cIm9uRG93bmxvYWRDb21wbGV0ZWQoKVwiXG4gICAgICAgICAgKGZhaWxlZCk9XCJvbkRvd25sb2FkRmFpbGVkKCRldmVudClcIlxuICAgICAgICA+PC9hcHAtZmlsZS1kb3dubG9hZGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
|