@bnsights/bbsf-admin-portal 1.0.75 → 1.0.76
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/README.md +4 -0
- package/{bnsights-bbsf-admin-portal-1.0.75.tgz → bnsights-bbsf-admin-portal-1.0.76.tgz} +0 -0
- package/bundles/bnsights-bbsf-admin-portal.umd.js +3 -1
- package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
- package/esm2015/lib/Pages/shared/components/survey/survey-info/survey-info.component.js +4 -2
- package/fesm2015/bnsights-bbsf-admin-portal.js +3 -1
- package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
- package/package.json +1 -1
|
@@ -160,6 +160,7 @@ export class SurveyInfoComponent extends AppBaseComponent {
|
|
|
160
160
|
let yAxis = chart.yAxes.push(am5xy.ValueAxis.new(root, {
|
|
161
161
|
baseValue: 0,
|
|
162
162
|
maxPrecision: 0,
|
|
163
|
+
min: 0,
|
|
163
164
|
extraTooltipPrecision: 100,
|
|
164
165
|
renderer: am5xy.AxisRendererY.new(root, {})
|
|
165
166
|
}));
|
|
@@ -214,7 +215,7 @@ export class SurveyInfoComponent extends AppBaseComponent {
|
|
|
214
215
|
if (Object.prototype.hasOwnProperty.call(item.results, key)) {
|
|
215
216
|
const value = item.results[key];
|
|
216
217
|
let object = {
|
|
217
|
-
category: "
|
|
218
|
+
category: "<=" + key,
|
|
218
219
|
value: value
|
|
219
220
|
};
|
|
220
221
|
data.push(object);
|
|
@@ -224,6 +225,7 @@ export class SurveyInfoComponent extends AppBaseComponent {
|
|
|
224
225
|
let yAxis = chart.yAxes.push(am5xy.ValueAxis.new(root, {
|
|
225
226
|
baseValue: 0,
|
|
226
227
|
maxPrecision: 0,
|
|
228
|
+
min: 0,
|
|
227
229
|
extraTooltipPrecision: 100,
|
|
228
230
|
renderer: am5xy.AxisRendererY.new(root, {})
|
|
229
231
|
}));
|
|
@@ -498,4 +500,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
498
500
|
type: ViewChild,
|
|
499
501
|
args: ['pagingSubmissionViewElement', { static: false }]
|
|
500
502
|
}] } });
|
|
501
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWluZm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vc3VydmV5LWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vc3VydmV5LWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUE0QixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBbUIsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hPLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxrQkFBa0IsTUFBTSxxQ0FBcUMsQ0FBQztBQU9yRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7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QUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDSSw2Q0FBNkM7c0JBQTlGLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQW1CVyxxQkFBcUI7c0JBQS9FLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQWNJLHVCQUF1QjtzQkFBbkYsU0FBUzt1QkFBQyw2QkFBNkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQdWJsaXNoU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi9wdWJsaXNoLXN1cnZleS9wdWJsaXNoLXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRRdWVzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYWRkLXF1ZXN0aW9uL2FkZC1xdWVzdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVRdWVzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZGVsZXRlLXF1ZXN0aW9uL2RlbGV0ZS1xdWVzdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFZGl0UXVlc3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2VkaXQtcXVlc3Rpb24vZWRpdC1xdWVzdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFZGl0U3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi8uLi9lZGl0LXN1cnZleS9lZGl0LXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLy4uL2RlbGV0ZS1zdXJ2ZXkvZGVsZXRlLXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgTmdab25lLCBPbkluaXQsIFBMQVRGT1JNX0lELCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCwgQnJlYWRDcnVtYiwgQ29udHJvbExheW91dCwgRHJvcGRvd25BY3Rpb25JdGVtLCBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBGb3JjZURpcmVjdGlvbiwgSW5wdXRUeXBlLCBQYWdlSGVhZGVyT3B0aW9ucywgUGFnaW5nQ29tcG9uZW50LCBQYWdpbmdPcHRpb25zLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0ICogYXMgYW01IGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM1XCI7XHJcbmltcG9ydCAqIGFzIGFtNXh5IGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM1L3h5XCI7XHJcbmltcG9ydCBhbTV0aGVtZXNfQW5pbWF0ZWQgZnJvbSBcIkBhbWNoYXJ0cy9hbWNoYXJ0czUvdGhlbWVzL0FuaW1hdGVkXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXN0ZXJMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgVW5QdWJsaXNoU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi91bnB1Ymxpc2gtc3VydmV5L3VucHVibGlzaC1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGVsZXRlU3VibWlzc2lvbkNvbXBvbmVudCB9IGZyb20gJy4uL3N1Ym1pc3Npb25zL2RlbGV0ZS1zdWJtaXNzaW9uL2RlbGV0ZS1zdWJtaXNzaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQgfSBmcm9tICcuLi9zdWJtaXNzaW9ucy9lbGltaW5hdGUtc3VibWlzc2lvbi9lbGltaW5hdGUtc3VibWlzc2lvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVbkVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQgfSBmcm9tICcuLi9zdWJtaXNzaW9ucy91bmVsaW1pbmF0ZS1zdWJtaXNzaW9uL3VuZWxpbWluYXRlLXN1Ym1pc3Npb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXVkaWVuY2VUeXBlLCBTdXJ2ZXlPcHRpb25UeXBlLCBTdXJ2ZXlTdGF0dXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vRW51bXMvRW51bXMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkRUTyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9TdXJ2ZXlNb2RlbHMvc3VydmV5LXF1ZXN0aW9uJztcclxuaW1wb3J0IHsgU3VydmV5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3N1cnZleS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvc3VydmV5LXF1ZXN0aW9uLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXN1cnZleS1pbmZvJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3VydmV5LWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N1cnZleS1pbmZvLmNvbXBvbmVudC5jc3MnXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cnZleUluZm9Db21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwYWdlSGVhZGVyT3B0aW9uczogUGFnZUhlYWRlck9wdGlvbnM7XHJcbiAgYnJlYWRDcnVtYjogQnJlYWRDcnVtYltdO1xyXG4gIHN1cnZleUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBAVmlld0NoaWxkKCdwYWdpbmdWaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwYWdpbmdFbGVtZW50OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuICBAVmlld0NoaWxkKCdkZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBEZWxldGVTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdE1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRNb2RhbDogRWRpdFN1cnZleUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdlZGl0UXVlc3Rpb25Nb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0UXVlc3Rpb25Nb2RhbDogRWRpdFF1ZXN0aW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2RlbGV0ZVF1ZXN0aW9uTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlUXVlc3Rpb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2w6IERlbGV0ZVF1ZXN0aW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2FkZFF1ZXN0aW9uTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgQWRkUXVlc3Rpb25Db21wb25lbnQ6IEFkZFF1ZXN0aW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2FkZFB1Ymxpc2hNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBhZGRQdWJsaXNoTW9kYWw6IFB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnYWRkVW5QdWJsaXNoTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgYWRkVW5QdWJsaXNoTW9kYWw6IFVuUHVibGlzaFN1cnZleUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdkZWxldGVTdWJtaXNzaW9uTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlU3VibWlzc2lvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogRGVsZXRlU3VibWlzc2lvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdlbGltaW5hdGVNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBlbGltaW5hdGVTdWJtaXNzaW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBFbGltaW5hdGVTdWJtaXNzaW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3VuRWxpbWluYXRlTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgdW5FbGltaW5hdGVTdWJtaXNzaW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBVbkVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQ7XHJcblxyXG4gIFRleHRCb3hXaXRoRXh0ZXJuYWxVUkw6IFRleHRCb3hPcHRpb25zO1xyXG4gIFRleHRCb3hXaXRoSW50ZXJuYWxVUkw6IFRleHRCb3hPcHRpb25zO1xyXG4gIHVybEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBTZWFyY2hUZXh0Qm94ID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgRU46IGJvb2xlYW47XHJcbiAgU2VhcmNoVGV4dEJveE9wdGlvbnM6IFRleHRCb3hPcHRpb25zO1xyXG4gIHByaXZhdGUgcm9vdCE6IGFtNS5Sb290O1xyXG4gIHN1cnZleUlEOiBhbnk7XHJcbiAgc3VydmV5OiBhbnk7XHJcbiAgbG9hZEluZm86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgU3VydmV5U3RhdHVzRW51bSA9IFN1cnZleVN0YXR1c0VudW07XHJcbiAgcHVibGljIEF1ZGllbmNlVHlwZUVudW0gPSBBdWRpZW5jZVR5cGU7XHJcbiAgc3VydmV5UXVlc3Rpb25zOiBTdXJ2ZXlRdWVzdGlvbkRUT1tdID0gW107XHJcbiAgYXBpUXVlc3Rpb25VUkwgPSB0aGlzLnN1cnZleVF1ZXN0aW9uU2VydmljZS5hcGlVUkw7XHJcbiAgZmlsdGVyc1F1ZXN0aW9uRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGNhblRha2VTdXJ2ZXk6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIC8vUXVlc3Rpb25zIFNlY3Rpb25cclxuICBAVmlld0NoaWxkKCdwYWdpbmdRdWVzdGlvblZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ1F1ZXN0aW9uRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcbiAgcGFnaW5nUXVlc3Rpb25SZXN1bHQ6IGFueVtdID0gW107XHJcbiAgcGFnaW5nUXVlc3Rpb25PcHRpb25zOiBQYWdpbmdPcHRpb25zO1xyXG4gIHNob3dQYWdlQ29udGVudDogYm9vbGVhbjtcclxuICBjYW5FZGl0UXVlc3Rpb246IGJvb2xlYW47XHJcbiAgY2FuQWRkUXVlc3Rpb246IGJvb2xlYW47XHJcbiAgY2FuRGVsZXRlUXVlc3Rpb246IGJvb2xlYW47XHJcbiAgc2VhcmNoUXVlc3Rpb25UZXh0RmlsdGVyOiBhbnk7XHJcbiAgU3VydmV5SURPcHRpb25zOiBhbnk7XHJcbiAgc2VhcmNoU3VydmV5SURGaWx0ZXI6IEZpbHRlckl0ZW07XHJcblxyXG5cclxuICAvL1N1Ym1pc3Npb24gU2VjdGlvblxyXG4gIGZpbHRlcnNTdWJtaXNzaW9uRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIEBWaWV3Q2hpbGQoJ3BhZ2luZ1N1Ym1pc3Npb25WaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwYWdpbmdTdWJtaXNzaW9uRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcbiAgcGFnaW5nU3VibWlzc2lvblJlc3VsdDogYW55W10gPSBbXTtcclxuICBwYWdpbmdTdWJtaXNzaW9uT3B0aW9uczogUGFnaW5nT3B0aW9ucztcclxuICBzaG93U3VibWlzc2lvblBhZ2VDb250ZW50OiBib29sZWFuO1xyXG4gIHNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIHNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlcjogRmlsdGVySXRlbTtcclxuICBxdWVzdGlvbk92ZXJ2aWV3UmVzdWx0OiBhbnk7XHJcbiAgcGFnaW5nUXVlc3Rpb25SZXN1bHRPcmlnaW5hbDogYW55O1xyXG4gIHNob3dPdmVydmlldzogYm9vbGVhbjtcclxuICBzaG93TmF2OiBib29sZWFuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZCwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICAgICwgcHJpdmF0ZSBtYXN0ZXJMYXlvdXRTZXJ2aWNlOiBNYXN0ZXJMYXlvdXRTZXJ2aWNlLCBwcml2YXRlIHN1cnZleVNlcnZpY2U6IFN1cnZleVNlcnZpY2UsIHByaXZhdGUgc3VydmV5UXVlc3Rpb25TZXJ2aWNlOiBTdXJ2ZXlRdWVzdGlvblNlcnZpY2UsIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICB0aGlzLnJvdXRlci5yb3V0ZVJldXNlU3RyYXRlZ3kuc2hvdWxkUmV1c2VSb3V0ZSA9ICgpID0+IGZhbHNlO1xyXG4gICAgdGhpcy5zdXJ2ZXlJRCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zW1wiaWRcIl07XHJcbiAgfVxyXG4gIC8vIFJ1biB0aGUgZnVuY3Rpb24gb25seSBpbiB0aGUgYnJvd3NlclxyXG4gIGJyb3dzZXJPbmx5KGY6ICgpID0+IHZvaWQpIHtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgZigpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHJcbiAgfVxyXG5cclxuICBtYXliZURpc3Bvc2VSb290KGRpdklkKSB7XHJcbiAgICBhbTUuYXJyYXkuZWFjaChhbTUucmVnaXN0cnkucm9vdEVsZW1lbnRzLCAocm9vdCkgPT4ge1xyXG4gICAgICBpZiAocm9vdCkge1xyXG4gICAgICAgIGlmIChyb290LmRvbS5pZCA9PSBkaXZJZCkge1xyXG4gICAgICAgICAgcm9vdC5kaXNwb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfTtcclxuXHJcbiAgbG9hZENoYXJ0KGl0ZW0pIHtcclxuXHJcbiAgICAvLyBDaGFydCBjb2RlIGdvZXMgaW4gaGVyZVxyXG4gICAgdGhpcy5icm93c2VyT25seSgoKSA9PiB7XHJcbiAgICAgIGxldCBuYW1lID0gYGNoYXJ0ZGl2YDtcclxuICAgICAgdGhpcy5tYXliZURpc3Bvc2VSb290KG5hbWUpXHJcbiAgICAgIGxldCByb290ID0gYW01LlJvb3QubmV3KG5hbWUpO1xyXG4gICAgICByb290LnNldFRoZW1lcyhbYW01dGhlbWVzX0FuaW1hdGVkLm5ldyhyb290KV0pO1xyXG5cclxuICAgICAgbGV0IGNoYXJ0ID0gcm9vdC5jb250YWluZXIuY2hpbGRyZW4ucHVzaChcclxuICAgICAgICBhbTV4eS5YWUNoYXJ0Lm5ldyhyb290LCB7XHJcbiAgICAgICAgICBwYW5YOiBmYWxzZSxcclxuICAgICAgICAgIHBhblk6IGZhbHNlLFxyXG4gICAgICAgICAgd2hlZWxYOiAnbm9uZScsXHJcbiAgICAgICAgICB3aGVlbFk6ICdub25lJyxcclxuICAgICAgICAgIHBhZGRpbmdCb3R0b206IDUwLFxyXG4gICAgICAgICAgcGFkZGluZ1RvcDogNDAsXHJcbiAgICAgICAgICBsYXlvdXQ6IHJvb3QudmVydGljYWxMYXlvdXQsXHJcblxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG4gICAgICAvLyBEZWZpbmUgZGF0YVxyXG4gICAgICBsZXQgZGF0YSA9IGl0ZW0ub3B0aW9ucy5tYXAodmFsdWUgPT4geyByZXR1cm4geyAnbmFtZSc6IHZhbHVlLmxvY2FsaXplZFRpdGxlLCAndmFsdWUnOiB2YWx1ZS5udW1iZXJPZlNlbGVjdGVkVGltZSB9IH0pXHJcbiAgICAgIC8vIENyZWF0ZSBZLWF4aXNcclxuICAgICAgbGV0IHlBeGlzID0gY2hhcnQueUF4ZXMucHVzaChcclxuICAgICAgICBhbTV4eS5WYWx1ZUF4aXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIGJhc2VWYWx1ZTogMCxcclxuICAgICAgICAgIG1heFByZWNpc2lvbjogMCxcclxuICAgICAgICAgIGV4dHJhVG9vbHRpcFByZWNpc2lvbjogMTAwLFxyXG4gICAgICAgICAgcmVuZGVyZXI6IGFtNXh5LkF4aXNSZW5kZXJlclkubmV3KHJvb3QsIHt9KVxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgWC1BeGlzXHJcbiAgICAgIGxldCB4QXhpcyA9IGNoYXJ0LnhBeGVzLnB1c2goXHJcbiAgICAgICAgYW01eHkuQ2F0ZWdvcnlBeGlzLm5ldyhyb290LCB7XHJcbiAgICAgICAgICByZW5kZXJlcjogYW01eHkuQXhpc1JlbmRlcmVyWC5uZXcocm9vdCwge30pLFxyXG4gICAgICAgICAgY2F0ZWdvcnlGaWVsZDogXCJuYW1lXCJcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICB4QXhpcy5kYXRhLnNldEFsbChkYXRhKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBzZXJpZXNcclxuICAgICAgbGV0IHNlcmllczEgPSBjaGFydC5zZXJpZXMucHVzaChcclxuICAgICAgICBhbTV4eS5Db2x1bW5TZXJpZXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIG5hbWU6IFwiUXVlc3Rpb24gT3B0aW9uc1wiLFxyXG4gICAgICAgICAgeEF4aXM6IHhBeGlzLFxyXG4gICAgICAgICAgeUF4aXM6IHlBeGlzLFxyXG4gICAgICAgICAgdmFsdWVZRmllbGQ6IFwidmFsdWVcIixcclxuICAgICAgICAgIGNhdGVnb3J5WEZpZWxkOiBcIm5hbWVcIixcclxuXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcblxyXG4gICAgICBzZXJpZXMxLmRhdGEuc2V0QWxsKGRhdGEpO1xyXG4gICAgICBzZXJpZXMxLnNldChcImZpbGxcIiwgYW01LmNvbG9yKFwiI2I2OGEzNVwiKSk7IC8vIHNldCBTZXJpZXMgY29sb3IgdG8gcmVkXHJcbiAgICAgIHNlcmllczEuc2V0KFwic3Ryb2tlXCIsIGFtNS5jb2xvcihcIiNiNjhhMzVcIikpOyAvLyBzZXQgU2VyaWVzIGNvbG9yIHRvIHJlZFxyXG5cclxuICAgICAgLy8gQWRkIGxlZ2VuZFxyXG4gICAgICBsZXQgbGVnZW5kID0gY2hhcnQuY2hpbGRyZW4ucHVzaChhbTUuTGVnZW5kLm5ldyhyb290LCB7fSkpO1xyXG4gICAgICBsZWdlbmQuZGF0YS5wdXNoKHNlcmllczEpO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLkVOKSB7XHJcbiAgICAgICAgbGVnZW5kLmxhYmVscy50ZW1wbGF0ZS5zZXRBbGwoe1xyXG4gICAgICAgICAgdGV4dEFsaWduOiAncmlnaHQnLFxyXG4gICAgICAgICAgeDogNTAsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbGVnZW5kLnZhbHVlTGFiZWxzLnRlbXBsYXRlLnNldEFsbCh7XHJcbiAgICAgICAgIHRleHRBbGlnbjpcInJpZ2h0XCIsXHJcbiAgICAgICAgIHBhZGRpbmdSaWdodDoxNVxyXG4gICAgICAgIH0pO1xyXG4gICAgICBsZWdlbmQuaXRlbUNvbnRhaW5lcnMudGVtcGxhdGUuc2V0QWxsKHtcclxuICAgICAgICByZXZlcnNlQ2hpbGRyZW46IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucm9vdCA9IHJvb3Q7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gLy9jaGFydCBvdmVydmlld1xyXG4gICAgdGhpcy5icm93c2VyT25seSgoKSA9PiB7XHJcbiAgICAgIGxldCBuYW1lT3ZlclZpZXcgPSBgY2hhcnRPdmVydmlld2A7XHJcbiAgICAgIHRoaXMubWF5YmVEaXNwb3NlUm9vdChuYW1lT3ZlclZpZXcpXHJcbiAgICAgIGxldCByb290ID0gYW01LlJvb3QubmV3KG5hbWVPdmVyVmlldyk7XHJcblxyXG4gICAgICByb290LnNldFRoZW1lcyhbYW01dGhlbWVzX0FuaW1hdGVkLm5ldyhyb290KV0pO1xyXG5cclxuICAgICAgbGV0IGNoYXJ0ID0gcm9vdC5jb250YWluZXIuY2hpbGRyZW4ucHVzaChcclxuICAgICAgICBhbTV4eS5YWUNoYXJ0Lm5ldyhyb290LCB7XHJcbiAgICAgICAgICBwYW5ZOiBmYWxzZSxcclxuICAgICAgICAgIGxheW91dDogcm9vdC52ZXJ0aWNhbExheW91dFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG5cclxuICAgICAgLy8gRGVmaW5lIGRhdGFcclxuXHJcbiAgICAgIGxldCBkYXRhID0gW107XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGl0ZW0ucmVzdWx0cykge1xyXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbS5yZXN1bHRzLCBrZXkpKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW0ucmVzdWx0c1trZXldO1xyXG4gICAgICAgICAgbGV0IG9iamVjdCA9IHtcclxuICAgICAgICAgICAgY2F0ZWdvcnk6IFwiPj1cIiArIGtleSxcclxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkYXRhLnB1c2gob2JqZWN0KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQ3JlYXRlIFktYXhpc1xyXG4gICAgICBsZXQgeUF4aXMgPSBjaGFydC55QXhlcy5wdXNoKFxyXG4gICAgICAgIGFtNXh5LlZhbHVlQXhpcy5uZXcocm9vdCwge1xyXG4gICAgICAgICAgYmFzZVZhbHVlOiAwLFxyXG4gICAgICAgICAgbWF4UHJlY2lzaW9uOiAwLFxyXG4gICAgICAgICAgZXh0cmFUb29sdGlwUHJlY2lzaW9uOiAxMDAsXHJcbiAgICAgICAgICByZW5kZXJlcjogYW01eHkuQXhpc1JlbmRlcmVyWS5uZXcocm9vdCwge30pXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBYLUF4aXNcclxuICAgICAgbGV0IHhBeGlzID0gY2hhcnQueEF4ZXMucHVzaChcclxuICAgICAgICBhbTV4eS5DYXRlZ29yeUF4aXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIHJlbmRlcmVyOiBhbTV4eS5BeGlzUmVuZGVyZXJYLm5ldyhyb290LCB7fSksXHJcbiAgICAgICAgICBjYXRlZ29yeUZpZWxkOiBcImNhdGVnb3J5XCJcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICB4QXhpcy5kYXRhLnNldEFsbChkYXRhKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBzZXJpZXNcclxuICAgICAgbGV0IHNlcmllczEgPSBjaGFydC5zZXJpZXMucHVzaChcclxuICAgICAgICBhbTV4eS5Db2x1bW5TZXJpZXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIG5hbWU6IFwiU2NvcmVcIixcclxuICAgICAgICAgIHhBeGlzOiB4QXhpcyxcclxuICAgICAgICAgIHlBeGlzOiB5QXhpcyxcclxuICAgICAgICAgIHZhbHVlWUZpZWxkOiBcInZhbHVlXCIsXHJcbiAgICAgICAgICBjYXRlZ29yeVhGaWVsZDogXCJjYXRlZ29yeVwiLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIHNlcmllczEuZGF0YS5zZXRBbGwoZGF0YSk7XHJcbiAgICAgIHNlcmllczEuc2V0KFwiZmlsbFwiLCBhbTUuY29sb3IoXCIjYjY4YTM1XCIpKTsgLy8gc2V0IFNlcmllcyBjb2xvciB0byByZWRcclxuICAgICAgc2VyaWVzMS5zZXQoXCJzdHJva2VcIiwgYW01LmNvbG9yKFwiI2I2OGEzNVwiKSk7IC8vIHNldCBTZXJpZXMgY29sb3IgdG8gcmVkXHJcbiAgICAgIC8vIEFkZCBsZWdlbmRcclxuICAgICAgbGV0IGxlZ2VuZCA9IGNoYXJ0LmNoaWxkcmVuLnB1c2goYW01LkxlZ2VuZC5uZXcocm9vdCwge30pKTtcclxuICAgICAgbGVnZW5kLmRhdGEuc2V0QWxsKGNoYXJ0LnNlcmllcy52YWx1ZXMpO1xyXG4gICAgICBpZiAoIXRoaXMuRU4pIHtcclxuICAgICAgICBsZWdlbmQubGFiZWxzLnRlbXBsYXRlLnNldEFsbCh7XHJcbiAgICAgICAgICB0ZXh0QWxpZ246ICdyaWdodCcsXHJcbiAgICAgICAgICB4OiA1MCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBsZWdlbmQudmFsdWVMYWJlbHMudGVtcGxhdGUuc2V0QWxsKHtcclxuICAgICAgICAgdGV4dEFsaWduOlwicmlnaHRcIixcclxuICAgICAgICAgcGFkZGluZ1JpZ2h0OjE1XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGxlZ2VuZC5pdGVtQ29udGFpbmVycy50ZW1wbGF0ZS5zZXRBbGwoe1xyXG4gICAgICAgIHJldmVyc2VDaGlsZHJlbjogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yb290ID0gcm9vdDtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBDbGVhbiB1cCByb290IGVsZW1lbnQgd2hlbiB0aGUgY29tcG9uZW50IGlzIHJlbW92ZWRcclxuICAgIHRoaXMuYnJvd3Nlck9ubHkoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5yb290KSB7XHJcbiAgICAgICAgdGhpcy5yb290LmRpc3Bvc2UoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3VydmV5U2VydmljZS5nZXRJbmZvKHRoaXMuc3VydmV5SUQpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLnN1cnZleSA9IHJlc3VsdDtcclxuXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoRXh0ZXJuYWxVUkwuTmFtZSA9IFwiVGV4dEJveFdpdGhFeHRlcm5hbFVSTFwiXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTC5MYWJlbEtleSA9IFwiRXh0ZXJuYWxfVVJMXCJcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoRXh0ZXJuYWxVUkwuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTC5Gb3JjZURpcmVjdGlvbiA9IEZvcmNlRGlyZWN0aW9uLkVuZ2xpc2hcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLkVuYWJsZUNvcHlUb0NsaXBib2FyZCA9IHRydWVcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLlZhbHVlID0gdGhpcy5zdXJ2ZXkuZXh0ZXJuYWxVUkxcclxuXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoSW50ZXJuYWxVUkwuTmFtZSA9IFwiVGV4dEJveFdpdGhJbnRlcm5hbFVSTFwiXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTC5MYWJlbEtleSA9IFwiSW50ZXJuYWxfVVJMXCJcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoSW50ZXJuYWxVUkwuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTC5Gb3JjZURpcmVjdGlvbiA9IEZvcmNlRGlyZWN0aW9uLkVuZ2xpc2hcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLkVuYWJsZUNvcHlUb0NsaXBib2FyZCA9IHRydWVcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLlZhbHVlID0gdGhpcy5zdXJ2ZXkuaW50ZXJuYWxVUkxcclxuXHJcblxyXG4gICAgICB0aGlzLmJyZWFkQ3J1bWIgPSBbXTtcclxuICAgICAgdGhpcy5icmVhZENydW1iLnB1c2gobmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiSG9tZVwiKSwgZmFsc2UsIFwiL1wiKSwgbmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiU3VydmV5c19IZWFkZXJcIiksIGZhbHNlLCAnLi4vLi4vJyksIG5ldyBCcmVhZENydW1iKHRoaXMubChcIlN1cnZleV9EZXRhaWxzXCIpLCB0cnVlKSk7XHJcbiAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMgPSBuZXcgUGFnZUhlYWRlck9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5UaXRsZVZhbHVlID10aGlzLnN1cnZleS5sb2NhbGl6ZWRUaXRsZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5TZWFyY2hUZXh0Qm94LkFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkJyZWFkQ3J1bWIuQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5CcmVhZENydW1iLkJyZWFkQ3J1bWJJdGVtcyA9IHRoaXMuYnJlYWRDcnVtYjtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuRHJvcGRvd25BY3Rpb25JdGVtcy5wdXNoKFxyXG4gICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRGVsZXRlXCIpLCAnL2Fzc2V0cy9pbWFnZXMvVHJhc2guc3ZnJywgdGhpcy5zaG93RGVsZXRlTW9kYWwpLFxyXG4gICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRXhwb3J0XCIpLCAnL2Fzc2V0cy9pbWFnZXMvZXhwb3J0LnN2ZycsIHRoaXMuZXhwb3J0KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnN1cnZleS5zdGF0dXNJdGVtSUQudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0RyYWZ0LnRvTG9jYWxlTG93ZXJDYXNlKClcclxuICAgICAgICB8fCB0aGlzLnN1cnZleS5zdGF0dXNJdGVtSUQudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX1VwY29taW5nLnRvTG9jYWxlTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuRHJvcGRvd25BY3Rpb25JdGVtcy5wdXNoKG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRWRpdFwiKSwgXCIvYXNzZXRzL2ltYWdlcy9FZGl0LnN2Z1wiLCB0aGlzLnNob3dFZGl0TW9kYWwpKVxyXG5cclxuICAgICAgaWYgKHRoaXMuc3VydmV5LnRvdGFsUXVlc3Rpb25Db3VudCA+IDApXHJcbiAgICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuRHJvcGRvd25BY3Rpb25JdGVtcy5wdXNoKFxyXG4gICAgICAgICAgbmV3IERyb3Bkb3duQWN0aW9uSXRlbSggdGhpcy5sKFwiUHJldmlld1wiKSwgJy9hc3NldHMvaW1hZ2VzL3ZpZXdzLnN2ZycsIHRoaXMucHJldmlld1N1cnZleSkpO1xyXG4gICAgICBpZiAodGhpcy5zdXJ2ZXkuc3RhdHVzSXRlbUlELnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9QdWJsaXNoZWQudG9Mb2NhbGVMb3dlckNhc2UoKSlcclxuICAgICAgICB0aGlzLmNhblRha2VTdXJ2ZXkgPSB0cnVlXHJcblxyXG4gICAgICBpZiAodGhpcy5zdXJ2ZXkuc3RhdHVzSXRlbUlELnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9EcmFmdC50b0xvY2FsZUxvd2VyQ2FzZSgpXHJcbiAgICAgICAgfHwgdGhpcy5zdXJ2ZXkuc3RhdHVzSXRlbUlELnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9DbG9zZWQudG9Mb2NhbGVMb3dlckNhc2UoKSlcclxuICAgICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkRyb3BEb3duQWN0aW9ucy5Ecm9wZG93bkFjdGlvbkl0ZW1zLnB1c2gobmV3IERyb3Bkb3duQWN0aW9uSXRlbSh0aGlzLmwoXCJQdWJsaXNoXCIpLCAnL2Fzc2V0cy9pbWFnZXMvU3VibWl0LnN2ZycsIHRoaXMuc2hvd1B1Ymxpc2hNb2RhbCkpXHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkRyb3BEb3duQWN0aW9ucy5Ecm9wZG93bkFjdGlvbkl0ZW1zLnB1c2gobmV3IERyb3Bkb3duQWN0aW9uSXRlbSh0aGlzLmwoXCJVblB1Ymxpc2hcIiksICcvYXNzZXRzL2ltYWdlcy91bmxpbmsuc3ZnJywgdGhpcy5zaG93VW5QdWJsaXNoTW9kYWwpLClcclxuXHJcbiAgICAgIHRoaXMuRU4gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlRW5nbGlzaCgpO1xyXG4gICAgICB0aGlzLmxvYWRRdWVzdGlvblNlY3Rpb24oKTtcclxuICAgICAgdGhpcy5sb2FkU3VibWlzc2lvblNlY3Rpb24oKTtcclxuICAgICAgdGhpcy5wYWdlVGl0bGUgPSB0aGlzLnN1cnZleS5sb2NhbGl6ZWRUaXRsZVxyXG4gICAgICB0aGlzLnVwZGF0ZVBhZ2VUaXRsZSh0aGlzLnN1cnZleS5sb2NhbGl6ZWRUaXRsZSk7XHJcbiAgICAgIHRoaXMubG9hZEluZm8gPSB0cnVlO1xyXG5cclxuXHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2hvd0VkaXRNb2RhbCA9ICgpID0+IHtcclxuICAgIHRoaXMuZWRpdE1vZGFsLnNob3dFZGl0TW9kYWwodGhpcy5zdXJ2ZXlJRCk7XHJcbiAgfVxyXG4gIHNob3dEZWxldGVNb2RhbCA9ICgpID0+IHtcclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dEZWxldGVNb2RhbCh0aGlzLnN1cnZleUlEKTtcclxuXHJcbiAgfVxyXG4gIHNob3dFZGl0UXVlc3Rpb25Nb2RhbChpZCxpc1ZpZXdPbmx5KSB7XHJcbiAgICB0aGlzLmVkaXRRdWVzdGlvbk1vZGFsLmVkaXRNb2RhbChpZCwgdGhpcy5zdXJ2ZXkuYXVkaWVuY2VJdGVtSUQsaXNWaWV3T25seSk7XHJcblxyXG4gIH1cclxuICBzaG93QWRkUXVlc3Rpb25Nb2RhbCgpIHtcclxuICAgIHRoaXMuQWRkUXVlc3Rpb25Db21wb25lbnQuYWRkTW9kYWwodGhpcy5zdXJ2ZXlJRCwgdGhpcy5zdXJ2ZXkuYXVkaWVuY2VJdGVtSUQpO1xyXG5cclxuICB9XHJcbiAgc2hvd0RlbGV0ZVF1ZXN0aW9uTW9kYWwgPSAoaWQpID0+IHtcclxuICAgIHRoaXMuZGVsZXRlUXVlc3Rpb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd0RlbGV0ZU1vZGFsKGlkKTtcclxuXHJcbiAgfVxyXG4gIHNob3dQdWJsaXNoTW9kYWwgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmFkZFB1Ymxpc2hNb2RhbC5wdWJsaXNoTW9kYWwodGhpcy5zdXJ2ZXlJRCwgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCk7XHJcblxyXG4gIH1cclxuICBzaG93VW5QdWJsaXNoTW9kYWwgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmFkZFVuUHVibGlzaE1vZGFsLnNob3dDb25maXJtYXRpb25Nb2RhbCh0aGlzLnN1cnZleUlEKTtcclxuXHJcbiAgfVxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHQsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdC5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdFtpbmRleF0uZGlzcGxheU9yZGVyID0gaW5kZXggKyAxO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdXJ2ZXlRdWVzdGlvblNlcnZpY2UudXBkYXRlRGlzcGxheU9yZGVyKHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHQpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByZXZpZXdTdXJ2ZXkgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uLy4uL2luZm8vcHJldmlldycsIHRoaXMuc3VydmV5SUQsIHRoaXMuc3VydmV5LmF1ZGllbmNlSXRlbUlEXSwge3JlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGV9KTtcclxuICB9XHJcbiAgdGFrZVN1cnZleSA9ICgpID0+IHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi4vLi4vaW5mby9zdWJtaXNzaW9uJywgdGhpcy5zdXJ2ZXlJRF0sIHtyZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdGF0dXMoc3RhdHVzKSB7XHJcbiAgICB2YXIgU3RhdHVzZXMgPSAnJztcclxuICAgIHN3aXRjaCAoc3RhdHVzLnRvTG9jYWxlTG93ZXJDYXNlKCkpIHtcclxuICAgICAgY2FzZSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0RyYWZ0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgU3RhdHVzZXMgPSAnYmFkZ2Utc2Vjb25kYXJ5JztcclxuICAgICAgICB0aGlzLmNhbkVkaXRRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5EZWxldGVRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5BZGRRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9DbG9zZWQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICBTdGF0dXNlcyA9ICdiYWRnZS1kYW5nZXInO1xyXG4gICAgICAgIHRoaXMuY2FuRWRpdFF1ZXN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5EZWxldGVRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5BZGRRdWVzdGlvbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX1B1Ymxpc2hlZC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIFN0YXR1c2VzID0gJ2JhZGdlLXN1Y2Nlc3MnO1xyXG4gICAgICAgIHRoaXMuY2FuRWRpdFF1ZXN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5EZWxldGVRdWVzdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2FuQWRkUXVlc3Rpb24gPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX1VwY29taW5nLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgU3RhdHVzZXMgPSAnYmFkZ2Utc3VjY2Vzcyc7XHJcbiAgICAgICAgdGhpcy5jYW5FZGl0UXVlc3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2FuRGVsZXRlUXVlc3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2FuQWRkUXVlc3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBTdGF0dXNlcztcclxuICB9XHJcblxyXG4gIGxvYWRRdWVzdGlvblNlY3Rpb24oKSB7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLk5hbWUgPSBcIlNlYXJjaFRleHRCb3hcIjtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5UcmltVGV4dE9uQ2hhbmdlID0gdHJ1ZTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuUGxhY2Vob2xkZXIgPSB0aGlzLmwoXCJTZWFyY2hcIik7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLkV4dHJhQ2xhc3NlcyA9IFwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbSBmb3JtLWNvbnRyb2wtc29saWQgc2VhcmNoLWJveFwiO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5JY29uID0gXCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL3NlYXJjaC5zdmdcIlxyXG5cclxuXHJcblxyXG5cclxuICAgIHRoaXMuU3VydmV5SURPcHRpb25zID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLlN1cnZleUlET3B0aW9ucy5OYW1lID0gXCJTdXJ2ZXlJRFwiO1xyXG4gICAgdGhpcy5TdXJ2ZXlJRE9wdGlvbnMuVmFsdWUgPSB0aGlzLnN1cnZleUlEO1xyXG5cclxuICAgIHRoaXMuc2VhcmNoU3VydmV5SURGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSB0aGlzLlN1cnZleUlET3B0aW9ucy5OYW1lO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJTdXJ2ZXlJRFwiO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VhcmNoU3VydmV5SURGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveDtcclxuXHJcblxyXG5cclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25PcHRpb25zID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25PcHRpb25zLlBhZ2VTaXplID0gMTAwMDtcclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25PcHRpb25zLkRpc2FibGVCbG9ja1VJID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25PcHRpb25zLkFjdGlvblBvc3RVUkwgPSB0aGlzLmFwaVF1ZXN0aW9uVVJMICsgJ0dldEFsbFF1ZXN0aW9ucyc7XHJcbiAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uT3B0aW9ucy5GaWx0ZXJzID0gW3RoaXMuc2VhcmNoU3VydmV5SURGaWx0ZXJdO1xyXG5cclxuXHJcblxyXG4gIH1cclxuICBzZXRRdWVzdGlvbkxpc3RpbmdSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdE9yaWdpbmFsID0gcmVzdWx0O1xyXG4gICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gICAgbGV0IG92ZXJ2aWV3UXVlc3Rpb25zID0gdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdE9yaWdpbmFsLmZpbHRlcihpdGVtID0+IGl0ZW0ucXVlc3Rpb25UeXBlSXRlbUlEID09IFN1cnZleU9wdGlvblR5cGUuUmFkaW9CdXR0b24gfHwgaXRlbS5xdWVzdGlvblR5cGVJdGVtSUQgPT0gU3VydmV5T3B0aW9uVHlwZS5TaW5nbGVTZWxlY3QgfHwgaXRlbS5xdWVzdGlvblR5cGVJdGVtSUQgPT0gU3VydmV5T3B0aW9uVHlwZS5NdWx0aXBsZVNlbGVjdClcclxuICAgIGlmIChvdmVydmlld1F1ZXN0aW9ucy5sZW5ndGggPiAwKVxyXG4gICAgICB0aGlzLmxvYWRTdXJ2ZXlPdmVydmlldygpO1xyXG4gIH1cclxuXHJcblxyXG4gIG9uU3VjY2Vzc0hhbmRsZXIgPSAoc3VjY2VzczogYW55KSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKHRoaXMubChcIlJlY29yZFVwZGF0ZWRcIiksIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgIHRoaXMubWFzdGVyTGF5b3V0U2VydmljZS5yZWxvYWRDb21wb25lbnQoKTtcclxuICB9XHJcblxyXG4gIG9uU3VjY2Vzc0RlbGV0ZUhhbmRsZXIgPSAoc3VjY2VzczogYW55KSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKHRoaXMubChcIlJlY29yZERlbGV0ZWRcIiksIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi4uLy4uL1wiXSwge3JlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGV9KTtcclxuICB9XHJcblxyXG4gIG9uU3VjY2Vzc0FkZFF1ZXN0aW9uSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkQWRkZWRcIiksIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgIHRoaXMubWFzdGVyTGF5b3V0U2VydmljZS5yZWxvYWRDb21wb25lbnQoKTtcclxuICB9XHJcbiAgb25TdWNjZXNzRWRpdFF1ZXN0aW9uSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkVXBkYXRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5tYXN0ZXJMYXlvdXRTZXJ2aWNlLnJlbG9hZENvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgb25TdWNjZXNzRGVsZXRlUXVlc3Rpb25IYW5kbGVyID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmREZWxldGVkXCIpLCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgICB0aGlzLm1hc3RlckxheW91dFNlcnZpY2UucmVsb2FkQ29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHNob3dEZWxldGVTdWJtaXNzaW9uTW9kYWwgPSAoaWQpID0+IHtcclxuICAgIHRoaXMuZGVsZXRlU3VibWlzc2lvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93RGVsZXRlTW9kYWwoaWQpO1xyXG5cclxuICB9XHJcbiAgc2hvd0VsaW1pbmF0ZVN1Ym1pc3Npb25Nb2RhbCA9IChpZCkgPT4ge1xyXG4gICAgdGhpcy5lbGltaW5hdGVTdWJtaXNzaW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dFbGltaW5hdGVNb2RhbChpZCk7XHJcbiAgfVxyXG4gIHNob3dVbkVsaW1pbmF0ZVN1Ym1pc3Npb25Nb2RhbCA9IChpZCkgPT4ge1xyXG4gICAgdGhpcy51bkVsaW1pbmF0ZVN1Ym1pc3Npb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd1VuRWxpbWluYXRlTW9kYWwoaWQpO1xyXG4gIH1cclxuICBvblN1Y2Nlc3NEZWxldGVIYW5kbGVyU3VibWlzc2lvbiA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkRGVsZXRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5sb2FkU3VibWlzc2lvblNlY3Rpb24oKTtcclxuICB9XHJcbiAgbG9hZFN1Ym1pc3Npb25TZWN0aW9uKCkge1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucyA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5OYW1lID0gXCJTZWFyY2hUZXh0Qm94XCI7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuVHJpbVRleHRPbkNoYW5nZSA9IHRydWU7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLlBsYWNlaG9sZGVyID0gdGhpcy5sKFwiU2VhcmNoXCIpO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5FeHRyYUNsYXNzZXMgPSBcImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc20gZm9ybS1jb250cm9sLXNvbGlkIHNlYXJjaC1ib3hcIjtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuSWNvbiA9IFwiLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9zZWFyY2guc3ZnXCJcclxuXHJcbiAgICB0aGlzLnNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5OYW1lO1xyXG4gICAgdGhpcy5zZWFyY2hTdWJtaXNzaW9uVGV4dEZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJTZWFyY2hUZXh0XCI7XHJcbiAgICB0aGlzLnNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWFyY2hTdWJtaXNzaW9uVGV4dEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94O1xyXG5cclxuXHJcbiAgICB0aGlzLlN1cnZleUlET3B0aW9ucyA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5TdXJ2ZXlJRE9wdGlvbnMuTmFtZSA9IFwiU3VydmV5SURcIjtcclxuICAgIHRoaXMuU3VydmV5SURPcHRpb25zLlZhbHVlID0gdGhpcy5zdXJ2ZXlJRDtcclxuXHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSB0aGlzLlN1cnZleUlET3B0aW9ucy5OYW1lO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwiU3VydmV5SURcIjtcclxuICAgIHRoaXMuc2VhcmNoU3VydmV5U3VibWlzc2lvbklERmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveDtcclxuXHJcblxyXG5cclxuICAgIHRoaXMucGFnaW5nU3VibWlzc2lvbk9wdGlvbnMgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5wYWdpbmdTdWJtaXNzaW9uT3B0aW9ucy5QYWdlU2l6ZSA9IDEwO1xyXG4gICAgdGhpcy5wYWdpbmdTdWJtaXNzaW9uT3B0aW9ucy5EaXNhYmxlQmxvY2tVSSA9IHRydWU7XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLkFjdGlvblBvc3RVUkwgPSB0aGlzLnN1cnZleVNlcnZpY2UuYXBpVVJMICsgJ0dldEFsbFN1cnZleVN1Ym1pc3Npb24nO1xyXG4gICAgdGhpcy5wYWdpbmdTdWJtaXNzaW9uT3B0aW9ucy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFt0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLk5hbWVdO1xyXG4gICAgdGhpcy5wYWdpbmdTdWJtaXNzaW9uT3B0aW9ucy5GaWx0ZXJzID0gW3RoaXMuc2VhcmNoU3VydmV5U3VibWlzc2lvbklERmlsdGVyLCB0aGlzLnNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyXTtcclxuXHJcblxyXG5cclxuICB9XHJcbiAgc2V0U3VibWlzc2lvbkxpc3RpbmdSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25SZXN1bHQgPSByZXN1bHQ7XHJcbiAgICB0aGlzLnNob3dTdWJtaXNzaW9uUGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gIH1cclxuICBsb2FkU3VydmV5T3ZlcnZpZXcoKSB7XHJcbiAgICB0aGlzLnN1cnZleVNlcnZpY2UuZ2V0U3VydmV5T3ZlcnZpZXcodGhpcy5zdXJ2ZXlJRCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5xdWVzdGlvbk92ZXJ2aWV3UmVzdWx0ID0gcmVzIGFzIGFueVxyXG4gICAgICB0aGlzLnNob3dPdmVydmlldyA9IHRydWU7XHJcbiAgICAgIHRoaXMubG9hZENoYXJ0KHRoaXMucXVlc3Rpb25PdmVydmlld1Jlc3VsdFswXSk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5zdXJ2ZXlTZXJ2aWNlXHJcbiAgICAgIC5leHBvcnQodGhpcy5zdXJ2ZXlJRClcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZCgocmVzdWx0IGFzIGFueSkgYXMgQmxvYiwgdGhpcy5wYWdlVGl0bGUgKyBcIi54bHN4XCIpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEluUXVlc3Rpb25MaXN0KHZhbHVlKSB7XHJcbiAgICBpZiAodmFsdWUpXHJcbiAgICAgIHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHQgPSB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0T3JpZ2luYWwuZmlsdGVyKGl0ZW0gPT4gaXRlbS5sb2NhbGl6ZWRUZXh0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUudG9Mb3dlckNhc2UoKSkpXHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHQgPSB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0T3JpZ2luYWw7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8IS0tdG9vbGJhci0tPlxyXG48ZGl2ICpuZ0lmPVwibG9hZEluZm9cIj5cclxuICA8YmJzZi1wYWdlLWhlYWRlci1jb21wb25lbnQgW29wdGlvbnNdPVwicGFnZUhlYWRlck9wdGlvbnNcIj48L2Jic2YtcGFnZS1oZWFkZXItY29tcG9uZW50PlxyXG48L2Rpdj5cclxuPCEtLWVuZCB0b29sYmFyLS0+XHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXIteHhsXCI+XHJcbiAgPGRpdiBjbGFzcz1cImluZm8tY29udGFpbmVyXCIgKm5nSWY9XCJsb2FkSW5mb1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbWFyZ2luLWJvdHRvbVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXJ5LWRhdGUgYm9yZGVyLTBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWJveGVzIGFsaWduLWl0ZW1zLWJhc2VsaW5lXCI+XHJcbiAgICAgICAgICAgIDxkaXYgbmdiVG9vbHRpcD1cInt7bCgnRGF0ZScpfX1cIiBjbGFzcz1cImljb24tYm94XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzeW1ib2wtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi00XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvY2FsZW5kYXIuc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdXJ2ZXktY291bnRlci10aXRsZVwiICpuZ0lmPVwic3VydmV5LnN0YXJ0RGF0ZT09bnVsbFwiPlxyXG4gICAgICAgICAgICAgICAge3tsKCdOb3RTdGFydGVkWWV0Jyl9fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1jb3VudGVyLXRpdGxlIGQtZmxleCBmbGV4LXN0YWNrXCIgKm5nSWY9XCJzdXJ2ZXkuc3RhcnREYXRlIT1udWxsXCI+XHJcbiAgICAgICAgICAgICAgICB7e3N1cnZleS5zdGFydERhdGUgfHN1cnZleURhdGV9fSAtIHt7c3VydmV5LmVuZERhdGUhPW51bGw/KHN1cnZleS5lbmREYXRlfHN1cnZleURhdGUpOlwiXCJ9fVxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodFwiICpuZ0lmPVwic3VydmV5LmVuZERhdGU9PW51bGxcIj57e2woJ0hhc05vRW5kJyl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHRcIiBbbmdDbGFzc109XCJnZXRTdGF0dXMoc3VydmV5LnN0YXR1c0l0ZW1JRClcIj57e3N1cnZleS5sb2NhbGl6ZWRTdGF0dXN9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIG5nYlRvb2x0aXA9XCJ7e2woJ0F1ZGllbmNlJyl9fVwiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQgbXgtMlwiPnt7c3VydmV5LmxvY2FsaXplZEF1ZGllbmNlfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGNhcmQtZGF0YVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNlwiPlxyXG4gICAgICAgICAgPEJCU0YtVGV4dEJveCAqbmdJZj1cImNhblRha2VTdXJ2ZXkmJiAoc3VydmV5LmF1ZGllbmNlSXRlbUlEPT1BdWRpZW5jZVR5cGVFbnVtLkludGVybmFsfHxzdXJ2ZXkuYXVkaWVuY2VJdGVtSUQ9PUF1ZGllbmNlVHlwZUVudW0uQm90aClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJUZXh0Qm94V2l0aEludGVybmFsVVJMXCIgW2dyb3VwXT1cInVybEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICA8QkJTRi1UZXh0Qm94ICpuZ0lmPVwiY2FuVGFrZVN1cnZleSYmIChzdXJ2ZXkuYXVkaWVuY2VJdGVtSUQ9PUF1ZGllbmNlVHlwZUVudW0uRXh0ZXJuYWx8fHN1cnZleS5hdWRpZW5jZUl0ZW1JRD09QXVkaWVuY2VUeXBlRW51bS5Cb3RoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIlRleHRCb3hXaXRoRXh0ZXJuYWxVUkxcIiBbZ3JvdXBdPVwidXJsRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHAgY2xhc3M9XCJjYXJkLWRlc2NyaXB0aW9uXCIgKm5nSWY9XCJzdXJ2ZXkubG9jYWxpemVkRGVzY1wiPlxyXG4gICAgICAgIHt7c3VydmV5LmxvY2FsaXplZERlc2N9fVxyXG4gICAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLW1hcmdpbi1ib3R0b21cIj5cclxuICAgICAgPHVsIG5nYk5hdiAjbmF2PVwibmdiTmF2XCIgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFicyBuYXYtY3VzdG9tXCI+XHJcbiAgICAgICAgPGxpIG5nYk5hdkl0ZW0gY2xhc3M9XCJuYXYtaXRlbVwiIFtkZXN0cm95T25IaWRlXT1cInRydWVcIj5cclxuICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBuZ2JOYXZMaW5rPlxyXG4gICAgICAgICAgICA8aDQ+XHJcbiAgICAgICAgICAgICAge3tsKCdRdWVzdGlvbnMnKX19XHJcbiAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW5mb1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzLXNlYXJjaCBwYWdlLXN1YmhlYWRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJTZWFyY2hUZXh0Qm94T3B0aW9uc1wiIFtncm91cF09XCJmaWx0ZXJzUXVlc3Rpb25Gb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE9uQ2hhbmdlKT1cInNlYXJjaEluUXVlc3Rpb25MaXN0KCRldmVudClcIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiU3VydmV5SURPcHRpb25zXCIgW2dyb3VwXT1cImZpbHRlcnNRdWVzdGlvbkZvcm1cIiBoaWRkZW4+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImNhbkFkZFF1ZXN0aW9uXCIgY2xhc3M9XCJidG4gYnRuLWJyYW5kIGJ0bi1zbSBzdWJoZWFkZXItYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dBZGRRdWVzdGlvbk1vZGFsKClcIj5cclxuICAgICAgICAgICAgICAgICAge3tsKCdBZGQnKX19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IFtoaWRkZW5dPVwicGFnaW5nUXVlc3Rpb25SZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiTmF2Q29udGVudCBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb24taW5mb1wiIFtjZGtEcmFnRGlzYWJsZWRdPVwiY2FuVGFrZVN1cnZleVwiIGNka0RyYWdcclxuICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwYWdpbmdRdWVzdGlvblJlc3VsdDsgbGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sIHN5bWJvbC0yNXB4IG1lLTRcIiBjZGtEcmFnSGFuZGxlICpuZ0lmPVwiIWNhblRha2VTdXJ2ZXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ltYm9sLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tN1wiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL3Jlb3JkZXIuc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1saXN0aW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3tsKCdUeXBlJyl9fVwiPnt7aXRlbS5sb2NhbGl6ZWRRdWVzdGlvblR5cGVJdGVtfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodCBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3tsKCdBdWRpZW5jZScpfX1cIj57e2l0ZW0ubG9jYWxpemVkQXVkaWVuY2VUeXBlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1icmFuZC1saWdodCBteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvblwiPnt7bCgnTGlua2VkJyl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0IG14LTJcIiAqbmdJZj1cIiFpdGVtLmlzVmlzaWJsZVwiIG5nYlRvb2x0aXA9XCJ7e2woJ05vdFZpc2libGUnKX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2woXCJOb3RWaXNpYmxlXCIpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgY2xhc3M9XCJkcm9wZG93bi1jdXN0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlbWVudF09XCJFTiA/ICdib3R0b20tcmlnaHQnIDogJ2JvdHRvbS1sZWZ0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUtY3VzdG9tIGJ0biBidG4tY2xlYXJcIiBuZ2JEcm9wZG93blRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvY2FyZC1kcm9wZG93bi5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBjbGFzcz1cImRyb3Bkb3duLW1lbnUtY3VzdG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhKGNhbkVkaXRRdWVzdGlvbiYmY2FuRGVsZXRlUXVlc3Rpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0VkaXRRdWVzdGlvbk1vZGFsKGl0ZW0uaURfR1VJRCx0cnVlKVwiIGFwcHByZXZlbnRkb3VibGVjbGljayB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wZG93bi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9pbmZvLnN2ZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tsKFwiRGV0YWlsc1wiKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNhbkVkaXRRdWVzdGlvblwiIChjbGljayk9XCJzaG93RWRpdFF1ZXN0aW9uTW9kYWwoaXRlbS5pRF9HVUlELGZhbHNlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcHJldmVudGRvdWJsZWNsaWNrIHR5cGU9XCJidXR0b25cIiBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wZG93bi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9FZGl0LnN2ZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tsKFwiRWRpdFwiKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImNhbkRlbGV0ZVF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0RlbGV0ZVF1ZXN0aW9uTW9kYWwoaXRlbS5pRF9HVUlEKVwiIGFwcHByZXZlbnRkb3VibGVjbGljayBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvVHJhc2guc3ZnJ1wiPjwvc3Bhbj4ge3tsKFwiRGVsZXRlXCIpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1jb3VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdXJ2ZXktY291bnRlci10aXRsZVwiPnt7aXRlbS5sb2NhbGl6ZWRUZXh0fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1icmFuZCBiYWRnZS1zcXVhcmUgbXMtMiBtZS0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3tsKCdTY29yZScpfX1cIj57e2l0ZW0udG90YWxTY29yZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRRdWVzdGlvbkxpc3RpbmdSZXN1bHQoJGV2ZW50KVwiIFtvcHRpb25zXT1cInBhZ2luZ1F1ZXN0aW9uT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dyb3VwXT1cImZpbHRlcnNRdWVzdGlvbkZvcm1cIiAjcGFnaW5nUXVlc3Rpb25WaWV3RWxlbWVudD48L0JCU0YtUGFnaW5nPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGFwcC1uby1yZXN1bHRzICpuZ0lmPVwicGFnaW5nUXVlc3Rpb25SZXN1bHQubGVuZ3RoID09IDBcIj48L2FwcC1uby1yZXN1bHRzPlxyXG5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtXCIgW2Rlc3Ryb3lPbkhpZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIG5nYk5hdkxpbms+XHJcbiAgICAgICAgICAgIDxoND5cclxuICAgICAgICAgICAgICB7e2woJ1N1Ym1pc3Npb25zJyl9fVxyXG4gICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWluZm9cIiBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzLXNlYXJjaCBwYWdlLXN1YmhlYWRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJTZWFyY2hUZXh0Qm94T3B0aW9uc1wiIFtncm91cF09XCJmaWx0ZXJzU3VibWlzc2lvbkZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiU3VydmV5SURPcHRpb25zXCIgW2dyb3VwXT1cImZpbHRlcnNTdWJtaXNzaW9uRm9ybVwiIGhpZGRlbj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1jb250YWluZXJcIiBbaGlkZGVuXT1cInBhZ2luZ1N1Ym1pc3Npb25SZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWN1c3RvbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+IHt7bCgnTmFtZScpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3tsKCdFbWFpbCcpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3tsKCdUeXBlJyl9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57e2woJ0NyZWF0ZWQnKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7bCgnU2NvcmUnKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGFibGUtYWN0aW9uXCI+e3tsKFwiQWN0aW9uXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0Ym9keSBjbGFzcz1cInRhYmxlLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwYWdpbmdTdWJtaXNzaW9uUmVzdWx0OyBsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5lLWNsYW1wLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5sb2NhbGl6ZWROYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtZGFuZ2VyIG14LTJcIiAqbmdJZj1cIml0ZW0uaXNFbGltaW5hdGVkJiZpdGVtLmFsbG93RWxpbWluYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tsKCdFbGltaW5hdGVkJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5lbWFpbH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5pc0ludGVybmFsVXNlcj8gbCgnSW50ZXJuYWxVc2VycycpOmwoJ0V4dGVybmFsVXNlcnMnKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2l0ZW0uY3JlYXRlZHxzdXJ2ZXlEYXRlfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tpdGVtLnRvdGFsU2NvcmV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWFjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG5nYlRvb2x0aXA9XCJ7e2woJ1ByZXZpZXcnKX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi4vLi4vaW5mby9yZXN1bHQnLCBpdGVtLmlEX0dVSURdXCIgY2xhc3M9XCJidG4gYnRuLXNtIHAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2Fuc3dlcnMuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCIhaXRlbS5pc0VsaW1pbmF0ZWQmJml0ZW0uYWxsb3dFbGltaW5hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3t0aGlzLmwoJ0VsaW1pbmF0ZUhpbnQnKX19XCIgY2xhc3M9XCJidG4gYnRuLXNtIHAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgKGNsaWNrKT1cInNob3dFbGltaW5hdGVTdWJtaXNzaW9uTW9kYWwoaXRlbS5pRF9HVUlEKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBwcmV2ZW50ZG91YmxlY2xpY2tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL3VubGluay5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIml0ZW0uaXNFbGltaW5hdGVkJiZpdGVtLmFsbG93RWxpbWluYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cInt7dGhpcy5sKCdVbkVsaW1pbmF0ZScpfX1cIiBjbGFzcz1cImJ0biBidG4tc20gcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIiAoY2xpY2spPVwic2hvd1VuRWxpbWluYXRlU3VibWlzc2lvbk1vZGFsKGl0ZW0uaURfR1VJRClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcHJldmVudGRvdWJsZWNsaWNrIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2xpbmsuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbmdiVG9vbHRpcD1cInt7bCgnRGVsZXRlJyl9fVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIChjbGljayk9XCJzaG93RGVsZXRlU3VibWlzc2lvbk1vZGFsKGl0ZW0uaURfR1VJRClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcHJldmVudGRvdWJsZWNsaWNrIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL1RyYXNoLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldFN1Ym1pc3Npb25MaXN0aW5nUmVzdWx0KCRldmVudClcIiBbb3B0aW9uc109XCJwYWdpbmdTdWJtaXNzaW9uT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtncm91cF09XCJmaWx0ZXJzU3VibWlzc2lvbkZvcm1cIiAjcGFnaW5nU3VibWlzc2lvblZpZXdFbGVtZW50PjwvQkJTRi1QYWdpbmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLW5vLXJlc3VsdHMgKm5nSWY9XCJwYWdpbmdTdWJtaXNzaW9uUmVzdWx0Lmxlbmd0aCA9PSAwXCI+PC9hcHAtbm8tcmVzdWx0cz5cclxuXHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpIG5nYk5hdkl0ZW0gY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwic2hvd092ZXJ2aWV3XCIgW2Rlc3Ryb3lPbkhpZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIG5nYk5hdkxpbmsgKGNsaWNrKT1cImxvYWRTdXJ2ZXlPdmVydmlldygpXCI+XHJcbiAgICAgICAgICAgIDxoND5cclxuICAgICAgICAgICAgICB7e2woXCJPdmVydmlld1wiKSB9fVxyXG4gICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWluZm9cIiBuZ2JOYXZDb250ZW50PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC10aXRsZVwiPiB7e2woXCJRdWVzdGlvbnNcIikgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8dWwgbmdiTmF2ICNuYXY9XCJuZ2JOYXZcIiBjbGFzcz1cIm5hdi1waWxscyBjdXN0b20tbmF2c1wiIG9yaWVudGF0aW9uPVwidmVydGljYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsaSBuZ2JOYXZJdGVtPVwie3tpdGVtLmxvY2FsaXplZFRpdGxlfX1cIiBbZGVzdHJveU9uSGlkZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbk92ZXJ2aWV3UmVzdWx0XCIgKGNsaWNrKT1cImxvYWRDaGFydChpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBuZ2JOYXZMaW5rPnt7aXRlbS5sb2NhbGl6ZWRUaXRsZX19PC9hPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC10aXRsZVwiPnt7bChcIk92ZXJ2aWV3XCIpIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cImNoYXJ0ZGl2XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA0MDBweFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRlLWxvZ29cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtdGl0bGVcIj57e2woXCJTY29yZVwiKSB9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2hhcnRPdmVydmlld1wiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogNDAwcHhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZS1sb2dvXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG5cclxuXHJcbiAgICAgIDxkaXYgW25nYk5hdk91dGxldF09XCJuYXZcIj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbiAgPGFwcC1lZGl0LXN1cnZleSAjZWRpdE1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ0VsZW1lbnRcIiBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NIYW5kbGVyXCI+PC9hcHAtZWRpdC1zdXJ2ZXk+XHJcbiAgPGFwcC1kZWxldGUtc3VydmV5ICNkZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2wgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nRWxlbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0RlbGV0ZUhhbmRsZXJcIj48L2FwcC1kZWxldGUtc3VydmV5PlxyXG4gIDxhcHAtYWRkLXF1ZXN0aW9uICNhZGRRdWVzdGlvbk1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ1F1ZXN0aW9uRWxlbWVudFwiIFtvblN1Y2Nlc3NBZGRIYW5kbGVyXT1cIm9uU3VjY2Vzc0FkZFF1ZXN0aW9uSGFuZGxlclwiPjwvYXBwLWFkZC1xdWVzdGlvbj5cclxuICA8YXBwLWVkaXQtcXVlc3Rpb24gI2VkaXRRdWVzdGlvbk1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ1F1ZXN0aW9uRWxlbWVudFwiIFtvblN1Y2Nlc3NFZGl0SGFuZGxlcl09XCJvblN1Y2Nlc3NFZGl0UXVlc3Rpb25IYW5kbGVyXCI+PC9hcHAtZWRpdC1xdWVzdGlvbj5cclxuICA8YXBwLWRlbGV0ZS1xdWVzdGlvbiAjZGVsZXRlUXVlc3Rpb25Nb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdRdWVzdGlvbkVsZW1lbnRcIiBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NEZWxldGVRdWVzdGlvbkhhbmRsZXJcIj48L2FwcC1kZWxldGUtcXVlc3Rpb24+XHJcbiAgPGFwcC1wdWJsaXNoLXN1cnZleSAjYWRkUHVibGlzaE1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ0VsZW1lbnRcIiBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NIYW5kbGVyXCIgKm5nSWY9XCJsb2FkSW5mb1wiIFtzaG93VG9nZ2xlXT1cInN1cnZleS5pc1Nob3dUb2dnbGVPZlNjb3JlUmVzdWx0QWZ0ZXJTdWJtaXNzaW9uXCI+XHJcbiAgPC9hcHAtcHVibGlzaC1zdXJ2ZXk+XHJcbiAgPGFwcC11bnB1Ymxpc2gtc3VydmV5ICNhZGRVblB1Ymxpc2hNb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdFbGVtZW50XCIgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzSGFuZGxlclwiPlxyXG4gIDwvYXBwLXVucHVibGlzaC1zdXJ2ZXk+XHJcbiAgPGFwcC1kZWxldGUtc3VibWlzc2lvbiAjZGVsZXRlU3VibWlzc2lvbk1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ1N1Ym1pc3Npb25FbGVtZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0RlbGV0ZUhhbmRsZXJTdWJtaXNzaW9uXCI+PC9hcHAtZGVsZXRlLXN1Ym1pc3Npb24+XHJcbiAgPGFwcC1lbGltaW5hdGUtc3VibWlzc2lvbiAjZWxpbWluYXRlTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nU3VibWlzc2lvbkVsZW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzSGFuZGxlclwiPjwvYXBwLWVsaW1pbmF0ZS1zdWJtaXNzaW9uPlxyXG4gIDxhcHAtdW5FbGltaW5hdGUtc3VibWlzc2lvbiAjdW5FbGltaW5hdGVNb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdTdWJtaXNzaW9uRWxlbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0hhbmRsZXJcIj48L2FwcC11bkVsaW1pbmF0ZS1zdWJtaXNzaW9uPlxyXG4iXX0=
|
|
503
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWluZm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vc3VydmV5LWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vc3VydmV5LWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUE0QixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBbUIsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hPLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxrQkFBa0IsTUFBTSxxQ0FBcUMsQ0FBQztBQU9yRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7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LE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0wsMkNBQTJDO3NCQUExRixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDSSw2Q0FBNkM7c0JBQTlGLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQW1CVyxxQkFBcUI7c0JBQS9FLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQWNJLHVCQUF1QjtzQkFBbkYsU0FBUzt1QkFBQyw2QkFBNkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQdWJsaXNoU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi9wdWJsaXNoLXN1cnZleS9wdWJsaXNoLXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRRdWVzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYWRkLXF1ZXN0aW9uL2FkZC1xdWVzdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVRdWVzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZGVsZXRlLXF1ZXN0aW9uL2RlbGV0ZS1xdWVzdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFZGl0UXVlc3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2VkaXQtcXVlc3Rpb24vZWRpdC1xdWVzdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFZGl0U3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi8uLi9lZGl0LXN1cnZleS9lZGl0LXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLy4uL2RlbGV0ZS1zdXJ2ZXkvZGVsZXRlLXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgTmdab25lLCBPbkluaXQsIFBMQVRGT1JNX0lELCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCwgQnJlYWRDcnVtYiwgQ29udHJvbExheW91dCwgRHJvcGRvd25BY3Rpb25JdGVtLCBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBGb3JjZURpcmVjdGlvbiwgSW5wdXRUeXBlLCBQYWdlSGVhZGVyT3B0aW9ucywgUGFnaW5nQ29tcG9uZW50LCBQYWdpbmdPcHRpb25zLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0ICogYXMgYW01IGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM1XCI7XHJcbmltcG9ydCAqIGFzIGFtNXh5IGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM1L3h5XCI7XHJcbmltcG9ydCBhbTV0aGVtZXNfQW5pbWF0ZWQgZnJvbSBcIkBhbWNoYXJ0cy9hbWNoYXJ0czUvdGhlbWVzL0FuaW1hdGVkXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXN0ZXJMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgVW5QdWJsaXNoU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi91bnB1Ymxpc2gtc3VydmV5L3VucHVibGlzaC1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGVsZXRlU3VibWlzc2lvbkNvbXBvbmVudCB9IGZyb20gJy4uL3N1Ym1pc3Npb25zL2RlbGV0ZS1zdWJtaXNzaW9uL2RlbGV0ZS1zdWJtaXNzaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQgfSBmcm9tICcuLi9zdWJtaXNzaW9ucy9lbGltaW5hdGUtc3VibWlzc2lvbi9lbGltaW5hdGUtc3VibWlzc2lvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVbkVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQgfSBmcm9tICcuLi9zdWJtaXNzaW9ucy91bmVsaW1pbmF0ZS1zdWJtaXNzaW9uL3VuZWxpbWluYXRlLXN1Ym1pc3Npb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXVkaWVuY2VUeXBlLCBTdXJ2ZXlPcHRpb25UeXBlLCBTdXJ2ZXlTdGF0dXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vRW51bXMvRW51bXMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkRUTyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9TdXJ2ZXlNb2RlbHMvc3VydmV5LXF1ZXN0aW9uJztcclxuaW1wb3J0IHsgU3VydmV5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3N1cnZleS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvc3VydmV5LXF1ZXN0aW9uLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXN1cnZleS1pbmZvJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3VydmV5LWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N1cnZleS1pbmZvLmNvbXBvbmVudC5jc3MnXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cnZleUluZm9Db21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwYWdlSGVhZGVyT3B0aW9uczogUGFnZUhlYWRlck9wdGlvbnM7XHJcbiAgYnJlYWRDcnVtYjogQnJlYWRDcnVtYltdO1xyXG4gIHN1cnZleUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBAVmlld0NoaWxkKCdwYWdpbmdWaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwYWdpbmdFbGVtZW50OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuICBAVmlld0NoaWxkKCdkZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBEZWxldGVTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdE1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRNb2RhbDogRWRpdFN1cnZleUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdlZGl0UXVlc3Rpb25Nb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0UXVlc3Rpb25Nb2RhbDogRWRpdFF1ZXN0aW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2RlbGV0ZVF1ZXN0aW9uTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlUXVlc3Rpb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2w6IERlbGV0ZVF1ZXN0aW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2FkZFF1ZXN0aW9uTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgQWRkUXVlc3Rpb25Db21wb25lbnQ6IEFkZFF1ZXN0aW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2FkZFB1Ymxpc2hNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBhZGRQdWJsaXNoTW9kYWw6IFB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnYWRkVW5QdWJsaXNoTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgYWRkVW5QdWJsaXNoTW9kYWw6IFVuUHVibGlzaFN1cnZleUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdkZWxldGVTdWJtaXNzaW9uTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlU3VibWlzc2lvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogRGVsZXRlU3VibWlzc2lvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdlbGltaW5hdGVNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBlbGltaW5hdGVTdWJtaXNzaW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBFbGltaW5hdGVTdWJtaXNzaW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3VuRWxpbWluYXRlTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgdW5FbGltaW5hdGVTdWJtaXNzaW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBVbkVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQ7XHJcblxyXG4gIFRleHRCb3hXaXRoRXh0ZXJuYWxVUkw6IFRleHRCb3hPcHRpb25zO1xyXG4gIFRleHRCb3hXaXRoSW50ZXJuYWxVUkw6IFRleHRCb3hPcHRpb25zO1xyXG4gIHVybEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBTZWFyY2hUZXh0Qm94ID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgRU46IGJvb2xlYW47XHJcbiAgU2VhcmNoVGV4dEJveE9wdGlvbnM6IFRleHRCb3hPcHRpb25zO1xyXG4gIHByaXZhdGUgcm9vdCE6IGFtNS5Sb290O1xyXG4gIHN1cnZleUlEOiBhbnk7XHJcbiAgc3VydmV5OiBhbnk7XHJcbiAgbG9hZEluZm86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgU3VydmV5U3RhdHVzRW51bSA9IFN1cnZleVN0YXR1c0VudW07XHJcbiAgcHVibGljIEF1ZGllbmNlVHlwZUVudW0gPSBBdWRpZW5jZVR5cGU7XHJcbiAgc3VydmV5UXVlc3Rpb25zOiBTdXJ2ZXlRdWVzdGlvbkRUT1tdID0gW107XHJcbiAgYXBpUXVlc3Rpb25VUkwgPSB0aGlzLnN1cnZleVF1ZXN0aW9uU2VydmljZS5hcGlVUkw7XHJcbiAgZmlsdGVyc1F1ZXN0aW9uRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGNhblRha2VTdXJ2ZXk6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIC8vUXVlc3Rpb25zIFNlY3Rpb25cclxuICBAVmlld0NoaWxkKCdwYWdpbmdRdWVzdGlvblZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ1F1ZXN0aW9uRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcbiAgcGFnaW5nUXVlc3Rpb25SZXN1bHQ6IGFueVtdID0gW107XHJcbiAgcGFnaW5nUXVlc3Rpb25PcHRpb25zOiBQYWdpbmdPcHRpb25zO1xyXG4gIHNob3dQYWdlQ29udGVudDogYm9vbGVhbjtcclxuICBjYW5FZGl0UXVlc3Rpb246IGJvb2xlYW47XHJcbiAgY2FuQWRkUXVlc3Rpb246IGJvb2xlYW47XHJcbiAgY2FuRGVsZXRlUXVlc3Rpb246IGJvb2xlYW47XHJcbiAgc2VhcmNoUXVlc3Rpb25UZXh0RmlsdGVyOiBhbnk7XHJcbiAgU3VydmV5SURPcHRpb25zOiBhbnk7XHJcbiAgc2VhcmNoU3VydmV5SURGaWx0ZXI6IEZpbHRlckl0ZW07XHJcblxyXG5cclxuICAvL1N1Ym1pc3Npb24gU2VjdGlvblxyXG4gIGZpbHRlcnNTdWJtaXNzaW9uRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIEBWaWV3Q2hpbGQoJ3BhZ2luZ1N1Ym1pc3Npb25WaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwYWdpbmdTdWJtaXNzaW9uRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcbiAgcGFnaW5nU3VibWlzc2lvblJlc3VsdDogYW55W10gPSBbXTtcclxuICBwYWdpbmdTdWJtaXNzaW9uT3B0aW9uczogUGFnaW5nT3B0aW9ucztcclxuICBzaG93U3VibWlzc2lvblBhZ2VDb250ZW50OiBib29sZWFuO1xyXG4gIHNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIHNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlcjogRmlsdGVySXRlbTtcclxuICBxdWVzdGlvbk92ZXJ2aWV3UmVzdWx0OiBhbnk7XHJcbiAgcGFnaW5nUXVlc3Rpb25SZXN1bHRPcmlnaW5hbDogYW55O1xyXG4gIHNob3dPdmVydmlldzogYm9vbGVhbjtcclxuICBzaG93TmF2OiBib29sZWFuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZCwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICAgICwgcHJpdmF0ZSBtYXN0ZXJMYXlvdXRTZXJ2aWNlOiBNYXN0ZXJMYXlvdXRTZXJ2aWNlLCBwcml2YXRlIHN1cnZleVNlcnZpY2U6IFN1cnZleVNlcnZpY2UsIHByaXZhdGUgc3VydmV5UXVlc3Rpb25TZXJ2aWNlOiBTdXJ2ZXlRdWVzdGlvblNlcnZpY2UsIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICB0aGlzLnJvdXRlci5yb3V0ZVJldXNlU3RyYXRlZ3kuc2hvdWxkUmV1c2VSb3V0ZSA9ICgpID0+IGZhbHNlO1xyXG4gICAgdGhpcy5zdXJ2ZXlJRCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zW1wiaWRcIl07XHJcbiAgfVxyXG4gIC8vIFJ1biB0aGUgZnVuY3Rpb24gb25seSBpbiB0aGUgYnJvd3NlclxyXG4gIGJyb3dzZXJPbmx5KGY6ICgpID0+IHZvaWQpIHtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgZigpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHJcbiAgfVxyXG5cclxuICBtYXliZURpc3Bvc2VSb290KGRpdklkKSB7XHJcbiAgICBhbTUuYXJyYXkuZWFjaChhbTUucmVnaXN0cnkucm9vdEVsZW1lbnRzLCAocm9vdCkgPT4ge1xyXG4gICAgICBpZiAocm9vdCkge1xyXG4gICAgICAgIGlmIChyb290LmRvbS5pZCA9PSBkaXZJZCkge1xyXG4gICAgICAgICAgcm9vdC5kaXNwb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfTtcclxuXHJcbiAgbG9hZENoYXJ0KGl0ZW0pIHtcclxuXHJcbiAgICAvLyBDaGFydCBjb2RlIGdvZXMgaW4gaGVyZVxyXG4gICAgdGhpcy5icm93c2VyT25seSgoKSA9PiB7XHJcbiAgICAgIGxldCBuYW1lID0gYGNoYXJ0ZGl2YDtcclxuICAgICAgdGhpcy5tYXliZURpc3Bvc2VSb290KG5hbWUpXHJcbiAgICAgIGxldCByb290ID0gYW01LlJvb3QubmV3KG5hbWUpO1xyXG4gICAgICByb290LnNldFRoZW1lcyhbYW01dGhlbWVzX0FuaW1hdGVkLm5ldyhyb290KV0pO1xyXG5cclxuICAgICAgbGV0IGNoYXJ0ID0gcm9vdC5jb250YWluZXIuY2hpbGRyZW4ucHVzaChcclxuICAgICAgICBhbTV4eS5YWUNoYXJ0Lm5ldyhyb290LCB7XHJcbiAgICAgICAgICBwYW5YOiBmYWxzZSxcclxuICAgICAgICAgIHBhblk6IGZhbHNlLFxyXG4gICAgICAgICAgd2hlZWxYOiAnbm9uZScsXHJcbiAgICAgICAgICB3aGVlbFk6ICdub25lJyxcclxuICAgICAgICAgIHBhZGRpbmdCb3R0b206IDUwLFxyXG4gICAgICAgICAgcGFkZGluZ1RvcDogNDAsXHJcbiAgICAgICAgICBsYXlvdXQ6IHJvb3QudmVydGljYWxMYXlvdXQsXHJcblxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG4gICAgICAvLyBEZWZpbmUgZGF0YVxyXG4gICAgICBsZXQgZGF0YSA9IGl0ZW0ub3B0aW9ucy5tYXAodmFsdWUgPT4geyByZXR1cm4geyAnbmFtZSc6IHZhbHVlLmxvY2FsaXplZFRpdGxlLCAndmFsdWUnOiB2YWx1ZS5udW1iZXJPZlNlbGVjdGVkVGltZSB9IH0pXHJcbiAgICAgIC8vIENyZWF0ZSBZLWF4aXNcclxuICAgICAgbGV0IHlBeGlzID0gY2hhcnQueUF4ZXMucHVzaChcclxuICAgICAgICBhbTV4eS5WYWx1ZUF4aXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIGJhc2VWYWx1ZTogMCxcclxuICAgICAgICAgIG1heFByZWNpc2lvbjogMCxcclxuICAgICAgICAgIG1pbjowLFxyXG4gICAgICAgICAgZXh0cmFUb29sdGlwUHJlY2lzaW9uOiAxMDAsXHJcbiAgICAgICAgICByZW5kZXJlcjogYW01eHkuQXhpc1JlbmRlcmVyWS5uZXcocm9vdCwge30pXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBYLUF4aXNcclxuICAgICAgbGV0IHhBeGlzID0gY2hhcnQueEF4ZXMucHVzaChcclxuICAgICAgICBhbTV4eS5DYXRlZ29yeUF4aXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIHJlbmRlcmVyOiBhbTV4eS5BeGlzUmVuZGVyZXJYLm5ldyhyb290LCB7fSksXHJcbiAgICAgICAgICBjYXRlZ29yeUZpZWxkOiBcIm5hbWVcIlxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIHhBeGlzLmRhdGEuc2V0QWxsKGRhdGEpO1xyXG5cclxuICAgICAgLy8gQ3JlYXRlIHNlcmllc1xyXG4gICAgICBsZXQgc2VyaWVzMSA9IGNoYXJ0LnNlcmllcy5wdXNoKFxyXG4gICAgICAgIGFtNXh5LkNvbHVtblNlcmllcy5uZXcocm9vdCwge1xyXG4gICAgICAgICAgbmFtZTogXCJRdWVzdGlvbiBPcHRpb25zXCIsXHJcbiAgICAgICAgICB4QXhpczogeEF4aXMsXHJcbiAgICAgICAgICB5QXhpczogeUF4aXMsXHJcbiAgICAgICAgICB2YWx1ZVlGaWVsZDogXCJ2YWx1ZVwiLFxyXG4gICAgICAgICAgY2F0ZWdvcnlYRmllbGQ6IFwibmFtZVwiLFxyXG5cclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuXHJcbiAgICAgIHNlcmllczEuZGF0YS5zZXRBbGwoZGF0YSk7XHJcbiAgICAgIHNlcmllczEuc2V0KFwiZmlsbFwiLCBhbTUuY29sb3IoXCIjYjY4YTM1XCIpKTsgLy8gc2V0IFNlcmllcyBjb2xvciB0byByZWRcclxuICAgICAgc2VyaWVzMS5zZXQoXCJzdHJva2VcIiwgYW01LmNvbG9yKFwiI2I2OGEzNVwiKSk7IC8vIHNldCBTZXJpZXMgY29sb3IgdG8gcmVkXHJcblxyXG4gICAgICAvLyBBZGQgbGVnZW5kXHJcbiAgICAgIGxldCBsZWdlbmQgPSBjaGFydC5jaGlsZHJlbi5wdXNoKGFtNS5MZWdlbmQubmV3KHJvb3QsIHt9KSk7XHJcbiAgICAgIGxlZ2VuZC5kYXRhLnB1c2goc2VyaWVzMSk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuRU4pIHtcclxuICAgICAgICBsZWdlbmQubGFiZWxzLnRlbXBsYXRlLnNldEFsbCh7XHJcbiAgICAgICAgICB0ZXh0QWxpZ246ICdyaWdodCcsXHJcbiAgICAgICAgICB4OiA1MCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBsZWdlbmQudmFsdWVMYWJlbHMudGVtcGxhdGUuc2V0QWxsKHtcclxuICAgICAgICAgdGV4dEFsaWduOlwicmlnaHRcIixcclxuICAgICAgICAgcGFkZGluZ1JpZ2h0OjE1XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGxlZ2VuZC5pdGVtQ29udGFpbmVycy50ZW1wbGF0ZS5zZXRBbGwoe1xyXG4gICAgICAgIHJldmVyc2VDaGlsZHJlbjogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yb290ID0gcm9vdDtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyAvL2NoYXJ0IG92ZXJ2aWV3XHJcbiAgICB0aGlzLmJyb3dzZXJPbmx5KCgpID0+IHtcclxuICAgICAgbGV0IG5hbWVPdmVyVmlldyA9IGBjaGFydE92ZXJ2aWV3YDtcclxuICAgICAgdGhpcy5tYXliZURpc3Bvc2VSb290KG5hbWVPdmVyVmlldylcclxuICAgICAgbGV0IHJvb3QgPSBhbTUuUm9vdC5uZXcobmFtZU92ZXJWaWV3KTtcclxuXHJcbiAgICAgIHJvb3Quc2V0VGhlbWVzKFthbTV0aGVtZXNfQW5pbWF0ZWQubmV3KHJvb3QpXSk7XHJcblxyXG4gICAgICBsZXQgY2hhcnQgPSByb290LmNvbnRhaW5lci5jaGlsZHJlbi5wdXNoKFxyXG4gICAgICAgIGFtNXh5LlhZQ2hhcnQubmV3KHJvb3QsIHtcclxuICAgICAgICAgIHBhblk6IGZhbHNlLFxyXG4gICAgICAgICAgbGF5b3V0OiByb290LnZlcnRpY2FsTGF5b3V0XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcblxyXG4gICAgICAvLyBEZWZpbmUgZGF0YVxyXG5cclxuICAgICAgbGV0IGRhdGEgPSBbXTtcclxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gaXRlbS5yZXN1bHRzKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpdGVtLnJlc3VsdHMsIGtleSkpIHtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbS5yZXN1bHRzW2tleV07XHJcbiAgICAgICAgICBsZXQgb2JqZWN0ID0ge1xyXG4gICAgICAgICAgICBjYXRlZ29yeTogXCI8PVwiICsga2V5LFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWVcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRhdGEucHVzaChvYmplY3QpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBDcmVhdGUgWS1heGlzXHJcbiAgICAgIGxldCB5QXhpcyA9IGNoYXJ0LnlBeGVzLnB1c2goXHJcbiAgICAgICAgYW01eHkuVmFsdWVBeGlzLm5ldyhyb290LCB7XHJcbiAgICAgICAgICBiYXNlVmFsdWU6IDAsXHJcbiAgICAgICAgICBtYXhQcmVjaXNpb246IDAsXHJcbiAgICAgICAgICBtaW46MCxcclxuICAgICAgICAgIGV4dHJhVG9vbHRpcFByZWNpc2lvbjogMTAwLFxyXG4gICAgICAgICAgcmVuZGVyZXI6IGFtNXh5LkF4aXNSZW5kZXJlclkubmV3KHJvb3QsIHt9KVxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgWC1BeGlzXHJcbiAgICAgIGxldCB4QXhpcyA9IGNoYXJ0LnhBeGVzLnB1c2goXHJcbiAgICAgICAgYW01eHkuQ2F0ZWdvcnlBeGlzLm5ldyhyb290LCB7XHJcbiAgICAgICAgICByZW5kZXJlcjogYW01eHkuQXhpc1JlbmRlcmVyWC5uZXcocm9vdCwge30pLFxyXG4gICAgICAgICAgY2F0ZWdvcnlGaWVsZDogXCJjYXRlZ29yeVwiXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgeEF4aXMuZGF0YS5zZXRBbGwoZGF0YSk7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgc2VyaWVzXHJcbiAgICAgIGxldCBzZXJpZXMxID0gY2hhcnQuc2VyaWVzLnB1c2goXHJcbiAgICAgICAgYW01eHkuQ29sdW1uU2VyaWVzLm5ldyhyb290LCB7XHJcbiAgICAgICAgICBuYW1lOiBcIlNjb3JlXCIsXHJcbiAgICAgICAgICB4QXhpczogeEF4aXMsXHJcbiAgICAgICAgICB5QXhpczogeUF4aXMsXHJcbiAgICAgICAgICB2YWx1ZVlGaWVsZDogXCJ2YWx1ZVwiLFxyXG4gICAgICAgICAgY2F0ZWdvcnlYRmllbGQ6IFwiY2F0ZWdvcnlcIixcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICBzZXJpZXMxLmRhdGEuc2V0QWxsKGRhdGEpO1xyXG4gICAgICBzZXJpZXMxLnNldChcImZpbGxcIiwgYW01LmNvbG9yKFwiI2I2OGEzNVwiKSk7IC8vIHNldCBTZXJpZXMgY29sb3IgdG8gcmVkXHJcbiAgICAgIHNlcmllczEuc2V0KFwic3Ryb2tlXCIsIGFtNS5jb2xvcihcIiNiNjhhMzVcIikpOyAvLyBzZXQgU2VyaWVzIGNvbG9yIHRvIHJlZFxyXG4gICAgICAvLyBBZGQgbGVnZW5kXHJcbiAgICAgIGxldCBsZWdlbmQgPSBjaGFydC5jaGlsZHJlbi5wdXNoKGFtNS5MZWdlbmQubmV3KHJvb3QsIHt9KSk7XHJcbiAgICAgIGxlZ2VuZC5kYXRhLnNldEFsbChjaGFydC5zZXJpZXMudmFsdWVzKTtcclxuICAgICAgaWYgKCF0aGlzLkVOKSB7XHJcbiAgICAgICAgbGVnZW5kLmxhYmVscy50ZW1wbGF0ZS5zZXRBbGwoe1xyXG4gICAgICAgICAgdGV4dEFsaWduOiAncmlnaHQnLFxyXG4gICAgICAgICAgeDogNTAsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbGVnZW5kLnZhbHVlTGFiZWxzLnRlbXBsYXRlLnNldEFsbCh7XHJcbiAgICAgICAgIHRleHRBbGlnbjpcInJpZ2h0XCIsXHJcbiAgICAgICAgIHBhZGRpbmdSaWdodDoxNVxyXG4gICAgICAgIH0pO1xyXG4gICAgICBsZWdlbmQuaXRlbUNvbnRhaW5lcnMudGVtcGxhdGUuc2V0QWxsKHtcclxuICAgICAgICByZXZlcnNlQ2hpbGRyZW46IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucm9vdCA9IHJvb3Q7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8gQ2xlYW4gdXAgcm9vdCBlbGVtZW50IHdoZW4gdGhlIGNvbXBvbmVudCBpcyByZW1vdmVkXHJcbiAgICB0aGlzLmJyb3dzZXJPbmx5KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMucm9vdCkge1xyXG4gICAgICAgIHRoaXMucm9vdC5kaXNwb3NlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1cnZleVNlcnZpY2UuZ2V0SW5mbyh0aGlzLnN1cnZleUlEKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgdGhpcy5zdXJ2ZXkgPSByZXN1bHQ7XHJcblxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoRXh0ZXJuYWxVUkwgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLk5hbWUgPSBcIlRleHRCb3hXaXRoRXh0ZXJuYWxVUkxcIlxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoRXh0ZXJuYWxVUkwuTGFiZWxLZXkgPSBcIkV4dGVybmFsX1VSTFwiXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTC5UeXBlID0gSW5wdXRUeXBlLlRleHRcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbFxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoRXh0ZXJuYWxVUkwuRm9yY2VEaXJlY3Rpb24gPSBGb3JjZURpcmVjdGlvbi5FbmdsaXNoXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTC5FbmFibGVDb3B5VG9DbGlwYm9hcmQgPSB0cnVlXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTC5WYWx1ZSA9IHRoaXMuc3VydmV5LmV4dGVybmFsVVJMXHJcblxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoSW50ZXJuYWxVUkwgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLk5hbWUgPSBcIlRleHRCb3hXaXRoSW50ZXJuYWxVUkxcIlxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoSW50ZXJuYWxVUkwuTGFiZWxLZXkgPSBcIkludGVybmFsX1VSTFwiXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTC5UeXBlID0gSW5wdXRUeXBlLlRleHRcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbFxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoSW50ZXJuYWxVUkwuRm9yY2VEaXJlY3Rpb24gPSBGb3JjZURpcmVjdGlvbi5FbmdsaXNoXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTC5FbmFibGVDb3B5VG9DbGlwYm9hcmQgPSB0cnVlXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTC5WYWx1ZSA9IHRoaXMuc3VydmV5LmludGVybmFsVVJMXHJcblxyXG5cclxuICAgICAgdGhpcy5icmVhZENydW1iID0gW107XHJcbiAgICAgIHRoaXMuYnJlYWRDcnVtYi5wdXNoKG5ldyBCcmVhZENydW1iKHRoaXMubChcIkhvbWVcIiksIGZhbHNlLCBcIi9cIiksIG5ldyBCcmVhZENydW1iKHRoaXMubChcIlN1cnZleXNfSGVhZGVyXCIpLCBmYWxzZSwgJy4uLy4uLycpLCBuZXcgQnJlYWRDcnVtYih0aGlzLmwoXCJTdXJ2ZXlfRGV0YWlsc1wiKSwgdHJ1ZSkpO1xyXG4gICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zID0gbmV3IFBhZ2VIZWFkZXJPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuVGl0bGVWYWx1ZSA9dGhpcy5zdXJ2ZXkubG9jYWxpemVkVGl0bGU7XHJcbiAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuU2VhcmNoVGV4dEJveC5BY3RpdmUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5CcmVhZENydW1iLkFjdGl2ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuQnJlYWRDcnVtYi5CcmVhZENydW1iSXRlbXMgPSB0aGlzLmJyZWFkQ3J1bWI7XHJcbiAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRHJvcERvd25BY3Rpb25zLkFjdGl2ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRHJvcERvd25BY3Rpb25zLkRyb3Bkb3duQWN0aW9uSXRlbXMucHVzaChcclxuICAgICAgICBuZXcgRHJvcGRvd25BY3Rpb25JdGVtKHRoaXMubChcIkRlbGV0ZVwiKSwgJy9hc3NldHMvaW1hZ2VzL1RyYXNoLnN2ZycsIHRoaXMuc2hvd0RlbGV0ZU1vZGFsKSxcclxuICAgICAgICBuZXcgRHJvcGRvd25BY3Rpb25JdGVtKHRoaXMubChcIkV4cG9ydFwiKSwgJy9hc3NldHMvaW1hZ2VzL2V4cG9ydC5zdmcnLCB0aGlzLmV4cG9ydClcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zdXJ2ZXkuc3RhdHVzSXRlbUlELnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9EcmFmdC50b0xvY2FsZUxvd2VyQ2FzZSgpXHJcbiAgICAgICAgfHwgdGhpcy5zdXJ2ZXkuc3RhdHVzSXRlbUlELnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9VcGNvbWluZy50b0xvY2FsZUxvd2VyQ2FzZSgpKVxyXG4gICAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRHJvcERvd25BY3Rpb25zLkRyb3Bkb3duQWN0aW9uSXRlbXMucHVzaChuZXcgRHJvcGRvd25BY3Rpb25JdGVtKHRoaXMubChcIkVkaXRcIiksIFwiL2Fzc2V0cy9pbWFnZXMvRWRpdC5zdmdcIiwgdGhpcy5zaG93RWRpdE1vZGFsKSlcclxuXHJcbiAgICAgIGlmICh0aGlzLnN1cnZleS50b3RhbFF1ZXN0aW9uQ291bnQgPiAwKVxyXG4gICAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRHJvcERvd25BY3Rpb25zLkRyb3Bkb3duQWN0aW9uSXRlbXMucHVzaChcclxuICAgICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0oIHRoaXMubChcIlByZXZpZXdcIiksICcvYXNzZXRzL2ltYWdlcy92aWV3cy5zdmcnLCB0aGlzLnByZXZpZXdTdXJ2ZXkpKTtcclxuICAgICAgaWYgKHRoaXMuc3VydmV5LnN0YXR1c0l0ZW1JRC50b0xvY2FsZUxvd2VyQ2FzZSgpID09IHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fUHVibGlzaGVkLnRvTG9jYWxlTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgdGhpcy5jYW5UYWtlU3VydmV5ID0gdHJ1ZVxyXG5cclxuICAgICAgaWYgKHRoaXMuc3VydmV5LnN0YXR1c0l0ZW1JRC50b0xvY2FsZUxvd2VyQ2FzZSgpID09IHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fRHJhZnQudG9Mb2NhbGVMb3dlckNhc2UoKVxyXG4gICAgICAgIHx8IHRoaXMuc3VydmV5LnN0YXR1c0l0ZW1JRC50b0xvY2FsZUxvd2VyQ2FzZSgpID09IHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fQ2xvc2VkLnRvTG9jYWxlTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuRHJvcGRvd25BY3Rpb25JdGVtcy5wdXNoKG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiUHVibGlzaFwiKSwgJy9hc3NldHMvaW1hZ2VzL1N1Ym1pdC5zdmcnLCB0aGlzLnNob3dQdWJsaXNoTW9kYWwpKVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuRHJvcGRvd25BY3Rpb25JdGVtcy5wdXNoKG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiVW5QdWJsaXNoXCIpLCAnL2Fzc2V0cy9pbWFnZXMvdW5saW5rLnN2ZycsIHRoaXMuc2hvd1VuUHVibGlzaE1vZGFsKSwpXHJcblxyXG4gICAgICB0aGlzLkVOID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUVuZ2xpc2goKTtcclxuICAgICAgdGhpcy5sb2FkUXVlc3Rpb25TZWN0aW9uKCk7XHJcbiAgICAgIHRoaXMubG9hZFN1Ym1pc3Npb25TZWN0aW9uKCk7XHJcbiAgICAgIHRoaXMucGFnZVRpdGxlID0gdGhpcy5zdXJ2ZXkubG9jYWxpemVkVGl0bGVcclxuICAgICAgdGhpcy51cGRhdGVQYWdlVGl0bGUodGhpcy5zdXJ2ZXkubG9jYWxpemVkVGl0bGUpO1xyXG4gICAgICB0aGlzLmxvYWRJbmZvID0gdHJ1ZTtcclxuXHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNob3dFZGl0TW9kYWwgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmVkaXRNb2RhbC5zaG93RWRpdE1vZGFsKHRoaXMuc3VydmV5SUQpO1xyXG4gIH1cclxuICBzaG93RGVsZXRlTW9kYWwgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93RGVsZXRlTW9kYWwodGhpcy5zdXJ2ZXlJRCk7XHJcblxyXG4gIH1cclxuICBzaG93RWRpdFF1ZXN0aW9uTW9kYWwoaWQsaXNWaWV3T25seSkge1xyXG4gICAgdGhpcy5lZGl0UXVlc3Rpb25Nb2RhbC5lZGl0TW9kYWwoaWQsIHRoaXMuc3VydmV5LmF1ZGllbmNlSXRlbUlELGlzVmlld09ubHkpO1xyXG5cclxuICB9XHJcbiAgc2hvd0FkZFF1ZXN0aW9uTW9kYWwoKSB7XHJcbiAgICB0aGlzLkFkZFF1ZXN0aW9uQ29tcG9uZW50LmFkZE1vZGFsKHRoaXMuc3VydmV5SUQsIHRoaXMuc3VydmV5LmF1ZGllbmNlSXRlbUlEKTtcclxuXHJcbiAgfVxyXG4gIHNob3dEZWxldGVRdWVzdGlvbk1vZGFsID0gKGlkKSA9PiB7XHJcbiAgICB0aGlzLmRlbGV0ZVF1ZXN0aW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dEZWxldGVNb2RhbChpZCk7XHJcblxyXG4gIH1cclxuICBzaG93UHVibGlzaE1vZGFsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5hZGRQdWJsaXNoTW9kYWwucHVibGlzaE1vZGFsKHRoaXMuc3VydmV5SUQsIHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHQpO1xyXG5cclxuICB9XHJcbiAgc2hvd1VuUHVibGlzaE1vZGFsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5hZGRVblB1Ymxpc2hNb2RhbC5zaG93Q29uZmlybWF0aW9uTW9kYWwodGhpcy5zdXJ2ZXlJRCk7XHJcblxyXG4gIH1cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0LCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHQubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHRbaW5kZXhdLmRpc3BsYXlPcmRlciA9IGluZGV4ICsgMTtcclxuICAgIH1cclxuICAgIHRoaXMuc3VydmV5UXVlc3Rpb25TZXJ2aWNlLnVwZGF0ZURpc3BsYXlPcmRlcih0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0KS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwcmV2aWV3U3VydmV5ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLi8uLi9pbmZvL3ByZXZpZXcnLCB0aGlzLnN1cnZleUlELCB0aGlzLnN1cnZleS5hdWRpZW5jZUl0ZW1JRF0sIHtyZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlfSk7XHJcbiAgfVxyXG4gIHRha2VTdXJ2ZXkgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uLy4uL2luZm8vc3VibWlzc2lvbicsIHRoaXMuc3VydmV5SURdLCB7cmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZX0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RhdHVzKHN0YXR1cykge1xyXG4gICAgdmFyIFN0YXR1c2VzID0gJyc7XHJcbiAgICBzd2l0Y2ggKHN0YXR1cy50b0xvY2FsZUxvd2VyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9EcmFmdC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIFN0YXR1c2VzID0gJ2JhZGdlLXNlY29uZGFyeSc7XHJcbiAgICAgICAgdGhpcy5jYW5FZGl0UXVlc3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2FuRGVsZXRlUXVlc3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2FuQWRkUXVlc3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fQ2xvc2VkLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgU3RhdHVzZXMgPSAnYmFkZ2UtZGFuZ2VyJztcclxuICAgICAgICB0aGlzLmNhbkVkaXRRdWVzdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2FuRGVsZXRlUXVlc3Rpb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2FuQWRkUXVlc3Rpb24gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9QdWJsaXNoZWQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICBTdGF0dXNlcyA9ICdiYWRnZS1zdWNjZXNzJztcclxuICAgICAgICB0aGlzLmNhbkVkaXRRdWVzdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2FuRGVsZXRlUXVlc3Rpb24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhbkFkZFF1ZXN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5TdXJ2ZXlTdGF0dXNFbnVtLlNjb3JpbmdUeXBlRW51bV9VcGNvbWluZy50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIFN0YXR1c2VzID0gJ2JhZGdlLXN1Y2Nlc3MnO1xyXG4gICAgICAgIHRoaXMuY2FuRWRpdFF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkRlbGV0ZVF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkFkZFF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gU3RhdHVzZXM7XHJcbiAgfVxyXG5cclxuICBsb2FkUXVlc3Rpb25TZWN0aW9uKCkge1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucyA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5OYW1lID0gXCJTZWFyY2hUZXh0Qm94XCI7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuVHJpbVRleHRPbkNoYW5nZSA9IHRydWU7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLlBsYWNlaG9sZGVyID0gdGhpcy5sKFwiU2VhcmNoXCIpO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5FeHRyYUNsYXNzZXMgPSBcImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc20gZm9ybS1jb250cm9sLXNvbGlkIHNlYXJjaC1ib3hcIjtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuSWNvbiA9IFwiLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9zZWFyY2guc3ZnXCJcclxuXHJcblxyXG5cclxuXHJcbiAgICB0aGlzLlN1cnZleUlET3B0aW9ucyA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5TdXJ2ZXlJRE9wdGlvbnMuTmFtZSA9IFwiU3VydmV5SURcIjtcclxuICAgIHRoaXMuU3VydmV5SURPcHRpb25zLlZhbHVlID0gdGhpcy5zdXJ2ZXlJRDtcclxuXHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleUlERmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuc2VhcmNoU3VydmV5SURGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gdGhpcy5TdXJ2ZXlJRE9wdGlvbnMuTmFtZTtcclxuICAgIHRoaXMuc2VhcmNoU3VydmV5SURGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwiU3VydmV5SURcIjtcclxuICAgIHRoaXMuc2VhcmNoU3VydmV5SURGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleUlERmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3g7XHJcblxyXG5cclxuXHJcbiAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uT3B0aW9ucyA9IG5ldyBQYWdpbmdPcHRpb25zKCk7XHJcbiAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uT3B0aW9ucy5QYWdlU2l6ZSA9IDEwMDA7XHJcbiAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uT3B0aW9ucy5EaXNhYmxlQmxvY2tVSSA9IHRydWU7XHJcbiAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uT3B0aW9ucy5BY3Rpb25Qb3N0VVJMID0gdGhpcy5hcGlRdWVzdGlvblVSTCArICdHZXRBbGxRdWVzdGlvbnMnO1xyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvbk9wdGlvbnMuRmlsdGVycyA9IFt0aGlzLnNlYXJjaFN1cnZleUlERmlsdGVyXTtcclxuXHJcblxyXG5cclxuICB9XHJcbiAgc2V0UXVlc3Rpb25MaXN0aW5nUmVzdWx0KHJlc3VsdCkge1xyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCA9IHJlc3VsdDtcclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHRPcmlnaW5hbCA9IHJlc3VsdDtcclxuICAgIHRoaXMuc2hvd1BhZ2VDb250ZW50ID0gdHJ1ZTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgIGxldCBvdmVydmlld1F1ZXN0aW9ucyA9IHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHRPcmlnaW5hbC5maWx0ZXIoaXRlbSA9PiBpdGVtLnF1ZXN0aW9uVHlwZUl0ZW1JRCA9PSBTdXJ2ZXlPcHRpb25UeXBlLlJhZGlvQnV0dG9uIHx8IGl0ZW0ucXVlc3Rpb25UeXBlSXRlbUlEID09IFN1cnZleU9wdGlvblR5cGUuU2luZ2xlU2VsZWN0IHx8IGl0ZW0ucXVlc3Rpb25UeXBlSXRlbUlEID09IFN1cnZleU9wdGlvblR5cGUuTXVsdGlwbGVTZWxlY3QpXHJcbiAgICBpZiAob3ZlcnZpZXdRdWVzdGlvbnMubGVuZ3RoID4gMClcclxuICAgICAgdGhpcy5sb2FkU3VydmV5T3ZlcnZpZXcoKTtcclxuICB9XHJcblxyXG5cclxuICBvblN1Y2Nlc3NIYW5kbGVyID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmRVcGRhdGVkXCIpLCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgICB0aGlzLm1hc3RlckxheW91dFNlcnZpY2UucmVsb2FkQ29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBvblN1Y2Nlc3NEZWxldGVIYW5kbGVyID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmREZWxldGVkXCIpLCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIuLi8uLi9cIl0sIHtyZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlfSk7XHJcbiAgfVxyXG5cclxuICBvblN1Y2Nlc3NBZGRRdWVzdGlvbkhhbmRsZXIgPSAoc3VjY2VzczogYW55KSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKHRoaXMubChcIlJlY29yZEFkZGVkXCIpLCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgICB0aGlzLm1hc3RlckxheW91dFNlcnZpY2UucmVsb2FkQ29tcG9uZW50KCk7XHJcbiAgfVxyXG4gIG9uU3VjY2Vzc0VkaXRRdWVzdGlvbkhhbmRsZXIgPSAoc3VjY2VzczogYW55KSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKHRoaXMubChcIlJlY29yZFVwZGF0ZWRcIiksIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgIHRoaXMubWFzdGVyTGF5b3V0U2VydmljZS5yZWxvYWRDb21wb25lbnQoKTtcclxuICB9XHJcblxyXG4gIG9uU3VjY2Vzc0RlbGV0ZVF1ZXN0aW9uSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkRGVsZXRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5tYXN0ZXJMYXlvdXRTZXJ2aWNlLnJlbG9hZENvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBzaG93RGVsZXRlU3VibWlzc2lvbk1vZGFsID0gKGlkKSA9PiB7XHJcbiAgICB0aGlzLmRlbGV0ZVN1Ym1pc3Npb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd0RlbGV0ZU1vZGFsKGlkKTtcclxuXHJcbiAgfVxyXG4gIHNob3dFbGltaW5hdGVTdWJtaXNzaW9uTW9kYWwgPSAoaWQpID0+IHtcclxuICAgIHRoaXMuZWxpbWluYXRlU3VibWlzc2lvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93RWxpbWluYXRlTW9kYWwoaWQpO1xyXG4gIH1cclxuICBzaG93VW5FbGltaW5hdGVTdWJtaXNzaW9uTW9kYWwgPSAoaWQpID0+IHtcclxuICAgIHRoaXMudW5FbGltaW5hdGVTdWJtaXNzaW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dVbkVsaW1pbmF0ZU1vZGFsKGlkKTtcclxuICB9XHJcbiAgb25TdWNjZXNzRGVsZXRlSGFuZGxlclN1Ym1pc3Npb24gPSAoc3VjY2VzczogYW55KSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKHRoaXMubChcIlJlY29yZERlbGV0ZWRcIiksIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgIHRoaXMubG9hZFN1Ym1pc3Npb25TZWN0aW9uKCk7XHJcbiAgfVxyXG4gIGxvYWRTdWJtaXNzaW9uU2VjdGlvbigpIHtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuTmFtZSA9IFwiU2VhcmNoVGV4dEJveFwiO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLlRyaW1UZXh0T25DaGFuZ2UgPSB0cnVlO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5QbGFjZWhvbGRlciA9IHRoaXMubChcIlNlYXJjaFwiKTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuRXh0cmFDbGFzc2VzID0gXCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtIGZvcm0tY29udHJvbC1zb2xpZCBzZWFyY2gtYm94XCI7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLkljb24gPSBcIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvc2VhcmNoLnN2Z1wiXHJcblxyXG4gICAgdGhpcy5zZWFyY2hTdWJtaXNzaW9uVGV4dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuTmFtZTtcclxuICAgIHRoaXMuc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwiU2VhcmNoVGV4dFwiO1xyXG4gICAgdGhpcy5zZWFyY2hTdWJtaXNzaW9uVGV4dEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveDtcclxuXHJcblxyXG4gICAgdGhpcy5TdXJ2ZXlJRE9wdGlvbnMgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuU3VydmV5SURPcHRpb25zLk5hbWUgPSBcIlN1cnZleUlEXCI7XHJcbiAgICB0aGlzLlN1cnZleUlET3B0aW9ucy5WYWx1ZSA9IHRoaXMuc3VydmV5SUQ7XHJcblxyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gdGhpcy5TdXJ2ZXlJRE9wdGlvbnMuTmFtZTtcclxuICAgIHRoaXMuc2VhcmNoU3VydmV5U3VibWlzc2lvbklERmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcIlN1cnZleUlEXCI7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VhcmNoU3VydmV5U3VibWlzc2lvbklERmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3g7XHJcblxyXG5cclxuXHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMucGFnaW5nU3VibWlzc2lvbk9wdGlvbnMuUGFnZVNpemUgPSAxMDtcclxuICAgIHRoaXMucGFnaW5nU3VibWlzc2lvbk9wdGlvbnMuRGlzYWJsZUJsb2NrVUkgPSB0cnVlO1xyXG4gICAgdGhpcy5wYWdpbmdTdWJtaXNzaW9uT3B0aW9ucy5BY3Rpb25Qb3N0VVJMID0gdGhpcy5zdXJ2ZXlTZXJ2aWNlLmFwaVVSTCArICdHZXRBbGxTdXJ2ZXlTdWJtaXNzaW9uJztcclxuICAgIHRoaXMucGFnaW5nU3VibWlzc2lvbk9wdGlvbnMuT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMgPSBbdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5OYW1lXTtcclxuICAgIHRoaXMucGFnaW5nU3VibWlzc2lvbk9wdGlvbnMuRmlsdGVycyA9IFt0aGlzLnNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlciwgdGhpcy5zZWFyY2hTdWJtaXNzaW9uVGV4dEZpbHRlcl07XHJcblxyXG5cclxuXHJcbiAgfVxyXG4gIHNldFN1Ym1pc3Npb25MaXN0aW5nUmVzdWx0KHJlc3VsdCkge1xyXG4gICAgdGhpcy5wYWdpbmdTdWJtaXNzaW9uUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5zaG93U3VibWlzc2lvblBhZ2VDb250ZW50ID0gdHJ1ZTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICB9XHJcbiAgbG9hZFN1cnZleU92ZXJ2aWV3KCkge1xyXG4gICAgdGhpcy5zdXJ2ZXlTZXJ2aWNlLmdldFN1cnZleU92ZXJ2aWV3KHRoaXMuc3VydmV5SUQpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIHRoaXMucXVlc3Rpb25PdmVydmlld1Jlc3VsdCA9IHJlcyBhcyBhbnlcclxuICAgICAgdGhpcy5zaG93T3ZlcnZpZXcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmxvYWRDaGFydCh0aGlzLnF1ZXN0aW9uT3ZlcnZpZXdSZXN1bHRbMF0pO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGV4cG9ydCA9ICgpID0+IHtcclxuICAgIHRoaXMuc3VydmV5U2VydmljZVxyXG4gICAgICAuZXhwb3J0KHRoaXMuc3VydmV5SUQpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZG93bmxvYWQoKHJlc3VsdCBhcyBhbnkpIGFzIEJsb2IsIHRoaXMucGFnZVRpdGxlICsgXCIueGxzeFwiKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hJblF1ZXN0aW9uTGlzdCh2YWx1ZSkge1xyXG4gICAgaWYgKHZhbHVlKVxyXG4gICAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0ID0gdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdE9yaWdpbmFsLmZpbHRlcihpdGVtID0+IGl0ZW0ubG9jYWxpemVkVGV4dC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlLnRvTG93ZXJDYXNlKCkpKVxyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0ID0gdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdE9yaWdpbmFsO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPCEtLXRvb2xiYXItLT5cclxuPGRpdiAqbmdJZj1cImxvYWRJbmZvXCI+XHJcbiAgPGJic2YtcGFnZS1oZWFkZXItY29tcG9uZW50IFtvcHRpb25zXT1cInBhZ2VIZWFkZXJPcHRpb25zXCI+PC9iYnNmLXBhZ2UtaGVhZGVyLWNvbXBvbmVudD5cclxuPC9kaXY+XHJcbjwhLS1lbmQgdG9vbGJhci0tPlxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyLXh4bFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpbmZvLWNvbnRhaW5lclwiICpuZ0lmPVwibG9hZEluZm9cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLW1hcmdpbi1ib3R0b21cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmVyeS1kYXRlIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1ib3hlcyBhbGlnbi1pdGVtcy1iYXNlbGluZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IG5nYlRvb2x0aXA9XCJ7e2woJ0RhdGUnKX19XCIgY2xhc3M9XCJpY29uLWJveFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzeW1ib2xcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ltYm9sLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tNFwiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2NhbGVuZGFyLnN2ZydcIj5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VydmV5LWNvdW50ZXItdGl0bGVcIiAqbmdJZj1cInN1cnZleS5zdGFydERhdGU9PW51bGxcIj5cclxuICAgICAgICAgICAgICAgIHt7bCgnTm90U3RhcnRlZFlldCcpfX1cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdXJ2ZXktY291bnRlci10aXRsZSBkLWZsZXggZmxleC1zdGFja1wiICpuZ0lmPVwic3VydmV5LnN0YXJ0RGF0ZSE9bnVsbFwiPlxyXG4gICAgICAgICAgICAgICAge3tzdXJ2ZXkuc3RhcnREYXRlIHxzdXJ2ZXlEYXRlfX0gLSB7e3N1cnZleS5lbmREYXRlIT1udWxsPyhzdXJ2ZXkuZW5kRGF0ZXxzdXJ2ZXlEYXRlKTpcIlwifX1cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHRcIiAqbmdJZj1cInN1cnZleS5lbmREYXRlPT1udWxsXCI+e3tsKCdIYXNOb0VuZCcpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0XCIgW25nQ2xhc3NdPVwiZ2V0U3RhdHVzKHN1cnZleS5zdGF0dXNJdGVtSUQpXCI+e3tzdXJ2ZXkubG9jYWxpemVkU3RhdHVzfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBuZ2JUb29sdGlwPVwie3tsKCdBdWRpZW5jZScpfX1cIiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0IG14LTJcIj57e3N1cnZleS5sb2NhbGl6ZWRBdWRpZW5jZX19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBjYXJkLWRhdGFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTZcIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggKm5nSWY9XCJjYW5UYWtlU3VydmV5JiYgKHN1cnZleS5hdWRpZW5jZUl0ZW1JRD09QXVkaWVuY2VUeXBlRW51bS5JbnRlcm5hbHx8c3VydmV5LmF1ZGllbmNlSXRlbUlEPT1BdWRpZW5jZVR5cGVFbnVtLkJvdGgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiVGV4dEJveFdpdGhJbnRlcm5hbFVSTFwiIFtncm91cF09XCJ1cmxGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNlwiPlxyXG4gICAgICAgICAgPEJCU0YtVGV4dEJveCAqbmdJZj1cImNhblRha2VTdXJ2ZXkmJiAoc3VydmV5LmF1ZGllbmNlSXRlbUlEPT1BdWRpZW5jZVR5cGVFbnVtLkV4dGVybmFsfHxzdXJ2ZXkuYXVkaWVuY2VJdGVtSUQ9PUF1ZGllbmNlVHlwZUVudW0uQm90aClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJUZXh0Qm94V2l0aEV4dGVybmFsVVJMXCIgW2dyb3VwXT1cInVybEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxwIGNsYXNzPVwiY2FyZC1kZXNjcmlwdGlvblwiICpuZ0lmPVwic3VydmV5LmxvY2FsaXplZERlc2NcIj5cclxuICAgICAgICB7e3N1cnZleS5sb2NhbGl6ZWREZXNjfX1cclxuICAgICAgPC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1tYXJnaW4tYm90dG9tXCI+XHJcbiAgICAgIDx1bCBuZ2JOYXYgI25hdj1cIm5nYk5hdlwiIGNsYXNzPVwibmF2IG5hdi1zdHJldGNoIG5hdi1saW5lLXRhYnMgbmF2LWN1c3RvbVwiPlxyXG4gICAgICAgIDxsaSBuZ2JOYXZJdGVtIGNsYXNzPVwibmF2LWl0ZW1cIiBbZGVzdHJveU9uSGlkZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgbmdiTmF2TGluaz5cclxuICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgIHt7bCgnUXVlc3Rpb25zJyl9fVxyXG4gICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWluZm9cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFicy1zZWFyY2ggcGFnZS1zdWJoZWFkZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiU2VhcmNoVGV4dEJveE9wdGlvbnNcIiBbZ3JvdXBdPVwiZmlsdGVyc1F1ZXN0aW9uRm9ybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChPbkNoYW5nZSk9XCJzZWFyY2hJblF1ZXN0aW9uTGlzdCgkZXZlbnQpXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIlN1cnZleUlET3B0aW9uc1wiIFtncm91cF09XCJmaWx0ZXJzUXVlc3Rpb25Gb3JtXCIgaGlkZGVuPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJjYW5BZGRRdWVzdGlvblwiIGNsYXNzPVwiYnRuIGJ0bi1icmFuZCBidG4tc20gc3ViaGVhZGVyLWJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93QWRkUXVlc3Rpb25Nb2RhbCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7bCgnQWRkJyl9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBbaGlkZGVuXT1cInBhZ2luZ1F1ZXN0aW9uUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYk5hdkNvbnRlbnQgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9uLWluZm9cIiBbY2RrRHJhZ0Rpc2FibGVkXT1cImNhblRha2VTdXJ2ZXlcIiBjZGtEcmFnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFnaW5nUXVlc3Rpb25SZXN1bHQ7IGxldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtMjVweCBtZS00XCIgY2RrRHJhZ0hhbmRsZSAqbmdJZj1cIiFjYW5UYWtlU3VydmV5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbC1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTdcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9yZW9yZGVyLnN2ZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtbGlzdGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cInt7bCgnVHlwZScpfX1cIj57e2l0ZW0ubG9jYWxpemVkUXVlc3Rpb25UeXBlSXRlbX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQgbXgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cInt7bCgnQXVkaWVuY2UnKX19XCI+e3tpdGVtLmxvY2FsaXplZEF1ZGllbmNlVHlwZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtYnJhbmQtbGlnaHQgbXgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb25cIj57e2woJ0xpbmtlZCcpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodCBteC0yXCIgKm5nSWY9XCIhaXRlbS5pc1Zpc2libGVcIiBuZ2JUb29sdGlwPVwie3tsKCdOb3RWaXNpYmxlJyl9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tsKFwiTm90VmlzaWJsZVwiKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiIGNsYXNzPVwiZHJvcGRvd24tY3VzdG9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwiRU4gPyAnYm90dG9tLXJpZ2h0JyA6ICdib3R0b20tbGVmdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZHJvcGRvd24tdG9nZ2xlLWN1c3RvbSBidG4gYnRuLWNsZWFyXCIgbmdiRHJvcGRvd25Ub2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2NhcmQtZHJvcGRvd24uc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgY2xhc3M9XCJkcm9wZG93bi1tZW51LWN1c3RvbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIShjYW5FZGl0UXVlc3Rpb24mJmNhbkRlbGV0ZVF1ZXN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dFZGl0UXVlc3Rpb25Nb2RhbChpdGVtLmlEX0dVSUQsdHJ1ZSlcIiBhcHBwcmV2ZW50ZG91YmxlY2xpY2sgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25JdGVtIGNsYXNzPVwiZHJvcGRvd24tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvaW5mby5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7bChcIkRldGFpbHNcIil9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjYW5FZGl0UXVlc3Rpb25cIiAoY2xpY2spPVwic2hvd0VkaXRRdWVzdGlvbk1vZGFsKGl0ZW0uaURfR1VJRCxmYWxzZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHByZXZlbnRkb3VibGVjbGljayB0eXBlPVwiYnV0dG9uXCIgbmdiRHJvcGRvd25JdGVtIGNsYXNzPVwiZHJvcGRvd24tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvRWRpdC5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7bChcIkVkaXRcIil9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJjYW5EZWxldGVRdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dEZWxldGVRdWVzdGlvbk1vZGFsKGl0ZW0uaURfR1VJRClcIiBhcHBwcmV2ZW50ZG91YmxlY2xpY2sgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL1RyYXNoLnN2ZydcIj48L3NwYW4+IHt7bChcIkRlbGV0ZVwiKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktY291bnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VydmV5LWNvdW50ZXItdGl0bGVcIj57e2l0ZW0ubG9jYWxpemVkVGV4dH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtYnJhbmQgYmFkZ2Utc3F1YXJlIG1zLTIgbWUtMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cInt7bCgnU2NvcmUnKX19XCI+e3tpdGVtLnRvdGFsU2NvcmV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0UXVlc3Rpb25MaXN0aW5nUmVzdWx0KCRldmVudClcIiBbb3B0aW9uc109XCJwYWdpbmdRdWVzdGlvbk9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtncm91cF09XCJmaWx0ZXJzUXVlc3Rpb25Gb3JtXCIgI3BhZ2luZ1F1ZXN0aW9uVmlld0VsZW1lbnQ+PC9CQlNGLVBhZ2luZz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtbm8tcmVzdWx0cyAqbmdJZj1cInBhZ2luZ1F1ZXN0aW9uUmVzdWx0Lmxlbmd0aCA9PSAwXCI+PC9hcHAtbm8tcmVzdWx0cz5cclxuXHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpIG5nYk5hdkl0ZW0gY2xhc3M9XCJuYXYtaXRlbVwiIFtkZXN0cm95T25IaWRlXT1cInRydWVcIj5cclxuICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBuZ2JOYXZMaW5rPlxyXG4gICAgICAgICAgICA8aDQ+XHJcbiAgICAgICAgICAgICAge3tsKCdTdWJtaXNzaW9ucycpfX1cclxuICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1pbmZvXCIgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFicy1zZWFyY2ggcGFnZS1zdWJoZWFkZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiU2VhcmNoVGV4dEJveE9wdGlvbnNcIiBbZ3JvdXBdPVwiZmlsdGVyc1N1Ym1pc3Npb25Gb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIlN1cnZleUlET3B0aW9uc1wiIFtncm91cF09XCJmaWx0ZXJzU3VibWlzc2lvbkZvcm1cIiBoaWRkZW4+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tY29udGFpbmVyXCIgW2hpZGRlbl09XCJwYWdpbmdTdWJtaXNzaW9uUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1jdXN0b21cIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPiB7e2woJ05hbWUnKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7bCgnRW1haWwnKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7bCgnVHlwZScpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3tsKCdDcmVhdGVkJyl9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57e2woJ1Njb3JlJyl9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInRhYmxlLWFjdGlvblwiPnt7bChcIkFjdGlvblwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJ0YWJsZS1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFnaW5nU3VibWlzc2lvblJlc3VsdDsgbGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGluZS1jbGFtcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0ubG9jYWxpemVkTmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWRhbmdlciBteC0yXCIgKm5nSWY9XCJpdGVtLmlzRWxpbWluYXRlZCYmaXRlbS5hbGxvd0VsaW1pbmF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7bCgnRWxpbWluYXRlZCcpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uZW1haWx9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uaXNJbnRlcm5hbFVzZXI/IGwoJ0ludGVybmFsVXNlcnMnKTpsKCdFeHRlcm5hbFVzZXJzJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tpdGVtLmNyZWF0ZWR8c3VydmV5RGF0ZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7aXRlbS50b3RhbFNjb3JlfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ0YWJsZS1hY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuZ2JUb29sdGlwPVwie3tsKCdQcmV2aWV3Jyl9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy4uLy4uL2luZm8vcmVzdWx0JywgaXRlbS5pRF9HVUlEXVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9hbnN3ZXJzLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiIWl0ZW0uaXNFbGltaW5hdGVkJiZpdGVtLmFsbG93RWxpbWluYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcD1cInt7dGhpcy5sKCdFbGltaW5hdGVIaW50Jyl9fVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIChjbGljayk9XCJzaG93RWxpbWluYXRlU3VibWlzc2lvbk1vZGFsKGl0ZW0uaURfR1VJRClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcHJldmVudGRvdWJsZWNsaWNrXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy91bmxpbmsuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJpdGVtLmlzRWxpbWluYXRlZCYmaXRlbS5hbGxvd0VsaW1pbmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7e3RoaXMubCgnVW5FbGltaW5hdGUnKX19XCIgY2xhc3M9XCJidG4gYnRuLXNtIHAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgKGNsaWNrKT1cInNob3dVbkVsaW1pbmF0ZVN1Ym1pc3Npb25Nb2RhbChpdGVtLmlEX0dVSUQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHByZXZlbnRkb3VibGVjbGljayBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9saW5rLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG5nYlRvb2x0aXA9XCJ7e2woJ0RlbGV0ZScpfX1cIiBjbGFzcz1cImJ0biBidG4tc20gcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIiAoY2xpY2spPVwic2hvd0RlbGV0ZVN1Ym1pc3Npb25Nb2RhbChpdGVtLmlEX0dVSUQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHByZXZlbnRkb3VibGVjbGljayBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9UcmFzaC5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRTdWJtaXNzaW9uTGlzdGluZ1Jlc3VsdCgkZXZlbnQpXCIgW29wdGlvbnNdPVwicGFnaW5nU3VibWlzc2lvbk9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JvdXBdPVwiZmlsdGVyc1N1Ym1pc3Npb25Gb3JtXCIgI3BhZ2luZ1N1Ym1pc3Npb25WaWV3RWxlbWVudD48L0JCU0YtUGFnaW5nPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGFwcC1uby1yZXN1bHRzICpuZ0lmPVwicGFnaW5nU3VibWlzc2lvblJlc3VsdC5sZW5ndGggPT0gMFwiPjwvYXBwLW5vLXJlc3VsdHM+XHJcblxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBuZ2JOYXZJdGVtIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdJZj1cInNob3dPdmVydmlld1wiIFtkZXN0cm95T25IaWRlXT1cInRydWVcIj5cclxuICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBuZ2JOYXZMaW5rIChjbGljayk9XCJsb2FkU3VydmV5T3ZlcnZpZXcoKVwiPlxyXG4gICAgICAgICAgICA8aDQ+XHJcbiAgICAgICAgICAgICAge3tsKFwiT3ZlcnZpZXdcIikgfX1cclxuICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1pbmZvXCIgbmdiTmF2Q29udGVudD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtdGl0bGVcIj4ge3tsKFwiUXVlc3Rpb25zXCIpIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHVsIG5nYk5hdiAjbmF2PVwibmdiTmF2XCIgY2xhc3M9XCJuYXYtcGlsbHMgY3VzdG9tLW5hdnNcIiBvcmllbnRhdGlvbj1cInZlcnRpY2FsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGkgbmdiTmF2SXRlbT1cInt7aXRlbS5sb2NhbGl6ZWRUaXRsZX19XCIgW2Rlc3Ryb3lPbkhpZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb25PdmVydmlld1Jlc3VsdFwiIChjbGljayk9XCJsb2FkQ2hhcnQoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgbmdiTmF2TGluaz57e2l0ZW0ubG9jYWxpemVkVGl0bGV9fTwvYT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtdGl0bGVcIj57e2woXCJPdmVydmlld1wiKSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaGFydGRpdlwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogNDAwcHhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZS1sb2dvXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LXRpdGxlXCI+e3tsKFwiU2NvcmVcIikgfX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cImNoYXJ0T3ZlcnZpZXdcIiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDQwMHB4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhpZGUtbG9nb1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuXHJcblxyXG4gICAgICA8ZGl2IFtuZ2JOYXZPdXRsZXRdPVwibmF2XCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4gIDxhcHAtZWRpdC1zdXJ2ZXkgI2VkaXRNb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdFbGVtZW50XCIgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzSGFuZGxlclwiPjwvYXBwLWVkaXQtc3VydmV5PlxyXG4gIDxhcHAtZGVsZXRlLXN1cnZleSAjZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ0VsZW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NEZWxldGVIYW5kbGVyXCI+PC9hcHAtZGVsZXRlLXN1cnZleT5cclxuICA8YXBwLWFkZC1xdWVzdGlvbiAjYWRkUXVlc3Rpb25Nb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdRdWVzdGlvbkVsZW1lbnRcIiBbb25TdWNjZXNzQWRkSGFuZGxlcl09XCJvblN1Y2Nlc3NBZGRRdWVzdGlvbkhhbmRsZXJcIj48L2FwcC1hZGQtcXVlc3Rpb24+XHJcbiAgPGFwcC1lZGl0LXF1ZXN0aW9uICNlZGl0UXVlc3Rpb25Nb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdRdWVzdGlvbkVsZW1lbnRcIiBbb25TdWNjZXNzRWRpdEhhbmRsZXJdPVwib25TdWNjZXNzRWRpdFF1ZXN0aW9uSGFuZGxlclwiPjwvYXBwLWVkaXQtcXVlc3Rpb24+XHJcbiAgPGFwcC1kZWxldGUtcXVlc3Rpb24gI2RlbGV0ZVF1ZXN0aW9uTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nUXVlc3Rpb25FbGVtZW50XCIgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzRGVsZXRlUXVlc3Rpb25IYW5kbGVyXCI+PC9hcHAtZGVsZXRlLXF1ZXN0aW9uPlxyXG4gIDxhcHAtcHVibGlzaC1zdXJ2ZXkgI2FkZFB1Ymxpc2hNb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdFbGVtZW50XCIgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzSGFuZGxlclwiICpuZ0lmPVwibG9hZEluZm9cIiBbc2hvd1RvZ2dsZV09XCJzdXJ2ZXkuaXNTaG93VG9nZ2xlT2ZTY29yZVJlc3VsdEFmdGVyU3VibWlzc2lvblwiPlxyXG4gIDwvYXBwLXB1Ymxpc2gtc3VydmV5PlxyXG4gIDxhcHAtdW5wdWJsaXNoLXN1cnZleSAjYWRkVW5QdWJsaXNoTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nRWxlbWVudFwiIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0hhbmRsZXJcIj5cclxuICA8L2FwcC11bnB1Ymxpc2gtc3VydmV5PlxyXG4gIDxhcHAtZGVsZXRlLXN1Ym1pc3Npb24gI2RlbGV0ZVN1Ym1pc3Npb25Nb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdTdWJtaXNzaW9uRWxlbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NEZWxldGVIYW5kbGVyU3VibWlzc2lvblwiPjwvYXBwLWRlbGV0ZS1zdWJtaXNzaW9uPlxyXG4gIDxhcHAtZWxpbWluYXRlLXN1Ym1pc3Npb24gI2VsaW1pbmF0ZU1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ1N1Ym1pc3Npb25FbGVtZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0hhbmRsZXJcIj48L2FwcC1lbGltaW5hdGUtc3VibWlzc2lvbj5cclxuICA8YXBwLXVuRWxpbWluYXRlLXN1Ym1pc3Npb24gI3VuRWxpbWluYXRlTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nU3VibWlzc2lvbkVsZW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NIYW5kbGVyXCI+PC9hcHAtdW5FbGltaW5hdGUtc3VibWlzc2lvbj5cclxuIl19
|
|
@@ -28110,6 +28110,7 @@ class SurveyInfoComponent extends AppBaseComponent {
|
|
|
28110
28110
|
let yAxis = chart.yAxes.push(am5xy.ValueAxis.new(root, {
|
|
28111
28111
|
baseValue: 0,
|
|
28112
28112
|
maxPrecision: 0,
|
|
28113
|
+
min: 0,
|
|
28113
28114
|
extraTooltipPrecision: 100,
|
|
28114
28115
|
renderer: am5xy.AxisRendererY.new(root, {})
|
|
28115
28116
|
}));
|
|
@@ -28164,7 +28165,7 @@ class SurveyInfoComponent extends AppBaseComponent {
|
|
|
28164
28165
|
if (Object.prototype.hasOwnProperty.call(item.results, key)) {
|
|
28165
28166
|
const value = item.results[key];
|
|
28166
28167
|
let object = {
|
|
28167
|
-
category: "
|
|
28168
|
+
category: "<=" + key,
|
|
28168
28169
|
value: value
|
|
28169
28170
|
};
|
|
28170
28171
|
data.push(object);
|
|
@@ -28174,6 +28175,7 @@ class SurveyInfoComponent extends AppBaseComponent {
|
|
|
28174
28175
|
let yAxis = chart.yAxes.push(am5xy.ValueAxis.new(root, {
|
|
28175
28176
|
baseValue: 0,
|
|
28176
28177
|
maxPrecision: 0,
|
|
28178
|
+
min: 0,
|
|
28177
28179
|
extraTooltipPrecision: 100,
|
|
28178
28180
|
renderer: am5xy.AxisRendererY.new(root, {})
|
|
28179
28181
|
}));
|