@eo-sdk/client 8.14.0-rc.2 → 8.15.0-rc.1
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/app/eo-client/about-state/about-state.component.d.ts +1 -0
- package/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.d.ts +2 -1
- package/app/eo-framework/form-elements/datetime/datetime.component.d.ts +5 -1
- package/app/eo-framework/object-form/object-form/form-element/form-element.component.d.ts +2 -1
- package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +4 -1
- package/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.d.ts +2 -0
- package/app/eo-framework/object-form/object-form/object-form.component.d.ts +2 -1
- package/app/eo-framework/object-form/object-form-edit/object-form-edit.component.d.ts +1 -0
- package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +22 -11
- package/app/eo-framework/util/directive/trap-focus.directive.d.ts +14 -0
- package/assets/_default/config/main.json +2 -1
- package/assets/_default/i18n/de.json +2 -0
- package/assets/_default/i18n/en.json +3 -1
- package/assets/_default/svg/ic_preview_close.svg +1 -0
- package/assets/_default/svg/ic_preview_show.svg +1 -0
- package/bundles/eo-sdk-client.umd.js +3381 -3262
- package/bundles/eo-sdk-client.umd.js.map +1 -1
- package/bundles/eo-sdk-client.umd.min.js +1 -1
- package/bundles/eo-sdk-client.umd.min.js.map +1 -1
- package/eo-sdk-client.d.ts +67 -63
- package/eo-sdk-client.metadata.json +1 -1
- package/esm2015/app/eo-client/about-state/about-state.component.js +6 -5
- package/esm2015/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.js +1 -1
- package/esm2015/app/eo-framework/app-shell/app-bar/app-search/app-search.component.js +3 -3
- package/esm2015/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.js +2 -2
- package/esm2015/app/eo-framework/app-shell/app-shell.module.js +5 -3
- package/esm2015/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.js +8 -4
- package/esm2015/app/eo-framework/form-elements/datetime/datetime.component.js +13 -8
- package/esm2015/app/eo-framework/grid/filters/datetime-filter.component.js +2 -2
- package/esm2015/app/eo-framework/object-details/favorite-icon/favorite-icon.component.js +2 -2
- package/esm2015/app/eo-framework/object-form/object-form/form-element/form-element.component.js +3 -2
- package/esm2015/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.js +9 -2
- package/esm2015/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.js +3 -2
- package/esm2015/app/eo-framework/object-form/object-form/object-form.component.js +3 -2
- package/esm2015/app/eo-framework/object-form/object-form-edit/object-form-edit.component.js +5 -2
- package/esm2015/app/eo-framework/object-form/object-form.module.js +4 -2
- package/esm2015/app/eo-framework/prepare-details/prepare-details.component.js +2 -2
- package/esm2015/app/eo-framework/ui/eo-dialog/eo-dialog.component.js +78 -42
- package/esm2015/app/eo-framework/ui/ui.module.js +4 -2
- package/esm2015/app/eo-framework/util/directive/trap-focus.directive.js +50 -0
- package/esm2015/eo-sdk-client.js +68 -64
- package/fesm2015/eo-sdk-client.js +1246 -1134
- package/fesm2015/eo-sdk-client.js.map +1 -1
- package/package.json +3 -3
- package/projects/eo-sdk/core/package.json +1 -1
- package/styles.css +1 -0
- package/styles.scss +1 -0
|
@@ -601,7 +601,7 @@ export class ObjectFormComponent extends UnsubscribeOnDestroy {
|
|
|
601
601
|
ObjectFormComponent.decorators = [
|
|
602
602
|
{ type: Component, args: [{
|
|
603
603
|
selector: 'eo-object-form',
|
|
604
|
-
template: "<div class=\"eo-object-form\" *ngIf=\"form && formOptions\" [formGroup]=\"form\" eoRtlAware>\r\n <div class=\"form-element-wrap core\">\r\n <eo-form-group [group]=\"form.get('core')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\r\n </div>\r\n <div class=\"form-element-wrap data\">\r\n <eo-form-group [group]=\"form.get('data')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n\r\n",
|
|
604
|
+
template: "<div class=\"eo-object-form\" *ngIf=\"form && formOptions\" [formGroup]=\"form\" eoRtlAware>\r\n <div class=\"form-element-wrap core\">\r\n <eo-form-group [group]=\"form.get('core')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\r\n </div>\r\n <div class=\"form-element-wrap data\">\r\n <eo-form-group [dmsObject]=\"dmsObject\" [group]=\"form.get('data')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n\r\n",
|
|
605
605
|
// define 'child only' services for the form without setting it up on the module
|
|
606
606
|
// which would cause them to be propagated to the whole application
|
|
607
607
|
providers: [ObjectFormScriptService],
|
|
@@ -623,6 +623,7 @@ ObjectFormComponent.propDecorators = {
|
|
|
623
623
|
isInnerTableForm: [{ type: Input }],
|
|
624
624
|
statusChanged: [{ type: Output }],
|
|
625
625
|
onFormReady: [{ type: Output }],
|
|
626
|
+
dmsObject: [{ type: Input }],
|
|
626
627
|
options: [{ type: Input, args: ['formOptions',] }]
|
|
627
628
|
};
|
|
628
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUE0QixRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUUsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFFWixVQUFVLEVBRVYsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFjLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3hGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBR3RFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUM5RSxPQUFPLEVBQUMsTUFBTSxFQUFnQixhQUFhLEVBQWMsYUFBYSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzVGLE9BQU8sRUFBQyxZQUFZLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdC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VCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxtRUFBbUU7SUFDbkUsb0VBQW9FO0lBQ3BFLDBFQUEwRTtJQUNsRSxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsMEJBQTBCLENBQUMsQ0FBQztZQUNqRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7O1lBdnFCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsOGRBQTJDO2dCQUUzQyxnRkFBZ0Y7Z0JBQ2hGLG1FQUFtRTtnQkFDbkUsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7O2FBRXJDOzs7WUFkTyxNQUFNO1lBaEJaLFVBQVU7WUFnQmtCLGFBQWE7WUFBYyxhQUFhO1lBTjlELHVCQUF1QjtZQUN2Qix1QkFBdUI7WUFJdkIsY0FBYztZQUdkLGdCQUFnQjtZQWhCdEIsaUJBQWlCOzs7K0JBK0JoQixLQUFLOzRCQUVMLE1BQU07MEJBRU4sTUFBTTtzQkFxQk4sS0FBSyxTQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge29mIGFzIG9ic2VydmFibGVPZiwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBmb3JrSm9pbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT25EZXN0cm95LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1WYWxpZGF0aW9ufSBmcm9tICcuL2Zvcm0tdmFsaWRhdGlvbi9mb3JtLXZhbGlkYXRpb24nO1xyXG5pbXBvcnQge09iamVjdEZvcm1Hcm91cH0gZnJvbSAnLi9vYmplY3QtZm9ybS1ncm91cCc7XHJcbmltcG9ydCB7VmFsaWRhdG9yRm4sIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtPYmplY3RGb3JtQ29udHJvbH0gZnJvbSAnLi9vYmplY3QtZm9ybS1jb250cm9sJztcclxuaW1wb3J0IHtPYmplY3RGb3JtQ29udHJvbFdyYXBwZXJ9IGZyb20gJy4vb2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyJztcclxuaW1wb3J0IHtPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGV9IGZyb20gJy4vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdGluZy1zY29wZSc7XHJcbmltcG9ydCB7T2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2V9IGZyb20gJy4vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdC5zZXJ2aWNlJztcclxuaW1wb3J0IHtPYmplY3RGb3JtSGVscGVyU2VydmljZX0gZnJvbSAnLi4vb2JqZWN0LWZvcm0taGVscGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge09iamVjdEZvcm1PcHRpb25zfSBmcm9tICcuLi9vYmplY3QtZm9ybS1vcHRpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7Rm9ybVN0YXR1c0NoYW5nZWRFdmVudH0gZnJvbSAnLi4vZm9ybS1zdGF0dXMtY2hhbmdlZC1ldmVudC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi8uLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UGx1Z2luc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2FwaS9wbHVnaW5zLnNlcnZpY2UnO1xyXG5pbXBvcnQge0xvZ2dlciwgU2VhcmNoRmlsdGVyLCBTeXN0ZW1TZXJ2aWNlLCBSYW5nZVZhbHVlLCBTZWFyY2hTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xyXG5pbXBvcnQge2RlYm91bmNlVGltZSwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7UmVmZXJlbmNlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcmVmZXJlbmNlcy9yZWZlcmVuY2Uuc2VydmljZSc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VvLW9iamVjdC1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgLy8gZGVmaW5lICdjaGlsZCBvbmx5JyBzZXJ2aWNlcyBmb3IgdGhlIGZvcm0gd2l0aG91dCBzZXR0aW5nIGl0IHVwIG9uIHRoZSBtb2R1bGVcclxuICAvLyB3aGljaCB3b3VsZCBjYXVzZSB0aGVtIHRvIGJlIHByb3BhZ2F0ZWQgdG8gdGhlIHdob2xlIGFwcGxpY2F0aW9uXHJcbiAgcHJvdmlkZXJzOiBbT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2VdLFxyXG4gIC8vZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybUNvbXBvbmVudCBleHRlbmRzIFVuc3Vic2NyaWJlT25EZXN0cm95IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQElucHV0KCkgaXNJbm5lclRhYmxlRm9ybTogYm9vbGVhbjtcclxuICAvLyB0cmlnZ2VyZWQgd2hlbiB0aGUgZm9ybXMgc3RhdGUgaGFzIGJlZW4gY2hhbmdlZFxyXG4gIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50PigpO1xyXG4gIC8vIGhhbmRsZXIgdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGZvcm0gaGFzIGJlZW4gc2V0IHVwXHJcbiAgQE91dHB1dCgpIG9uRm9ybVJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvLyBjb3VudGVyIGZvciBuYW1pbmcgdGhlIGZvcm1zIGdyb3Vwc1xyXG4gIGdDb3VudCA9IDA7XHJcbiAgcHVibGljIGZvcm1PcHRpb25zOiBPYmplY3RGb3JtT3B0aW9ucztcclxuICBwdWJsaWMgZGVmYXVsdEZvcm1PcHRpb25zOiBPYmplY3RGb3JtT3B0aW9ucztcclxuICAvLyB0aGUgYWN0dWFsIGZvcm0gaW5zdGFuY2VcclxuICBwdWJsaWMgZm9ybTtcclxuICAvLyBwcm9wZXJ0eSBmb3IgaG9sZGluZyB0aGUgZm9ybXMgZGF0YSB1c2VkIGZvciBjb21wYXJpc29uIHdoZW4gYSBmb3JtLWNoYW5nZWQtZXZlbnRcclxuICAvLyBpcyBmZXRjaGVkIHRvIGluZGljYXRlIHdoZXIgb3Igbm90IHRoZSBpbmRleGRhdGEgd2VyZSBjaGFuZ2VkIG9yIGp1c3QgdGhlIHByb3BlcnRpZXNcclxuICAvLyBvZiB0aGUgZm9ybSBlbGVtZW50cyAoZWcuIGZvcm0gc2NyaXB0IHNldHRpbmcgZmllbGRzIHRvIHJlYWRvbmx5KVxyXG4gIHByaXZhdGUgZm9ybURhdGE6IGFueTtcclxuICBwcml2YXRlIHNjcmlwdE1vZGVsID0ge307XHJcbiAgcHJpdmF0ZSBzY3JpcHRpbmdTY29wZTogT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgLy8gbG9jYWwgc3RvcmUgZm9yIGFsbCB0aGUgZm9ybSBjb250cm9sIHJlZmVyZW5jZXNcclxuICBwcml2YXRlIGZvcm1Db250cm9scyA9IHt9O1xyXG4gIHByaXZhdGUgaW5pdGlhbFZhbGlkYXRvcnMgPSB7fTtcclxuXHJcblxyXG4gIEBJbnB1dCgnZm9ybU9wdGlvbnMnKVxyXG4gIHNldCBvcHRpb25zKGZvcm1PcHRpb25zOiBPYmplY3RGb3JtT3B0aW9ucykge1xyXG4gICAgdGhpcy5kZWZhdWx0Rm9ybU9wdGlvbnMgPSBmb3JtT3B0aW9ucztcclxuICAgIHRoaXMuZm9ybU9wdGlvbnMgPSBfLmNsb25lRGVlcChmb3JtT3B0aW9ucyk7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZvcm1TY3JpcHRTZXJ2aWNlOiBPYmplY3RGb3JtU2NyaXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgZm9ybUhlbHBlclNlcnZpY2U6IE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwbHVnaW5TZXJ2aWNlOiBQbHVnaW5zU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVmZXJlbmNlU2VydmljZTogUmVmZXJlbmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgLy8gaW5pdGlhbGl6ZSB0aGUgZm9ybSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZm9ybSBvcHRpb25zXHJcbiAgcHJpdmF0ZSBpbml0KCkge1xyXG4gICAgdGhpcy5mb3JtID0gbnVsbDtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmluaXRpYWxWYWxpZGF0b3JzID0ge307XHJcbiAgICAgIHRoaXMudW5zdWJzY3JpYmVBbGwoKTtcclxuICAgICAgdGhpcy5idWlsZFJlYWN0aXZlRm9ybSh0aGlzLmZvcm1PcHRpb25zIHx8IHt9KTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0T3B0aW9ucygpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuZGVmYXVsdEZvcm1PcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0U2NyaXB0aW5nU2NvcGUoZm9ybU9wdGlvbnMsIGRhdGFGb3JtTW9kZWwpIHtcclxuICAgIGxldCB7ZGF0YSwgYWN0aW9ucywgb2JqZWN0cywgY29udGV4dH0gPSA8T2JqZWN0Rm9ybU9wdGlvbnM+KGZvcm1PcHRpb25zIHx8IHt9KTtcclxuXHJcbiAgICBpZiAodGhpcy5zY3JpcHRpbmdTY29wZSkge1xyXG4gICAgICB0aGlzLnNjcmlwdGluZ1Njb3BlLnNldE1vZGVsKHRoaXMuc2NyaXB0TW9kZWwpO1xyXG4gICAgICAvKiogcHJvdmlkZSBhY2Nlc3MgdG8gYWN0aW9ucyAodXNlZCBpbnNpZGUgb2YgQlBNLUZvcm1zKSAqL1xyXG4gICAgICB0aGlzLnNjcmlwdGluZ1Njb3BlLmFjdGlvbnMgPSBhY3Rpb25zO1xyXG4gICAgICAvKiogcHJvdmlkZSBhY2Nlc3MgdG8gYWRkaXRpb25hbCBvYmplY3RzICh1c2VkIGZvciBleGFtcGxlIGluIEJQTS1TdGFydC1Gb3JtcyB0b1xyXG4gICAgICAgKiBhZGQgZGF0YSBvZiBETVMtT2JqZWN0cyB0byBzdGFydCB0aGUgcHJvY2VzcyBmb3IpXHJcbiAgICAgICAqL1xyXG4gICAgICB0aGlzLnNjcmlwdGluZ1Njb3BlLm9iamVjdHMgPSBvYmplY3RzO1xyXG4gICAgICB0aGlzLnNjcmlwdGluZ1Njb3BlLmNvbnRleHQgPSBjb250ZXh0O1xyXG4gICAgICAvKiogcHJvdmlkZSByZWFkb25seSBhY2Nlc3MgdG8gaW5pdGlhbCBmb3JtIGRhdGEgKHdoaWNoIG1heSBhbHNvIGNvbnRhaW4gdmFsdWVzIHRoYXRcclxuICAgICAgICogYXJlIG5vdCByZW5kZXJlZCBhcyBmb3JtIGVsZW1lbnRzIChpbnZpc2libGUgdmFsdWVzKSlcclxuICAgICAgICovXHJcbiAgICAgIHRoaXMuc2NyaXB0aW5nU2NvcGUuZGF0YSA9IGRhdGE7XHJcblxyXG4gICAgICAvKiogYnkgZGVmYXVsdCwgc2NyaXB0aW5nIHNjb3BlcyBhcmUgYXBwbGllZCB0byBmb3Jtcy4gQnV0IHRhYmxlIGVsZW1lbnRzIGNyZWF0ZSB0aGVpciBvd24gc2NvcGVcclxuICAgICAgICogZm9yIGVkaXRpbmcgcm93cy4gQmVpbmcgb25lIG9mIHRob3NlIGlubmVyIGZvcm1zIHNob3VsZCBub3QgcnVuIHRoZSBmb3JtIHNjcmlwdCBhZ2FpbiwgYnV0XHJcbiAgICAgICAqIGluc3RlYWQganVzdCBwcm92aWRlIHRoZSBvYnNlcnZpbmcgYWJpbGl0aWVzIG9mIHRoZSBzY3JpcHRpbmcgc2NvcGUuXHJcbiAgICAgICAqL1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybU9wdGlvbnMuZGlzYWJsZWQgJiYgIXRoaXMuaXNJbm5lclRhYmxlRm9ybSAmJiBkYXRhRm9ybU1vZGVsKSB7XHJcbiAgICAgICAgY29uc3Qgc2NyaXB0TmFtZSA9IGRhdGFGb3JtTW9kZWwubmFtZSArICdfJyArIGRhdGFGb3JtTW9kZWwuc2l0dWF0aW9uO1xyXG5cclxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZXhlY3V0aW5nIGZvcm0gc2NyaXB0ICcgKyBzY3JpcHROYW1lKTtcclxuICAgICAgICB0aGlzLmZvcm1TY3JpcHRTZXJ2aWNlLnJ1bkZvcm1TY3JpcHQoXHJcbiAgICAgICAgICB0aGlzLnNjcmlwdGluZ1Njb3BlLFxyXG4gICAgICAgICAgZGF0YUZvcm1Nb2RlbC5zY3JpcHQsXHJcbiAgICAgICAgICBzY3JpcHROYW1lXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBmb2N1c0Zvcm0oKSB7XHJcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Rm9ybURhdGEoZGF0YSkge1xyXG4gICAgdGhpcy5mb3JtT3B0aW9ucy5kYXRhID0gZGF0YTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgIH0sIDApO1xyXG5cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4dHJhY3RzIHRoZSB2YWx1ZXMgZnJvbSB0aGUgZm9ybSBtb2RlbC4gRWFjaCBmb3JtIHZhbHVlIGlzIHJlcHJlc2VudGVkIGJ5IG9uZVxyXG4gICAqIHByb3BlcnR5IG9uIHRoZSByZXN1bHQgb2JqZWN0IGhvbGRpbmcgdGhlIGZpZWxkcyB2YWx1ZS4gVGhlIGtleXMgKHByb3BlcnRpZXMpIGFyZSB0aGUgYG5hbWVgXHJcbiAgICogcHJvcGVydGllcyBvZiB0aGUgZm9ybSBlbGVtZW50IChpbiBTRUFSQ0ggc2l0dWF0aW9uIHRoZSBgcW5hbWVgIGZpZWxkIGlzIHVzZWQpLlxyXG4gICAqXHJcbiAgICogSG93IHZhbHVlcyBhcmUgZXh0cmFjdGVkIGlzIGluZmx1ZW5jZWQgYnkgdGhlIGZvcm1zIHNpdHVhdGlvbi5cclxuICAgKlxyXG4gICAqIEByZXR1cm4gb2JqZWN0IG9mIGtleSB2YWx1ZSBwYWlyc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRGb3JtRGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1Ub0RhdGEoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRGb3JtUHJpc3RpbmUoKSB7XHJcbiAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuICB9XHJcblxyXG4gIC8vIHJlc2V0IHRoZSBmb3JtIHRvIGl0cyBpbml0aWFsIHN0YXRlXHJcbiAgcHVibGljIHJlc2V0Rm9ybSgpIHtcclxuICAgIHRoaXMuaW5pdE9wdGlvbnMoKTtcclxuICAgIHRoaXMuZW1pdEZvcm1DaGFuZ2VkRXZlbnQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIG9ic2VydmVkIG1vZGVsIHRoYXQgd2FzIHBhc3NlZCB0byB0aGUgY3VycmVudCBmb3JtIHNjcmlwdCBydW5uaW5nLiBJZiB0aGVyZSBpc1xyXG4gICAqIG5vIGZvcm0gc2NyaXB0LCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBOVUxMLlxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHVibGljIGdldE9ic2VydmVkU2NyaXB0TW9kZWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zY3JpcHRpbmdTY29wZSA/IHRoaXMuc2NyaXB0aW5nU2NvcGUuZ2V0TW9kZWwoKSA6IG51bGw7XHJcbiAgfVxyXG5cclxuICAvLyBDcmVhdGUgYSByZWFjdGl2ZSBmb3JtIGZyb20gdGhlIGVuYWlvIGZvcm0gbW9kZWxcclxuICBwcml2YXRlIGJ1aWxkUmVhY3RpdmVGb3JtKGZvcm1PcHRpb25zKSB7XHJcblxyXG4gICAgdGhpcy5zY3JpcHRpbmdTY29wZSA9IG51bGw7XHJcbiAgICBjb25zdCBmb3JtTW9kZWwgPSB0aGlzLmRhdGFUb0Zvcm0oZm9ybU9wdGlvbnMuZm9ybU1vZGVsLCBmb3JtT3B0aW9ucy5kYXRhKTtcclxuXHJcbiAgICBpZiAoIWZvcm1Nb2RlbCkge1xyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmIGEgc2NyaXB0IGlzIGF2YWlsYWJsZSwgd2UnbGwgaW5pdCB0aGUgZm9ybSBzY3JpcHRpbmcgZm9yIHRoZVxyXG4gICAgLy8gY3VycmVudCBmb3JtXHJcbiAgICBpZiAodGhpcy5pc0lubmVyVGFibGVGb3JtIHx8IChmb3JtTW9kZWwuc2NyaXB0ICYmIGZvcm1Nb2RlbC5zY3JpcHQubGVuZ3RoID4gMCkpIHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2FkZGluZyBmb3JtIHNjcmlwdGluZyBzY29wZScpO1xyXG4gICAgICB0aGlzLnNjcmlwdGluZ1Njb3BlID0gbmV3IE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZShcclxuICAgICAgICBmb3JtTW9kZWwuc2l0dWF0aW9uLFxyXG4gICAgICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZWQsXHJcbiAgICAgICAgdGhpcy5wbHVnaW5TZXJ2aWNlLmdldEFwaSgpLFxyXG4gICAgICAgIHRoaXMuaXNJbm5lclRhYmxlRm9ybVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNjcmlwdGluZ1Njb3BlLm9iamVjdElkID0gdGhpcy5mb3JtT3B0aW9ucy5vYmplY3RJZDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZm9ybSA9IG5ldyBPYmplY3RGb3JtR3JvdXAoe30pO1xyXG4gICAgaWYgKGZvcm1Nb2RlbC5lbGVtZW50c1swXSAmJiBmb3JtTW9kZWwuZWxlbWVudHNbMF0uZWxlbWVudHMpIHtcclxuICAgICAgdGhpcy5hZGRGb3JtQ29udHJvbChmb3JtLCBmb3JtTW9kZWwuZWxlbWVudHNbMF0sICdjb3JlJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoZm9ybU1vZGVsLmVsZW1lbnRzWzFdICYmIGZvcm1Nb2RlbC5lbGVtZW50c1sxXS5lbGVtZW50cykge1xyXG4gICAgICB0aGlzLmFkZEZvcm1Db250cm9sKGZvcm0sIGZvcm1Nb2RlbC5lbGVtZW50c1sxXSwgJ2RhdGEnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvcm0gPSBmb3JtO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybSkgcmV0dXJuO1xyXG5cclxuICAgICAgdGhpcy5pbml0VmFsaWRhdG9ycyh0aGlzLmZvcm0pO1xyXG4gICAgICBsZXQgZm9ybVdhdGNoID0gdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSg1MDApKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gIWZvcm1XYXRjaC5jbG9zZWQgJiYgdGhpcy5lbWl0Rm9ybUNoYW5nZWRFdmVudCgpKTtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZm9ybVdhdGNoKTtcclxuXHJcbiAgICAgIHRoaXMuaW5pdFNjcmlwdGluZ1Njb3BlKGZvcm1PcHRpb25zLCBmb3JtTW9kZWwpO1xyXG5cclxuICAgICAgdGhpcy5vbkZvcm1SZWFkeS5lbWl0KCk7XHJcbiAgICAgIHRoaXMuZW1pdEZvcm1DaGFuZ2VkRXZlbnQoZmFsc2UpO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcblxyXG4gIGluaXRWYWxpZGF0b3JzKGZvcm0pIHtcclxuICAgIGlmICh0aGlzLmZvcm0pIHtcclxuICAgICAgZm9yIChsZXQga2V5IGluIGZvcm0uY29udHJvbHMpIHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybS5jb250cm9sc1trZXldO1xyXG4gICAgICAgIGlmIChjb250cm9sLmNvbnRyb2xzKSB7XHJcbiAgICAgICAgICB0aGlzLmluaXRWYWxpZGF0b3JzKGNvbnRyb2wpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmluaXRpYWxWYWxpZGF0b3JzW2NvbnRyb2wuX2VvRm9ybUVsZW1lbnQubmFtZV0gPSBjb250cm9sLnZhbGlkYXRvcjtcclxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLmNvbXBvc2UodGhpcy5nZXRWYWxpZGF0b3JzKGNvbnRyb2wuX2VvRm9ybUVsZW1lbnQpLmNvbmNhdChbdGhpcy5pbml0aWFsVmFsaWRhdG9yc1tjb250cm9sLl9lb0Zvcm1FbGVtZW50Lm5hbWVdXSkpKTtcclxuICAgICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0Rm9ybUNoYW5nZWRFdmVudChjb21wYXJlID0gdHJ1ZSkge1xyXG5cclxuICAgIC8vIGNoZWNrIGlmIGluZGV4ZGF0YSBoYXMgYmVlbiBjaGFuZ2VkXHJcbiAgICBsZXQgY3VycmVudEZvcm1EYXRhID0gdGhpcy5nZXRGb3JtRGF0YSgpO1xyXG4gICAgbGV0IGlkeENoYW5nZSA9IGNvbXBhcmUgPyBKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm1EYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkoY3VycmVudEZvcm1EYXRhKSA6IGZhbHNlO1xyXG4gICAgdGhpcy5mb3JtRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoY3VycmVudEZvcm1EYXRhKSk7XHJcbiAgICBpZiAodGhpcy5mb3JtKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICBpbnZhbGlkOiB0aGlzLmZvcm0uaW52YWxpZCxcclxuICAgICAgICBkaXJ0eTogdGhpcy5mb3JtLmRpcnR5LFxyXG4gICAgICAgIGRhdGE6IHRoaXMuZm9ybURhdGEsXHJcbiAgICAgICAgaW5kZXhkYXRhQ2hhbmdlZDogaWR4Q2hhbmdlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZWFjaCB0aW1lIHRoZSBzY3JpcHQgY2hhbmdlcyBpdHMgaW50ZXJuYWwgbW9kZWwuXHJcbiAgICogSXQgaXMgdXNlZCB0byB0cmFuc2ZlciB0aGUgc2NyaXB0IGNoYW5nZXMgdG8gdGhlIGFjdHVhbCBmb3JtIG1vZGVsLlxyXG4gICAqXHJcbiAgICogVG8gZW5zdXJlIHRoZSByaWdodCBjb250ZXh0LCB3ZSBkZWZpbmUgYW4gaW5zdGFuY2UgbWV0aG9kIGFzIGNhbGxiYWNrIGZvciB0aGUgc2NyaXB0aW5nIHNjb3BlXHJcbiAgICogQHNlZTogaHR0cHM6Ly9ibG9nLmpvaG5ueXJlaWxseS5jb20vMjAxNC8wNC90eXBlc2NyaXB0LWluc3RhbmNlLW1ldGhvZHMuaHRtbFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZvcm1Db250cm9sTmFtZVxyXG4gICAqIEBwYXJhbSBjaGFuZ2VcclxuICAgKi9cclxuICBwcml2YXRlIG9uU2NyaXB0aW5nTW9kZWxDaGFuZ2VkID0gKGZvcm1Db250cm9sTmFtZSwgY2hhbmdlKSA9PiB7XHJcblxyXG4gICAgLy8gZmluZCB0aGUgdGFyZ2V0IGNvbnRyb2xcclxuICAgIGxldCBmYzogT2JqZWN0Rm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1Db250cm9sc1tmb3JtQ29udHJvbE5hbWVdIGFzIE9iamVjdEZvcm1Db250cm9sO1xyXG4gICAgaWYgKGZjKSB7XHJcblxyXG4gICAgICAvLyBjaGFuZ2Ugb25seSBhbGxvd2VkIHByb3BlcnRpZXNcclxuICAgICAgc3dpdGNoIChjaGFuZ2UubmFtZSkge1xyXG4gICAgICAgIGNhc2UgJ3ZhbHVlJzoge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2hhbmdlLm5ld1ZhbHVlKSkge1xyXG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NBcnJheVZhbHVlQ2hhbmdlKGZjLCBjaGFuZ2UpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZmMuX2VvRm9ybUVsZW1lbnQudmFsdWUgPSBjaGFuZ2UubmV3VmFsdWU7XHJcbiAgICAgICAgICAgIGlmIChmYy52YWx1ZSAhPT0gY2hhbmdlLm5ld1ZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgZmMucGF0Y2hWYWx1ZShjaGFuZ2UubmV3VmFsdWUpO1xyXG4gICAgICAgICAgICAgIGZjLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgICAgICBmYy5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdyZXF1aXJlZCc6IHtcclxuICAgICAgICAgIGlmIChmYy5fZW9Gb3JtRWxlbWVudC5yZXF1aXJlZCAhPT0gY2hhbmdlLm5ld1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIGZjLl9lb0Zvcm1FbGVtZW50LnJlcXVpcmVkID0gY2hhbmdlLm5ld1ZhbHVlO1xyXG4gICAgICAgICAgICAvLyBhcHBseSBuZXcgdmFsaWRhdG9yc1xyXG4gICAgICAgICAgICAvLyBAc2VlOiBodHRwczovL3Njb3RjaC5pby90dXRvcmlhbHMvaG93LXRvLWltcGxlbWVudC1jb25kaXRpb25hbC12YWxpZGF0aW9uLWluLWFuZ3VsYXItMi1tb2RlbC1kcml2ZW4tZm9ybXNcclxuICAgICAgICAgICAgZmMuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLmNvbXBvc2UodGhpcy5nZXRWYWxpZGF0b3JzKGZjLl9lb0Zvcm1FbGVtZW50KS5jb25jYXQoW3RoaXMuaW5pdGlhbFZhbGlkYXRvcnNbZmMuX2VvRm9ybUVsZW1lbnQubmFtZV1dKSkpO1xyXG4gICAgICAgICAgICAvLyBuZWVkIHRvIG1hcmsgZm9ybSBjb250cm9sIGFzIHRvdWNoZWQgYmVjYXVzZSBvdGhlcndpc2UgZm9ybSB2YWxpZGF0aW9uIHdpbGwgbm90IHNob3dcclxuICAgICAgICAgICAgLy8gZXJyb3IgbWVzc2FnZXNcclxuICAgICAgICAgICAgZmMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICBmYy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAncmVhZG9ubHknOiB7XHJcbiAgICAgICAgICBmYy5fZW9Gb3JtRWxlbWVudC5yZWFkb25seSA9IGNoYW5nZS5uZXdWYWx1ZTtcclxuICAgICAgICAgIGlmIChjaGFuZ2UubmV3VmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgZmMuZGlzYWJsZSgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZmMuZW5hYmxlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnZXJyb3InOiB7XHJcbiAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoZmMuX2VvRm9ybUVsZW1lbnQuZXJyb3IpICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2UubmV3VmFsdWUpKSB7XHJcbiAgICAgICAgICAgIGZjLl9lb0Zvcm1FbGVtZW50LmVycm9yID0gY2hhbmdlLm5ld1ZhbHVlO1xyXG4gICAgICAgICAgICBmYy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICAgIGZjLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBuZXcgb25yb3dlZGl0IGZ1bmN0aW9uIHdhcyBhcHBsaWVkIGJ5IHRoZSBzY3JpcHRcclxuICAgICAgICBjYXNlICdvbnJvd2VkaXQnOiB7XHJcbiAgICAgICAgICBmYy5fZW9Gb3JtRWxlbWVudC5vbnJvd2VkaXQgPSBjaGFuZ2UubmV3VmFsdWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gbmV3IG9uY2hhbmdlIGZ1bmN0aW9uIHdhcyBhcHBsaWVkIGJ5IHRoZSBzY3JpcHRcclxuICAgICAgICBjYXNlICdvbmNoYW5nZSc6IHtcclxuICAgICAgICAgIGZjLl9lb0Zvcm1FbGVtZW50Lm9uY2hhbmdlID0gY2hhbmdlLm5ld1ZhbHVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIG5ldyBjb250ZXh0SWQgd2FzIGFwcGxpZWQgYnkgdGhlIHNjcmlwdFxyXG4gICAgICAgIGNhc2UgJ2NvbnRleHRJZCc6IHtcclxuICAgICAgICAgIGZjLl9lb0Zvcm1FbGVtZW50LmNvbnRleHRJZCA9IGNoYW5nZS5uZXdWYWx1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcm9jZXNzQXJyYXlWYWx1ZUNoYW5nZShmYywgY2hhbmdlKSB7XHJcbiAgICBjb25zdCBuZXdWYWwgPSBjaGFuZ2UubmV3VmFsdWU7XHJcbiAgICBjb25zdCB0YXJnZXRUeXBlID0gZmMuX2VvRm9ybUVsZW1lbnQudHlwZTtcclxuICAgIC8vIGZvciBzb21lIHR5cGVzIHdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgbWV0YSBkYXRhIGFyZSBwcm92aWRlZCBhcyB3ZWxsXHJcbiAgICBzd2l0Y2ggKHRhcmdldFR5cGUpIHtcclxuICAgICAgY2FzZSAnT1JHQU5JWkFUSU9OJzoge1xyXG4gICAgICAgIHRoaXMuZ2V0RGF0YU1ldGEoZmMuX2VvRm9ybUVsZW1lbnQsIG5ld1ZhbCkuc3Vic2NyaWJlKG0gPT4ge1xyXG4gICAgICAgICAgZmMuX2VvRm9ybUVsZW1lbnQuZGF0YU1ldGEgPSBtO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0NPREVTWVNURU0nOiB7XHJcbiAgICAgICAgaWYgKCFmYy5fZW9Gb3JtRWxlbWVudC5jb2Rlc3lzdGVtLmVudHJpZXMpIHtcclxuICAgICAgICAgIGZjLl9lb0Zvcm1FbGVtZW50LmNvZGVzeXN0ZW0gPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0Q29kZXN5c3RlbShmYy5fZW9Gb3JtRWxlbWVudC5jb2Rlc3lzdGVtLmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnVEFCTEUnOiB7XHJcbiAgICAgICAgY29uc3QgZGF0YVRvQmVQcm9jZXNzZWQgPSB7fTtcclxuICAgICAgICBmYy5fZW9Gb3JtRWxlbWVudC5lbGVtZW50cy5mb3JFYWNoKGUgPT4ge1xyXG4gICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ09SR0FOSVpBVElPTicgfHwgZS50eXBlID09PSAnQ09ERVNZU1RFTScpIHtcclxuICAgICAgICAgICAgZGF0YVRvQmVQcm9jZXNzZWRbZS5uYW1lXSA9IGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGRhdGFUb0JlUHJvY2Vzc2VkKS5sZW5ndGgpIHtcclxuICAgICAgICAgIGxldCBvYnMgPSBbXTtcclxuICAgICAgICAgIG5ld1ZhbC5mb3JFYWNoKHJvd0RhdGEgPT4ge1xyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhyb3dEYXRhKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGRhdGFUb0JlUHJvY2Vzc2VkW2tleV0pIHtcclxuICAgICAgICAgICAgICAgIG9icy5wdXNoKHRoaXMuZ2V0RGF0YU1ldGEoZGF0YVRvQmVQcm9jZXNzZWRba2V5XSwgcm93RGF0YVtrZXldKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICB0YXAobSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHJvd0RhdGFba2V5ICsgJ19tZXRhJ10gPSBtO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcm93RGF0YVtrZXkgKyAnX21ldGEnXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBmb3JrSm9pbihvYnMpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZUFycmF5VmFsdWUoZmMsIG5ld1ZhbCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVBcnJheVZhbHVlKGZjLCBuZXdWYWwpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVBcnJheVZhbHVlKGZjLCBuZXdWYWx1ZSkge1xyXG4gICAgZmMuX2VvRm9ybUVsZW1lbnQudmFsdWUgPSBbXS5jb25jYXQobmV3VmFsdWUpO1xyXG4gICAgZmMucGF0Y2hWYWx1ZShbXS5jb25jYXQobmV3VmFsdWUpKTtcclxuICAgIGZjLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIGZjLm1hcmtBc0RpcnR5KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldERhdGFNZXRhKGZvcm1FbGVtZW50OiBhbnksIG5ld1ZhbHVlOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cclxuICAgIGlmIChuZXdWYWx1ZSkge1xyXG4gICAgICBzd2l0Y2ggKGZvcm1FbGVtZW50LnR5cGUpIHtcclxuICAgICAgICBjYXNlICdPUkdBTklaQVRJT04nOiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9yZ2FuaXphdGlvbk9iamVjdChuZXdWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ1JFRkVSRU5DRSc6IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZVNlcnZpY2UuZmV0Y2hJRFJlZmVyZW5jZU1ldGFEYXRhKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpID8gbmV3VmFsdWUgOiBbbmV3VmFsdWVdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnQ09ERVNZU1RFTSc6IHtcclxuICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlT2YodGhpcy5zeXN0ZW1TZXJ2aWNlLmdldENvZGVzeXN0ZW0oZm9ybUVsZW1lbnQuY29kZXN5c3RlbS5pZCkuZW50cmllcy5maW5kKChlbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZW50cnkuZGVmYXVsdHJlcHJlc2VudGF0aW9uID09PSBuZXdWYWx1ZTtcclxuICAgICAgICAgIH0pKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvYnNlcnZhYmxlT2YobnVsbCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWN1cnNpdmUgbWV0aG9kIGFkZGluZyBhIG5ldyBGb3JtQ29udHJvbCAoZ3JvdXAgb3IgY29udHJvbCkgdG8gYSBwYXJlbnQgZm9ybSBncm91cFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmVudEdyb3VwIC0gdGhlIHBhcmVudCBncm91cCB0byBhZGQgdGhlIGNvbnRyb2wgdG9cclxuICAgKiBAcGFyYW0gZm9ybUVsZW1lbnQgLSB0aGUgZW5haW8gZm9ybSBtb2RlbCBlbGVtZW50IHRvIGNyZWF0ZSB0aGUgY2hpbGQgY29udHJvbCBmcm9tXHJcbiAgICogQHBhcmFtIFt1c2VOYW1lXSAtIHVzZSB0aGlzIG5hbWUgaW5zdGVhZCBvZiB0aGUgb25lIGZyb20gdGhlIG1vZGVsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRGb3JtQ29udHJvbChwYXJlbnRHcm91cDogT2JqZWN0Rm9ybUdyb3VwLCBmb3JtRWxlbWVudDogYW55LCB1c2VOYW1lPzogc3RyaW5nKSB7XHJcblxyXG4gICAgbGV0IGN0cmw7XHJcbiAgICBsZXQgbmFtZTtcclxuXHJcbiAgICAvLyBhZGQgYSBmb3JtIGdyb3VwXHJcbiAgICBpZiAoZm9ybUVsZW1lbnQudHlwZSA9PT0gJ28ybUdyb3VwJyB8fCBmb3JtRWxlbWVudC50eXBlID09PSAnbzJtR3JvdXBTdGFjaycpIHtcclxuXHJcbiAgICAgIC8vIGRvIG5vdCBhZGQgZ3JvdXBzIHRoYXQgYXJlIGVtcHR5XHJcbiAgICAgIGlmICghZm9ybUVsZW1lbnQuZWxlbWVudHMgfHwgZm9ybUVsZW1lbnQuZWxlbWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0ZvdW5kIGVtcHR5IGZvcm0gZ3JvdXAnLCBmb3JtRWxlbWVudCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjdHJsID0gbmV3IE9iamVjdEZvcm1Hcm91cCh7fSk7XHJcbiAgICAgIGN0cmwuX2VvRm9ybUdyb3VwID0ge1xyXG4gICAgICAgIGxhYmVsOiBmb3JtRWxlbWVudC5sYWJlbCxcclxuICAgICAgICAvL2xheW91dGdyb3VwOiBmb3JtRWxlbWVudC5sYXlvdXRncm91cCxcclxuICAgICAgICBsYXlvdXQ6IGZvcm1FbGVtZW50LmxheW91dCxcclxuICAgICAgICB0eXBlOiBmb3JtRWxlbWVudC50eXBlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBpZiAodXNlTmFtZSA9PT0gJ2NvcmUnIHx8IHVzZU5hbWUgPT09ICdkYXRhJykge1xyXG4gICAgICAgIGN0cmwuX2VvRm9ybUdyb3VwLmxhYmVsID0gdXNlTmFtZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9yIChsZXQgZSBvZiBmb3JtRWxlbWVudC5lbGVtZW50cykge1xyXG4gICAgICAgIHRoaXMuYWRkRm9ybUNvbnRyb2woY3RybCwgZSk7XHJcbiAgICAgIH1cclxuICAgICAgbmFtZSA9IHVzZU5hbWUgfHwgJ2ZnJyArIHRoaXMuZ0NvdW50Kys7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBhZGQgZm9ybSBjb250cm9sXHJcbiAgICAgIC8vIFRvIGJlIGFibGUgdG8gaW50ZWdyYXRlIHJlY3Vyc2l2ZSBmb3JtIGNvbnRyb2xzIGludG8gdGhlIG1haW4gZm9ybSxcclxuICAgICAgLy8gd2UgaGF2ZSB0byB3cmFwIHRoZW0gaW4gYSBmb3JtIGdyb3VwXHJcbiAgICAgIGN0cmwgPSBuZXcgT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyKHt9KTtcclxuICAgICAgY3RybC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIgPSB7XHJcbiAgICAgICAgLy8gdGhlIG5hbWUgb2YgdGhlIHdyYXBwZWQgRm9ybUNvbnRyb2xcclxuICAgICAgICBjb250cm9sTmFtZTogZm9ybUVsZW1lbnQubmFtZSxcclxuICAgICAgICBzaXR1YXRpb246IHRoaXMuZm9ybU9wdGlvbnMuZm9ybU1vZGVsLnNpdHVhdGlvblxyXG4gICAgICB9O1xyXG4gICAgICBpZiAodGhpcy5mb3JtT3B0aW9ucy5mb3JtTW9kZWwuc2l0dWF0aW9uID09PSAnU0VBUkNIJyAmJiBmb3JtRWxlbWVudC52YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIGZvcm1FbGVtZW50LmlzTm90U2V0VmFsdWUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRvIG5vdCBzZXQgYSByZWZlcmVuY2UgYXMgdGhlIGZvcm0gY29udHJvbHMgdmFsdWVcclxuICAgICAgLy8gb3RoZXJ3aXNlIHdlIGNvdWxkIG5vdCByZXNldCB0aGUgZm9ybVxyXG4gICAgICBsZXQgdmFsdWU6IGFueTtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZm9ybUVsZW1lbnQudmFsdWUpKSB7XHJcbiAgICAgICAgLy8gY29weSBieSB2YWx1ZSBmb3IgYXJyYXlzIG9mIG9iamVjdHMgKGUuZy4gdGFibGUgZGF0YSlcclxuICAgICAgICB2YWx1ZSA9IFtdO1xyXG4gICAgICAgIGZvcm1FbGVtZW50LnZhbHVlLmZvckVhY2goKG8pID0+IHtcclxuICAgICAgICAgIHZhbHVlLnB1c2goSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvKSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZhbHVlID0gZm9ybUVsZW1lbnQudmFsdWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGZvciBjb2Rlc3lzdGVtIGVsZW1lbnRzIGFkZCBlbnRyaWVzIGlmIG5vdCB5ZXQgcHJvdmlkZWRcclxuICAgICAgaWYgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdDT0RFU1lTVEVNJyAmJiAhZm9ybUVsZW1lbnQuY29kZXN5c3RlbS5lbnRyaWVzKSB7XHJcbiAgICAgICAgZm9ybUVsZW1lbnQuY29kZXN5c3RlbSA9IHRoaXMuc3lzdGVtU2VydmljZS5nZXRDb2Rlc3lzdGVtKGZvcm1FbGVtZW50LmNvZGVzeXN0ZW0uaWQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBjcmVhdGUgdGhlIGFjdHVhbCBmb3JtIGNvbnRyb2xcclxuICAgICAgbGV0IGNvbnRyb2xEaXNhYmxlZCA9IHRoaXMuZm9ybU9wdGlvbnMuZGlzYWJsZWQgfHwgISFmb3JtRWxlbWVudC5yZWFkb25seTtcclxuICAgICAgbGV0IGZvcm1Db250cm9sID0gbmV3IE9iamVjdEZvcm1Db250cm9sKHtcclxuICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgZGlzYWJsZWQ6IGNvbnRyb2xEaXNhYmxlZFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGZvcm1FbGVtZW50LnJlYWRvbmx5ID0gY29udHJvbERpc2FibGVkO1xyXG5cclxuICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQgPSBmb3JtRWxlbWVudDtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbHNbZm9ybUVsZW1lbnQubmFtZV0gPSBmb3JtQ29udHJvbDtcclxuXHJcbiAgICAgIGlmIChmb3JtRWxlbWVudC50eXBlID09PSAnQ09ERVNZU1RFTScgfHwgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdTVFJJTkcnICYmIGZvcm1FbGVtZW50LmNsYXNzaWZpY2F0aW9uID09PSAnc2VsZWN0b3InKSkge1xyXG4gICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LmFwcGx5RmlsdGVyID0gKGZ1bmM6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5maWx0ZXJGdW5jdGlvbiA9IGZ1bmM7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5hcHBseURpc2FibGluZ0ZpbHRlciA9IChmdW5jOiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQuZGlzYWJsaW5nRmlsdGVyRnVuY3Rpb24gPSBmdW5jO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChmb3JtRWxlbWVudC50eXBlID09PSAnU1RSSU5HJyAmJiBmb3JtRWxlbWVudC5jbGFzc2lmaWNhdGlvbiA9PT0gJ3NlbGVjdG9yJykge1xyXG4gICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LnNldExpc3QgPSAobGlzdE9iamVjdDogYW55KSA9PiB7XHJcbiAgICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5saXN0ID0gbGlzdE9iamVjdDtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZm9ybUVsZW1lbnQudHlwZSA9PT0gJ09SR0FOSVpBVElPTicpIHtcclxuICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5zZXRGaWx0ZXIgPSAoZmlsdGVyT2JqZWN0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LmZpbHRlciA9IGZpbHRlck9iamVjdDtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZm9ybUVsZW1lbnQudHlwZSA9PT0gJ1JFRkVSRU5DRScpIHtcclxuICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5zZXRRdWVyeUZpbHRlcnMgPSAocXVlcnlGaWx0ZXJzT2JqZWN0OiB7W2ZpZWxkUW5hbWU6IHN0cmluZ106IHtvOiBzdHJpbmcsIHYxOiBhbnksIHYyOiBhbnl9fSwgb2JqZWN0VHlwZXM/OiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQucXVlcnlGaWx0ZXJzID0gcXVlcnlGaWx0ZXJzT2JqZWN0O1xyXG4gICAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQub2JqZWN0VHlwZXNGaWx0ZXIgPSBvYmplY3RUeXBlcztcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5mb3JtT3B0aW9ucy5mb3JtTW9kZWwuc2l0dWF0aW9uID09PSAnU0VBUkNIJykge1xyXG4gICAgICAgIC8vIGluIHNlYXJjaCBzaXR1YXRpb24gZXZlbiByZWFkb25seSBmaWVsZHMgc2hvdWxkIGJlIGVkaXRhYmxlIC4uLlxyXG4gICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LnJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICAgICAgLy8gLi4uIGFuZCByZXF1aXJlZCBtYWtlcyBubyBzZW5zZSBoZXJlXHJcbiAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQucmVxdWlyZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gcmVtb3ZlIGVtcHR5IGRlc2NyaXB0aW9uc1xyXG4gICAgICBsZXQgZGVzYyA9IGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LmRlc2NyaXB0aW9uO1xyXG4gICAgICBpZiAoZGVzYyAmJiBkZXNjLnRyaW0oKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5kZXNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGFkZCB0aGUgZm9ybSBlbGVtZW50IHRvIHRoZSBzY3JpcHQgbW9kZWwgdGhhdCB3aWxsIGJlIGluamVjdGVkIGludG9cclxuICAgICAgLy8gdGhlIGZvcm1zIHNjcmlwdGluZyBzY29wZSBsYXRlciBvblxyXG4gICAgICB0aGlzLnNjcmlwdE1vZGVsW2Zvcm1FbGVtZW50Lm5hbWVdID0gZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQ7XHJcblxyXG4gICAgICAvLyBhcHBseSBjaGFuZ2UgbGlzdGVuZXIgdG8gdGhlIGZvcm0gY29udHJvbCwgdGhhdCB3aWxsIHRyaWdnZXJcclxuICAgICAgLy8gdGhlIGZvcm0gZWxlbWVudHMgb25DaGFuZ2UgbGlzdGVuZXJcclxuICAgICAgbGV0IGNvbnRyb2xXYXRjaCA9IGN0cmwudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKGZvcm1FbGVtZW50LnR5cGUgPT09ICdUQUJMRScgPyAwIDogNTAwKSk7XHJcbiAgICAgIGNvbnRyb2xXYXRjaC5zdWJzY3JpYmUoKHYpID0+IHtcclxuICAgICAgICBpZiAoZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQudHlwZSA9PT0gJ1JFRkVSRU5DRScpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0RGF0YU1ldGEoZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQsIHZbZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQubmFtZV0pLnN1YnNjcmliZShtID0+IHtcclxuICAgICAgICAgICAgaWYgKG0pIHtcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5kYXRhTWV0YSA9IGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50Lm11bHRpc2VsZWN0ID8gbSA6IG1bMF07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZGVsZXRlIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LmRhdGFNZXRhO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2NyaXB0aW5nU2NvcGUpIHtcclxuICAgICAgICAgIHRoaXMuc2NyaXB0aW5nU2NvcGUubW9kZWxDaGFuZ2VkKHYpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGNvbnRyb2xXYXRjaCk7XHJcblxyXG4gICAgICBjdHJsLmFkZENvbnRyb2woZm9ybUVsZW1lbnQubmFtZSwgZm9ybUNvbnRyb2wpO1xyXG4gICAgICBuYW1lID0gJ2ZnXycgKyBmb3JtRWxlbWVudC5uYW1lO1xyXG4gICAgfVxyXG4gICAgcGFyZW50R3JvdXAuYWRkQ29udHJvbChuYW1lLCBjdHJsKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1aWxkIHZhbGlkYXRvcnMgZm9yIHRoZSBnaXZlbiBmb3JtIGVsZW1lbnQgdG8gYmUgYXR0YWNoZWQgdG9cclxuICAgKiBhIHJlYWN0aXZlIGZvcm1Db250cm9sLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZvcm1FbGVtZW50IC0gZm9ybSBlbGVtZW50IG9iamVjdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0VmFsaWRhdG9ycyhmb3JtRWxlbWVudDogYW55KTogVmFsaWRhdG9yRm5bXSB7XHJcbiAgICBsZXQgZWxtVmFsaWRhdG9ycyA9IEZvcm1WYWxpZGF0aW9uLmdldFZhbGlkYXRvcnMoZm9ybUVsZW1lbnQsIHRoaXMuZm9ybU9wdGlvbnMuZm9ybU1vZGVsLnNpdHVhdGlvbik7XHJcblxyXG4gICAgLy8gYWRkIGN1c3RvbSB2YWxpZGF0b3IgZm9yIHNjcmlwdCBlbmFibGVkIGZvcm1zXHJcbiAgICBpZiAodGhpcy5zY3JpcHRpbmdTY29wZSkge1xyXG4gICAgICBlbG1WYWxpZGF0b3JzLnB1c2goRm9ybVZhbGlkYXRpb24uY3VzdG9tU2NyaXB0aW5nVmFsaWRhdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVsbVZhbGlkYXRvcnM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeHRyYWN0IHRoZSB2YWx1ZXMgZnJvbSB0aGUgZm9ybVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZm9ybVRvRGF0YSgpIHtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5mb3JtSGVscGVyU2VydmljZS5leHRyYWN0Rm9ybURhdGEoXHJcbiAgICAgIHRoaXMuZm9ybSxcclxuICAgICAgdGhpcy5mb3JtT3B0aW9ucy5mb3JtTW9kZWwuc2l0dWF0aW9uLFxyXG4gICAgICB0aGlzLmZvcm1PcHRpb25zLmRhdGEsXHJcbiAgICAgIHRoaXMuaXNJbm5lclRhYmxlRm9ybVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1lcmdlIGRhdGEgaW50byBhIGZvcm0gbW9kZWwuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbW9kZWwgLSBmb3JtIG1vZGVsXHJcbiAgICogQHBhcmFtIGRhdGEgLSBkYXRhIG9iamVjdCBvciBhcnJheSBvZiBTZWFyY2hGaWx0ZXIgb2JqZWN0cyBpbiBjYXNlIG9mIGEgc2VhcmNoIGZvcm1cclxuICAgKi9cclxuICBwcml2YXRlIGRhdGFUb0Zvcm0obW9kZWw6IGFueSwgZGF0YTogYW55KSB7XHJcbiAgICBpZiAobW9kZWwgJiYgZGF0YSkge1xyXG4gICAgICB0aGlzLnNldEVsZW1lbnRWYWx1ZXMobW9kZWwuZWxlbWVudHMsIGRhdGEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vZGVsO1xyXG4gIH1cclxuXHJcbiAgLy8gcmVjdXJzaXZlIG1ldGhvZCBmb3IgYWRkaW5nIHZhbHVlcyB0byBtb2RlbCBlbGVtZW50c1xyXG4gIHByaXZhdGUgc2V0RWxlbWVudFZhbHVlcyhlbGVtZW50cywgZGF0YSkge1xyXG5cclxuICAgIGVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmhhc1ZhbHVlKGRhdGEsIGVsZW1lbnQpKSB7XHJcblxyXG4gICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLmdldFZhbHVlKGRhdGEsIGVsZW1lbnQpO1xyXG4gICAgICAgIGlmIChlbGVtZW50LnZhbHVlKSB7XHJcbiAgICAgICAgICAvLyBhZGQgbWV0YSBkYXRhIGZvciBzb21lIG9mIHRoZSB0eXBlc1xyXG4gICAgICAgICAgdGhpcy5mZXRjaE1ldGFEYXRhKGRhdGEsIGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkZWxldGUgZWxlbWVudC52YWx1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZWxlbWVudC50eXBlICE9PSAnVEFCTEUnICYmIGVsZW1lbnQuZWxlbWVudHMgJiYgZWxlbWVudC5lbGVtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5zZXRFbGVtZW50VmFsdWVzKGVsZW1lbnQuZWxlbWVudHMsIGRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIGluIHNvbWUgY2FzZXMgcmVxdWlyZWQgbWV0YSBkYXRhIG1heSBub3QgYmUgYXZhaWxhYmxlIG9uIHRoZSBlbGVtZW50IGl0c2VsZlxyXG4gIC8vIHNvIHRoZXkgaGF2ZSB0byBiZSBmZXRjaGVkIGFuZCBhZGRlZCB0byB0aGUgZWxlbWVudCBmb3IgdGhlIGZvcm0gdG8gYmUgYWJsZVxyXG4gIC8vIHRvIHJlbmRlciB0aGUgZWxlbWVudCBjb3JyZWN0bHlcclxuICBwcml2YXRlIGZldGNoTWV0YURhdGEoZGF0YSwgZWxlbWVudCkge1xyXG5cclxuICAgIGlmICh0aGlzLmZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XHJcbiAgICAgIC8vIHRvZG86IGhvdyB0byBmZXRjaCBtZXRhIGRhdGEgaW4gc2VhcmNoIHNpdHVhdGlvblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gJ09SR0FOSVpBVElPTicgJiYgZGF0YVtlbGVtZW50Lm5hbWUgKyAnX21ldGEnXSkge1xyXG4gICAgICAgIGVsZW1lbnQuZGF0YU1ldGEgPSBkYXRhW2VsZW1lbnQubmFtZSArICdfbWV0YSddO1xyXG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnQudHlwZSA9PT0gJ0NPREVTWVNURU0nICYmIGRhdGFbZWxlbWVudC5uYW1lICsgJ19tZXRhJ10pIHtcclxuICAgICAgICBlbGVtZW50LmRhdGFNZXRhID0gZGF0YVtlbGVtZW50Lm5hbWUgKyAnX21ldGEnXTtcclxuICAgICAgICBlbGVtZW50LmRlZmF1bHRyZXByZXNlbnRhdGlvbiA9IGRhdGFbZWxlbWVudC5uYW1lICsgJ19tZXRhJ10uZGVmYXVsdHJlcHJlc2VudGF0aW9uO1xyXG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnQudHlwZSA9PT0gJ1JFRkVSRU5DRScgJiYgZGF0YVtlbGVtZW50Lm5hbWUgKyAnX21ldGEnXSkge1xyXG4gICAgICAgIGVsZW1lbnQuZGF0YU1ldGEgPSBkYXRhW2VsZW1lbnQubmFtZSArICdfbWV0YSddO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1ZhbHVlKGRhdGEsIGVsZW1lbnQpIHtcclxuXHJcbiAgICAvLyBkaWZmZXIgYmV0d2VlbiBhcnJheSBvZiBTZWFyY2hGaWx0ZXJzIGFuZCBhIGZvcm0gZGF0YSBvYmplY3RcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICdUQUJMRScpIHtcclxuICAgICAgICByZXR1cm4gISEoZGF0YS5maW5kKChmaWx0ZXIpID0+IGZpbHRlci5wcm9wZXJ0eS5zdGFydHNXaXRoKGVsZW1lbnQucW5hbWUpKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICEhKGRhdGEuZmluZCgoZmlsdGVyKSA9PiBmaWx0ZXIucHJvcGVydHkgPT09IGVsZW1lbnQucW5hbWUpKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGRhdGEuaGFzT3duUHJvcGVydHkoZWxlbWVudC5uYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VGFibGVGaWx0ZXJzKGZpbHRlcnM6IFNlYXJjaEZpbHRlcltdLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IFNlYXJjaEZpbHRlcltdIHtcclxuICAgIHJldHVybiBmaWx0ZXJzLmZpbHRlcihmID0+IGYucHJvcGVydHkuc3RhcnRzV2l0aChwcm9wZXJ0eU5hbWUgKyAnLicpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VmFsdWUoZGF0YSwgZWxlbWVudCkge1xyXG5cclxuICAgIGxldCB2YWx1ZTtcclxuICAgIGlmICh0aGlzLmZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzSW5uZXJUYWJsZUZvcm0pIHtcclxuICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSAnREFURVRJTUUnIHx8IGVsZW1lbnQudHlwZSA9PT0gJ05VTUJFUicpIHtcclxuICAgICAgICAgIHZhbHVlID0gU2VhcmNoU2VydmljZS50b1JhbmdlVmFsdWUoZGF0YVtlbGVtZW50Lm5hbWVdKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFsdWUgPSBkYXRhW2VsZW1lbnQubmFtZV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnQudHlwZSA9PT0gJ1RBQkxFJykge1xyXG4gICAgICAgIHZhbHVlID0gdGhpcy5zZWFyY2hTZXJ2aWNlLnRhYmxlRmlsdGVyc1RvRWxlbWVudFZhbHVlKHRoaXMuZ2V0VGFibGVGaWx0ZXJzKGRhdGEsIGVsZW1lbnQucW5hbWUpLCBlbGVtZW50LmVsZW1lbnRzKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBmaWx0ZXIgPSBkYXRhLmZpbmQoZiA9PiBmLnByb3BlcnR5ID09PSBlbGVtZW50LnFuYW1lKTtcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuc2VhcmNoU2VydmljZS5maWx0ZXJUb0VsZW1lbnRWYWx1ZShmaWx0ZXIsIGVsZW1lbnQudHlwZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICBpZiAoZWxlbWVudC50eXBlID09PSAnREFURVRJTUUnICYmIGRhdGFbZWxlbWVudC5uYW1lXSkge1xyXG4gICAgICAgIHZhbHVlID0gbmV3IERhdGUoYCR7ZGF0YVtlbGVtZW50Lm5hbWVdfSR7ZWxlbWVudC53aXRodGltZSA/ICcnIDogJ1QwMDowMDowMCd9YCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFsdWUgPSBkYXRhW2VsZW1lbnQubmFtZV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvLyB1bnN1YnNjcmliZSBmcm9tIGFsbCB2YWx1ZSBjaGFuZ2UgbGlzdGVuZXJzIGZvciB0aGUgY3VycmVudCBmb3JtXHJcbiAgLy8gdG8gYXZvaWQgbWVtb3J5IGxlYWtzLiBUaGlzIG1ldGhvZCB3aWxsIGFsc28gYmUgY2FsbGVkIGV2ZXJ5IHRpbWVcclxuICAvLyBhIG5ldyBmb3JtIGlzIHJlbmRlcmVkIHRvIGdldCByaWQgb2YgdGhlIG9sZCBmb3JtIGVsZW1lbnQgc3Vic2NyaXB0aW9uc1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndW5zdWJzY3JpYmVkIGZyb20gJyArIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGggKyAnIHZhbHVlIGNoYW5nZSBsaXN0ZW5lcnMuJyk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
629
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUE0QixRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUUsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFFWixVQUFVLEVBRVYsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFjLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3hGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBR3RFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUM5RSxPQUFPLEVBQUMsTUFBTSxFQUFnQixhQUFhLEVBQUUsYUFBYSxFQUFZLE1BQU0sY0FBYyxDQUFDO0FBQzNGLE9BQU8sRUFBQyxZQUFZLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdC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VCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxtRUFBbUU7SUFDbkUsb0VBQW9FO0lBQ3BFLDBFQUEwRTtJQUNsRSxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsMEJBQTBCLENBQUMsQ0FBQztZQUNqRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7O1lBeHFCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsd2ZBQTJDO2dCQUUzQyxnRkFBZ0Y7Z0JBQ2hGLG1FQUFtRTtnQkFDbkUsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7O2FBRXJDOzs7WUFkTyxNQUFNO1lBaEJaLFVBQVU7WUFnQmtCLGFBQWE7WUFBRSxhQUFhO1lBTmxELHVCQUF1QjtZQUN2Qix1QkFBdUI7WUFJdkIsY0FBYztZQUdkLGdCQUFnQjtZQWhCdEIsaUJBQWlCOzs7K0JBK0JoQixLQUFLOzRCQUVMLE1BQU07MEJBRU4sTUFBTTt3QkFvQk4sS0FBSztzQkFFTCxLQUFLLFNBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7b2YgYXMgb2JzZXJ2YWJsZU9mLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGZvcmtKb2lufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkRlc3Ryb3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybVZhbGlkYXRpb259IGZyb20gJy4vZm9ybS12YWxpZGF0aW9uL2Zvcm0tdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7T2JqZWN0Rm9ybUdyb3VwfSBmcm9tICcuL29iamVjdC1mb3JtLWdyb3VwJztcclxuaW1wb3J0IHtWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge09iamVjdEZvcm1Db250cm9sfSBmcm9tICcuL29iamVjdC1mb3JtLWNvbnRyb2wnO1xyXG5pbXBvcnQge09iamVjdEZvcm1Db250cm9sV3JhcHBlcn0gZnJvbSAnLi9vYmplY3QtZm9ybS1jb250cm9sLXdyYXBwZXInO1xyXG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRpbmdTY29wZX0gZnJvbSAnLi9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlJztcclxuaW1wb3J0IHtPYmplY3RGb3JtU2NyaXB0U2VydmljZX0gZnJvbSAnLi9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQge09iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7T2JqZWN0Rm9ybU9wdGlvbnN9IGZyb20gJy4uL29iamVjdC1mb3JtLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50fSBmcm9tICcuLi9mb3JtLXN0YXR1cy1jaGFuZ2VkLWV2ZW50LmludGVyZmFjZSc7XHJcbmltcG9ydCB7VW5zdWJzY3JpYmVPbkRlc3Ryb3l9IGZyb20gJy4uLy4uL3V0aWwvdW5zdWJzY3JpYmUvdW5zdWJzY3JpYmUuY29tcG9uZW50JztcclxuaW1wb3J0IHtQbHVnaW5zU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL3BsdWdpbnMuc2VydmljZSc7XHJcbmltcG9ydCB7TG9nZ2VyLCBTZWFyY2hGaWx0ZXIsIFN5c3RlbVNlcnZpY2UsIFNlYXJjaFNlcnZpY2UsIERtc09iamVjdH0gZnJvbSAnQGVvLXNkay9jb3JlJztcclxuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1JlZmVyZW5jZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3JlZmVyZW5jZXMvcmVmZXJlbmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlby1vYmplY3QtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vYmplY3QtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIC8vIGRlZmluZSAnY2hpbGQgb25seScgc2VydmljZXMgZm9yIHRoZSBmb3JtIHdpdGhvdXQgc2V0dGluZyBpdCB1cCBvbiB0aGUgbW9kdWxlXHJcbiAgLy8gd2hpY2ggd291bGQgY2F1c2UgdGhlbSB0byBiZSBwcm9wYWdhdGVkIHRvIHRoZSB3aG9sZSBhcHBsaWNhdGlvblxyXG4gIHByb3ZpZGVyczogW09iamVjdEZvcm1TY3JpcHRTZXJ2aWNlXSxcclxuICAvL2VuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1Db21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIGlzSW5uZXJUYWJsZUZvcm06IGJvb2xlYW47XHJcbiAgLy8gdHJpZ2dlcmVkIHdoZW4gdGhlIGZvcm1zIHN0YXRlIGhhcyBiZWVuIGNoYW5nZWRcclxuICBAT3V0cHV0KCkgc3RhdHVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybVN0YXR1c0NoYW5nZWRFdmVudD4oKTtcclxuICAvLyBoYW5kbGVyIHRvIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBmb3JtIGhhcyBiZWVuIHNldCB1cFxyXG4gIEBPdXRwdXQoKSBvbkZvcm1SZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gY291bnRlciBmb3IgbmFtaW5nIHRoZSBmb3JtcyBncm91cHNcclxuICBnQ291bnQgPSAwO1xyXG4gIHB1YmxpYyBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XHJcbiAgcHVibGljIGRlZmF1bHRGb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XHJcbiAgLy8gdGhlIGFjdHVhbCBmb3JtIGluc3RhbmNlXHJcbiAgcHVibGljIGZvcm07XHJcbiAgLy8gcHJvcGVydHkgZm9yIGhvbGRpbmcgdGhlIGZvcm1zIGRhdGEgdXNlZCBmb3IgY29tcGFyaXNvbiB3aGVuIGEgZm9ybS1jaGFuZ2VkLWV2ZW50XHJcbiAgLy8gaXMgZmV0Y2hlZCB0byBpbmRpY2F0ZSB3aGVyIG9yIG5vdCB0aGUgaW5kZXhkYXRhIHdlcmUgY2hhbmdlZCBvciBqdXN0IHRoZSBwcm9wZXJ0aWVzXHJcbiAgLy8gb2YgdGhlIGZvcm0gZWxlbWVudHMgKGVnLiBmb3JtIHNjcmlwdCBzZXR0aW5nIGZpZWxkcyB0byByZWFkb25seSlcclxuICBwcml2YXRlIGZvcm1EYXRhOiBhbnk7XHJcbiAgcHJpdmF0ZSBzY3JpcHRNb2RlbCA9IHt9O1xyXG4gIHByaXZhdGUgc2NyaXB0aW5nU2NvcGU6IE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZTtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIC8vIGxvY2FsIHN0b3JlIGZvciBhbGwgdGhlIGZvcm0gY29udHJvbCByZWZlcmVuY2VzXHJcbiAgcHJpdmF0ZSBmb3JtQ29udHJvbHMgPSB7fTtcclxuICBwcml2YXRlIGluaXRpYWxWYWxpZGF0b3JzID0ge307XHJcblxyXG4gIEBJbnB1dCgpIGRtc09iamVjdDogRG1zT2JqZWN0O1xyXG5cclxuICBASW5wdXQoJ2Zvcm1PcHRpb25zJylcclxuICBzZXQgb3B0aW9ucyhmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnMpIHtcclxuICAgIHRoaXMuZGVmYXVsdEZvcm1PcHRpb25zID0gZm9ybU9wdGlvbnM7XHJcbiAgICB0aGlzLmZvcm1PcHRpb25zID0gXy5jbG9uZURlZXAoZm9ybU9wdGlvbnMpO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmb3JtU2NyaXB0U2VydmljZTogT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZvcm1IZWxwZXJTZXJ2aWNlOiBPYmplY3RGb3JtSGVscGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgcGx1Z2luU2VydmljZTogUGx1Z2luc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlZmVyZW5jZVNlcnZpY2U6IFJlZmVyZW5jZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIC8vIGluaXRpYWxpemUgdGhlIGZvcm0gYmFzZWQgb24gdGhlIHByb3ZpZGVkIGZvcm0gb3B0aW9uc1xyXG4gIHByaXZhdGUgaW5pdCgpIHtcclxuICAgIHRoaXMuZm9ybSA9IG51bGw7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5pbml0aWFsVmFsaWRhdG9ycyA9IHt9O1xyXG4gICAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XHJcbiAgICAgIHRoaXMuYnVpbGRSZWFjdGl2ZUZvcm0odGhpcy5mb3JtT3B0aW9ucyB8fCB7fSk7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdE9wdGlvbnMoKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmRlZmF1bHRGb3JtT3B0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdFNjcmlwdGluZ1Njb3BlKGZvcm1PcHRpb25zLCBkYXRhRm9ybU1vZGVsKSB7XHJcbiAgICBsZXQge2RhdGEsIGFjdGlvbnMsIG9iamVjdHMsIGNvbnRleHR9ID0gPE9iamVjdEZvcm1PcHRpb25zPihmb3JtT3B0aW9ucyB8fCB7fSk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2NyaXB0aW5nU2NvcGUpIHtcclxuICAgICAgdGhpcy5zY3JpcHRpbmdTY29wZS5zZXRNb2RlbCh0aGlzLnNjcmlwdE1vZGVsKTtcclxuICAgICAgLyoqIHByb3ZpZGUgYWNjZXNzIHRvIGFjdGlvbnMgKHVzZWQgaW5zaWRlIG9mIEJQTS1Gb3JtcykgKi9cclxuICAgICAgdGhpcy5zY3JpcHRpbmdTY29wZS5hY3Rpb25zID0gYWN0aW9ucztcclxuICAgICAgLyoqIHByb3ZpZGUgYWNjZXNzIHRvIGFkZGl0aW9uYWwgb2JqZWN0cyAodXNlZCBmb3IgZXhhbXBsZSBpbiBCUE0tU3RhcnQtRm9ybXMgdG9cclxuICAgICAgICogYWRkIGRhdGEgb2YgRE1TLU9iamVjdHMgdG8gc3RhcnQgdGhlIHByb2Nlc3MgZm9yKVxyXG4gICAgICAgKi9cclxuICAgICAgdGhpcy5zY3JpcHRpbmdTY29wZS5vYmplY3RzID0gb2JqZWN0cztcclxuICAgICAgdGhpcy5zY3JpcHRpbmdTY29wZS5jb250ZXh0ID0gY29udGV4dDtcclxuICAgICAgLyoqIHByb3ZpZGUgcmVhZG9ubHkgYWNjZXNzIHRvIGluaXRpYWwgZm9ybSBkYXRhICh3aGljaCBtYXkgYWxzbyBjb250YWluIHZhbHVlcyB0aGF0XHJcbiAgICAgICAqIGFyZSBub3QgcmVuZGVyZWQgYXMgZm9ybSBlbGVtZW50cyAoaW52aXNpYmxlIHZhbHVlcykpXHJcbiAgICAgICAqL1xyXG4gICAgICB0aGlzLnNjcmlwdGluZ1Njb3BlLmRhdGEgPSBkYXRhO1xyXG5cclxuICAgICAgLyoqIGJ5IGRlZmF1bHQsIHNjcmlwdGluZyBzY29wZXMgYXJlIGFwcGxpZWQgdG8gZm9ybXMuIEJ1dCB0YWJsZSBlbGVtZW50cyBjcmVhdGUgdGhlaXIgb3duIHNjb3BlXHJcbiAgICAgICAqIGZvciBlZGl0aW5nIHJvd3MuIEJlaW5nIG9uZSBvZiB0aG9zZSBpbm5lciBmb3JtcyBzaG91bGQgbm90IHJ1biB0aGUgZm9ybSBzY3JpcHQgYWdhaW4sIGJ1dFxyXG4gICAgICAgKiBpbnN0ZWFkIGp1c3QgcHJvdmlkZSB0aGUgb2JzZXJ2aW5nIGFiaWxpdGllcyBvZiB0aGUgc2NyaXB0aW5nIHNjb3BlLlxyXG4gICAgICAgKi9cclxuICAgICAgaWYgKCF0aGlzLmZvcm1PcHRpb25zLmRpc2FibGVkICYmICF0aGlzLmlzSW5uZXJUYWJsZUZvcm0gJiYgZGF0YUZvcm1Nb2RlbCkge1xyXG4gICAgICAgIGNvbnN0IHNjcmlwdE5hbWUgPSBkYXRhRm9ybU1vZGVsLm5hbWUgKyAnXycgKyBkYXRhRm9ybU1vZGVsLnNpdHVhdGlvbjtcclxuXHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2V4ZWN1dGluZyBmb3JtIHNjcmlwdCAnICsgc2NyaXB0TmFtZSk7XHJcbiAgICAgICAgdGhpcy5mb3JtU2NyaXB0U2VydmljZS5ydW5Gb3JtU2NyaXB0KFxyXG4gICAgICAgICAgdGhpcy5zY3JpcHRpbmdTY29wZSxcclxuICAgICAgICAgIGRhdGFGb3JtTW9kZWwuc2NyaXB0LFxyXG4gICAgICAgICAgc2NyaXB0TmFtZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZm9jdXNGb3JtKCkge1xyXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEZvcm1EYXRhKGRhdGEpIHtcclxuICAgIHRoaXMuZm9ybU9wdGlvbnMuZGF0YSA9IGRhdGE7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9LCAwKTtcclxuXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeHRyYWN0cyB0aGUgdmFsdWVzIGZyb20gdGhlIGZvcm0gbW9kZWwuIEVhY2ggZm9ybSB2YWx1ZSBpcyByZXByZXNlbnRlZCBieSBvbmVcclxuICAgKiBwcm9wZXJ0eSBvbiB0aGUgcmVzdWx0IG9iamVjdCBob2xkaW5nIHRoZSBmaWVsZHMgdmFsdWUuIFRoZSBrZXlzIChwcm9wZXJ0aWVzKSBhcmUgdGhlIGBuYW1lYFxyXG4gICAqIHByb3BlcnRpZXMgb2YgdGhlIGZvcm0gZWxlbWVudCAoaW4gU0VBUkNIIHNpdHVhdGlvbiB0aGUgYHFuYW1lYCBmaWVsZCBpcyB1c2VkKS5cclxuICAgKlxyXG4gICAqIEhvdyB2YWx1ZXMgYXJlIGV4dHJhY3RlZCBpcyBpbmZsdWVuY2VkIGJ5IHRoZSBmb3JtcyBzaXR1YXRpb24uXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIG9iamVjdCBvZiBrZXkgdmFsdWUgcGFpcnNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Rm9ybURhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtVG9EYXRhKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Rm9ybVByaXN0aW5lKCkge1xyXG4gICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgfVxyXG5cclxuICAvLyByZXNldCB0aGUgZm9ybSB0byBpdHMgaW5pdGlhbCBzdGF0ZVxyXG4gIHB1YmxpYyByZXNldEZvcm0oKSB7XHJcbiAgICB0aGlzLmluaXRPcHRpb25zKCk7XHJcbiAgICB0aGlzLmVtaXRGb3JtQ2hhbmdlZEV2ZW50KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBvYnNlcnZlZCBtb2RlbCB0aGF0IHdhcyBwYXNzZWQgdG8gdGhlIGN1cnJlbnQgZm9ybSBzY3JpcHQgcnVubmluZy4gSWYgdGhlcmUgaXNcclxuICAgKiBubyBmb3JtIHNjcmlwdCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gTlVMTC5cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRPYnNlcnZlZFNjcmlwdE1vZGVsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2NyaXB0aW5nU2NvcGUgPyB0aGlzLnNjcmlwdGluZ1Njb3BlLmdldE1vZGVsKCkgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8gQ3JlYXRlIGEgcmVhY3RpdmUgZm9ybSBmcm9tIHRoZSBlbmFpbyBmb3JtIG1vZGVsXHJcbiAgcHJpdmF0ZSBidWlsZFJlYWN0aXZlRm9ybShmb3JtT3B0aW9ucykge1xyXG5cclxuICAgIHRoaXMuc2NyaXB0aW5nU2NvcGUgPSBudWxsO1xyXG4gICAgY29uc3QgZm9ybU1vZGVsID0gdGhpcy5kYXRhVG9Gb3JtKGZvcm1PcHRpb25zLmZvcm1Nb2RlbCwgZm9ybU9wdGlvbnMuZGF0YSk7XHJcblxyXG4gICAgaWYgKCFmb3JtTW9kZWwpIHtcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiBhIHNjcmlwdCBpcyBhdmFpbGFibGUsIHdlJ2xsIGluaXQgdGhlIGZvcm0gc2NyaXB0aW5nIGZvciB0aGVcclxuICAgIC8vIGN1cnJlbnQgZm9ybVxyXG4gICAgaWYgKHRoaXMuaXNJbm5lclRhYmxlRm9ybSB8fCAoZm9ybU1vZGVsLnNjcmlwdCAmJiBmb3JtTW9kZWwuc2NyaXB0Lmxlbmd0aCA+IDApKSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdhZGRpbmcgZm9ybSBzY3JpcHRpbmcgc2NvcGUnKTtcclxuICAgICAgdGhpcy5zY3JpcHRpbmdTY29wZSA9IG5ldyBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGUoXHJcbiAgICAgICAgZm9ybU1vZGVsLnNpdHVhdGlvbixcclxuICAgICAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2VkLFxyXG4gICAgICAgIHRoaXMucGx1Z2luU2VydmljZS5nZXRBcGkoKSxcclxuICAgICAgICB0aGlzLmlzSW5uZXJUYWJsZUZvcm1cclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zY3JpcHRpbmdTY29wZS5vYmplY3RJZCA9IHRoaXMuZm9ybU9wdGlvbnMub2JqZWN0SWQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGZvcm0gPSBuZXcgT2JqZWN0Rm9ybUdyb3VwKHt9KTtcclxuICAgIGlmIChmb3JtTW9kZWwuZWxlbWVudHNbMF0gJiYgZm9ybU1vZGVsLmVsZW1lbnRzWzBdLmVsZW1lbnRzKSB7XHJcbiAgICAgIHRoaXMuYWRkRm9ybUNvbnRyb2woZm9ybSwgZm9ybU1vZGVsLmVsZW1lbnRzWzBdLCAnY29yZScpO1xyXG4gICAgfVxyXG4gICAgaWYgKGZvcm1Nb2RlbC5lbGVtZW50c1sxXSAmJiBmb3JtTW9kZWwuZWxlbWVudHNbMV0uZWxlbWVudHMpIHtcclxuICAgICAgdGhpcy5hZGRGb3JtQ29udHJvbChmb3JtLCBmb3JtTW9kZWwuZWxlbWVudHNbMV0sICdkYXRhJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mb3JtID0gZm9ybTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmZvcm0pIHJldHVybjtcclxuXHJcbiAgICAgIHRoaXMuaW5pdFZhbGlkYXRvcnModGhpcy5mb3JtKTtcclxuICAgICAgbGV0IGZvcm1XYXRjaCA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+ICFmb3JtV2F0Y2guY2xvc2VkICYmIHRoaXMuZW1pdEZvcm1DaGFuZ2VkRXZlbnQoKSk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGZvcm1XYXRjaCk7XHJcblxyXG4gICAgICB0aGlzLmluaXRTY3JpcHRpbmdTY29wZShmb3JtT3B0aW9ucywgZm9ybU1vZGVsKTtcclxuXHJcbiAgICAgIHRoaXMub25Gb3JtUmVhZHkuZW1pdCgpO1xyXG4gICAgICB0aGlzLmVtaXRGb3JtQ2hhbmdlZEV2ZW50KGZhbHNlKTtcclxuICAgIH0sIDMwMCk7XHJcbiAgfVxyXG5cclxuICBpbml0VmFsaWRhdG9ycyhmb3JtKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiBmb3JtLmNvbnRyb2xzKSB7XHJcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm0uY29udHJvbHNba2V5XTtcclxuICAgICAgICBpZiAoY29udHJvbC5jb250cm9scykge1xyXG4gICAgICAgICAgdGhpcy5pbml0VmFsaWRhdG9ycyhjb250cm9sKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5pbml0aWFsVmFsaWRhdG9yc1tjb250cm9sLl9lb0Zvcm1FbGVtZW50Lm5hbWVdID0gY29udHJvbC52YWxpZGF0b3I7XHJcbiAgICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5jb21wb3NlKHRoaXMuZ2V0VmFsaWRhdG9ycyhjb250cm9sLl9lb0Zvcm1FbGVtZW50KS5jb25jYXQoW3RoaXMuaW5pdGlhbFZhbGlkYXRvcnNbY29udHJvbC5fZW9Gb3JtRWxlbWVudC5uYW1lXV0pKSk7XHJcbiAgICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdEZvcm1DaGFuZ2VkRXZlbnQoY29tcGFyZSA9IHRydWUpIHtcclxuXHJcbiAgICAvLyBjaGVjayBpZiBpbmRleGRhdGEgaGFzIGJlZW4gY2hhbmdlZFxyXG4gICAgbGV0IGN1cnJlbnRGb3JtRGF0YSA9IHRoaXMuZ2V0Rm9ybURhdGEoKTtcclxuICAgIGxldCBpZHhDaGFuZ2UgPSBjb21wYXJlID8gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtRGF0YSkgIT09IEpTT04uc3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSkgOiBmYWxzZTtcclxuICAgIHRoaXMuZm9ybURhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSkpO1xyXG4gICAgaWYgKHRoaXMuZm9ybSkge1xyXG4gICAgICB0aGlzLnN0YXR1c0NoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgaW52YWxpZDogdGhpcy5mb3JtLmludmFsaWQsXHJcbiAgICAgICAgZGlydHk6IHRoaXMuZm9ybS5kaXJ0eSxcclxuICAgICAgICBkYXRhOiB0aGlzLmZvcm1EYXRhLFxyXG4gICAgICAgIGluZGV4ZGF0YUNoYW5nZWQ6IGlkeENoYW5nZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGVhY2ggdGltZSB0aGUgc2NyaXB0IGNoYW5nZXMgaXRzIGludGVybmFsIG1vZGVsLlxyXG4gICAqIEl0IGlzIHVzZWQgdG8gdHJhbnNmZXIgdGhlIHNjcmlwdCBjaGFuZ2VzIHRvIHRoZSBhY3R1YWwgZm9ybSBtb2RlbC5cclxuICAgKlxyXG4gICAqIFRvIGVuc3VyZSB0aGUgcmlnaHQgY29udGV4dCwgd2UgZGVmaW5lIGFuIGluc3RhbmNlIG1ldGhvZCBhcyBjYWxsYmFjayBmb3IgdGhlIHNjcmlwdGluZyBzY29wZVxyXG4gICAqIEBzZWU6IGh0dHBzOi8vYmxvZy5qb2hubnlyZWlsbHkuY29tLzIwMTQvMDQvdHlwZXNjcmlwdC1pbnN0YW5jZS1tZXRob2RzLmh0bWxcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmb3JtQ29udHJvbE5hbWVcclxuICAgKiBAcGFyYW0gY2hhbmdlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblNjcmlwdGluZ01vZGVsQ2hhbmdlZCA9IChmb3JtQ29udHJvbE5hbWUsIGNoYW5nZSkgPT4ge1xyXG5cclxuICAgIC8vIGZpbmQgdGhlIHRhcmdldCBjb250cm9sXHJcbiAgICBsZXQgZmM6IE9iamVjdEZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXSBhcyBPYmplY3RGb3JtQ29udHJvbDtcclxuICAgIGlmIChmYykge1xyXG5cclxuICAgICAgLy8gY2hhbmdlIG9ubHkgYWxsb3dlZCBwcm9wZXJ0aWVzXHJcbiAgICAgIHN3aXRjaCAoY2hhbmdlLm5hbWUpIHtcclxuICAgICAgICBjYXNlICd2YWx1ZSc6IHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoYW5nZS5uZXdWYWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQXJyYXlWYWx1ZUNoYW5nZShmYywgY2hhbmdlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZjLl9lb0Zvcm1FbGVtZW50LnZhbHVlID0gY2hhbmdlLm5ld1ZhbHVlO1xyXG4gICAgICAgICAgICBpZiAoZmMudmFsdWUgIT09IGNoYW5nZS5uZXdWYWx1ZSkge1xyXG4gICAgICAgICAgICAgIGZjLnBhdGNoVmFsdWUoY2hhbmdlLm5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgICBmYy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICAgICAgZmMubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAncmVxdWlyZWQnOiB7XHJcbiAgICAgICAgICBpZiAoZmMuX2VvRm9ybUVsZW1lbnQucmVxdWlyZWQgIT09IGNoYW5nZS5uZXdWYWx1ZSkge1xyXG4gICAgICAgICAgICBmYy5fZW9Gb3JtRWxlbWVudC5yZXF1aXJlZCA9IGNoYW5nZS5uZXdWYWx1ZTtcclxuICAgICAgICAgICAgLy8gYXBwbHkgbmV3IHZhbGlkYXRvcnNcclxuICAgICAgICAgICAgLy8gQHNlZTogaHR0cHM6Ly9zY290Y2guaW8vdHV0b3JpYWxzL2hvdy10by1pbXBsZW1lbnQtY29uZGl0aW9uYWwtdmFsaWRhdGlvbi1pbi1hbmd1bGFyLTItbW9kZWwtZHJpdmVuLWZvcm1zXHJcbiAgICAgICAgICAgIGZjLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5jb21wb3NlKHRoaXMuZ2V0VmFsaWRhdG9ycyhmYy5fZW9Gb3JtRWxlbWVudCkuY29uY2F0KFt0aGlzLmluaXRpYWxWYWxpZGF0b3JzW2ZjLl9lb0Zvcm1FbGVtZW50Lm5hbWVdXSkpKTtcclxuICAgICAgICAgICAgLy8gbmVlZCB0byBtYXJrIGZvcm0gY29udHJvbCBhcyB0b3VjaGVkIGJlY2F1c2Ugb3RoZXJ3aXNlIGZvcm0gdmFsaWRhdGlvbiB3aWxsIG5vdCBzaG93XHJcbiAgICAgICAgICAgIC8vIGVycm9yIG1lc3NhZ2VzXHJcbiAgICAgICAgICAgIGZjLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICAgICAgZmMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ3JlYWRvbmx5Jzoge1xyXG4gICAgICAgICAgZmMuX2VvRm9ybUVsZW1lbnQucmVhZG9ubHkgPSBjaGFuZ2UubmV3VmFsdWU7XHJcbiAgICAgICAgICBpZiAoY2hhbmdlLm5ld1ZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGZjLmRpc2FibGUoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZjLmVuYWJsZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ2Vycm9yJzoge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGZjLl9lb0Zvcm1FbGVtZW50LmVycm9yKSAhPT0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlLm5ld1ZhbHVlKSkge1xyXG4gICAgICAgICAgICBmYy5fZW9Gb3JtRWxlbWVudC5lcnJvciA9IGNoYW5nZS5uZXdWYWx1ZTtcclxuICAgICAgICAgICAgZmMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICBmYy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gbmV3IG9ucm93ZWRpdCBmdW5jdGlvbiB3YXMgYXBwbGllZCBieSB0aGUgc2NyaXB0XHJcbiAgICAgICAgY2FzZSAnb25yb3dlZGl0Jzoge1xyXG4gICAgICAgICAgZmMuX2VvRm9ybUVsZW1lbnQub25yb3dlZGl0ID0gY2hhbmdlLm5ld1ZhbHVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIG5ldyBvbmNoYW5nZSBmdW5jdGlvbiB3YXMgYXBwbGllZCBieSB0aGUgc2NyaXB0XHJcbiAgICAgICAgY2FzZSAnb25jaGFuZ2UnOiB7XHJcbiAgICAgICAgICBmYy5fZW9Gb3JtRWxlbWVudC5vbmNoYW5nZSA9IGNoYW5nZS5uZXdWYWx1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBuZXcgY29udGV4dElkIHdhcyBhcHBsaWVkIGJ5IHRoZSBzY3JpcHRcclxuICAgICAgICBjYXNlICdjb250ZXh0SWQnOiB7XHJcbiAgICAgICAgICBmYy5fZW9Gb3JtRWxlbWVudC5jb250ZXh0SWQgPSBjaGFuZ2UubmV3VmFsdWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJvY2Vzc0FycmF5VmFsdWVDaGFuZ2UoZmMsIGNoYW5nZSkge1xyXG4gICAgY29uc3QgbmV3VmFsID0gY2hhbmdlLm5ld1ZhbHVlO1xyXG4gICAgY29uc3QgdGFyZ2V0VHlwZSA9IGZjLl9lb0Zvcm1FbGVtZW50LnR5cGU7XHJcbiAgICAvLyBmb3Igc29tZSB0eXBlcyB3ZSBoYXZlIHRvIGVuc3VyZSB0aGF0IG1ldGEgZGF0YSBhcmUgcHJvdmlkZWQgYXMgd2VsbFxyXG4gICAgc3dpdGNoICh0YXJnZXRUeXBlKSB7XHJcbiAgICAgIGNhc2UgJ09SR0FOSVpBVElPTic6IHtcclxuICAgICAgICB0aGlzLmdldERhdGFNZXRhKGZjLl9lb0Zvcm1FbGVtZW50LCBuZXdWYWwpLnN1YnNjcmliZShtID0+IHtcclxuICAgICAgICAgIGZjLl9lb0Zvcm1FbGVtZW50LmRhdGFNZXRhID0gbTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdDT0RFU1lTVEVNJzoge1xyXG4gICAgICAgIGlmICghZmMuX2VvRm9ybUVsZW1lbnQuY29kZXN5c3RlbS5lbnRyaWVzKSB7XHJcbiAgICAgICAgICBmYy5fZW9Gb3JtRWxlbWVudC5jb2Rlc3lzdGVtID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldENvZGVzeXN0ZW0oZmMuX2VvRm9ybUVsZW1lbnQuY29kZXN5c3RlbS5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ1RBQkxFJzoge1xyXG4gICAgICAgIGNvbnN0IGRhdGFUb0JlUHJvY2Vzc2VkID0ge307XHJcbiAgICAgICAgZmMuX2VvRm9ybUVsZW1lbnQuZWxlbWVudHMuZm9yRWFjaChlID0+IHtcclxuICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdPUkdBTklaQVRJT04nIHx8IGUudHlwZSA9PT0gJ0NPREVTWVNURU0nKSB7XHJcbiAgICAgICAgICAgIGRhdGFUb0JlUHJvY2Vzc2VkW2UubmFtZV0gPSBlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhkYXRhVG9CZVByb2Nlc3NlZCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICBsZXQgb2JzID0gW107XHJcbiAgICAgICAgICBuZXdWYWwuZm9yRWFjaChyb3dEYXRhID0+IHtcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMocm93RGF0YSkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChkYXRhVG9CZVByb2Nlc3NlZFtrZXldKSB7XHJcbiAgICAgICAgICAgICAgICBvYnMucHVzaCh0aGlzLmdldERhdGFNZXRhKGRhdGFUb0JlUHJvY2Vzc2VkW2tleV0sIHJvd0RhdGFba2V5XSkucGlwZShcclxuICAgICAgICAgICAgICAgICAgdGFwKG0gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICByb3dEYXRhW2tleSArICdfbWV0YSddID0gbTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHJvd0RhdGFba2V5ICsgJ19tZXRhJ107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZm9ya0pvaW4ob2JzKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVBcnJheVZhbHVlKGZjLCBuZXdWYWwpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlQXJyYXlWYWx1ZShmYywgbmV3VmFsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQXJyYXlWYWx1ZShmYywgbmV3VmFsdWUpIHtcclxuICAgIGZjLl9lb0Zvcm1FbGVtZW50LnZhbHVlID0gW10uY29uY2F0KG5ld1ZhbHVlKTtcclxuICAgIGZjLnBhdGNoVmFsdWUoW10uY29uY2F0KG5ld1ZhbHVlKSk7XHJcbiAgICBmYy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICBmYy5tYXJrQXNEaXJ0eSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXRhTWV0YShmb3JtRWxlbWVudDogYW55LCBuZXdWYWx1ZTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHJcbiAgICBpZiAobmV3VmFsdWUpIHtcclxuICAgICAgc3dpdGNoIChmb3JtRWxlbWVudC50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnT1JHQU5JWkFUSU9OJzoge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuc3lzdGVtU2VydmljZS5nZXRPcmdhbml6YXRpb25PYmplY3QobmV3VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdSRUZFUkVOQ0UnOiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2VTZXJ2aWNlLmZldGNoSURSZWZlcmVuY2VNZXRhRGF0YShBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSA/IG5ld1ZhbHVlIDogW25ld1ZhbHVlXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ0NPREVTWVNURU0nOiB7XHJcbiAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHRoaXMuc3lzdGVtU2VydmljZS5nZXRDb2Rlc3lzdGVtKGZvcm1FbGVtZW50LmNvZGVzeXN0ZW0uaWQpLmVudHJpZXMuZmluZCgoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmRlZmF1bHRyZXByZXNlbnRhdGlvbiA9PT0gbmV3VmFsdWU7XHJcbiAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVjdXJzaXZlIG1ldGhvZCBhZGRpbmcgYSBuZXcgRm9ybUNvbnRyb2wgKGdyb3VwIG9yIGNvbnRyb2wpIHRvIGEgcGFyZW50IGZvcm0gZ3JvdXBcclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJlbnRHcm91cCAtIHRoZSBwYXJlbnQgZ3JvdXAgdG8gYWRkIHRoZSBjb250cm9sIHRvXHJcbiAgICogQHBhcmFtIGZvcm1FbGVtZW50IC0gdGhlIGVuYWlvIGZvcm0gbW9kZWwgZWxlbWVudCB0byBjcmVhdGUgdGhlIGNoaWxkIGNvbnRyb2wgZnJvbVxyXG4gICAqIEBwYXJhbSBbdXNlTmFtZV0gLSB1c2UgdGhpcyBuYW1lIGluc3RlYWQgb2YgdGhlIG9uZSBmcm9tIHRoZSBtb2RlbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkRm9ybUNvbnRyb2wocGFyZW50R3JvdXA6IE9iamVjdEZvcm1Hcm91cCwgZm9ybUVsZW1lbnQ6IGFueSwgdXNlTmFtZT86IHN0cmluZykge1xyXG5cclxuICAgIGxldCBjdHJsO1xyXG4gICAgbGV0IG5hbWU7XHJcblxyXG4gICAgLy8gYWRkIGEgZm9ybSBncm91cFxyXG4gICAgaWYgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdvMm1Hcm91cCcgfHwgZm9ybUVsZW1lbnQudHlwZSA9PT0gJ28ybUdyb3VwU3RhY2snKSB7XHJcblxyXG4gICAgICAvLyBkbyBub3QgYWRkIGdyb3VwcyB0aGF0IGFyZSBlbXB0eVxyXG4gICAgICBpZiAoIWZvcm1FbGVtZW50LmVsZW1lbnRzIHx8IGZvcm1FbGVtZW50LmVsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdGb3VuZCBlbXB0eSBmb3JtIGdyb3VwJywgZm9ybUVsZW1lbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY3RybCA9IG5ldyBPYmplY3RGb3JtR3JvdXAoe30pO1xyXG4gICAgICBjdHJsLl9lb0Zvcm1Hcm91cCA9IHtcclxuICAgICAgICBsYWJlbDogZm9ybUVsZW1lbnQubGFiZWwsXHJcbiAgICAgICAgLy9sYXlvdXRncm91cDogZm9ybUVsZW1lbnQubGF5b3V0Z3JvdXAsXHJcbiAgICAgICAgbGF5b3V0OiBmb3JtRWxlbWVudC5sYXlvdXQsXHJcbiAgICAgICAgdHlwZTogZm9ybUVsZW1lbnQudHlwZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgaWYgKHVzZU5hbWUgPT09ICdjb3JlJyB8fCB1c2VOYW1lID09PSAnZGF0YScpIHtcclxuICAgICAgICBjdHJsLl9lb0Zvcm1Hcm91cC5sYWJlbCA9IHVzZU5hbWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvciAobGV0IGUgb2YgZm9ybUVsZW1lbnQuZWxlbWVudHMpIHtcclxuICAgICAgICB0aGlzLmFkZEZvcm1Db250cm9sKGN0cmwsIGUpO1xyXG4gICAgICB9XHJcbiAgICAgIG5hbWUgPSB1c2VOYW1lIHx8ICdmZycgKyB0aGlzLmdDb3VudCsrO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gYWRkIGZvcm0gY29udHJvbFxyXG4gICAgICAvLyBUbyBiZSBhYmxlIHRvIGludGVncmF0ZSByZWN1cnNpdmUgZm9ybSBjb250cm9scyBpbnRvIHRoZSBtYWluIGZvcm0sXHJcbiAgICAgIC8vIHdlIGhhdmUgdG8gd3JhcCB0aGVtIGluIGEgZm9ybSBncm91cFxyXG4gICAgICBjdHJsID0gbmV3IE9iamVjdEZvcm1Db250cm9sV3JhcHBlcih7fSk7XHJcbiAgICAgIGN0cmwuX2VvRm9ybUNvbnRyb2xXcmFwcGVyID0ge1xyXG4gICAgICAgIC8vIHRoZSBuYW1lIG9mIHRoZSB3cmFwcGVkIEZvcm1Db250cm9sXHJcbiAgICAgICAgY29udHJvbE5hbWU6IGZvcm1FbGVtZW50Lm5hbWUsXHJcbiAgICAgICAgc2l0dWF0aW9uOiB0aGlzLmZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb25cclxuICAgICAgfTtcclxuICAgICAgaWYgKHRoaXMuZm9ybU9wdGlvbnMuZm9ybU1vZGVsLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcgJiYgZm9ybUVsZW1lbnQudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICBmb3JtRWxlbWVudC5pc05vdFNldFZhbHVlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICAvLyBkbyBub3Qgc2V0IGEgcmVmZXJlbmNlIGFzIHRoZSBmb3JtIGNvbnRyb2xzIHZhbHVlXHJcbiAgICAgIC8vIG90aGVyd2lzZSB3ZSBjb3VsZCBub3QgcmVzZXQgdGhlIGZvcm1cclxuICAgICAgbGV0IHZhbHVlOiBhbnk7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGZvcm1FbGVtZW50LnZhbHVlKSkge1xyXG4gICAgICAgIC8vIGNvcHkgYnkgdmFsdWUgZm9yIGFycmF5cyBvZiBvYmplY3RzIChlLmcuIHRhYmxlIGRhdGEpXHJcbiAgICAgICAgdmFsdWUgPSBbXTtcclxuICAgICAgICBmb3JtRWxlbWVudC52YWx1ZS5mb3JFYWNoKChvKSA9PiB7XHJcbiAgICAgICAgICB2YWx1ZS5wdXNoKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobykpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2YWx1ZSA9IGZvcm1FbGVtZW50LnZhbHVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBmb3IgY29kZXN5c3RlbSBlbGVtZW50cyBhZGQgZW50cmllcyBpZiBub3QgeWV0IHByb3ZpZGVkXHJcbiAgICAgIGlmIChmb3JtRWxlbWVudC50eXBlID09PSAnQ09ERVNZU1RFTScgJiYgIWZvcm1FbGVtZW50LmNvZGVzeXN0ZW0uZW50cmllcykge1xyXG4gICAgICAgIGZvcm1FbGVtZW50LmNvZGVzeXN0ZW0gPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0Q29kZXN5c3RlbShmb3JtRWxlbWVudC5jb2Rlc3lzdGVtLmlkKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gY3JlYXRlIHRoZSBhY3R1YWwgZm9ybSBjb250cm9sXHJcbiAgICAgIGxldCBjb250cm9sRGlzYWJsZWQgPSB0aGlzLmZvcm1PcHRpb25zLmRpc2FibGVkIHx8ICEhZm9ybUVsZW1lbnQucmVhZG9ubHk7XHJcbiAgICAgIGxldCBmb3JtQ29udHJvbCA9IG5ldyBPYmplY3RGb3JtQ29udHJvbCh7XHJcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgICAgIGRpc2FibGVkOiBjb250cm9sRGlzYWJsZWRcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBmb3JtRWxlbWVudC5yZWFkb25seSA9IGNvbnRyb2xEaXNhYmxlZDtcclxuXHJcbiAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50ID0gZm9ybUVsZW1lbnQ7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2xzW2Zvcm1FbGVtZW50Lm5hbWVdID0gZm9ybUNvbnRyb2w7XHJcblxyXG4gICAgICBpZiAoZm9ybUVsZW1lbnQudHlwZSA9PT0gJ0NPREVTWVNURU0nIHx8IChmb3JtRWxlbWVudC50eXBlID09PSAnU1RSSU5HJyAmJiBmb3JtRWxlbWVudC5jbGFzc2lmaWNhdGlvbiA9PT0gJ3NlbGVjdG9yJykpIHtcclxuICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5hcHBseUZpbHRlciA9IChmdW5jOiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQuZmlsdGVyRnVuY3Rpb24gPSBmdW5jO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQuYXBwbHlEaXNhYmxpbmdGaWx0ZXIgPSAoZnVuYzogRnVuY3Rpb24pID0+IHtcclxuICAgICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LmRpc2FibGluZ0ZpbHRlckZ1bmN0aW9uID0gZnVuYztcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZm9ybUVsZW1lbnQudHlwZSA9PT0gJ1NUUklORycgJiYgZm9ybUVsZW1lbnQuY2xhc3NpZmljYXRpb24gPT09ICdzZWxlY3RvcicpIHtcclxuICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5zZXRMaXN0ID0gKGxpc3RPYmplY3Q6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQubGlzdCA9IGxpc3RPYmplY3Q7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdPUkdBTklaQVRJT04nKSB7XHJcbiAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQuc2V0RmlsdGVyID0gKGZpbHRlck9iamVjdDogYW55KSA9PiB7XHJcbiAgICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5maWx0ZXIgPSBmaWx0ZXJPYmplY3Q7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdSRUZFUkVOQ0UnKSB7XHJcbiAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQuc2V0UXVlcnlGaWx0ZXJzID0gKHF1ZXJ5RmlsdGVyc09iamVjdDoge1tmaWVsZFFuYW1lOiBzdHJpbmddOiB7bzogc3RyaW5nLCB2MTogYW55LCB2MjogYW55fX0sIG9iamVjdFR5cGVzPzogc3RyaW5nW10pID0+IHtcclxuICAgICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LnF1ZXJ5RmlsdGVycyA9IHF1ZXJ5RmlsdGVyc09iamVjdDtcclxuICAgICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50Lm9iamVjdFR5cGVzRmlsdGVyID0gb2JqZWN0VHlwZXM7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuZm9ybU9wdGlvbnMuZm9ybU1vZGVsLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcclxuICAgICAgICAvLyBpbiBzZWFyY2ggc2l0dWF0aW9uIGV2ZW4gcmVhZG9ubHkgZmllbGRzIHNob3VsZCBiZSBlZGl0YWJsZSAuLi5cclxuICAgICAgICBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5yZWFkb25seSA9IGZhbHNlO1xyXG4gICAgICAgIC8vIC4uLiBhbmQgcmVxdWlyZWQgbWFrZXMgbm8gc2Vuc2UgaGVyZVxyXG4gICAgICAgIGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LnJlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIHJlbW92ZSBlbXB0eSBkZXNjcmlwdGlvbnNcclxuICAgICAgbGV0IGRlc2MgPSBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5kZXNjcmlwdGlvbjtcclxuICAgICAgaWYgKGRlc2MgJiYgZGVzYy50cmltKCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQuZGVzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBhZGQgdGhlIGZvcm0gZWxlbWVudCB0byB0aGUgc2NyaXB0IG1vZGVsIHRoYXQgd2lsbCBiZSBpbmplY3RlZCBpbnRvXHJcbiAgICAgIC8vIHRoZSBmb3JtcyBzY3JpcHRpbmcgc2NvcGUgbGF0ZXIgb25cclxuICAgICAgdGhpcy5zY3JpcHRNb2RlbFtmb3JtRWxlbWVudC5uYW1lXSA9IGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50O1xyXG5cclxuICAgICAgLy8gYXBwbHkgY2hhbmdlIGxpc3RlbmVyIHRvIHRoZSBmb3JtIGNvbnRyb2wsIHRoYXQgd2lsbCB0cmlnZ2VyXHJcbiAgICAgIC8vIHRoZSBmb3JtIGVsZW1lbnRzIG9uQ2hhbmdlIGxpc3RlbmVyXHJcbiAgICAgIGxldCBjb250cm9sV2F0Y2ggPSBjdHJsLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZShmb3JtRWxlbWVudC50eXBlID09PSAnVEFCTEUnID8gMCA6IDUwMCkpO1xyXG4gICAgICBjb250cm9sV2F0Y2guc3Vic2NyaWJlKCh2KSA9PiB7XHJcbiAgICAgICAgaWYgKGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LnR5cGUgPT09ICdSRUZFUkVOQ0UnKSB7XHJcbiAgICAgICAgICB0aGlzLmdldERhdGFNZXRhKGZvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50LCB2W2Zvcm1Db250cm9sLl9lb0Zvcm1FbGVtZW50Lm5hbWVdKS5zdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChtKSB7XHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2wuX2VvRm9ybUVsZW1lbnQuZGF0YU1ldGEgPSBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5tdWx0aXNlbGVjdCA/IG0gOiBtWzBdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGRlbGV0ZSBmb3JtQ29udHJvbC5fZW9Gb3JtRWxlbWVudC5kYXRhTWV0YTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNjcmlwdGluZ1Njb3BlKSB7XHJcbiAgICAgICAgICB0aGlzLnNjcmlwdGluZ1Njb3BlLm1vZGVsQ2hhbmdlZCh2KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChjb250cm9sV2F0Y2gpO1xyXG5cclxuICAgICAgY3RybC5hZGRDb250cm9sKGZvcm1FbGVtZW50Lm5hbWUsIGZvcm1Db250cm9sKTtcclxuICAgICAgbmFtZSA9ICdmZ18nICsgZm9ybUVsZW1lbnQubmFtZTtcclxuICAgIH1cclxuICAgIHBhcmVudEdyb3VwLmFkZENvbnRyb2wobmFtZSwgY3RybCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWlsZCB2YWxpZGF0b3JzIGZvciB0aGUgZ2l2ZW4gZm9ybSBlbGVtZW50IHRvIGJlIGF0dGFjaGVkIHRvXHJcbiAgICogYSByZWFjdGl2ZSBmb3JtQ29udHJvbC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBmb3JtRWxlbWVudCAtIGZvcm0gZWxlbWVudCBvYmplY3RcclxuICAgKi9cclxuICBwcml2YXRlIGdldFZhbGlkYXRvcnMoZm9ybUVsZW1lbnQ6IGFueSk6IFZhbGlkYXRvckZuW10ge1xyXG4gICAgbGV0IGVsbVZhbGlkYXRvcnMgPSBGb3JtVmFsaWRhdGlvbi5nZXRWYWxpZGF0b3JzKGZvcm1FbGVtZW50LCB0aGlzLmZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb24pO1xyXG5cclxuICAgIC8vIGFkZCBjdXN0b20gdmFsaWRhdG9yIGZvciBzY3JpcHQgZW5hYmxlZCBmb3Jtc1xyXG4gICAgaWYgKHRoaXMuc2NyaXB0aW5nU2NvcGUpIHtcclxuICAgICAgZWxtVmFsaWRhdG9ycy5wdXNoKEZvcm1WYWxpZGF0aW9uLmN1c3RvbVNjcmlwdGluZ1ZhbGlkYXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlbG1WYWxpZGF0b3JzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXh0cmFjdCB0aGUgdmFsdWVzIGZyb20gdGhlIGZvcm1cclxuICAgKi9cclxuICBwcml2YXRlIGZvcm1Ub0RhdGEoKSB7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZm9ybUhlbHBlclNlcnZpY2UuZXh0cmFjdEZvcm1EYXRhKFxyXG4gICAgICB0aGlzLmZvcm0sXHJcbiAgICAgIHRoaXMuZm9ybU9wdGlvbnMuZm9ybU1vZGVsLnNpdHVhdGlvbixcclxuICAgICAgdGhpcy5mb3JtT3B0aW9ucy5kYXRhLFxyXG4gICAgICB0aGlzLmlzSW5uZXJUYWJsZUZvcm1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXJnZSBkYXRhIGludG8gYSBmb3JtIG1vZGVsLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1vZGVsIC0gZm9ybSBtb2RlbFxyXG4gICAqIEBwYXJhbSBkYXRhIC0gZGF0YSBvYmplY3Qgb3IgYXJyYXkgb2YgU2VhcmNoRmlsdGVyIG9iamVjdHMgaW4gY2FzZSBvZiBhIHNlYXJjaCBmb3JtXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkYXRhVG9Gb3JtKG1vZGVsOiBhbnksIGRhdGE6IGFueSkge1xyXG4gICAgaWYgKG1vZGVsICYmIGRhdGEpIHtcclxuICAgICAgdGhpcy5zZXRFbGVtZW50VmFsdWVzKG1vZGVsLmVsZW1lbnRzLCBkYXRhKTtcclxuICAgIH1cclxuICAgIHJldHVybiBtb2RlbDtcclxuICB9XHJcblxyXG4gIC8vIHJlY3Vyc2l2ZSBtZXRob2QgZm9yIGFkZGluZyB2YWx1ZXMgdG8gbW9kZWwgZWxlbWVudHNcclxuICBwcml2YXRlIHNldEVsZW1lbnRWYWx1ZXMoZWxlbWVudHMsIGRhdGEpIHtcclxuXHJcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICBpZiAodGhpcy5oYXNWYWx1ZShkYXRhLCBlbGVtZW50KSkge1xyXG5cclxuICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy5nZXRWYWx1ZShkYXRhLCBlbGVtZW50KTtcclxuICAgICAgICBpZiAoZWxlbWVudC52YWx1ZSkge1xyXG4gICAgICAgICAgLy8gYWRkIG1ldGEgZGF0YSBmb3Igc29tZSBvZiB0aGUgdHlwZXNcclxuICAgICAgICAgIHRoaXMuZmV0Y2hNZXRhRGF0YShkYXRhLCBlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZGVsZXRlIGVsZW1lbnQudmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGVsZW1lbnQudHlwZSAhPT0gJ1RBQkxFJyAmJiBlbGVtZW50LmVsZW1lbnRzICYmIGVsZW1lbnQuZWxlbWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuc2V0RWxlbWVudFZhbHVlcyhlbGVtZW50LmVsZW1lbnRzLCBkYXRhKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBpbiBzb21lIGNhc2VzIHJlcXVpcmVkIG1ldGEgZGF0YSBtYXkgbm90IGJlIGF2YWlsYWJsZSBvbiB0aGUgZWxlbWVudCBpdHNlbGZcclxuICAvLyBzbyB0aGV5IGhhdmUgdG8gYmUgZmV0Y2hlZCBhbmQgYWRkZWQgdG8gdGhlIGVsZW1lbnQgZm9yIHRoZSBmb3JtIHRvIGJlIGFibGVcclxuICAvLyB0byByZW5kZXIgdGhlIGVsZW1lbnQgY29ycmVjdGx5XHJcbiAgcHJpdmF0ZSBmZXRjaE1ldGFEYXRhKGRhdGEsIGVsZW1lbnQpIHtcclxuXHJcbiAgICBpZiAodGhpcy5mb3JtT3B0aW9ucy5mb3JtTW9kZWwuc2l0dWF0aW9uID09PSAnU0VBUkNIJykge1xyXG4gICAgICAvLyB0b2RvOiBob3cgdG8gZmV0Y2ggbWV0YSBkYXRhIGluIHNlYXJjaCBzaXR1YXRpb25cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICdPUkdBTklaQVRJT04nICYmIGRhdGFbZWxlbWVudC5uYW1lICsgJ19tZXRhJ10pIHtcclxuICAgICAgICBlbGVtZW50LmRhdGFNZXRhID0gZGF0YVtlbGVtZW50Lm5hbWUgKyAnX21ldGEnXTtcclxuICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnR5cGUgPT09ICdDT0RFU1lTVEVNJyAmJiBkYXRhW2VsZW1lbnQubmFtZSArICdfbWV0YSddKSB7XHJcbiAgICAgICAgZWxlbWVudC5kYXRhTWV0YSA9IGRhdGFbZWxlbWVudC5uYW1lICsgJ19tZXRhJ107XHJcbiAgICAgICAgZWxlbWVudC5kZWZhdWx0cmVwcmVzZW50YXRpb24gPSBkYXRhW2VsZW1lbnQubmFtZSArICdfbWV0YSddLmRlZmF1bHRyZXByZXNlbnRhdGlvbjtcclxuICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnR5cGUgPT09ICdSRUZFUkVOQ0UnICYmIGRhdGFbZWxlbWVudC5uYW1lICsgJ19tZXRhJ10pIHtcclxuICAgICAgICBlbGVtZW50LmRhdGFNZXRhID0gZGF0YVtlbGVtZW50Lm5hbWUgKyAnX21ldGEnXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNWYWx1ZShkYXRhLCBlbGVtZW50KSB7XHJcblxyXG4gICAgLy8gZGlmZmVyIGJldHdlZW4gYXJyYXkgb2YgU2VhcmNoRmlsdGVycyBhbmQgYSBmb3JtIGRhdGEgb2JqZWN0XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xyXG4gICAgICBpZiAoZWxlbWVudC50eXBlID09PSAnVEFCTEUnKSB7XHJcbiAgICAgICAgcmV0dXJuICEhKGRhdGEuZmluZCgoZmlsdGVyKSA9PiBmaWx0ZXIucHJvcGVydHkuc3RhcnRzV2l0aChlbGVtZW50LnFuYW1lKSkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAhIShkYXRhLmZpbmQoKGZpbHRlcikgPT4gZmlsdGVyLnByb3BlcnR5ID09PSBlbGVtZW50LnFuYW1lKSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBkYXRhLmhhc093blByb3BlcnR5KGVsZW1lbnQubmFtZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRhYmxlRmlsdGVycyhmaWx0ZXJzOiBTZWFyY2hGaWx0ZXJbXSwgcHJvcGVydHlOYW1lOiBzdHJpbmcpOiBTZWFyY2hGaWx0ZXJbXSB7XHJcbiAgICByZXR1cm4gZmlsdGVycy5maWx0ZXIoZiA9PiBmLnByb3BlcnR5LnN0YXJ0c1dpdGgocHJvcGVydHlOYW1lICsgJy4nKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFZhbHVlKGRhdGEsIGVsZW1lbnQpIHtcclxuXHJcbiAgICBsZXQgdmFsdWU7XHJcbiAgICBpZiAodGhpcy5mb3JtT3B0aW9ucy5mb3JtTW9kZWwuc2l0dWF0aW9uID09PSAnU0VBUkNIJykge1xyXG4gICAgICBpZiAodGhpcy5pc0lubmVyVGFibGVGb3JtKSB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gJ0RBVEVUSU1FJyB8fCBlbGVtZW50LnR5cGUgPT09ICdOVU1CRVInKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IFNlYXJjaFNlcnZpY2UudG9SYW5nZVZhbHVlKGRhdGFbZWxlbWVudC5uYW1lXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZhbHVlID0gZGF0YVtlbGVtZW50Lm5hbWVdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnR5cGUgPT09ICdUQUJMRScpIHtcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuc2VhcmNoU2VydmljZS50YWJsZUZpbHRlcnNUb0VsZW1lbnRWYWx1ZSh0aGlzLmdldFRhYmxlRmlsdGVycyhkYXRhLCBlbGVtZW50LnFuYW1lKSwgZWxlbWVudC5lbGVtZW50cyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyID0gZGF0YS5maW5kKGYgPT4gZi5wcm9wZXJ0eSA9PT0gZWxlbWVudC5xbmFtZSk7XHJcbiAgICAgICAgdmFsdWUgPSB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyVG9FbGVtZW50VmFsdWUoZmlsdGVyLCBlbGVtZW50LnR5cGUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gJ0RBVEVUSU1FJyAmJiBkYXRhW2VsZW1lbnQubmFtZV0pIHtcclxuICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKGAke2RhdGFbZWxlbWVudC5uYW1lXX0ke2VsZW1lbnQud2l0aHRpbWUgPyAnJyA6ICdUMDA6MDA6MDAnfWApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZhbHVlID0gZGF0YVtlbGVtZW50Lm5hbWVdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVBbGwoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLy8gdW5zdWJzY3JpYmUgZnJvbSBhbGwgdmFsdWUgY2hhbmdlIGxpc3RlbmVycyBmb3IgdGhlIGN1cnJlbnQgZm9ybVxyXG4gIC8vIHRvIGF2b2lkIG1lbW9yeSBsZWFrcy4gVGhpcyBtZXRob2Qgd2lsbCBhbHNvIGJlIGNhbGxlZCBldmVyeSB0aW1lXHJcbiAgLy8gYSBuZXcgZm9ybSBpcyByZW5kZXJlZCB0byBnZXQgcmlkIG9mIHRoZSBvbGQgZm9ybSBlbGVtZW50IHN1YnNjcmlwdGlvbnNcclxuICBwcml2YXRlIHVuc3Vic2NyaWJlQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3Vuc3Vic2NyaWJlZCBmcm9tICcgKyB0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoICsgJyB2YWx1ZSBjaGFuZ2UgbGlzdGVuZXJzLicpO1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -79,6 +79,9 @@ export class ObjectFormEditComponent {
|
|
|
79
79
|
this.createObjectForm(dmsObject);
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
+
get dmsObject() {
|
|
83
|
+
return this._dmsObject;
|
|
84
|
+
}
|
|
82
85
|
startPending() {
|
|
83
86
|
// because this method will be called every time the form status changes,
|
|
84
87
|
// pending task will only be started once until it was finished
|
|
@@ -187,7 +190,7 @@ export class ObjectFormEditComponent {
|
|
|
187
190
|
ObjectFormEditComponent.decorators = [
|
|
188
191
|
{ type: Component, args: [{
|
|
189
192
|
selector: 'eo-object-form-edit',
|
|
190
|
-
template: "<div class=\"object-form-edit\" [ngClass]=\"{invalid: formState?.invalid === true}\" [eoShortcuts]=\"shortcuts\">\r\n <eo-object-form [formOptions]=\"formOptions\" *ngIf=\"formOptions\"\r\n (statusChanged)=\"onFormStatusChanged($event)\"></eo-object-form>\r\n\r\n <div class=\"form-controls\" *ngIf=\"controls.visible\">\r\n\r\n <div class=\"err-msg\" *ngIf=\"formState?.invalid\" translate>eo.object.indexdata.form.invalid</div>\r\n\r\n <div class=\"buttons\">\r\n\r\n <button class=\"secondary\" (click)=\"reset()\" [disabled]=\"controls.saving\" translate>eo.object.indexdata.reset</button>\r\n <button class=\"primary\" [ngClass]=\"{spinner: controls.saving}\"\r\n [disabled]=\"formState?.invalid || controls.saving\"\r\n (click)=\"save()\" translate>eo.object.indexdata.save</button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<eo-dialog [title]=\"('eo.object.indexdata.save.conflict.dialog.title' | translate : {modifier: conflictError?.dmsobject.modified.by.firstname + ' ' + conflictError?.dmsobject.modified.by.lastname})\"
|
|
193
|
+
template: "<div class=\"object-form-edit\" [ngClass]=\"{invalid: formState?.invalid === true}\" [eoShortcuts]=\"shortcuts\">\r\n <eo-object-form [dmsObject]=\"dmsObject\" [formOptions]=\"formOptions\" *ngIf=\"formOptions\"\r\n (statusChanged)=\"onFormStatusChanged($event)\"></eo-object-form>\r\n\r\n <div class=\"form-controls\" *ngIf=\"controls.visible\">\r\n\r\n <div class=\"err-msg\" *ngIf=\"formState?.invalid\" translate>eo.object.indexdata.form.invalid</div>\r\n\r\n <div class=\"buttons\">\r\n\r\n <button class=\"secondary\" (click)=\"reset()\" [disabled]=\"controls.saving\" translate>eo.object.indexdata.reset</button>\r\n <button class=\"primary\" [ngClass]=\"{spinner: controls.saving}\"\r\n [disabled]=\"formState?.invalid || controls.saving\"\r\n (click)=\"save()\" translate>eo.object.indexdata.save</button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<eo-dialog [title]=\"('eo.object.indexdata.save.conflict.dialog.title' | translate : {modifier: conflictError?.dmsobject.modified.by.firstname + ' ' + conflictError?.dmsobject.modified.by.lastname})\"\r\n (hide)=\"controls.saving = false;\" [(visible)]=\"showConflictDialog\" [minWidth]=\"400\" [styleClass]=\"'conflict__dialog'\">\r\n\r\n <div class=\"action-buttons conflict--action-buttons flex-row\">\r\n <button type=\"button\" class=\"button cancel\" (click)=\"cancelSaving()\"\r\n translate>eo.object.indexdata.save.cancel</button>\r\n <button type=\"button\" class=\"button cancel\" (click)=\"showConflictChanges()\"\r\n translate>eo.object.indexdata.save.changes</button>\r\n <button type=\"button\" (click)=\"save(true); closeConflictDialog();\" class=\"button primary\"\r\n translate>eo.object.indexdata.save</button>\r\n </div>\r\n</eo-dialog>\r\n",
|
|
191
194
|
styles: [".object-form-edit{background:var(--color-white);display:grid;grid-template-areas:\"form\" \"buttons\";grid-template-columns:1fr;grid-template-rows:1fr auto;min-width:300px}.object-form-edit eo-object-form{-ms-grid-column:1;-ms-grid-row:1;grid-area:form}.object-form-edit .form-controls{-ms-grid-column:1;-ms-grid-row:2;box-sizing:border-box;grid-area:buttons}.object-form-edit .form-controls .err-msg{background-color:var(--color-error);color:#fff;display:none;flex:1 1 auto;order:0;padding:calc(var(--app-pane-padding)/2) var(--app-pane-padding)}.object-form-edit .form-controls .buttons{align-items:center;display:flex;flex:1 1 auto;flex-flow:row wrap;justify-content:flex-end;order:1;padding:var(--app-pane-padding) calc(var(--app-pane-padding)*0.875)}.object-form-edit .form-controls .buttons button{flex:0 0 auto;margin:0 calc(var(--app-pane-padding)*0.125)}.object-form-edit .form-controls .buttons .loader{flex:1 1 auto}.object-form-edit .form-controls .buttons .loader eo-icon{display:none}.object-form-edit .form-controls .buttons .loader.saving eo-icon,.object-form-edit.invalid .form-controls .err-msg{display:block}::ng-deep .conflict__dialog{min-height:unset!important;padding:8px}::ng-deep .conflict__dialog--header{background:#fff!important;color:rgba(var(--color-black-rgb),.54)!important;font-size:1.17em!important;font-weight:400!important;margin:0;padding:0 0 1em!important}"]
|
|
192
195
|
},] }
|
|
193
196
|
];
|
|
@@ -206,4 +209,4 @@ ObjectFormEditComponent.propDecorators = {
|
|
|
206
209
|
dmsObject: [{ type: Input, args: ['dmsObject',] }],
|
|
207
210
|
indexDataSaved: [{ type: Output }]
|
|
208
211
|
};
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1lZGl0L29iamVjdC1mb3JtLWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFDLFFBQVEsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBSXpFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQ3pHLE9BQU8sRUFBWSxhQUFhLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQztBQVEvRixNQUFNLE9BQU8sdUJBQXVCO0lBa0ZsQyxZQUFvQixhQUE0QixFQUN0QyxVQUFzQixFQUN0QixPQUFtQixFQUNuQixVQUFnQyxFQUNoQyxjQUFxQyxFQUNyQyxNQUFjLEVBQ2YsU0FBMkI7UUFOaEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDdEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQXNCO1FBQ2hDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBa0I7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QjtRQUNyQyxPQUFPLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0lBQy9GLENBQUM7OztZQTNORixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0Isd3hEQUFnRDs7YUFFakQ7OztZQVBrQixhQUFhO1lBQUUsVUFBVTtZQVBlLFVBQVU7WUFPdkIsb0JBQW9CO1lBRDFELHFCQUFxQjtZQVJILE1BQU07WUFHZixnQkFBZ0I7Ozt5QkF5QjlCLFNBQVMsU0FBQyxtQkFBbUI7MkJBRTdCLEtBQUs7d0JBRUwsS0FBSyxTQUFDLFdBQVc7NkJBY2pCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05hdmlnYXRpb25FeHRyYXMsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtmaW5hbGl6ZSwgY2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0VvRXJyb3IsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XHJcbmltcG9ydCB7T2JqZWN0Rm9ybUNvbXBvbmVudH0gZnJvbSAnLi4vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHtHbG9iYWxTaG9ydGN1dENvbXBvbmVudH0gZnJvbSAnLi4vLi4vc2hvcnRjdXRzL2dsb2JhbC1zaG9ydGN1dC1jb21wb25lbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtPYmplY3RGb3JtT3B0aW9uc30gZnJvbSAnLi4vb2JqZWN0LWZvcm0tb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0Zvcm1TdGF0dXNDaGFuZ2VkRXZlbnR9IGZyb20gJy4uL2Zvcm0tc3RhdHVzLWNoYW5nZWQtZXZlbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XHJcbmltcG9ydCB7RG1zT2JqZWN0LCBTeXN0ZW1TZXJ2aWNlLCBEbXNTZXJ2aWNlLCBOb3RpZmljYXRpb25zU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlby1vYmplY3QtZm9ybS1lZGl0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWZvcm0tZWRpdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LWZvcm0tZWRpdC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtRWRpdENvbXBvbmVudCB7XHJcblxyXG4gIHNob3dDb25mbGljdERpYWxvZyA9IGZhbHNlO1xyXG4gIGNvbmZsaWN0RXJyb3I6IGFueTtcclxuXHJcbiAgLy8gSUQgc2V0IGJ5IHBlbmRpbmdDaGFuZ2VzIHNlcnZpY2Ugd2hlbiBlZGl0aW5nIGluZGV4ZGF0YVxyXG4gIC8vIFVzZWQgdG8gZmluaXNoIHRoZSBwZW5kaW5nIHRhc2sgd2hlbiBlZGl0aW5nIGlzIGRvbmVcclxuICBwcml2YXRlIHBlbmRpbmdUYXNrSWQ6IHN0cmluZztcclxuXHJcbiAgLy8gZmV0Y2ggYSByZWZlcmVuY2UgdG8gdGhlIG9wYmplY3QgZm9ybSBjb21wb25lbnQgdG8gYmUgYWJsZSB0b1xyXG4gIC8vIGdldCB0aGUgZm9ybSBkYXRhXHJcbiAgQFZpZXdDaGlsZChPYmplY3RGb3JtQ29tcG9uZW50KSBvYmplY3RGb3JtOiBPYmplY3RGb3JtQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKSBmb3JtRGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgnZG1zT2JqZWN0JylcclxuICBzZXQgZG1zT2JqZWN0KGRtc09iamVjdDogRG1zT2JqZWN0KSB7XHJcbiAgICBpZiAoZG1zT2JqZWN0KSB7XHJcbiAgICAgIHRoaXMuX2Rtc09iamVjdCA9IGRtc09iamVjdDtcclxuXHJcbiAgICAgIC8vIHJlc2V0IHRoZSBzdGF0ZSBvZiB0aGUgZm9ybVxyXG4gICAgICB0aGlzLmZvcm1TdGF0ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuY29udHJvbHMuc2F2aW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY29udHJvbHMudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgdGhpcy5jcmVhdGVPYmplY3RGb3JtKGRtc09iamVjdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgaW5kZXhEYXRhU2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgZm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zO1xyXG4gIGZvcm1TdGF0ZTogRm9ybVN0YXR1c0NoYW5nZWRFdmVudDtcclxuICBjb250cm9scyA9IHtcclxuICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgc2F2aW5nOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgX2Rtc09iamVjdDogRG1zT2JqZWN0O1xyXG4gIHByaXZhdGUgbWVzc2FnZXMgPSB7XHJcbiAgICBmb3JtU3VjY2VzczogbnVsbCxcclxuICAgIGZvcm1FcnJvcjogbnVsbFxyXG4gIH07XHJcblxyXG4gIC8vIHNob3J0Y3V0IGFjdGlvbnNcclxuICBzaG9ydGN1dHM6IEdsb2JhbFNob3J0Y3V0Q29tcG9uZW50ID0ge1xyXG4gICAgaWQ6ICdlby5hcHAuZm9ybS5lZGl0JyxcclxuICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuZm9ybS50aXRsZScpLFxyXG4gICAgbGFiZWxLZXk6ICdlby5zaG9ydGN1dHMuZm9ybS50aXRsZScsXHJcbiAgICBhY3Rpb25zOiBbe1xyXG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24uc2F2ZScpLFxyXG4gICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLnNhdmUnLFxyXG4gICAgICBzaG9ydGN1dDogJ1MnLFxyXG4gICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNhdmUoKTtcclxuICAgICAgfSxcclxuICAgICAgaXNIaWRkZW46ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuZm9ybVN0YXRlIHx8ICF0aGlzLmZvcm1TdGF0ZS5kaXJ0eSB8fCB0aGlzLmZvcm1TdGF0ZS5pbnZhbGlkIHx8ICFVdGlscy5pc1Zpc2libGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0sIHtcclxuICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLnJlc2V0JyksXHJcbiAgICAgIG5hbWVLZXk6ICdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24ucmVzZXQnLFxyXG4gICAgICBzaG9ydGN1dDogJ1InLFxyXG4gICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGlzSGlkZGVuOiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLmZvcm1TdGF0ZSB8fCAhdGhpcy5mb3JtU3RhdGUuZGlydHkgfHwgIVV0aWxzLmlzVmlzaWJsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSwge1xyXG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24uZWRpdCcpLFxyXG4gICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLmVkaXQnLFxyXG4gICAgICBzaG9ydGN1dDogJ0UnLFxyXG4gICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcclxuICAgICAgICB0aGlzLm9iamVjdEZvcm0uZm9jdXNGb3JtKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGlzSGlkZGVuOiAodGFyZ2V0KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLmZvcm1PcHRpb25zIHx8ICFVdGlscy5pc1Zpc2libGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCkgfHwgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KTtcclxuICAgICAgfVxyXG4gICAgfV1cclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRtc1NlcnZpY2U6IERtc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIG5vdGljYXRpb246IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoW1xyXG4gICAgICAnZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLnN1Y2Nlc3MnLFxyXG4gICAgICAnZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLmVycm9yJ1xyXG4gICAgXSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5mb3JtU3VjY2VzcyA9IHJlc1snZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLnN1Y2Nlc3MnXTtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5mb3JtRXJyb3IgPSByZXNbJ2VvLm9iamVjdC5pbmRleGRhdGEuc2F2ZS5lcnJvciddO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXJ0UGVuZGluZygpIHtcclxuICAgIC8vIGJlY2F1c2UgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUgZm9ybSBzdGF0dXMgY2hhbmdlcyxcclxuICAgIC8vIHBlbmRpbmcgdGFzayB3aWxsIG9ubHkgYmUgc3RhcnRlZCBvbmNlIHVudGlsIGl0IHdhcyBmaW5pc2hlZFxyXG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCB8fCAnICcpKSB7XHJcbiAgICAgIHRoaXMucGVuZGluZ1Rhc2tJZCA9IHRoaXMucGVuZGluZ0NoYW5nZXMuc3RhcnRUYXNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmlzaFBlbmRpbmcoKSB7XHJcbiAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy5wZW5kaW5nVGFza0lkKTtcclxuICB9XHJcblxyXG4gIG9uRm9ybVN0YXR1c0NoYW5nZWQoZXZ0KSB7XHJcbiAgICB0aGlzLmZvcm1TdGF0ZSA9IGV2dDtcclxuICAgIHRoaXMuY29udHJvbHMudmlzaWJsZSA9IHRoaXMuZm9ybVN0YXRlLmRpcnR5O1xyXG4gICAgaWYgKHRoaXMuZm9ybVN0YXRlLmRpcnR5KSB7XHJcbiAgICAgIHRoaXMuc3RhcnRQZW5kaW5nKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHNhdmUgdGhlIGN1cnJlbnQgZG1zIG9iamVjdFxyXG4gIHNhdmUoaWdub3JlQ29uZmxpY3RzPzogYm9vbGVhbikge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1TdGF0ZS5kaXJ0eSAmJiAhdGhpcy5mb3JtU3RhdGUuaW52YWxpZCkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMuc2F2aW5nID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IHRoaXMub2JqZWN0Rm9ybS5nZXRGb3JtRGF0YSgpO1xyXG4gICAgICAgIGNvbnN0IHtpZCwgdHlwZU5hbWUsIHZlcnNpb259ID0gdGhpcy5fZG1zT2JqZWN0O1xyXG5cclxuICAgICAgICB0aGlzLmRtc1NlcnZpY2UudXBkYXRlT2JqZWN0KGlkLCBmb3JtRGF0YSwgdHlwZU5hbWUsIGlnbm9yZUNvbmZsaWN0cyA/IG51bGwgOiB2ZXJzaW9uLCBmYWxzZSlcclxuICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuZmluaXNoUGVuZGluZygpKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHVwZGF0ZWRPYmplY3QpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fZG1zT2JqZWN0ID0gdXBkYXRlZE9iamVjdDtcclxuICAgICAgICAgICAgdGhpcy5mb3JtT3B0aW9ucy5kYXRhID0gdXBkYXRlZE9iamVjdC5kYXRhO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RGb3JtLnNldEZvcm1QcmlzdGluZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmluZGV4RGF0YVNhdmVkLmVtaXQoZm9ybURhdGEpO1xyXG4gICAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZihlcnIuc3RhdHVzID09PSA0MDkpe1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmxpY3RFcnJvciA9IGVyci5lcnJvcjtcclxuICAgICAgICAgICAgICB0aGlzLm9wZW5Db25mbGljdERpYWxvZygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRocm93IG5ldyBFb0Vycm9yKGVyciwgdGhpcy5fZG1zT2JqZWN0LnRpdGxlLCB0aGlzLm1lc3NhZ2VzLmZvcm1FcnJvciwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9LCA1MDApO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNvbmZsaWN0RGlhbG9nKCl7XHJcbiAgICB0aGlzLnNob3dDb25mbGljdERpYWxvZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZUNvbmZsaWN0RGlhbG9nKCl7XHJcbiAgICB0aGlzLnNob3dDb25mbGljdERpYWxvZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2hvd0NvbmZsaWN0Q2hhbmdlcygpe1xyXG4gICAgY29uc3QgbmF2aWdhdGlvbkV4dHJhczogTmF2aWdhdGlvbkV4dHJhcyA9IHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHtcclxuICAgICAgICB2ZXJzaW9uOiB0aGlzLl9kbXNPYmplY3QudmVyc2lvbixcclxuICAgICAgICB2ZXJzaW9uMjogdGhpcy5jb25mbGljdEVycm9yLmRtc29iamVjdC52ZXJzaW9uXHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFtgdmVyc2lvbnMvJHt0aGlzLl9kbXNPYmplY3QuaWR9YF0sIG5hdmlnYXRpb25FeHRyYXMpLnRvU3RyaW5nKCkucmVwbGFjZSgvXlxcLysvZywgJycpO1xyXG4gICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWxTYXZpbmcoKXtcclxuICAgIHRoaXMuY2xvc2VDb25mbGljdERpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgLy8gcmVzZXQgdGhlIGZvcm0gdG8gaXRzIGluaXRpYWwgc3RhdGVcclxuICByZXNldCgpIHtcclxuICAgIHRoaXMub2JqZWN0Rm9ybS5yZXNldEZvcm0oKTtcclxuICB9XHJcblxyXG4gIC8vIGNyZWF0ZSB0aGUgZm9ybU9wdGlvbnMgcmVxdWlyZWQgYnkgb2JqZWN0IGZvcm0gY29tcG9uZW50XHJcbiAgcHJpdmF0ZSBjcmVhdGVPYmplY3RGb3JtKGRtc09iamVjdDogRG1zT2JqZWN0KSB7XHJcblxyXG4gICAgdGhpcy5zeXN0ZW1TZXJ2aWNlXHJcbiAgICAgIC5nZXRPYmplY3RUeXBlRm9ybShkbXNPYmplY3QudHlwZS5uYW1lLCAnRURJVCcpXHJcbiAgICAgIC5zdWJzY3JpYmUoKG1vZGVsKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hZGRFeGNlcHRpb25JRHNGb3JJRFJlZmVyZW5jZUZpZWxkcyhtb2RlbCk7XHJcbiAgICAgICAgdGhpcy5mb3JtT3B0aW9ucyA9IHtcclxuICAgICAgICAgIGZvcm1Nb2RlbDogbW9kZWwsXHJcbiAgICAgICAgICBkYXRhOiBkbXNPYmplY3QuZGF0YSxcclxuICAgICAgICAgIG9iamVjdElkOiBkbXNPYmplY3QuaWQsXHJcbiAgICAgICAgICBkaXNhYmxlZDogdGhpcy5mb3JtRGlzYWJsZWQgfHwgIXRoaXMuaXNFZGl0YWJsZShkbXNPYmplY3QpXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybU9wdGlvbnMuY29udGV4dCA9IHtcclxuICAgICAgICAgICAgaWQ6IGRtc09iamVjdC5jb250ZXh0Rm9sZGVyLmlkLFxyXG4gICAgICAgICAgICB0aXRsZTogZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIudGl0bGUsXHJcbiAgICAgICAgICAgIHR5cGVOYW1lOiBkbXNPYmplY3QuY29udGV4dEZvbGRlci50eXBlTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZEV4Y2VwdGlvbklEc0ZvcklEUmVmZXJlbmNlRmllbGRzKG1vZGVsOiBhbnkpIHtcclxuICAgIGlmIChtb2RlbC50eXBlID09PSAnUkVGRVJFTkNFJykge1xyXG4gICAgICBtb2RlbC5leGNlcHRpb25JRHMgPSBbdGhpcy5fZG1zT2JqZWN0LmlkXTtcclxuICAgIH0gZWxzZSBpZihtb2RlbC5lbGVtZW50cykge1xyXG4gICAgICBtb2RlbC5lbGVtZW50cy5mb3JFYWNoKGVsID0+IHRoaXMuYWRkRXhjZXB0aW9uSURzRm9ySURSZWZlcmVuY2VGaWVsZHMoZWwpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFZGl0YWJsZShkbXNPYmplY3Q6IERtc09iamVjdCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGRtc09iamVjdC5oYXNPd25Qcm9wZXJ0eSgncmlnaHRzJykgJiYgZG1zT2JqZWN0LnJpZ2h0cy5lZGl0ICYmICFkbXNPYmplY3QuaXNGaW5hbGl6ZWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1lZGl0L29iamVjdC1mb3JtLWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFDLFFBQVEsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBSXpFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQ3pHLE9BQU8sRUFBWSxhQUFhLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQztBQVEvRixNQUFNLE9BQU8sdUJBQXVCO0lBc0ZsQyxZQUFvQixhQUE0QixFQUN0QyxVQUFzQixFQUN0QixPQUFtQixFQUNuQixVQUFnQyxFQUNoQyxjQUFxQyxFQUNyQyxNQUFjLEVBQ2YsU0FBMkI7UUFOaEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDdEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQXNCO1FBQ2hDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBa0I7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LEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDNUU7SUFDSCxDQUFDO0lBRU8sVUFBVSxDQUFDLFNBQW9CO1FBQ3JDLE9BQU8sU0FBUyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7SUFDL0YsQ0FBQzs7O1lBL05GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQix5eERBQWdEOzthQUVqRDs7O1lBUGtCLGFBQWE7WUFBRSxVQUFVO1lBUGUsVUFBVTtZQU92QixvQkFBb0I7WUFEMUQscUJBQXFCO1lBUkgsTUFBTTtZQUdmLGdCQUFnQjs7O3lCQXlCOUIsU0FBUyxTQUFDLG1CQUFtQjsyQkFFN0IsS0FBSzt3QkFFTCxLQUFLLFNBQUMsV0FBVzs2QkFrQmpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05hdmlnYXRpb25FeHRyYXMsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtmaW5hbGl6ZSwgY2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0VvRXJyb3IsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XHJcbmltcG9ydCB7T2JqZWN0Rm9ybUNvbXBvbmVudH0gZnJvbSAnLi4vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHtHbG9iYWxTaG9ydGN1dENvbXBvbmVudH0gZnJvbSAnLi4vLi4vc2hvcnRjdXRzL2dsb2JhbC1zaG9ydGN1dC1jb21wb25lbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtPYmplY3RGb3JtT3B0aW9uc30gZnJvbSAnLi4vb2JqZWN0LWZvcm0tb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0Zvcm1TdGF0dXNDaGFuZ2VkRXZlbnR9IGZyb20gJy4uL2Zvcm0tc3RhdHVzLWNoYW5nZWQtZXZlbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XHJcbmltcG9ydCB7RG1zT2JqZWN0LCBTeXN0ZW1TZXJ2aWNlLCBEbXNTZXJ2aWNlLCBOb3RpZmljYXRpb25zU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlby1vYmplY3QtZm9ybS1lZGl0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWZvcm0tZWRpdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LWZvcm0tZWRpdC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtRWRpdENvbXBvbmVudCB7XHJcblxyXG4gIHNob3dDb25mbGljdERpYWxvZyA9IGZhbHNlO1xyXG4gIGNvbmZsaWN0RXJyb3I6IGFueTtcclxuXHJcbiAgLy8gSUQgc2V0IGJ5IHBlbmRpbmdDaGFuZ2VzIHNlcnZpY2Ugd2hlbiBlZGl0aW5nIGluZGV4ZGF0YVxyXG4gIC8vIFVzZWQgdG8gZmluaXNoIHRoZSBwZW5kaW5nIHRhc2sgd2hlbiBlZGl0aW5nIGlzIGRvbmVcclxuICBwcml2YXRlIHBlbmRpbmdUYXNrSWQ6IHN0cmluZztcclxuXHJcbiAgLy8gZmV0Y2ggYSByZWZlcmVuY2UgdG8gdGhlIG9wYmplY3QgZm9ybSBjb21wb25lbnQgdG8gYmUgYWJsZSB0b1xyXG4gIC8vIGdldCB0aGUgZm9ybSBkYXRhXHJcbiAgQFZpZXdDaGlsZChPYmplY3RGb3JtQ29tcG9uZW50KSBvYmplY3RGb3JtOiBPYmplY3RGb3JtQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKSBmb3JtRGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgnZG1zT2JqZWN0JylcclxuICBzZXQgZG1zT2JqZWN0KGRtc09iamVjdDogRG1zT2JqZWN0KSB7XHJcbiAgICBpZiAoZG1zT2JqZWN0KSB7XHJcbiAgICAgIHRoaXMuX2Rtc09iamVjdCA9IGRtc09iamVjdDtcclxuXHJcbiAgICAgIC8vIHJlc2V0IHRoZSBzdGF0ZSBvZiB0aGUgZm9ybVxyXG4gICAgICB0aGlzLmZvcm1TdGF0ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuY29udHJvbHMuc2F2aW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY29udHJvbHMudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgdGhpcy5jcmVhdGVPYmplY3RGb3JtKGRtc09iamVjdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZG1zT2JqZWN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rtc09iamVjdDtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBpbmRleERhdGFTYXZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XHJcbiAgZm9ybVN0YXRlOiBGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50O1xyXG4gIGNvbnRyb2xzID0ge1xyXG4gICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICBzYXZpbmc6IGZhbHNlXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBfZG1zT2JqZWN0OiBEbXNPYmplY3Q7XHJcbiAgcHJpdmF0ZSBtZXNzYWdlcyA9IHtcclxuICAgIGZvcm1TdWNjZXNzOiBudWxsLFxyXG4gICAgZm9ybUVycm9yOiBudWxsXHJcbiAgfTtcclxuXHJcbiAgLy8gc2hvcnRjdXQgYWN0aW9uc1xyXG4gIHNob3J0Y3V0czogR2xvYmFsU2hvcnRjdXRDb21wb25lbnQgPSB7XHJcbiAgICBpZDogJ2VvLmFwcC5mb3JtLmVkaXQnLFxyXG4gICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNob3J0Y3V0cy5mb3JtLnRpdGxlJyksXHJcbiAgICBsYWJlbEtleTogJ2VvLnNob3J0Y3V0cy5mb3JtLnRpdGxlJyxcclxuICAgIGFjdGlvbnM6IFt7XHJcbiAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNob3J0Y3V0cy5mb3JtLmFjdGlvbi5zYXZlJyksXHJcbiAgICAgIG5hbWVLZXk6ICdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24uc2F2ZScsXHJcbiAgICAgIHNob3J0Y3V0OiAnUycsXHJcbiAgICAgIG9uRXhlY3V0ZUFjdGlvbjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2F2ZSgpO1xyXG4gICAgICB9LFxyXG4gICAgICBpc0hpZGRlbjogKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5mb3JtU3RhdGUgfHwgIXRoaXMuZm9ybVN0YXRlLmRpcnR5IHx8IHRoaXMuZm9ybVN0YXRlLmludmFsaWQgfHwgIVV0aWxzLmlzVmlzaWJsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSwge1xyXG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24ucmVzZXQnKSxcclxuICAgICAgbmFtZUtleTogJ2VvLnNob3J0Y3V0cy5mb3JtLmFjdGlvbi5yZXNldCcsXHJcbiAgICAgIHNob3J0Y3V0OiAnUicsXHJcbiAgICAgIG9uRXhlY3V0ZUFjdGlvbjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgfSxcclxuICAgICAgaXNIaWRkZW46ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuZm9ybVN0YXRlIHx8ICF0aGlzLmZvcm1TdGF0ZS5kaXJ0eSB8fCAhVXRpbHMuaXNWaXNpYmxlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9LCB7XHJcbiAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNob3J0Y3V0cy5mb3JtLmFjdGlvbi5lZGl0JyksXHJcbiAgICAgIG5hbWVLZXk6ICdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24uZWRpdCcsXHJcbiAgICAgIHNob3J0Y3V0OiAnRScsXHJcbiAgICAgIG9uRXhlY3V0ZUFjdGlvbjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMub2JqZWN0Rm9ybS5mb2N1c0Zvcm0oKTtcclxuICAgICAgfSxcclxuICAgICAgaXNIaWRkZW46ICh0YXJnZXQpID0+IHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuZm9ybU9wdGlvbnMgfHwgIVV0aWxzLmlzVmlzaWJsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KSB8fCB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXQpO1xyXG4gICAgICB9XHJcbiAgICB9XVxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSxcclxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgbm90aWNhdGlvbjogTm90aWZpY2F0aW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlLmdldChbXHJcbiAgICAgICdlby5vYmplY3QuaW5kZXhkYXRhLnNhdmUuc3VjY2VzcycsXHJcbiAgICAgICdlby5vYmplY3QuaW5kZXhkYXRhLnNhdmUuZXJyb3InXHJcbiAgICBdKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLmZvcm1TdWNjZXNzID0gcmVzWydlby5vYmplY3QuaW5kZXhkYXRhLnNhdmUuc3VjY2VzcyddO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLmZvcm1FcnJvciA9IHJlc1snZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLmVycm9yJ107XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhcnRQZW5kaW5nKCkge1xyXG4gICAgLy8gYmVjYXVzZSB0aGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBldmVyeSB0aW1lIHRoZSBmb3JtIHN0YXR1cyBjaGFuZ2VzLFxyXG4gICAgLy8gcGVuZGluZyB0YXNrIHdpbGwgb25seSBiZSBzdGFydGVkIG9uY2UgdW50aWwgaXQgd2FzIGZpbmlzaGVkXHJcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuaGFzUGVuZGluZ1Rhc2sodGhpcy5wZW5kaW5nVGFza0lkIHx8ICcgJykpIHtcclxuICAgICAgdGhpcy5wZW5kaW5nVGFza0lkID0gdGhpcy5wZW5kaW5nQ2hhbmdlcy5zdGFydFRhc2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluaXNoUGVuZGluZygpIHtcclxuICAgIHRoaXMucGVuZGluZ0NoYW5nZXMuZmluaXNoVGFzayh0aGlzLnBlbmRpbmdUYXNrSWQpO1xyXG4gIH1cclxuXHJcbiAgb25Gb3JtU3RhdHVzQ2hhbmdlZChldnQpIHtcclxuICAgIHRoaXMuZm9ybVN0YXRlID0gZXZ0O1xyXG4gICAgdGhpcy5jb250cm9scy52aXNpYmxlID0gdGhpcy5mb3JtU3RhdGUuZGlydHk7XHJcbiAgICBpZiAodGhpcy5mb3JtU3RhdGUuZGlydHkpIHtcclxuICAgICAgdGhpcy5zdGFydFBlbmRpbmcoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmluaXNoUGVuZGluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gc2F2ZSB0aGUgY3VycmVudCBkbXMgb2JqZWN0XHJcbiAgc2F2ZShpZ25vcmVDb25mbGljdHM/OiBib29sZWFuKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZm9ybVN0YXRlLmRpcnR5ICYmICF0aGlzLmZvcm1TdGF0ZS5pbnZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9scy5zYXZpbmcgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5vYmplY3RGb3JtLmdldEZvcm1EYXRhKCk7XHJcbiAgICAgICAgY29uc3Qge2lkLCB0eXBlTmFtZSwgdmVyc2lvbn0gPSB0aGlzLl9kbXNPYmplY3Q7XHJcblxyXG4gICAgICAgIHRoaXMuZG1zU2VydmljZS51cGRhdGVPYmplY3QoaWQsIGZvcm1EYXRhLCB0eXBlTmFtZSwgaWdub3JlQ29uZmxpY3RzID8gbnVsbCA6IHZlcnNpb24sIGZhbHNlKVxyXG4gICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5maW5pc2hQZW5kaW5nKCkpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgodXBkYXRlZE9iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9kbXNPYmplY3QgPSB1cGRhdGVkT2JqZWN0O1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1PcHRpb25zLmRhdGEgPSB1cGRhdGVkT2JqZWN0LmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbHMuc2F2aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbHMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm9iamVjdEZvcm0uc2V0Rm9ybVByaXN0aW5lKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5kZXhEYXRhU2F2ZWQuZW1pdChmb3JtRGF0YSk7XHJcbiAgICAgICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbHMuc2F2aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmKGVyci5zdGF0dXMgPT09IDQwOSl7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25mbGljdEVycm9yID0gZXJyLmVycm9yO1xyXG4gICAgICAgICAgICAgIHRoaXMub3BlbkNvbmZsaWN0RGlhbG9nKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVvRXJyb3IoZXJyLCB0aGlzLl9kbXNPYmplY3QudGl0bGUsIHRoaXMubWVzc2FnZXMuZm9ybUVycm9yLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG5cclxuICBvcGVuQ29uZmxpY3REaWFsb2coKXtcclxuICAgIHRoaXMuc2hvd0NvbmZsaWN0RGlhbG9nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNsb3NlQ29uZmxpY3REaWFsb2coKXtcclxuICAgIHRoaXMuc2hvd0NvbmZsaWN0RGlhbG9nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzaG93Q29uZmxpY3RDaGFuZ2VzKCl7XHJcbiAgICBjb25zdCBuYXZpZ2F0aW9uRXh0cmFzOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xyXG4gICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgIHZlcnNpb246IHRoaXMuX2Rtc09iamVjdC52ZXJzaW9uLFxyXG4gICAgICAgIHZlcnNpb24yOiB0aGlzLmNvbmZsaWN0RXJyb3IuZG1zb2JqZWN0LnZlcnNpb25cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoW2B2ZXJzaW9ucy8ke3RoaXMuX2Rtc09iamVjdC5pZH1gXSwgbmF2aWdhdGlvbkV4dHJhcykudG9TdHJpbmcoKS5yZXBsYWNlKC9eXFwvKy9nLCAnJyk7XHJcbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbFNhdmluZygpe1xyXG4gICAgdGhpcy5jbG9zZUNvbmZsaWN0RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICAvLyByZXNldCB0aGUgZm9ybSB0byBpdHMgaW5pdGlhbCBzdGF0ZVxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5vYmplY3RGb3JtLnJlc2V0Rm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gY3JlYXRlIHRoZSBmb3JtT3B0aW9ucyByZXF1aXJlZCBieSBvYmplY3QgZm9ybSBjb21wb25lbnRcclxuICBwcml2YXRlIGNyZWF0ZU9iamVjdEZvcm0oZG1zT2JqZWN0OiBEbXNPYmplY3QpIHtcclxuXHJcbiAgICB0aGlzLnN5c3RlbVNlcnZpY2VcclxuICAgICAgLmdldE9iamVjdFR5cGVGb3JtKGRtc09iamVjdC50eXBlLm5hbWUsICdFRElUJylcclxuICAgICAgLnN1YnNjcmliZSgobW9kZWwpID0+IHtcclxuICAgICAgICB0aGlzLmFkZEV4Y2VwdGlvbklEc0ZvcklEUmVmZXJlbmNlRmllbGRzKG1vZGVsKTtcclxuICAgICAgICB0aGlzLmZvcm1PcHRpb25zID0ge1xyXG4gICAgICAgICAgZm9ybU1vZGVsOiBtb2RlbCxcclxuICAgICAgICAgIGRhdGE6IGRtc09iamVjdC5kYXRhLFxyXG4gICAgICAgICAgb2JqZWN0SWQ6IGRtc09iamVjdC5pZCxcclxuICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmZvcm1EaXNhYmxlZCB8fCAhdGhpcy5pc0VkaXRhYmxlKGRtc09iamVjdClcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChkbXNPYmplY3QuY29udGV4dEZvbGRlcikge1xyXG4gICAgICAgICAgdGhpcy5mb3JtT3B0aW9ucy5jb250ZXh0ID0ge1xyXG4gICAgICAgICAgICBpZDogZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIuaWQsXHJcbiAgICAgICAgICAgIHRpdGxlOiBkbXNPYmplY3QuY29udGV4dEZvbGRlci50aXRsZSxcclxuICAgICAgICAgICAgdHlwZU5hbWU6IGRtc09iamVjdC5jb250ZXh0Rm9sZGVyLnR5cGVOYW1lXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkRXhjZXB0aW9uSURzRm9ySURSZWZlcmVuY2VGaWVsZHMobW9kZWw6IGFueSkge1xyXG4gICAgaWYgKG1vZGVsLnR5cGUgPT09ICdSRUZFUkVOQ0UnKSB7XHJcbiAgICAgIG1vZGVsLmV4Y2VwdGlvbklEcyA9IFt0aGlzLl9kbXNPYmplY3QuaWRdO1xyXG4gICAgfSBlbHNlIGlmKG1vZGVsLmVsZW1lbnRzKSB7XHJcbiAgICAgIG1vZGVsLmVsZW1lbnRzLmZvckVhY2goZWwgPT4gdGhpcy5hZGRFeGNlcHRpb25JRHNGb3JJRFJlZmVyZW5jZUZpZWxkcyhlbCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0VkaXRhYmxlKGRtc09iamVjdDogRG1zT2JqZWN0KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZG1zT2JqZWN0Lmhhc093blByb3BlcnR5KCdyaWdodHMnKSAmJiBkbXNPYmplY3QucmlnaHRzLmVkaXQgJiYgIWRtc09iamVjdC5pc0ZpbmFsaXplZDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -18,6 +18,7 @@ import { SplitModule } from '../split/split.module';
|
|
|
18
18
|
import { ResultListModule } from '../result-list/result-list.module';
|
|
19
19
|
import { GridModule } from '../grid/grid.module';
|
|
20
20
|
import { ListContainerModule } from '../list-container/list-container.module';
|
|
21
|
+
import { MediaModule } from '../media';
|
|
21
22
|
/**
|
|
22
23
|
* @module
|
|
23
24
|
* @description
|
|
@@ -43,7 +44,8 @@ ObjectFormModule.decorators = [
|
|
|
43
44
|
SplitModule,
|
|
44
45
|
ResultListModule,
|
|
45
46
|
ListContainerModule,
|
|
46
|
-
GridModule
|
|
47
|
+
GridModule,
|
|
48
|
+
MediaModule
|
|
47
49
|
],
|
|
48
50
|
exports: [ObjectFormComponent, ObjectFormGroupComponent, ObjectFormEditComponent, FormElementComponent],
|
|
49
51
|
providers: [ObjectFormHelperService],
|
|
@@ -57,4 +59,4 @@ ObjectFormModule.decorators = [
|
|
|
57
59
|
]
|
|
58
60
|
},] }
|
|
59
61
|
];
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFDTCxZQUFZLEVBQ1osYUFBYSxFQUNiLGNBQWMsRUFDZCxZQUFZLEVBQ2IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUdyQzs7OztHQUlHO0FBZ0NILE1BQU0sT0FBTyxnQkFBZ0I7OztZQS9CNUIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixZQUFZO29CQUNaLGFBQWE7b0JBQ2IsY0FBYztvQkFDZCxRQUFRO29CQUNSLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxZQUFZO29CQUNaLGVBQWU7b0JBQ2Ysa0JBQWtCO29CQUNsQixXQUFXO29CQUNYLGdCQUFnQjtvQkFDaEIsbUJBQW1CO29CQUNuQixVQUFVO29CQUNWLFdBQVc7aUJBQ1o7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLENBQUM7Z0JBQ3ZHLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUNwQyxZQUFZLEVBQUU7b0JBQ1osbUJBQW1CO29CQUNuQix3QkFBd0I7b0JBQ3hCLHVCQUF1QjtvQkFDdkIsb0JBQW9CO29CQUNwQix5QkFBeUI7b0JBQ3pCLGdCQUFnQjtpQkFDakI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtPYmplY3RGb3JtR3JvdXBDb21wb25lbnR9IGZyb20gJy4vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tZ3JvdXAvb2JqZWN0LWZvcm0tZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHtPYmplY3RGb3JtQ29tcG9uZW50fSBmcm9tICcuL29iamVjdC1mb3JtL29iamVjdC1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7T2JqZWN0Rm9ybUVkaXRDb21wb25lbnR9IGZyb20gJy4vb2JqZWN0LWZvcm0tZWRpdC9vYmplY3QtZm9ybS1lZGl0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VWlNb2R1bGV9IGZyb20gJy4uL3VpL3VpLm1vZHVsZSc7XHJcbmltcG9ydCB7U2hvcnRjdXRzTW9kdWxlfSBmcm9tICcuLi9zaG9ydGN1dHMvc2hvcnRjdXRzLm1vZHVsZSc7XHJcbmltcG9ydCB7XHJcbiAgU2hhcmVkTW9kdWxlLFxyXG4gIFRhYlZpZXdNb2R1bGUsXHJcbiAgRmllbGRzZXRNb2R1bGUsXHJcbiAgRGlhbG9nTW9kdWxlXHJcbn0gZnJvbSAncHJpbWVuZy9wcmltZW5nJztcclxuaW1wb3J0IHtBZ0dyaWRNb2R1bGV9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9hbmd1bGFyJztcclxuaW1wb3J0IHtPYmplY3RGb3JtSGVscGVyU2VydmljZX0gZnJvbSAnLi9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7UGlwZXNNb2R1bGV9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BpcGVzL3BpcGVzLm1vZHVsZSc7XHJcbmltcG9ydCB7Rm9ybUVsZW1lbnRzTW9kdWxlfSBmcm9tICcuLi9mb3JtLWVsZW1lbnRzL2Zvcm0tZWxlbWVudHMubW9kdWxlJztcclxuaW1wb3J0IHtGb3JtRWxlbWVudENvbXBvbmVudH0gZnJvbSAnLi9vYmplY3QtZm9ybS9mb3JtLWVsZW1lbnQvZm9ybS1lbGVtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Rm9ybUVsZW1lbnRUYWJsZUNvbXBvbmVudH0gZnJvbSAnLi9vYmplY3QtZm9ybS9mb3JtLWVsZW1lbnQtdGFibGUvZm9ybS1lbGVtZW50LXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Um93RWRpdENvbXBvbmVudH0gZnJvbSAnLi9vYmplY3QtZm9ybS9mb3JtLWVsZW1lbnQtdGFibGUvcm93LWVkaXQvcm93LWVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtTcGxpdE1vZHVsZX0gZnJvbSAnLi4vc3BsaXQvc3BsaXQubW9kdWxlJztcclxuaW1wb3J0IHtSZXN1bHRMaXN0TW9kdWxlfSBmcm9tICcuLi9yZXN1bHQtbGlzdC9yZXN1bHQtbGlzdC5tb2R1bGUnO1xyXG5pbXBvcnQge0dyaWRNb2R1bGV9IGZyb20gJy4uL2dyaWQvZ3JpZC5tb2R1bGUnO1xyXG5pbXBvcnQge0xpc3RDb250YWluZXJNb2R1bGV9IGZyb20gJy4uL2xpc3QtY29udGFpbmVyL2xpc3QtY29udGFpbmVyLm1vZHVsZSc7XHJcbmltcG9ydCB7TWVkaWFNb2R1bGV9IGZyb20gJy4uL21lZGlhJztcclxuXHJcblxyXG4vKipcclxuICogQG1vZHVsZVxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogTW9kdWxlIHJlbmRlcmluZyBhIGRtcyBvYmplY3RzIGZvcm0uXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFNoYXJlZE1vZHVsZSxcclxuICAgIFRhYlZpZXdNb2R1bGUsXHJcbiAgICBGaWVsZHNldE1vZHVsZSxcclxuICAgIFVpTW9kdWxlLFxyXG4gICAgRGlhbG9nTW9kdWxlLFxyXG4gICAgUGlwZXNNb2R1bGUsXHJcbiAgICBBZ0dyaWRNb2R1bGUsXHJcbiAgICBTaG9ydGN1dHNNb2R1bGUsXHJcbiAgICBGb3JtRWxlbWVudHNNb2R1bGUsXHJcbiAgICBTcGxpdE1vZHVsZSxcclxuICAgIFJlc3VsdExpc3RNb2R1bGUsXHJcbiAgICBMaXN0Q29udGFpbmVyTW9kdWxlLFxyXG4gICAgR3JpZE1vZHVsZSxcclxuICAgIE1lZGlhTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbT2JqZWN0Rm9ybUNvbXBvbmVudCwgT2JqZWN0Rm9ybUdyb3VwQ29tcG9uZW50LCBPYmplY3RGb3JtRWRpdENvbXBvbmVudCwgRm9ybUVsZW1lbnRDb21wb25lbnRdLFxyXG4gIHByb3ZpZGVyczogW09iamVjdEZvcm1IZWxwZXJTZXJ2aWNlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIE9iamVjdEZvcm1Db21wb25lbnQsXHJcbiAgICBPYmplY3RGb3JtR3JvdXBDb21wb25lbnQsXHJcbiAgICBPYmplY3RGb3JtRWRpdENvbXBvbmVudCxcclxuICAgIEZvcm1FbGVtZW50Q29tcG9uZW50LFxyXG4gICAgRm9ybUVsZW1lbnRUYWJsZUNvbXBvbmVudCxcclxuICAgIFJvd0VkaXRDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtTW9kdWxlIHtcclxufVxyXG4iXX0=
|