@cqa-lib/cqa-ui 1.1.361 → 1.1.363

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.
Files changed (24) hide show
  1. package/esm2020/lib/execution-screen/ai-action-step/ai-action-step.component.mjs +3 -1
  2. package/esm2020/lib/execution-screen/api-step/api-step.component.mjs +3 -2
  3. package/esm2020/lib/execution-screen/basic-step/basic-step.component.mjs +5 -2
  4. package/esm2020/lib/execution-screen/condition-step/condition-step.component.mjs +5 -2
  5. package/esm2020/lib/execution-screen/db-verification-step/db-verification-step.component.mjs +2 -2
  6. package/esm2020/lib/execution-screen/document-verification-step/document-verification-step.component.mjs +4 -1
  7. package/esm2020/lib/execution-screen/live-execution-step/live-execution-step.component.mjs +4 -1
  8. package/esm2020/lib/execution-screen/loop-step/loop-step.component.mjs +21 -4
  9. package/esm2020/lib/execution-screen/step-group/step-group.component.mjs +9 -4
  10. package/esm2020/lib/execution-screen/step-renderer/step-renderer.component.mjs +46 -9
  11. package/esm2020/lib/step-builder/step-builder-action/step-builder-action.component.mjs +29 -4
  12. package/esm2020/lib/step-builder/step-builder-condition/step-builder-condition.component.mjs +1 -1
  13. package/esm2020/lib/step-builder/step-builder-loop/step-builder-loop.component.mjs +121 -11
  14. package/esm2020/lib/step-builder/template-variables-form/template-variables-form.component.mjs +21 -6
  15. package/fesm2015/cqa-lib-cqa-ui.mjs +272 -43
  16. package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
  17. package/fesm2020/cqa-lib-cqa-ui.mjs +255 -31
  18. package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
  19. package/lib/execution-screen/loop-step/loop-step.component.d.ts +4 -1
  20. package/lib/execution-screen/step-renderer/step-renderer.component.d.ts +3 -1
  21. package/lib/step-builder/step-builder-action/step-builder-action.component.d.ts +7 -1
  22. package/lib/step-builder/step-builder-loop/step-builder-loop.component.d.ts +23 -1
  23. package/lib/step-builder/template-variables-form/template-variables-form.component.d.ts +2 -1
  24. package/package.json +1 -1
@@ -73,6 +73,9 @@ export class DocumentVerificationStepComponent extends BaseStepComponent {
73
73
  this.config.expanded = this.expanded;
74
74
  }
75
75
  }
76
+ if (changes['stepNumber'] && this.config) {
77
+ this.config.stepNumber = changes['stepNumber'].currentValue;
78
+ }
76
79
  }
77
80
  onDebugPointClick(event) {
78
81
  event.preventDefault();
@@ -158,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
158
161
  }], stepMoreMenuOptions: [{
159
162
  type: Input
160
163
  }] } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmVyaWZpY2F0aW9uLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQXFILDZCQUE2QixFQUFzQiw4QkFBOEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hQLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBUTNELE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxpQkFBaUI7SUFOeEU7O1FBa0NXLFlBQU8sR0FBYSxLQUFLLENBQUM7UUFDMUIsa0JBQWEsR0FBYSxLQUFLLENBQUM7UUFDaEMsa0JBQWEsR0FBYSxLQUFLLENBQUM7UUFDL0IscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMvQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNwQyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUM1RCx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUMvRCx1QkFBa0IsR0FBd0IsNkJBQTZCLENBQUM7UUFDeEUsd0JBQW1CLEdBQXlCLDhCQUE4QixDQUFDO0tBNEZyRjtJQW5IQyxJQUFJLFVBQVU7UUFDWixNQUFNLEtBQUssR0FBRyxJ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QUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDO1lBQ3pDLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7YUFDcEQ7U0FDRjtJQUNILENBQUM7OzhIQS9IVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyw2MEJDVjlDLHNxb0JBME9BOzJGRGhPYSxpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0UsZ0NBQWdDLFFBR3BDLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFOzhCQUloQyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBZUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudFZlcmlmaWNhdGlvblN0ZXBDb25maWcsIEV4dHJhY3RlZEZpZWxkLCBWZXJpZmljYXRpb25DaGVjaywgU3RlcFN0YXR1cywgVGltaW5nQnJlYWtkb3duLCBBZGRTdGVwTWVudU9wdGlvbiwgREVGQVVMVF9BRERfU1RFUF9NRU5VX09QVElPTlMsIFN0ZXBNb3JlTWVudU9wdGlvbiwgREVGQVVMVF9TVEVQX01PUkVfTUVOVV9PUFRJT05TIH0gZnJvbSAnLi4vZXhlY3V0aW9uLXN0ZXAubW9kZWxzJztcbmltcG9ydCB7IEJhc2VTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1zdGVwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCBjcWEtdy1mdWxsJyB9XG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbXBvbmVudCBleHRlbmRzIEJhc2VTdGVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvLyBJbmRpdmlkdWFsIGlucHV0c1xuICBASW5wdXQoKSBpZCE6IHN0cmluZztcbiAgQElucHV0KCkgc3RlcE51bWJlciE6IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0YXR1cyE6IFN0ZXBTdGF0dXM7XG4gIEBJbnB1dCgpIGR1cmF0aW9uITogbnVtYmVyO1xuICBASW5wdXQoKSB0aW1pbmdCcmVha2Rvd24/OiBUaW1pbmdCcmVha2Rvd247XG4gIEBJbnB1dCgpIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgZG9jdW1lbnRTY3JlZW5zaG90Pzogc3RyaW5nO1xuICBASW5wdXQoKSBleHRyYWN0ZWRGaWVsZHMhOiBFeHRyYWN0ZWRGaWVsZFtdO1xuICBASW5wdXQoKSB2ZXJpZmljYXRpb25DaGVja3MhOiBWZXJpZmljYXRpb25DaGVja1tdO1xuICBASW5wdXQoKSBzdGVwPzogYW55O1xuICBnZXQgc3RlcEJhZGdlcygpOiAoJ3NraXBwZWQnIHwgJ2VkaXRlZCcgfCAnYWRkZWQnIHwgJ3JlbW92ZWQnKVtdIHtcbiAgICBjb25zdCBiYWRnZSA9IHRoaXMuc3RlcD8uc3RlcEJhZGdlO1xuICAgIGlmICghYmFkZ2UpIHJldHVybiBbXTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShiYWRnZSkgPyBiYWRnZSA6IFtiYWRnZV07XG4gIH1cblxuICBnZXQgaXNTa2lwcGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0ZXBCYWRnZXMuaW5jbHVkZXMoJ3NraXBwZWQnKTtcbiAgfVxuXG4gIGdldCBpc1N0ZXBEZWxldGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0ZXBCYWRnZXMuaW5jbHVkZXMoJ3JlbW92ZWQnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGp1bXBUb1RpbWVzdGFtcEhhbmRsZXI/OiAodGltZXN0YW1wOiBudW1iZXIsIHRlc3RTdGVwSWQ/OiBudW1iZXIgfCBzdHJpbmcpID0+IHZvaWQ7XG4gIEBJbnB1dCgpIGlzRGVidWc/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRlYnVnUG9pbnRTZXQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBhcmVudFNraXBwZWQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBkZWJ1Z1BvaW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgZWRpdFN0ZXAgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBhZGRTdGVwT3B0aW9uU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxBZGRTdGVwTWVudU9wdGlvbj4oKTtcbiAgQE91dHB1dCgpIHN0ZXBNb3JlT3B0aW9uU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTdGVwTW9yZU1lbnVPcHRpb24+KCk7XG4gIEBJbnB1dCgpIGFkZFN0ZXBNZW51T3B0aW9uczogQWRkU3RlcE1lbnVPcHRpb25bXSA9IERFRkFVTFRfQUREX1NURVBfTUVOVV9PUFRJT05TO1xuICBASW5wdXQoKSBzdGVwTW9yZU1lbnVPcHRpb25zOiBTdGVwTW9yZU1lbnVPcHRpb25bXSA9IERFRkFVTFRfU1RFUF9NT1JFX01FTlVfT1BUSU9OUztcblxuICAvKiogU2hvdyBkZWJ1ZyBpY29uIG9ubHkgd2hlbiB0aGlzIHN0ZXAgaGFzIG5vIGNoaWxkIHN0ZXBzIChsZWFmIHN0ZXA6IGFsd2F5cyBzaG93IHdoZW4gaXNEZWJ1ZykuICovXG4gIGdldCBzaG93RGVidWdJY29uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRGVidWcgPT09IHRydWU7XG4gIH1cblxuICAvKiogUGVyLXN0ZXAgZmlsdGVyZWQgdGhyZWUtZG90IG1lbnUgb3B0aW9ucyAoZS5nLiBoaWRlIER1cGxpY2F0ZS9EZWxldGUgZm9yIHN0ZXAtZ3JvdXAgY2hpbGRyZW4pLiAqL1xuICBnZXQgZWZmZWN0aXZlU3RlcE1vcmVNZW51T3B0aW9ucygpOiBTdGVwTW9yZU1lbnVPcHRpb25bXSB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuc3RlcE1vcmVNZW51T3B0aW9ucyB8fCBbXTtcbiAgICBjb25zdCBzdGVwUmVmOiBhbnkgPSB0aGlzLnN0ZXA7XG4gICAgaWYgKCFzdGVwUmVmKSByZXR1cm4gYmFzZTtcblxuICAgIGNvbnN0IGlzR3JvdXBDaGlsZCA9ICEhc3RlcFJlZi5pc1N0ZXBHcm91cENoaWxkcmVuO1xuICAgIC8vIFdoZW4gc3RlcC5zdGVwTW9yZU1lbnVPcHRpb25zIGlzIHRydXRoeSBPUiBzdGVwIGlzIGEgc3RlcC1ncm91cCBjaGlsZCwgaGlkZSBtdXRhdGluZyBpdGVtc1xuICAgIGNvbnN0IHN1cHByZXNzTXV0YXRpbmcgPSAhIXN0ZXBSZWYuc3RlcE1vcmVNZW51T3B0aW9ucyB8fCBpc0dyb3VwQ2hpbGQ7XG4gICAgaWYgKCFzdXBwcmVzc011dGF0aW5nKSByZXR1cm4gYmFzZTtcblxuICAgIHJldHVybiBiYXNlLmZpbHRlcihvcHQgPT4gb3B0LmlkICE9PSAnZHVwbGljYXRlJyAmJiBvcHQuaWQgIT09ICdkZWxldGUnKTtcbiAgfVxuXG4gIC8vIENvbmZpZyBwcm9wZXJ0eSBmb3IgYmFzZSBjbGFzcyAtIGJ1aWx0IGZyb20gaW5kaXZpZHVhbCBpbnB1dHMgaW4gbmdPbkluaXRcbiAgb3ZlcnJpZGUgY29uZmlnITogRG9jdW1lbnRWZXJpZmljYXRpb25TdGVwQ29uZmlnO1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEJ1aWxkIGNvbmZpZyBmcm9tIGluZGl2aWR1YWwgaW5wdXRzXG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIHN0ZXBOdW1iZXI6IHRoaXMuc3RlcE51bWJlcixcbiAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgIGR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uLFxuICAgICAgZGlzcGxheVR5cGU6ICdkb2N1bWVudC12ZXJpZmljYXRpb24nLFxuICAgICAgZG9jdW1lbnRTY3JlZW5zaG90OiB0aGlzLmRvY3VtZW50U2NyZWVuc2hvdCxcbiAgICAgIGV4dHJhY3RlZEZpZWxkczogdGhpcy5leHRyYWN0ZWRGaWVsZHMsXG4gICAgICB2ZXJpZmljYXRpb25DaGVja3M6IHRoaXMudmVyaWZpY2F0aW9uQ2hlY2tzLFxuICAgICAgdGltaW5nQnJlYWtkb3duOiB0aGlzLnRpbWluZ0JyZWFrZG93bixcbiAgICAgIGV4cGFuZGVkOiB0aGlzLmV4cGFuZGVkLFxuICAgIH0gYXMgRG9jdW1lbnRWZXJpZmljYXRpb25TdGVwQ29uZmlnO1xuXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZXhwYW5kZWQnXSAmJiB0aGlzLmV4cGFuZGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWQ7XG4gICAgICBpZiAodGhpcy5jb25maWcpIHtcbiAgICAgICAgdGhpcy5jb25maWcuZXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uRGVidWdQb2ludENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5kZWJ1Z1BvaW50Q2hhbmdlLmVtaXQoIXRoaXMuZGVidWdQb2ludFNldCk7XG4gIH1cblxuICBjb3B5VG9DbGlwYm9hcmQodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCkudGhlbigoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnQ29waWVkIHRvIGNsaXBib2FyZDonLCB0ZXh0KTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uRWRpdFN0ZXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmVkaXRTdGVwLmVtaXQoKTtcbiAgfVxuXG4gIG9uQWRkU3RlcE9wdGlvblNlbGVjdChvcHRpb246IEFkZFN0ZXBNZW51T3B0aW9uLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuYWRkU3RlcE9wdGlvblNlbGVjdC5lbWl0KG9wdGlvbik7XG4gIH1cblxuICBvblN0ZXBNb3JlT3B0aW9uU2VsZWN0KG9wdGlvbjogU3RlcE1vcmVNZW51T3B0aW9uLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc3RlcE1vcmVPcHRpb25TZWxlY3QuZW1pdChvcHRpb24pO1xuICB9XG5cbiAgb25KdW1wVG9UaW1lc3RhbXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuanVtcFRvVGltZXN0YW1wSGFuZGxlciAmJiB0aGlzLnN0ZXA/LmV4ZWN1dGVkUmVzdWx0Py52aWRlb19zdGFydF90aW1lICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zdGVwPy5leGVjdXRlZFJlc3VsdD8udmlkZW9fc3RhcnRfdGltZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdGltZXN0YW1wID0gdHlwZW9mIHRoaXMuc3RlcC5leGVjdXRlZFJlc3VsdC52aWRlb19zdGFydF90aW1lID09PSAnbnVtYmVyJyBcbiAgICAgICAgPyB0aGlzLnN0ZXAuZXhlY3V0ZWRSZXN1bHQudmlkZW9fc3RhcnRfdGltZSBcbiAgICAgICAgOiBOdW1iZXIodGhpcy5zdGVwLmV4ZWN1dGVkUmVzdWx0LnZpZGVvX3N0YXJ0X3RpbWUpO1xuICAgICAgY29uc3QgdGVzdFN0ZXBJZCA9IHRoaXMuc3RlcD8udGVzdFN0ZXBJZDtcbiAgICAgIGlmIChpc0Zpbml0ZSh0aW1lc3RhbXApICYmIHRpbWVzdGFtcCA+PSAwKSB7XG4gICAgICAgIHRoaXMuanVtcFRvVGltZXN0YW1wSGFuZGxlcih0aW1lc3RhbXAsIHRlc3RTdGVwSWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNxYS13LWZ1bGxcIiBbY2xhc3MuY3FhLW9wYWNpdHktNTBdPVwiaXNEZWJ1ZyAmJiBpc1NraXBwZWQgJiYgIXBhcmVudFNraXBwZWRcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCIhaXNEZWJ1ZyA/IG51bGwgOiBjb25maWcuc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdwYXVzZWQnID8gJyNGRkY5RTknIDogY29uZmlnLnN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnZmFpbGVkJyA/ICcjRkVGMkYyJyA6IG51bGxcIj5cbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1wLTIgY3FhLWN1cnNvci1wb2ludGVyXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlYnVnSWNvblwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIlxuICAgICAgW21hdFRvb2x0aXBdPVwic3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdydW5uaW5nJyA/ICdCcmVha3BvaW50IGNhbm5vdCBiZSBzZXQgb24gYSBydW5uaW5nIHN0ZXAnIDogKGlzU3RlcERlbGV0ZWQgPyAnQnJlYWtwb2ludCBjYW5ub3QgYmUgc2V0IG9uIGRlbGV0ZWQgc3RlcHMnIDogKCghIXBhcmVudFNraXBwZWQgJiYgIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCkgPyAnQnJlYWtwb2ludCBjYW5ub3QgYmUgc2V0IG9uIGEgcnVubmluZyBzdGVwJyA6ICghIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCA/ICdCcmVha3BvaW50IGNhbm5vdCBiZSBzZXQgb24gc2tpcHBlZCBzdGVwcycgOiAnJykpKVwiXG4gICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjcWEtcC0wIGNxYS1ib3JkZXItMCBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLXJvdW5kZWQtZnVsbCBjcWEtdHJhbnNpdGlvbi1vcGFjaXR5IGZvY3VzOmNxYS1vdXRsaW5lLW5vbmVcIlxuICAgICAgICBbbmdDbGFzc109XCJzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3J1bm5pbmcnIHx8ICEhc3RlcD8uZGVidWdQb2ludERpc2FibGVkIHx8ICEhcGFyZW50U2tpcHBlZCB8fCBpc1N0ZXBEZWxldGVkID8gJ2NxYS1jdXJzb3Itbm90LWFsbG93ZWQgY3FhLW9wYWNpdHktNDAgY3FhLXBvaW50ZXItZXZlbnRzLW5vbmUnIDogJ2NxYS1jdXJzb3ItcG9pbnRlciBob3ZlcjpjcWEtb3BhY2l0eS04MCdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwic3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdydW5uaW5nJyB8fCAhIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCB8fCAhIXBhcmVudFNraXBwZWQgfHwgaXNTdGVwRGVsZXRlZFwiXG4gICAgICAgIChjbGljayk9XCJvbkRlYnVnUG9pbnRDbGljaygkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJkZWJ1Z1BvaW50U2V0ID8gJ1JlbW92ZSBkZWJ1ZyBwb2ludCcgOiAnU2V0IGRlYnVnIHBvaW50J1wiPlxuICAgICAgICA8c3ZnICpuZ0lmPVwiZGVidWdQb2ludFNldFwiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8Y2lyY2xlIGN4PVwiN1wiIGN5PVwiN1wiIHI9XCI2XCIgW2F0dHIuZmlsbF09XCIhIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCB8fCAhIXBhcmVudFNraXBwZWQgfHwgaXNTdGVwRGVsZXRlZCA/ICcjOUU5RTlFJyA6ICcjQzYzNTM1J1wiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICAgIDxzdmcgKm5nSWY9XCIhZGVidWdQb2ludFNldFwiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8Y2lyY2xlIGN4PVwiN1wiIGN5PVwiN1wiIHI9XCI2XCIgW2F0dHIuc3Ryb2tlXT1cIiEhc3RlcD8uZGVidWdQb2ludERpc2FibGVkIHx8ICEhcGFyZW50U2tpcHBlZCB8fCBpc1N0ZXBEZWxldGVkID8gJyM5RTlFOUUnIDogJyNDNjM1MzUnXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgZmlsbD1cIm5vbmVcIi8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTdGF0dXMgSWNvbiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnLnN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnc3VjY2VzcydcIiA+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMC45MDA1IDQuOTk5OTlDMTEuMTI4OSA2LjEyMDY0IDEwLjk2NjIgNy4yODU3MSAxMC40Mzk1IDguMzAwODlDOS45MTI3OSA5LjMxNjA4IDkuMDU0IDEwLjEyIDguMDA2MzEgMTAuNTc4N0M2Ljk1ODYyIDExLjAzNzMgNS43ODUzNiAxMS4xMjI5IDQuNjgyMiAxMC44MjEyQzMuNTc5MDQgMTAuNTE5NSAyLjYxMjY1IDkuODQ4NjkgMS45NDQxOSA4LjkyMDcxQzEuMjc1NzMgNy45OTI3MiAwLjk0NTYxMSA2Ljg2MzYxIDEuMDA4ODggNS43MjE2OUMxLjA3MjE1IDQuNTc5NzYgMS41MjQ5OSAzLjQ5NDA0IDIuMjkxODggMi42NDU1OEMzLjA1ODc2IDEuNzk3MTIgNC4wOTMzNCAxLjIzNzIxIDUuMjIzMDggMS4wNTkyMkM2LjM1MjgyIDAuODgxMjMzIDcuNTA5NDQgMS4wOTU5MiA4LjUwMDA1IDEuNjY3NDlcIiBzdHJva2U9XCIjMjJDNTVFXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC41IDUuNUw2IDdMMTEgMlwiIHN0cm9rZT1cIiMyMkM1NUVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbmZpZy5zdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWx1cmUnXCI+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02IDExQzguNzYxNDIgMTEgMTEgOC43NjE0MiAxMSA2QzExIDMuMjM4NTggOC43NjE0MiAxIDYgMUMzLjIzODU4IDEgMSAzLjIzODU4IDEgNkMxIDguNzYxNDIgMy4yMzg1OCAxMSA2IDExWlwiIHN0cm9rZT1cIiNEQzI2MjZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk03LjUgNC41TDQuNSA3LjVcIiBzdHJva2U9XCIjREMyNjI2XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC41IDQuNUw3LjUgNy41XCIgc3Ryb2tlPVwiI0RDMjYyNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnLnN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncGF1c2VkJ1wiPjxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNOC41IDJINy41QzcuMjIzODYgMiA3IDIuMjIzODYgNyAyLjVWOS41QzcgOS43NzYxNCA3LjIyMzg2IDEwIDcuNSAxMEg4LjVDOC43NzYxNCAxMCA5IDkuNzc2MTQgOSA5LjVWMi41QzkgMi4yMjM4NiA4Ljc3NjE0IDIgOC41IDJaXCIgc3Ryb2tlPVwiI0UxNzEwMFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTQuNSAySDMuNUMzLjIyMzg2IDIgMyAyLjIyMzg2IDMgMi41VjkuNUMzIDkuNzc2MTQgMy4yMjM4NiAxMCAzLjUgMTBINC41QzQuNzc2MTQgMTAgNSA5Ljc3NjE0IDUgOS41VjIuNUM1IDIuMjIzODYgNC43NzYxNCAyIDQuNSAyWlwiIHN0cm9rZT1cIiNFMTcxMDBcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG5cbiAgICA8IS0tIERvY3VtZW50IEljb24gLS0+XG4gICAgPGRpdj48c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjAgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMTZcIiByeD1cIjRcIiBmaWxsPVwiI0U2RjRGRlwiLz48cGF0aCBkPVwiTTEyIDUuNUMxMiA2LjAzMDQzIDExLjc4OTMgNi41MzkxNCAxMS40MTQyIDYuOTE0MjFDMTEuMDM5MSA3LjI4OTI5IDEwLjUzMDQgNy41IDEwIDcuNUM5LjQ2OTU3IDcuNSA4Ljk2MDg2IDcuMjg5MjkgOC41ODU3OSA2LjkxNDIxQzguMjEwNzEgNi41MzkxNCA4IDYuMDMwNDMgOCA1LjVDOCA0Ljk2OTU3IDguMjEwNzEgNC40NjA4NiA4LjU4NTc5IDQuMDg1NzlDOC45NjA4NiAzLjcxMDcxIDkuNDY5NTcgMy41IDEwIDMuNUMxMC41MzA0IDMuNSAxMS4wMzkxIDMuNzEwNzEgMTEuNDE0MiA0LjA4NTc5QzExLjc4OTMgNC40NjA4NiAxMiA0Ljk2OTU3IDEyIDUuNVpNMTAgOUM5LjA3MTc0IDkgOC4xODE1IDkuMzY4NzUgNy41MjUxMyAxMC4wMjUxQzYuODY4NzUgMTAuNjgxNSA2LjUgMTEuNTcxNyA2LjUgMTIuNUgxMy41QzEzLjUgMTEuNTcxNyAxMy4xMzEzIDEwLjY4MTUgMTIuNDc0OSAxMC4wMjUxQzExLjgxODUgOS4zNjg3NSAxMC45MjgzIDkgMTAgOVpcIiBzdHJva2U9XCIjMEE4NkU2XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvZGl2PlxuXG4gICAgPCEtLSBTdGVwIE51bWJlciBhbmQgVGl0bGUgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTNcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMzMzQxNTVdIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMThweF1cIiBzdHlsZT1cIndvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XCI+XG4gICAgICAgIHt7IGNvbmZpZy5zdGVwTnVtYmVyIH19LiA8c3BhbiBbaW5uZXJIVE1MXT1cImNvbmZpZy50aXRsZVwiPjwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXB4LTEuNSBjcWEtcm91bmRlZC1mdWxsIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzBBODZFNl0gY3FhLWJnLVsjRTZGNEZGXSBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdXCI+XG4gICAgICAgIERvY3VtZW50IFZlcmlmaWNhdGlvblxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xXCI+XG4gICAgICA8IS0tIFN0ZXAgQ2hhbmdlIEJhZGdlcyAoZGVidWcgb25seSkgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEZWJ1Z1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBiYWRnZSBvZiBzdGVwQmFkZ2VzXCI+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAnc2tpcHBlZCdcIlxuICAgICAgICAgIGxhYmVsPVwiU2tpcHBlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjNEE1NTY1J1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjOTlBMUFGJ1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0ZGRkZGRidcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAnZWRpdGVkJ1wiXG4gICAgICAgICAgbGFiZWw9XCJFZGl0ZWRcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgW3RleHRDb2xvcl09XCInI0ZCQkYyNCdcIlxuICAgICAgICAgIFtib3JkZXJDb2xvcl09XCInI0ZEREY5MidcIlxuICAgICAgICAgIFtiYWNrZ3JvdW5kQ29sb3JdPVwiJyNGRkY5RTknXCI+XG4gICAgICAgIDwvY3FhLWJhZGdlPlxuICAgICAgICA8Y3FhLWJhZGdlXG4gICAgICAgICAgKm5nSWY9XCJiYWRnZSA9PT0gJ2FkZGVkJ1wiXG4gICAgICAgICAgbGFiZWw9XCJBZGRlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjMERCRDdEJ1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjNUVEM0E4J1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0NGRjJFNSdcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAncmVtb3ZlZCdcIlxuICAgICAgICAgIGxhYmVsPVwiUmVtb3ZlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjRUUzRjNGJ1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjRjQ3RjdGJ1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0ZDRDlEOSdcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMSBjcWEtcm91bmRlZC1bNHB4XSBjcWEtcHktMC41IGNxYS1weC0xIGNxYS1iZy1bIzYzNjZGMTFBXSBjcWEtbWwtMSBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eVwiXG4gICAgICAgICAgICpuZ0lmPVwic3RlcD8uZXhlY3V0ZWRSZXN1bHQ/LnZpZGVvX3N0YXJ0X3RpbWVcIiBcbiAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ0p1bXAgdG8gdmlkZW8gdGltZSdcIiBcbiAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICAgICAoY2xpY2spPVwib25KdW1wVG9UaW1lc3RhbXAoJGV2ZW50KVwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtdGV4dC1bIzYzNjM2M10gIWNxYS10ZXh0LVsxMHB4XSAhY3FhLXctWzEwcHhdICFjcWEtaC1bMTBweF1cIj5cbiAgICAgICAgICBwbGF5X2Fycm93XG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzhweF0gY3FhLWxlYWRpbmctWzEycHhdIGNxYS1mb250LW5vcm1hbCBjcWEtdGV4dC1bIzYzNjM2M11cIj5cbiAgICAgICAgICB7eyBmb3JtYXREdXJhdGlvbkNsb2NrKHN0ZXA/LmV4ZWN1dGVkUmVzdWx0Py52aWRlb19zdGFydF90aW1lIHx8IDApIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImlzRGVidWdcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0wLjUgY3FhLXRleHQtWyM5Q0EzQUZdXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIXN0ZXA/LmlzU3RlcEdyb3VwQ2hpbGRyZW5cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjcWEtcC0wIGNxYS1ib3JkZXItMCBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwIGNxYS10cmFuc2l0aW9uLW9wYWNpdHkgZm9jdXM6Y3FhLW91dGxpbmUtbm9uZVwiIGFyaWEtbGFiZWw9XCJFZGl0XCIgKGNsaWNrKT1cIm9uRWRpdFN0ZXAoJGV2ZW50KVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdGV4dC1bMTRweF0gIWNxYS13LVsxNHB4XSAhY3FhLWgtWzE0cHhdXCI+ZWRpdDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIXN0ZXA/LmlzU3RlcEdyb3VwQ2hpbGRyZW5cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjcWEtcC0wIGNxYS1ib3JkZXItMCBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwIGNxYS10cmFuc2l0aW9uLW9wYWNpdHkgZm9jdXM6Y3FhLW91dGxpbmUtbm9uZVwiIGFyaWEtbGFiZWw9XCJBZGRcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYWRkU3RlcE1lbnVcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCIhY3FhLXRleHQtWzE0cHhdICFjcWEtdy1bMTRweF0gIWNxYS1oLVsxNHB4XVwiPmFkZDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LW1lbnUgI2FkZFN0ZXBNZW51PVwibWF0TWVudVwiIGNsYXNzPVwiY3FhLWFkZC1zdGVwLW1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIiB5UG9zaXRpb249XCJiZWxvd1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgb3B0IG9mIGFkZFN0ZXBNZW51T3B0aW9uc1wiIChjbGljayk9XCJvbkFkZFN0ZXBPcHRpb25TZWxlY3Qob3B0LCAkZXZlbnQpXCI+e3sgb3B0LmxhYmVsIH19PC9idXR0b24+XG4gICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJlZmZlY3RpdmVTdGVwTW9yZU1lbnVPcHRpb25zLmxlbmd0aFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eSBmb2N1czpjcWEtb3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIk1vcmUgb3B0aW9uc1wiIFttYXRNZW51VHJpZ2dlckZvcl09XCJzdGVwTW9yZU1lbnVcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCIhY3FhLXRleHQtWzE0cHhdICFjcWEtdy1bMTRweF0gIWNxYS1oLVsxNHB4XVwiPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LW1lbnUgI3N0ZXBNb3JlTWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cImNxYS1zdGVwLW1vcmUtbWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiIHlQb3NpdGlvbj1cImJlbG93XCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBvcHQgb2YgZWZmZWN0aXZlU3RlcE1vcmVNZW51T3B0aW9uc1wiIChjbGljayk9XCJvblN0ZXBNb3JlT3B0aW9uU2VsZWN0KG9wdCwgJGV2ZW50KVwiPnt7IG9wdC5sYWJlbCB9fTwvYnV0dG9uPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLXRleHQtWyM5Q0EzQUZdXCI+XG4gICAgICAgIHt7IGZvcm1hdER1cmF0aW9uKGNvbmZpZy5kdXJhdGlvbikgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzdmcgW2NsYXNzLmNxYS1yb3RhdGUtMTgwXT1cImlzRXhwYW5kZWRcIiBjbGFzcz1cImNxYS10cmFuc2l0aW9uLXRyYW5zZm9ybVwiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTMuNSA1TDcgOC41TDEwLjUgNVwiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2Utd2lkdGg9XCIwLjgzMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBFeHBhbmRlZCBDb250ZW50IC0tPlxuICA8ZGl2ICpuZ0lmPVwiaXNFeHBhbmRlZFwiICBjbGFzcz1cImNxYS1iZy1bI0ZGRkVGOV0gY3FhLW10LTEuNSBjcWEtbWwtOSBjcWEtbXItNiBjcWEtcC00IGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEuNVwiIHN0eWxlPVwiYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFNEU0RTQ7XCI+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMiBjcWEtZ2FwLTNcIj5cbiAgICAgIDwhLS0gRG9jdW1lbnQgU2NyZWVuc2hvdCBDYXJkIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1iZy1bI0ZDRkNGQ10gY3FhLXJvdW5kZWQtbGcgY3FhLXAtMyBjcWEtZmxleCBjcWEtZmxleC1jb2xcIiBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkICNFREU5RkVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTIgY3FhLW1iLTJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjM2MzYzXVwiPkRvY3VtZW50IFNjcmVlbnNob3Q8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvbj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTAgNEg1QzQuNDQ3NzIgNCA0IDQuNDQ3NzIgNCA1VjEwQzQgMTAuNTUyMyA0LjQ0NzcyIDExIDUgMTFIMTBDMTAuNTUyMyAxMSAxMSAxMC41NTIzIDExIDEwVjVDMTEgNC40NDc3MiAxMC41NTIzIDQgMTAgNFpcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMiA4QzEuNDUgOCAxIDcuNTUgMSA3VjJDMSAxLjQ1IDEuNDUgMSAyIDFIN0M3LjU1IDEgOCAxLjQ1IDggMlwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNFNUU1RTVdIGNxYS1yb3VuZGVkLVsxMHB4XSBjcWEtYmctWyNGNUY1RjVdIGNxYS1hc3BlY3QtdmlkZW8gY3FhLWgtZnVsbCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMjUuMzMzMyA0SDYuNjY2NjdDNS4xOTM5MSA0IDQgNS4xOTM5MSA0IDYuNjY2NjdWMjUuMzMzM0M0IDI2LjgwNjEgNS4xOTM5MSAyOCA2LjY2NjY3IDI4SDI1LjMzMzNDMjYuODA2MSAyOCAyOCAyNi44MDYxIDI4IDI1LjMzMzNWNi42NjY2N0MyOCA1LjE5MzkxIDI2LjgwNjEgNCAyNS4zMzMzIDRaXCIgc3Ryb2tlPVwiIzczNzM3M1wiIHN0cm9rZS1vcGFjaXR5PVwiMC41XCIgc3Ryb2tlLXdpZHRoPVwiMi42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTEyIDE0LjY2NjZDMTMuNDcyNyAxNC42NjY2IDE0LjY2NjYgMTMuNDcyNyAxNC42NjY2IDExLjk5OTlDMTQuNjY2NiAxMC41MjcyIDEzLjQ3MjcgOS4zMzMyNSAxMiA5LjMzMzI1QzEwLjUyNzIgOS4zMzMyNSA5LjMzMzMxIDEwLjUyNzIgOS4zMzMzMSAxMS45OTk5QzkuMzMzMzEgMTMuNDcyNyAxMC41MjcyIDE0LjY2NjYgMTIgMTQuNjY2NlpcIiBzdHJva2U9XCIjNzM3MzczXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjVcIiBzdHJva2Utd2lkdGg9XCIyLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMjggMTkuOTk5OUwyMy44ODUzIDE1Ljg4NTNDMjMuMzg1MyAxNS4zODUzIDIyLjcwNzEgMTUuMTA0NSAyMiAxNS4xMDQ1QzIxLjI5MjkgMTUuMTA0NSAyMC42MTQ3IDE1LjM4NTMgMjAuMTE0NyAxNS44ODUzTDggMjcuOTk5OVwiIHN0cm9rZT1cIiM3MzczNzNcIiBzdHJva2Utb3BhY2l0eT1cIjAuNVwiIHN0cm9rZS13aWR0aD1cIjIuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gRXh0cmFjdGVkIEZpZWxkcyBDYXJkIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1iZy1bI0ZDRkNGQ10gY3FhLXJvdW5kZWQtbGcgY3FhLXAtMyBjcWEtZmxleCBjcWEtZmxleC1jb2xcIiBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkICNFREU5RkVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTIgY3FhLW1iLTJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjM2MzYzXVwiPkV4dHJhY3RlZCBGaWVsZHM8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvbj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTAgNEg1QzQuNDQ3NzIgNCA0IDQuNDQ3NzIgNCA1VjEwQzQgMTAuNTUyMyA0LjQ0NzcyIDExIDUgMTFIMTBDMTAuNTUyMyAxMSAxMSAxMC41NTIzIDExIDEwVjVDMTEgNC40NDc3MiAxMC41NTIzIDQgMTAgNFpcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMiA4QzEuNDUgOCAxIDcuNTUgMSA3VjJDMSAxLjQ1IDEuNDUgMSAyIDFIN0M3LjU1IDEgOCAxLjQ1IDggMlwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1iZy13aGl0ZSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0M2RDJGRl0gY3FhLXJvdW5kZWQtbGdcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgY29uZmlnLmV4dHJhY3RlZEZpZWxkc1wiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTIgY3FhLXB4LTMgY3FhLXB0LTEgY3FhLXBiLTEuNSBjcWEtYm9yZGVyLWIgY3FhLWJvcmRlci10LTAgY3FhLWJvcmRlci1sLTAgY3FhLWJvcmRlci1yLTAgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTRFNEU0XSBsYXN0OmNxYS1ib3JkZXItMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTFcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVs4cHhdIGNxYS1sZWFkaW5nLVsxMnB4XSBjcWEtdGV4dC1bIzYzNjM2M11cIj57eyBmaWVsZC5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwQjBCMEJdXCI+e3sgZmllbGQudmFsdWUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXB4LTIgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzAwODIzNl0gY3FhLWJnLVsjRENGQ0U3XSBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdXCI+XG4gICAgICAgICAgICAgICAge3sgZmllbGQuY29uZmlkZW5jZSB9fSVcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvcHlUb0NsaXBib2FyZChmaWVsZC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3FhLXAtMVwiPlxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTEuNjY2NyA0LjY2Njc1SDUuODMzMzJDNS4xODg5OSA0LjY2Njc1IDQuNjY2NjYgNS4xODkwOCA0LjY2NjY2IDUuODMzNDFWMTEuNjY2N0M0LjY2NjY2IDEyLjMxMTEgNS4xODg5OSAxMi44MzM0IDUuODMzMzIgMTIuODMzNEgxMS42NjY3QzEyLjMxMSAxMi44MzM0IDEyLjgzMzMgMTIuMzExMSAxMi44MzMzIDExLjY2NjdWNS44MzM0MUMxMi44MzMzIDUuMTg5MDggMTIuMzExIDQuNjY2NzUgMTEuNjY2NyA0LjY2Njc1WlwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMi4zMzMzMiA5LjMzMzQxQzEuNjkxNjYgOS4zMzM0MSAxLjE2NjY2IDguODA4NDEgMS4xNjY2NiA4LjE2Njc1VjIuMzMzNDFDMS4xNjY2NiAxLjY5MTc1IDEuNjkxNjYgMS4xNjY3NSAyLjMzMzMyIDEuMTY2NzVIOC4xNjY2NkM4LjgwODMyIDEuMTY2NzUgOS4zMzMzMiAxLjY5MTc1IDkuMzMzMzIgMi4zMzM0MVwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBWZXJpZmljYXRpb24gQ2hlY2tzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtbXQtMS41XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLW1iLTJcIj5cbiAgICAgICAgPGRpdj48c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTYuMDAwMDQgMy4zMzMzM0g0LjY2NjcxQzQuMzEzMDkgMy4zMzMzMyAzLjk3Mzk1IDMuNDczODEgMy43MjM5IDMuNzIzODZDMy40NzM4NSAzLjk3MzkxIDMuMzMzMzcgNC4zMTMwNCAzLjMzMzM3IDQuNjY2NjdWMTIuNjY2N0MzLjMzMzM3IDEzLjAyMDMgMy40NzM4NSAxMy4zNTk0IDMuNzIzOSAxMy42MDk1QzMuOTczOTUgMTMuODU5NSA0LjMxMzA5IDE0IDQuNjY2NzEgMTRIMTEuMzMzNEMxMS42ODcgMTQgMTIuMDI2MSAxMy44NTk1IDEyLjI3NjIgMTMuNjA5NUMxMi41MjYyIDEzLjM1OTQgMTIuNjY2NyAxMy4wMjAzIDEyLjY2NjcgMTIuNjY2N1Y0LjY2NjY3QzEyLjY2NjcgNC4zMTMwNCAxMi41MjYyIDMuOTczOTEgMTIuMjc2MiAzLjcyMzg2QzEyLjAyNjEgMy40NzM4MSAxMS42ODcgMy4zMzMzMyAxMS4zMzM0IDMuMzMzMzNIMTBNNi4wMDAwNCAzLjMzMzMzQzYuMDAwMDQgMy42ODY5NiA2LjE0MDUyIDQuMDI2MDkgNi4zOTA1NyA0LjI3NjE0QzYuNjQwNjEgNC41MjYxOSA2Ljk3OTc1IDQuNjY2NjcgNy4zMzMzNyA0LjY2NjY3SDguNjY2NzFDOS4wMjAzMyA0LjY2NjY3IDkuMzU5NDcgNC41MjYxOSA5LjYwOTUyIDQuMjc2MTRDOS44NTk1NiA0LjAyNjA5IDEwIDMuNjg2OTYgMTAgMy4zMzMzM002LjAwMDA0IDMuMzMzMzNDNi4wMDAwNCAyLjk3OTcxIDYuMTQwNTIgMi42NDA1NyA2LjM5MDU3IDIuMzkwNTJDNi42NDA2MSAyLjE0MDQ4IDYuOTc5NzUgMiA3LjMzMzM3IDJIOC42NjY3MUM5LjAyMDMzIDIgOS4zNTk0NyAyLjE0MDQ4IDkuNjA5NTIgMi4zOTA1MkM5Ljg1OTU2IDIuNjQwNTcgMTAgMi45Nzk3MSAxMCAzLjMzMzMzTTYuMDAwMDQgOS4zMzMzM0w3LjMzMzM3IDEwLjY2NjdMMTAgOFwiIHN0cm9rZT1cIiM2MTVGRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMwQjBCMEJdXCI+VmVyaWZpY2F0aW9uIENoZWNrczwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjaGVjayBvZiBjb25maWcudmVyaWZpY2F0aW9uQ2hlY2tzXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnY3FhLWJnLVsjRjBGREY0XSBjcWEtYm9yZGVyLVsjQjlGOENGXSc6IGNoZWNrLnN0YXR1cyA9PT0gJ3Bhc3MnLFxuICAgICAgICAgICAgJ2NxYS1iZy1bI0ZFRjJGMl0gY3FhLWJvcmRlci1bI0ZGQzlDOV0nOiBjaGVjay5zdGF0dXMgPT09ICdmYWlsJ1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1yb3VuZGVkLWxnIGNxYS1wLTNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLXN0YXJ0IGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1tYi0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPCEtLSA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjaGVjay5zdGF0dXMgPT09ICdwYXNzJyA/ICdjcWEtdGV4dC1ncmVlbi02MDAnIDogJ2NxYS10ZXh0LXJlZC02MDAnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIiFjcWEtdy01ICFjcWEtaC01ICFjcWEtdGV4dC1bMjBweF1cIj5cbiAgICAgICAgICAgICAgICB7eyBjaGVjay5zdGF0dXMgPT09ICdwYXNzJyA/ICdjaGVja19jaXJjbGUnIDogJ2NhbmNlbCcgfX1cbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj4gLS0+XG4gICAgICAgICAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE2IDE4XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMy4zMzMzIDZMNS45OTk5NiAxMy4zMzMzTDIuNjY2NjMgMTBcIiBzdHJva2U9XCIjMDBBNjNFXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMEIwQjBCXVwiPnt7IGNoZWNrLmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2NxYS10ZXh0LVsjMDA4MjM2XSBjcWEtYmctWyNEQ0ZDRTddJzogY2hlY2suc3RhdHVzID09PSAncGFzcycsXG4gICAgICAgICAgICAgICAgJ2NxYS10ZXh0LVsjQzEwMDA3XSBjcWEtYmctWyNGRkUyRTJdJzogY2hlY2suc3RhdHVzID09PSAnZmFpbCdcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3FhLXB4LTIgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdXCI+XG4gICAgICAgICAgICAgIHt7IGNoZWNrLnN0YXR1cyA9PT0gJ3Bhc3MnID8gJ1BBU1MnIDogJ0ZBSUwnIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMiBjcWEtZ2FwLTMgY3FhLXBsLTZcIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzYzNjM2M10gY3FhLW1iLTFcIj5FeHBlY3RlZDwvZGl2PlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNoZWNrLmV4cGVjdGVkXCJcbiAgICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtcHktMS41IGNxYS1weC0yICFjcWEtYm9yZGVyICFjcWEtYm9yZGVyLXNvbGlkICFjcWEtYm9yZGVyLVsjRTRFNEU0XSBjcWEtcm91bmRlZCAhY3FhLWJnLXdoaXRlIGNxYS10ZXh0LVsxMXB4XSBjcWEtbGVhZGluZy1bMTNweF0gY3FhLXRleHQtWyMwQjBCMEJdXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjM2MzYzXSBjcWEtbWItMVwiPkFjdHVhbDwvZGl2PlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNoZWNrLmFjdHVhbFwiXG4gICAgICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLXB5LTEuNSBjcWEtcHgtMiAhY3FhLWJvcmRlciAhY3FhLWJvcmRlci1zb2xpZCAhY3FhLWJvcmRlci1bI0U0RTRFNF0gY3FhLXJvdW5kZWQgIWNxYS1iZy13aGl0ZSBjcWEtdGV4dC1bMTFweF0gY3FhLWxlYWRpbmctWzEzcHhdIGNxYS10ZXh0LVsjMEIwQjBCXVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gVGltaW5nIEJyZWFrZG93biAtLT5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJjb25maWcudGltaW5nQnJlYWtkb3duXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWVuZCBjcWEtZ2FwLTUgY3FhLXB0LTEuNSBjcWEtcHgtNCBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzlDQTNBRl1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTJcIj5cbiAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02IDExQzguNzYxNDIgMTEgMTEgOC43NjE0MiAxMSA2QzExIDMuMjM4NTggOC43NjE0MiAxIDYgMUMzLjIzODU4IDEgMSAzLjIzODU4IDEgNkMxIDguNzYxNDIgMy4yMzg1OCAxMSA2IDExWlwiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk02IDNWNkw4IDdcIiBzdHJva2U9XCIjOUNBM0FGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgPHNwYW4+VGltaW5nIGJyZWFrZG93bjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LWRpYWxvZy1tdXRlZCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtM1wiPlxuICAgICAgPGRpdj5cbiAgICAgICAgQXBwIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtZ3JheS03MDBcIj57eyBmb3JtYXREdXJhdGlvbihjb25maWcudGltaW5nQnJlYWtkb3duLmFwcCkgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjFcIiBoZWlnaHQ9XCIxMVwiIHZpZXdCb3g9XCIwIDAgMSAxMVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNLTMuODE0N2UtMDYgMTAuMzJWLTcuMTUyNTZlLTA3SDAuOTU5OTk2VjEwLjMySC0zLjgxNDdlLTA2WlwiIGZpbGw9XCIjRTVFN0VCXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgVG9vbCA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LWdyYXktNzAwXCI+e3sgZm9ybWF0RHVyYXRpb24oY29uZmlnLnRpbWluZ0JyZWFrZG93bi50b29sKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmVyaWZpY2F0aW9uLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9leGVjdXRpb24tc2NyZWVuL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwL2RvY3VtZW50LXZlcmlmaWNhdGlvbi1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQXFILDZCQUE2QixFQUFzQiw4QkFBOEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hQLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBUTNELE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxpQkFBaUI7SUFOeEU7O1FBa0NXLFlBQU8sR0FBYSxLQUFLLENBQUM7UUFDMUIsa0JBQWEsR0FBYSxLQUFLLENBQUM7UUFDaEMsa0JBQWEsR0FBYSxLQUFLLENBQUM7UUFDL0IscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMvQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNwQyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUM1RCx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUMvRCx1QkFBa0IsR0FBd0IsNkJBQTZCLENBQUM7UUFDeEUsd0JBQW1CLEdBQXlCLDhCQUE4QixDQUFDO0tBK0ZyRjtJQXRIQyxJQUFJLFVBQVU7UUFDWixNQUFNLEtBQUssR0FBRyxJ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QUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudFZlcmlmaWNhdGlvblN0ZXBDb25maWcsIEV4dHJhY3RlZEZpZWxkLCBWZXJpZmljYXRpb25DaGVjaywgU3RlcFN0YXR1cywgVGltaW5nQnJlYWtkb3duLCBBZGRTdGVwTWVudU9wdGlvbiwgREVGQVVMVF9BRERfU1RFUF9NRU5VX09QVElPTlMsIFN0ZXBNb3JlTWVudU9wdGlvbiwgREVGQVVMVF9TVEVQX01PUkVfTUVOVV9PUFRJT05TIH0gZnJvbSAnLi4vZXhlY3V0aW9uLXN0ZXAubW9kZWxzJztcbmltcG9ydCB7IEJhc2VTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1zdGVwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCBjcWEtdy1mdWxsJyB9XG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbXBvbmVudCBleHRlbmRzIEJhc2VTdGVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvLyBJbmRpdmlkdWFsIGlucHV0c1xuICBASW5wdXQoKSBpZCE6IHN0cmluZztcbiAgQElucHV0KCkgc3RlcE51bWJlciE6IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0YXR1cyE6IFN0ZXBTdGF0dXM7XG4gIEBJbnB1dCgpIGR1cmF0aW9uITogbnVtYmVyO1xuICBASW5wdXQoKSB0aW1pbmdCcmVha2Rvd24/OiBUaW1pbmdCcmVha2Rvd247XG4gIEBJbnB1dCgpIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgZG9jdW1lbnRTY3JlZW5zaG90Pzogc3RyaW5nO1xuICBASW5wdXQoKSBleHRyYWN0ZWRGaWVsZHMhOiBFeHRyYWN0ZWRGaWVsZFtdO1xuICBASW5wdXQoKSB2ZXJpZmljYXRpb25DaGVja3MhOiBWZXJpZmljYXRpb25DaGVja1tdO1xuICBASW5wdXQoKSBzdGVwPzogYW55O1xuICBnZXQgc3RlcEJhZGdlcygpOiAoJ3NraXBwZWQnIHwgJ2VkaXRlZCcgfCAnYWRkZWQnIHwgJ3JlbW92ZWQnKVtdIHtcbiAgICBjb25zdCBiYWRnZSA9IHRoaXMuc3RlcD8uc3RlcEJhZGdlO1xuICAgIGlmICghYmFkZ2UpIHJldHVybiBbXTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShiYWRnZSkgPyBiYWRnZSA6IFtiYWRnZV07XG4gIH1cblxuICBnZXQgaXNTa2lwcGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0ZXBCYWRnZXMuaW5jbHVkZXMoJ3NraXBwZWQnKTtcbiAgfVxuXG4gIGdldCBpc1N0ZXBEZWxldGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0ZXBCYWRnZXMuaW5jbHVkZXMoJ3JlbW92ZWQnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGp1bXBUb1RpbWVzdGFtcEhhbmRsZXI/OiAodGltZXN0YW1wOiBudW1iZXIsIHRlc3RTdGVwSWQ/OiBudW1iZXIgfCBzdHJpbmcpID0+IHZvaWQ7XG4gIEBJbnB1dCgpIGlzRGVidWc/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRlYnVnUG9pbnRTZXQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBhcmVudFNraXBwZWQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBkZWJ1Z1BvaW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgZWRpdFN0ZXAgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBhZGRTdGVwT3B0aW9uU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxBZGRTdGVwTWVudU9wdGlvbj4oKTtcbiAgQE91dHB1dCgpIHN0ZXBNb3JlT3B0aW9uU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTdGVwTW9yZU1lbnVPcHRpb24+KCk7XG4gIEBJbnB1dCgpIGFkZFN0ZXBNZW51T3B0aW9uczogQWRkU3RlcE1lbnVPcHRpb25bXSA9IERFRkFVTFRfQUREX1NURVBfTUVOVV9PUFRJT05TO1xuICBASW5wdXQoKSBzdGVwTW9yZU1lbnVPcHRpb25zOiBTdGVwTW9yZU1lbnVPcHRpb25bXSA9IERFRkFVTFRfU1RFUF9NT1JFX01FTlVfT1BUSU9OUztcblxuICAvKiogU2hvdyBkZWJ1ZyBpY29uIG9ubHkgd2hlbiB0aGlzIHN0ZXAgaGFzIG5vIGNoaWxkIHN0ZXBzIChsZWFmIHN0ZXA6IGFsd2F5cyBzaG93IHdoZW4gaXNEZWJ1ZykuICovXG4gIGdldCBzaG93RGVidWdJY29uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRGVidWcgPT09IHRydWU7XG4gIH1cblxuICAvKiogUGVyLXN0ZXAgZmlsdGVyZWQgdGhyZWUtZG90IG1lbnUgb3B0aW9ucyAoZS5nLiBoaWRlIER1cGxpY2F0ZS9EZWxldGUgZm9yIHN0ZXAtZ3JvdXAgY2hpbGRyZW4pLiAqL1xuICBnZXQgZWZmZWN0aXZlU3RlcE1vcmVNZW51T3B0aW9ucygpOiBTdGVwTW9yZU1lbnVPcHRpb25bXSB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuc3RlcE1vcmVNZW51T3B0aW9ucyB8fCBbXTtcbiAgICBjb25zdCBzdGVwUmVmOiBhbnkgPSB0aGlzLnN0ZXA7XG4gICAgaWYgKCFzdGVwUmVmKSByZXR1cm4gYmFzZTtcblxuICAgIGNvbnN0IGlzR3JvdXBDaGlsZCA9ICEhc3RlcFJlZi5pc1N0ZXBHcm91cENoaWxkcmVuO1xuICAgIC8vIFdoZW4gc3RlcC5zdGVwTW9yZU1lbnVPcHRpb25zIGlzIHRydXRoeSBPUiBzdGVwIGlzIGEgc3RlcC1ncm91cCBjaGlsZCwgaGlkZSBtdXRhdGluZyBpdGVtc1xuICAgIGNvbnN0IHN1cHByZXNzTXV0YXRpbmcgPSAhIXN0ZXBSZWYuc3RlcE1vcmVNZW51T3B0aW9ucyB8fCBpc0dyb3VwQ2hpbGQ7XG4gICAgaWYgKCFzdXBwcmVzc011dGF0aW5nKSByZXR1cm4gYmFzZTtcblxuICAgIHJldHVybiBiYXNlLmZpbHRlcihvcHQgPT4gb3B0LmlkICE9PSAnZHVwbGljYXRlJyAmJiBvcHQuaWQgIT09ICdkZWxldGUnKTtcbiAgfVxuXG4gIC8vIENvbmZpZyBwcm9wZXJ0eSBmb3IgYmFzZSBjbGFzcyAtIGJ1aWx0IGZyb20gaW5kaXZpZHVhbCBpbnB1dHMgaW4gbmdPbkluaXRcbiAgb3ZlcnJpZGUgY29uZmlnITogRG9jdW1lbnRWZXJpZmljYXRpb25TdGVwQ29uZmlnO1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEJ1aWxkIGNvbmZpZyBmcm9tIGluZGl2aWR1YWwgaW5wdXRzXG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIHN0ZXBOdW1iZXI6IHRoaXMuc3RlcE51bWJlcixcbiAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgIGR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uLFxuICAgICAgZGlzcGxheVR5cGU6ICdkb2N1bWVudC12ZXJpZmljYXRpb24nLFxuICAgICAgZG9jdW1lbnRTY3JlZW5zaG90OiB0aGlzLmRvY3VtZW50U2NyZWVuc2hvdCxcbiAgICAgIGV4dHJhY3RlZEZpZWxkczogdGhpcy5leHRyYWN0ZWRGaWVsZHMsXG4gICAgICB2ZXJpZmljYXRpb25DaGVja3M6IHRoaXMudmVyaWZpY2F0aW9uQ2hlY2tzLFxuICAgICAgdGltaW5nQnJlYWtkb3duOiB0aGlzLnRpbWluZ0JyZWFrZG93bixcbiAgICAgIGV4cGFuZGVkOiB0aGlzLmV4cGFuZGVkLFxuICAgIH0gYXMgRG9jdW1lbnRWZXJpZmljYXRpb25TdGVwQ29uZmlnO1xuXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZXhwYW5kZWQnXSAmJiB0aGlzLmV4cGFuZGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWQ7XG4gICAgICBpZiAodGhpcy5jb25maWcpIHtcbiAgICAgICAgdGhpcy5jb25maWcuZXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snc3RlcE51bWJlciddICYmIHRoaXMuY29uZmlnKSB7XG4gICAgICB0aGlzLmNvbmZpZy5zdGVwTnVtYmVyID0gY2hhbmdlc1snc3RlcE51bWJlciddLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBvbkRlYnVnUG9pbnRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZGVidWdQb2ludENoYW5nZS5lbWl0KCF0aGlzLmRlYnVnUG9pbnRTZXQpO1xuICB9XG5cbiAgY29weVRvQ2xpcGJvYXJkKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpLnRoZW4oKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ0NvcGllZCB0byBjbGlwYm9hcmQ6JywgdGV4dCk7XG4gICAgfSk7XG4gIH1cblxuICBvbkVkaXRTdGVwKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5lZGl0U3RlcC5lbWl0KCk7XG4gIH1cblxuICBvbkFkZFN0ZXBPcHRpb25TZWxlY3Qob3B0aW9uOiBBZGRTdGVwTWVudU9wdGlvbiwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmFkZFN0ZXBPcHRpb25TZWxlY3QuZW1pdChvcHRpb24pO1xuICB9XG5cbiAgb25TdGVwTW9yZU9wdGlvblNlbGVjdChvcHRpb246IFN0ZXBNb3JlTWVudU9wdGlvbiwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnN0ZXBNb3JlT3B0aW9uU2VsZWN0LmVtaXQob3B0aW9uKTtcbiAgfVxuXG4gIG9uSnVtcFRvVGltZXN0YW1wKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmp1bXBUb1RpbWVzdGFtcEhhbmRsZXIgJiYgdGhpcy5zdGVwPy5leGVjdXRlZFJlc3VsdD8udmlkZW9fc3RhcnRfdGltZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc3RlcD8uZXhlY3V0ZWRSZXN1bHQ/LnZpZGVvX3N0YXJ0X3RpbWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IHR5cGVvZiB0aGlzLnN0ZXAuZXhlY3V0ZWRSZXN1bHQudmlkZW9fc3RhcnRfdGltZSA9PT0gJ251bWJlcicgXG4gICAgICAgID8gdGhpcy5zdGVwLmV4ZWN1dGVkUmVzdWx0LnZpZGVvX3N0YXJ0X3RpbWUgXG4gICAgICAgIDogTnVtYmVyKHRoaXMuc3RlcC5leGVjdXRlZFJlc3VsdC52aWRlb19zdGFydF90aW1lKTtcbiAgICAgIGNvbnN0IHRlc3RTdGVwSWQgPSB0aGlzLnN0ZXA/LnRlc3RTdGVwSWQ7XG4gICAgICBpZiAoaXNGaW5pdGUodGltZXN0YW1wKSAmJiB0aW1lc3RhbXAgPj0gMCkge1xuICAgICAgICB0aGlzLmp1bXBUb1RpbWVzdGFtcEhhbmRsZXIodGltZXN0YW1wLCB0ZXN0U3RlcElkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcWEtdy1mdWxsXCIgW2NsYXNzLmNxYS1vcGFjaXR5LTUwXT1cImlzRGVidWcgJiYgaXNTa2lwcGVkICYmICFwYXJlbnRTa2lwcGVkXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiIWlzRGVidWcgPyBudWxsIDogY29uZmlnLnN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncGF1c2VkJyA/ICcjRkZGOUU5JyA6IGNvbmZpZy5zdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWxlZCcgPyAnI0ZFRjJGMicgOiBudWxsXCI+XG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtcC0yIGNxYS1jdXJzb3ItcG9pbnRlclwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgPGRpdiAqbmdJZj1cInNob3dEZWJ1Z0ljb25cIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyXCJcbiAgICAgIFttYXRUb29sdGlwXT1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncnVubmluZycgPyAnQnJlYWtwb2ludCBjYW5ub3QgYmUgc2V0IG9uIGEgcnVubmluZyBzdGVwJyA6IChpc1N0ZXBEZWxldGVkID8gJ0JyZWFrcG9pbnQgY2Fubm90IGJlIHNldCBvbiBkZWxldGVkIHN0ZXBzJyA6ICgoISFwYXJlbnRTa2lwcGVkICYmICFzdGVwPy5kZWJ1Z1BvaW50RGlzYWJsZWQpID8gJ0JyZWFrcG9pbnQgY2Fubm90IGJlIHNldCBvbiBhIHJ1bm5pbmcgc3RlcCcgOiAoISFzdGVwPy5kZWJ1Z1BvaW50RGlzYWJsZWQgPyAnQnJlYWtwb2ludCBjYW5ub3QgYmUgc2V0IG9uIHNraXBwZWQgc3RlcHMnIDogJycpKSlcIlxuICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY3FhLXAtMCBjcWEtYm9yZGVyLTAgY3FhLWJnLXRyYW5zcGFyZW50IGNxYS1yb3VuZGVkLWZ1bGwgY3FhLXRyYW5zaXRpb24tb3BhY2l0eSBmb2N1czpjcWEtb3V0bGluZS1ub25lXCJcbiAgICAgICAgW25nQ2xhc3NdPVwic3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdydW5uaW5nJyB8fCAhIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCB8fCAhIXBhcmVudFNraXBwZWQgfHwgaXNTdGVwRGVsZXRlZCA/ICdjcWEtY3Vyc29yLW5vdC1hbGxvd2VkIGNxYS1vcGFjaXR5LTQwIGNxYS1wb2ludGVyLWV2ZW50cy1ub25lJyA6ICdjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAnXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncnVubmluZycgfHwgISFzdGVwPy5kZWJ1Z1BvaW50RGlzYWJsZWQgfHwgISFwYXJlbnRTa2lwcGVkIHx8IGlzU3RlcERlbGV0ZWRcIlxuICAgICAgICAoY2xpY2spPVwib25EZWJ1Z1BvaW50Q2xpY2soJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVidWdQb2ludFNldCA/ICdSZW1vdmUgZGVidWcgcG9pbnQnIDogJ1NldCBkZWJ1ZyBwb2ludCdcIj5cbiAgICAgICAgPHN2ZyAqbmdJZj1cImRlYnVnUG9pbnRTZXRcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjdcIiBjeT1cIjdcIiByPVwiNlwiIFthdHRyLmZpbGxdPVwiISFzdGVwPy5kZWJ1Z1BvaW50RGlzYWJsZWQgfHwgISFwYXJlbnRTa2lwcGVkIHx8IGlzU3RlcERlbGV0ZWQgPyAnIzlFOUU5RScgOiAnI0M2MzUzNSdcIi8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgICA8c3ZnICpuZ0lmPVwiIWRlYnVnUG9pbnRTZXRcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjdcIiBjeT1cIjdcIiByPVwiNlwiIFthdHRyLnN0cm9rZV09XCIhIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCB8fCAhIXBhcmVudFNraXBwZWQgfHwgaXNTdGVwRGVsZXRlZCA/ICcjOUU5RTlFJyA6ICcjQzYzNTM1J1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIGZpbGw9XCJub25lXCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gU3RhdHVzIEljb24gLS0+XG4gICAgPGRpdiAqbmdJZj1cImNvbmZpZy5zdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3N1Y2Nlc3MnXCIgPjxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTAuOTAwNSA0Ljk5OTk5QzExLjEyODkgNi4xMjA2NCAxMC45NjYyIDcuMjg1NzEgMTAuNDM5NSA4LjMwMDg5QzkuOTEyNzkgOS4zMTYwOCA5LjA1NCAxMC4xMiA4LjAwNjMxIDEwLjU3ODdDNi45NTg2MiAxMS4wMzczIDUuNzg1MzYgMTEuMTIyOSA0LjY4MjIgMTAuODIxMkMzLjU3OTA0IDEwLjUxOTUgMi42MTI2NSA5Ljg0ODY5IDEuOTQ0MTkgOC45MjA3MUMxLjI3NTczIDcuOTkyNzIgMC45NDU2MTEgNi44NjM2MSAxLjAwODg4IDUuNzIxNjlDMS4wNzIxNSA0LjU3OTc2IDEuNTI0OTkgMy40OTQwNCAyLjI5MTg4IDIuNjQ1NThDMy4wNTg3NiAxLjc5NzEyIDQuMDkzMzQgMS4yMzcyMSA1LjIyMzA4IDEuMDU5MjJDNi4zNTI4MiAwLjg4MTIzMyA3LjUwOTQ0IDEuMDk1OTIgOC41MDAwNSAxLjY2NzQ5XCIgc3Ryb2tlPVwiIzIyQzU1RVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTQuNSA1LjVMNiA3TDExIDJcIiBzdHJva2U9XCIjMjJDNTVFXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJjb25maWcuc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdmYWlsdXJlJ1wiPjxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNiAxMUM4Ljc2MTQyIDExIDExIDguNzYxNDIgMTEgNkMxMSAzLjIzODU4IDguNzYxNDIgMSA2IDFDMy4yMzg1OCAxIDEgMy4yMzg1OCAxIDZDMSA4Ljc2MTQyIDMuMjM4NTggMTEgNiAxMVpcIiBzdHJva2U9XCIjREMyNjI2XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNy41IDQuNUw0LjUgNy41XCIgc3Ryb2tlPVwiI0RDMjYyNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTQuNSA0LjVMNy41IDcuNVwiIHN0cm9rZT1cIiNEQzI2MjZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbmZpZy5zdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3BhdXNlZCdcIj48c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTguNSAySDcuNUM3LjIyMzg2IDIgNyAyLjIyMzg2IDcgMi41VjkuNUM3IDkuNzc2MTQgNy4yMjM4NiAxMCA3LjUgMTBIOC41QzguNzc2MTQgMTAgOSA5Ljc3NjE0IDkgOS41VjIuNUM5IDIuMjIzODYgOC43NzYxNCAyIDguNSAyWlwiIHN0cm9rZT1cIiNFMTcxMDBcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk00LjUgMkgzLjVDMy4yMjM4NiAyIDMgMi4yMjM4NiAzIDIuNVY5LjVDMyA5Ljc3NjE0IDMuMjIzODYgMTAgMy41IDEwSDQuNUM0Ljc3NjE0IDEwIDUgOS43NzYxNCA1IDkuNVYyLjVDNSAyLjIyMzg2IDQuNzc2MTQgMiA0LjUgMlpcIiBzdHJva2U9XCIjRTE3MTAwXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvZGl2PlxuXG4gICAgPCEtLSBEb2N1bWVudCBJY29uIC0tPlxuICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDIwIDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjE2XCIgcng9XCI0XCIgZmlsbD1cIiNFNkY0RkZcIi8+PHBhdGggZD1cIk0xMiA1LjVDMTIgNi4wMzA0MyAxMS43ODkzIDYuNTM5MTQgMTEuNDE0MiA2LjkxNDIxQzExLjAzOTEgNy4yODkyOSAxMC41MzA0IDcuNSAxMCA3LjVDOS40Njk1NyA3LjUgOC45NjA4NiA3LjI4OTI5IDguNTg1NzkgNi45MTQyMUM4LjIxMDcxIDYuNTM5MTQgOCA2LjAzMDQzIDggNS41QzggNC45Njk1NyA4LjIxMDcxIDQuNDYwODYgOC41ODU3OSA0LjA4NTc5QzguOTYwODYgMy43MTA3MSA5LjQ2OTU3IDMuNSAxMCAzLjVDMTAuNTMwNCAzLjUgMTEuMDM5MSAzLjcxMDcxIDExLjQxNDIgNC4wODU3OUMxMS43ODkzIDQuNDYwODYgMTIgNC45Njk1NyAxMiA1LjVaTTEwIDlDOS4wNzE3NCA5IDguMTgxNSA5LjM2ODc1IDcuNTI1MTMgMTAuMDI1MUM2Ljg2ODc1IDEwLjY4MTUgNi41IDExLjU3MTcgNi41IDEyLjVIMTMuNUMxMy41IDExLjU3MTcgMTMuMTMxMyAxMC42ODE1IDEyLjQ3NDkgMTAuMDI1MUMxMS44MTg1IDkuMzY4NzUgMTAuOTI4MyA5IDEwIDlaXCIgc3Ryb2tlPVwiIzBBODZFNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cblxuICAgIDwhLS0gU3RlcCBOdW1iZXIgYW5kIFRpdGxlIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMzM0MTU1XSBjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzE4cHhdXCIgc3R5bGU9XCJ3b3JkLWJyZWFrOiBicmVhay13b3JkO1wiPlxuICAgICAgICB7eyBjb25maWcuc3RlcE51bWJlciB9fS4gPHNwYW4gW2lubmVySFRNTF09XCJjb25maWcudGl0bGVcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImNxYS1weC0xLjUgY3FhLXJvdW5kZWQtZnVsbCBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwQTg2RTZdIGNxYS1iZy1bI0U2RjRGRl0gY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XVwiPlxuICAgICAgICBEb2N1bWVudCBWZXJpZmljYXRpb25cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMVwiPlxuICAgICAgPCEtLSBTdGVwIENoYW5nZSBCYWRnZXMgKGRlYnVnIG9ubHkpIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRGVidWdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYmFkZ2Ugb2Ygc3RlcEJhZGdlc1wiPlxuICAgICAgICA8Y3FhLWJhZGdlXG4gICAgICAgICAgKm5nSWY9XCJiYWRnZSA9PT0gJ3NraXBwZWQnXCJcbiAgICAgICAgICBsYWJlbD1cIlNraXBwZWRcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgW3RleHRDb2xvcl09XCInIzRBNTU2NSdcIlxuICAgICAgICAgIFtib3JkZXJDb2xvcl09XCInIzk5QTFBRidcIlxuICAgICAgICAgIFtiYWNrZ3JvdW5kQ29sb3JdPVwiJyNGRkZGRkYnXCI+XG4gICAgICAgIDwvY3FhLWJhZGdlPlxuICAgICAgICA8Y3FhLWJhZGdlXG4gICAgICAgICAgKm5nSWY9XCJiYWRnZSA9PT0gJ2VkaXRlZCdcIlxuICAgICAgICAgIGxhYmVsPVwiRWRpdGVkXCJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgIFt0ZXh0Q29sb3JdPVwiJyNGQkJGMjQnXCJcbiAgICAgICAgICBbYm9yZGVyQ29sb3JdPVwiJyNGRERGOTInXCJcbiAgICAgICAgICBbYmFja2dyb3VuZENvbG9yXT1cIicjRkZGOUU5J1wiPlxuICAgICAgICA8L2NxYS1iYWRnZT5cbiAgICAgICAgPGNxYS1iYWRnZVxuICAgICAgICAgICpuZ0lmPVwiYmFkZ2UgPT09ICdhZGRlZCdcIlxuICAgICAgICAgIGxhYmVsPVwiQWRkZWRcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgW3RleHRDb2xvcl09XCInIzBEQkQ3RCdcIlxuICAgICAgICAgIFtib3JkZXJDb2xvcl09XCInIzVFRDNBOCdcIlxuICAgICAgICAgIFtiYWNrZ3JvdW5kQ29sb3JdPVwiJyNDRkYyRTUnXCI+XG4gICAgICAgIDwvY3FhLWJhZGdlPlxuICAgICAgICA8Y3FhLWJhZGdlXG4gICAgICAgICAgKm5nSWY9XCJiYWRnZSA9PT0gJ3JlbW92ZWQnXCJcbiAgICAgICAgICBsYWJlbD1cIlJlbW92ZWRcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgW3RleHRDb2xvcl09XCInI0VFM0YzRidcIlxuICAgICAgICAgIFtib3JkZXJDb2xvcl09XCInI0Y0N0Y3RidcIlxuICAgICAgICAgIFtiYWNrZ3JvdW5kQ29sb3JdPVwiJyNGQ0Q5RDknXCI+XG4gICAgICAgIDwvY3FhLWJhZGdlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEgY3FhLXJvdW5kZWQtWzRweF0gY3FhLXB5LTAuNSBjcWEtcHgtMSBjcWEtYmctWyM2MzY2RjExQV0gY3FhLW1sLTEgY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwIGNxYS10cmFuc2l0aW9uLW9wYWNpdHlcIlxuICAgICAgICAgICAqbmdJZj1cInN0ZXA/LmV4ZWN1dGVkUmVzdWx0Py52aWRlb19zdGFydF90aW1lXCIgXG4gICAgICAgICAgIFttYXRUb29sdGlwXT1cIidKdW1wIHRvIHZpZGVvIHRpbWUnXCIgXG4gICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgICAgKGNsaWNrKT1cIm9uSnVtcFRvVGltZXN0YW1wKCRldmVudClcIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXRleHQtWyM2MzYzNjNdICFjcWEtdGV4dC1bMTBweF0gIWNxYS13LVsxMHB4XSAhY3FhLWgtWzEwcHhdXCI+XG4gICAgICAgICAgcGxheV9hcnJvd1xuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVs4cHhdIGNxYS1sZWFkaW5nLVsxMnB4XSBjcWEtZm9udC1ub3JtYWwgY3FhLXRleHQtWyM2MzYzNjNdXCI+XG4gICAgICAgICAge3sgZm9ybWF0RHVyYXRpb25DbG9jayhzdGVwPy5leGVjdXRlZFJlc3VsdD8udmlkZW9fc3RhcnRfdGltZSB8fCAwKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJpc0RlYnVnXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMC41IGNxYS10ZXh0LVsjOUNBM0FGXVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFzdGVwPy5pc1N0ZXBHcm91cENoaWxkcmVuXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY3FhLXAtMCBjcWEtYm9yZGVyLTAgY3FhLWJnLXRyYW5zcGFyZW50IGNxYS1jdXJzb3ItcG9pbnRlciBob3ZlcjpjcWEtb3BhY2l0eS04MCBjcWEtdHJhbnNpdGlvbi1vcGFjaXR5IGZvY3VzOmNxYS1vdXRsaW5lLW5vbmVcIiBhcmlhLWxhYmVsPVwiRWRpdFwiIChjbGljayk9XCJvbkVkaXRTdGVwKCRldmVudClcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCIhY3FhLXRleHQtWzE0cHhdICFjcWEtdy1bMTRweF0gIWNxYS1oLVsxNHB4XVwiPmVkaXQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFzdGVwPy5pc1N0ZXBHcm91cENoaWxkcmVuXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY3FhLXAtMCBjcWEtYm9yZGVyLTAgY3FhLWJnLXRyYW5zcGFyZW50IGNxYS1jdXJzb3ItcG9pbnRlciBob3ZlcjpjcWEtb3BhY2l0eS04MCBjcWEtdHJhbnNpdGlvbi1vcGFjaXR5IGZvY3VzOmNxYS1vdXRsaW5lLW5vbmVcIiBhcmlhLWxhYmVsPVwiQWRkXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFkZFN0ZXBNZW51XCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS10ZXh0LVsxNHB4XSAhY3FhLXctWzE0cHhdICFjcWEtaC1bMTRweF1cIj5hZGQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51ICNhZGRTdGVwTWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cImNxYS1hZGQtc3RlcC1tZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCIgeVBvc2l0aW9uPVwiYmVsb3dcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IG9wdCBvZiBhZGRTdGVwTWVudU9wdGlvbnNcIiAoY2xpY2spPVwib25BZGRTdGVwT3B0aW9uU2VsZWN0KG9wdCwgJGV2ZW50KVwiPnt7IG9wdC5sYWJlbCB9fTwvYnV0dG9uPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZWZmZWN0aXZlU3RlcE1vcmVNZW51T3B0aW9ucy5sZW5ndGhcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjcWEtcC0wIGNxYS1ib3JkZXItMCBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwIGNxYS10cmFuc2l0aW9uLW9wYWNpdHkgZm9jdXM6Y3FhLW91dGxpbmUtbm9uZVwiIGFyaWEtbGFiZWw9XCJNb3JlIG9wdGlvbnNcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwic3RlcE1vcmVNZW51XCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS10ZXh0LVsxNHB4XSAhY3FhLXctWzE0cHhdICFjcWEtaC1bMTRweF1cIj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51ICNzdGVwTW9yZU1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJjcWEtc3RlcC1tb3JlLW1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIiB5UG9zaXRpb249XCJiZWxvd1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgb3B0IG9mIGVmZmVjdGl2ZVN0ZXBNb3JlTWVudU9wdGlvbnNcIiAoY2xpY2spPVwib25TdGVwTW9yZU9wdGlvblNlbGVjdChvcHQsICRldmVudClcIj57eyBvcHQubGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS10ZXh0LVsjOUNBM0FGXVwiPlxuICAgICAgICB7eyBmb3JtYXREdXJhdGlvbihjb25maWcuZHVyYXRpb24pIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3ZnIFtjbGFzcy5jcWEtcm90YXRlLTE4MF09XCJpc0V4cGFuZGVkXCIgY2xhc3M9XCJjcWEtdHJhbnNpdGlvbi10cmFuc2Zvcm1cIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0zLjUgNUw3IDguNUwxMC41IDVcIiBzdHJva2U9XCIjOUNBM0FGXCIgc3Ryb2tlLXdpZHRoPVwiMC44MzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRXhwYW5kZWQgQ29udGVudCAtLT5cbiAgPGRpdiAqbmdJZj1cImlzRXhwYW5kZWRcIiAgY2xhc3M9XCJjcWEtYmctWyNGRkZFRjldIGNxYS1tdC0xLjUgY3FhLW1sLTkgY3FhLW1yLTYgY3FhLXAtNCBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xLjVcIiBzdHlsZT1cImJvcmRlci10b3A6IDFweCBzb2xpZCAjRTRFNEU0O1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTIgY3FhLWdhcC0zXCI+XG4gICAgICA8IS0tIERvY3VtZW50IFNjcmVlbnNob3QgQ2FyZCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYmctWyNGQ0ZDRkNdIGNxYS1yb3VuZGVkLWxnIGNxYS1wLTMgY3FhLWZsZXggY3FhLWZsZXgtY29sXCIgc3R5bGU9XCJib3JkZXI6IDFweCBzb2xpZCAjRURFOUZFXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1tYi0yXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzYzNjM2M11cIj5Eb2N1bWVudCBTY3JlZW5zaG90PC9zcGFuPlxuICAgICAgICAgIDxidXR0b24+XG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTEwIDRINUM0LjQ0NzcyIDQgNCA0LjQ0NzcyIDQgNVYxMEM0IDEwLjU1MjMgNC40NDc3MiAxMSA1IDExSDEwQzEwLjU1MjMgMTEgMTEgMTAuNTUyMyAxMSAxMFY1QzExIDQuNDQ3NzIgMTAuNTUyMyA0IDEwIDRaXCIgc3Ryb2tlPVwiIzYzNjM2M1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTIgOEMxLjQ1IDggMSA3LjU1IDEgN1YyQzEgMS40NSAxLjQ1IDEgMiAxSDdDNy41NSAxIDggMS40NSA4IDJcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTVFNUU1XSBjcWEtcm91bmRlZC1bMTBweF0gY3FhLWJnLVsjRjVGNUY1XSBjcWEtYXNwZWN0LXZpZGVvIGNxYS1oLWZ1bGwgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTI1LjMzMzMgNEg2LjY2NjY3QzUuMTkzOTEgNCA0IDUuMTkzOTEgNCA2LjY2NjY3VjI1LjMzMzNDNCAyNi44MDYxIDUuMTkzOTEgMjggNi42NjY2NyAyOEgyNS4zMzMzQzI2LjgwNjEgMjggMjggMjYuODA2MSAyOCAyNS4zMzMzVjYuNjY2NjdDMjggNS4xOTM5MSAyNi44MDYxIDQgMjUuMzMzMyA0WlwiIHN0cm9rZT1cIiM3MzczNzNcIiBzdHJva2Utb3BhY2l0eT1cIjAuNVwiIHN0cm9rZS13aWR0aD1cIjIuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0xMiAxNC42NjY2QzEzLjQ3MjcgMTQuNjY2NiAxNC42NjY2IDEzLjQ3MjcgMTQuNjY2NiAxMS45OTk5QzE0LjY2NjYgMTAuNTI3MiAxMy40NzI3IDkuMzMzMjUgMTIgOS4zMzMyNUMxMC41MjcyIDkuMzMzMjUgOS4zMzMzMSAxMC41MjcyIDkuMzMzMzEgMTEuOTk5OUM5LjMzMzMxIDEzLjQ3MjcgMTAuNTI3MiAxNC42NjY2IDEyIDE0LjY2NjZaXCIgc3Ryb2tlPVwiIzczNzM3M1wiIHN0cm9rZS1vcGFjaXR5PVwiMC41XCIgc3Ryb2tlLXdpZHRoPVwiMi42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTI4IDE5Ljk5OTlMMjMuODg1MyAxNS44ODUzQzIzLjM4NTMgMTUuMzg1MyAyMi43MDcxIDE1LjEwNDUgMjIgMTUuMTA0NUMyMS4yOTI5IDE1LjEwNDUgMjAuNjE0NyAxNS4zODUzIDIwLjExNDcgMTUuODg1M0w4IDI3Ljk5OTlcIiBzdHJva2U9XCIjNzM3MzczXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjVcIiBzdHJva2Utd2lkdGg9XCIyLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIEV4dHJhY3RlZCBGaWVsZHMgQ2FyZCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYmctWyNGQ0ZDRkNdIGNxYS1yb3VuZGVkLWxnIGNxYS1wLTMgY3FhLWZsZXggY3FhLWZsZXgtY29sXCIgc3R5bGU9XCJib3JkZXI6IDFweCBzb2xpZCAjRURFOUZFXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1tYi0yXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzYzNjM2M11cIj5FeHRyYWN0ZWQgRmllbGRzPC9zcGFuPlxuICAgICAgICAgIDxidXR0b24+XG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTEwIDRINUM0LjQ0NzcyIDQgNCA0LjQ0NzcyIDQgNVYxMEM0IDEwLjU1MjMgNC40NDc3MiAxMSA1IDExSDEwQzEwLjU1MjMgMTEgMTEgMTAuNTUyMyAxMSAxMFY1QzExIDQuNDQ3NzIgMTAuNTUyMyA0IDEwIDRaXCIgc3Ryb2tlPVwiIzYzNjM2M1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTIgOEMxLjQ1IDggMSA3LjU1IDEgN1YyQzEgMS40NSAxLjQ1IDEgMiAxSDdDNy41NSAxIDggMS40NSA4IDJcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtYmctd2hpdGUgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNDNkQyRkZdIGNxYS1yb3VuZGVkLWxnXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGNvbmZpZy5leHRyYWN0ZWRGaWVsZHNcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yIGNxYS1weC0zIGNxYS1wdC0xIGNxYS1wYi0xLjUgY3FhLWJvcmRlci1iIGNxYS1ib3JkZXItdC0wIGNxYS1ib3JkZXItbC0wIGNxYS1ib3JkZXItci0wIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0U0RTRFNF0gbGFzdDpjcWEtYm9yZGVyLTBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bOHB4XSBjcWEtbGVhZGluZy1bMTJweF0gY3FhLXRleHQtWyM2MzYzNjNdXCI+e3sgZmllbGQubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMEIwQjBCXVwiPnt7IGZpZWxkLnZhbHVlIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1weC0yIGNxYS1weS1bMnB4XSBjcWEtcm91bmRlZCBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwMDgyMzZdIGNxYS1iZy1bI0RDRkNFN10gY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XVwiPlxuICAgICAgICAgICAgICAgIHt7IGZpZWxkLmNvbmZpZGVuY2UgfX0lXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoZmllbGQudmFsdWUpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNxYS1wLTFcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTExLjY2NjcgNC42NjY3NUg1LjgzMzMyQzUuMTg4OTkgNC42NjY3NSA0LjY2NjY2IDUuMTg5MDggNC42NjY2NiA1LjgzMzQxVjExLjY2NjdDNC42NjY2NiAxMi4zMTExIDUuMTg4OTkgMTIuODMzNCA1LjgzMzMyIDEyLjgzMzRIMTEuNjY2N0MxMi4zMTEgMTIuODMzNCAxMi44MzMzIDEyLjMxMTEgMTIuODMzMyAxMS42NjY3VjUuODMzNDFDMTIuODMzMyA1LjE4OTA4IDEyLjMxMSA0LjY2Njc1IDExLjY2NjcgNC42NjY3NVpcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTIuMzMzMzIgOS4zMzM0MUMxLjY5MTY2IDkuMzMzNDEgMS4xNjY2NiA4LjgwODQxIDEuMTY2NjYgOC4xNjY3NVYyLjMzMzQxQzEuMTY2NjYgMS42OTE3NSAxLjY5MTY2IDEuMTY2NzUgMi4zMzMzMiAxLjE2Njc1SDguMTY2NjZDOC44MDgzMiAxLjE2Njc1IDkuMzMzMzIgMS42OTE3NSA5LjMzMzMyIDIuMzMzNDFcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gVmVyaWZpY2F0aW9uIENoZWNrcyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLW10LTEuNVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1tYi0yXCI+XG4gICAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02LjAwMDA0IDMuMzMzMzNINC42NjY3MUM0LjMxMzA5IDMuMzMzMzMgMy45NzM5NSAzLjQ3MzgxIDMuNzIzOSAzLjcyMzg2QzMuNDczODUgMy45NzM5MSAzLjMzMzM3IDQuMzEzMDQgMy4zMzMzNyA0LjY2NjY3VjEyLjY2NjdDMy4zMzMzNyAxMy4wMjAzIDMuNDczODUgMTMuMzU5NCAzLjcyMzkgMTMuNjA5NUMzLjk3Mzk1IDEzLjg1OTUgNC4zMTMwOSAxNCA0LjY2NjcxIDE0SDExLjMzMzRDMTEuNjg3IDE0IDEyLjAyNjEgMTMuODU5NSAxMi4yNzYyIDEzLjYwOTVDMTIuNTI2MiAxMy4zNTk0IDEyLjY2NjcgMTMuMDIwMyAxMi42NjY3IDEyLjY2NjdWNC42NjY2N0MxMi42NjY3IDQuMzEzMDQgMTIuNTI2MiAzLjk3MzkxIDEyLjI3NjIgMy43MjM4NkMxMi4wMjYxIDMuNDczODEgMTEuNjg3IDMuMzMzMzMgMTEuMzMzNCAzLjMzMzMzSDEwTTYuMDAwMDQgMy4zMzMzM0M2LjAwMDA0IDMuNjg2OTYgNi4xNDA1MiA0LjAyNjA5IDYuMzkwNTcgNC4yNzYxNEM2LjY0MDYxIDQuNTI2MTkgNi45Nzk3NSA0LjY2NjY3IDcuMzMzMzcgNC42NjY2N0g4LjY2NjcxQzkuMDIwMzMgNC42NjY2NyA5LjM1OTQ3IDQuNTI2MTkgOS42MDk1MiA0LjI3NjE0QzkuODU5NTYgNC4wMjYwOSAxMCAzLjY4Njk2IDEwIDMuMzMzMzNNNi4wMDAwNCAzLjMzMzMzQzYuMDAwMDQgMi45Nzk3MSA2LjE0MDUyIDIuNjQwNTcgNi4zOTA1NyAyLjM5MDUyQzYuNjQwNjEgMi4xNDA0OCA2Ljk3OTc1IDIgNy4zMzMzNyAySDguNjY2NzFDOS4wMjAzMyAyIDkuMzU5NDcgMi4xNDA0OCA5LjYwOTUyIDIuMzkwNTJDOS44NTk1NiAyLjY0MDU3IDEwIDIuOTc5NzEgMTAgMy4zMzMzM002LjAwMDA0IDkuMzMzMzNMNy4zMzMzNyAxMC42NjY3TDEwIDhcIiBzdHJva2U9XCIjNjE1RkZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMEIwQjBCXVwiPlZlcmlmaWNhdGlvbiBDaGVja3M8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY2hlY2sgb2YgY29uZmlnLnZlcmlmaWNhdGlvbkNoZWNrc1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2NxYS1iZy1bI0YwRkRGNF0gY3FhLWJvcmRlci1bI0I5RjhDRl0nOiBjaGVjay5zdGF0dXMgPT09ICdwYXNzJyxcbiAgICAgICAgICAgICdjcWEtYmctWyNGRUYyRjJdIGNxYS1ib3JkZXItWyNGRkM5QzldJzogY2hlY2suc3RhdHVzID09PSAnZmFpbCdcbiAgICAgICAgICB9XCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtcm91bmRlZC1sZyBjcWEtcC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdGFydCBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtMiBjcWEtbWItMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgICAgIDwhLS0gPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2hlY2suc3RhdHVzID09PSAncGFzcycgPyAnY3FhLXRleHQtZ3JlZW4tNjAwJyA6ICdjcWEtdGV4dC1yZWQtNjAwJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCIhY3FhLXctNSAhY3FhLWgtNSAhY3FhLXRleHQtWzIwcHhdXCI+XG4gICAgICAgICAgICAgICAge3sgY2hlY2suc3RhdHVzID09PSAncGFzcycgPyAnY2hlY2tfY2lyY2xlJyA6ICdjYW5jZWwnIH19XG4gICAgICAgICAgICAgIDwvbWF0LWljb24+IC0tPlxuICAgICAgICAgICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxNiAxOFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTMuMzMzMyA2TDUuOTk5OTYgMTMuMzMzM0wyLjY2NjYzIDEwXCIgc3Ryb2tlPVwiIzAwQTYzRVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzBCMEIwQl1cIj57eyBjaGVjay5kZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdjcWEtdGV4dC1bIzAwODIzNl0gY3FhLWJnLVsjRENGQ0U3XSc6IGNoZWNrLnN0YXR1cyA9PT0gJ3Bhc3MnLFxuICAgICAgICAgICAgICAgICdjcWEtdGV4dC1bI0MxMDAwN10gY3FhLWJnLVsjRkZFMkUyXSc6IGNoZWNrLnN0YXR1cyA9PT0gJ2ZhaWwnXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICBjbGFzcz1cImNxYS1weC0yIGNxYS1weS1bMnB4XSBjcWEtcm91bmRlZCBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XVwiPlxuICAgICAgICAgICAgICB7eyBjaGVjay5zdGF0dXMgPT09ICdwYXNzJyA/ICdQQVNTJyA6ICdGQUlMJyB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTIgY3FhLWdhcC0zIGNxYS1wbC02XCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM2MzYzNjNdIGNxYS1tYi0xXCI+RXhwZWN0ZWQ8L2Rpdj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjaGVjay5leHBlY3RlZFwiXG4gICAgICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLXB5LTEuNSBjcWEtcHgtMiAhY3FhLWJvcmRlciAhY3FhLWJvcmRlci1zb2xpZCAhY3FhLWJvcmRlci1bI0U0RTRFNF0gY3FhLXJvdW5kZWQgIWNxYS1iZy13aGl0ZSBjcWEtdGV4dC1bMTFweF0gY3FhLWxlYWRpbmctWzEzcHhdIGNxYS10ZXh0LVsjMEIwQjBCXVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzYzNjM2M10gY3FhLW1iLTFcIj5BY3R1YWw8L2Rpdj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjaGVjay5hY3R1YWxcIlxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1weS0xLjUgY3FhLXB4LTIgIWNxYS1ib3JkZXIgIWNxYS1ib3JkZXItc29saWQgIWNxYS1ib3JkZXItWyNFNEU0RTRdIGNxYS1yb3VuZGVkICFjcWEtYmctd2hpdGUgY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxM3B4XSBjcWEtdGV4dC1bIzBCMEIwQl1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFRpbWluZyBCcmVha2Rvd24gLS0+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiY29uZmlnLnRpbWluZ0JyZWFrZG93blwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1lbmQgY3FhLWdhcC01IGNxYS1wdC0xLjUgY3FhLXB4LTQgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM5Q0EzQUZdXCI+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNiAxMUM4Ljc2MTQyIDExIDExIDguNzYxNDIgMTEgNkMxMSAzLjIzODU4IDguNzYxNDIgMSA2IDFDMy4yMzg1OCAxIDEgMy4yMzg1OCAxIDZDMSA4Ljc2MTQyIDMuMjM4NTggMTEgNiAxMVpcIiBzdHJva2U9XCIjOUNBM0FGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNiAzVjZMOCA3XCIgc3Ryb2tlPVwiIzlDQTNBRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICAgIDxzcGFuPlRpbWluZyBicmVha2Rvd248L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1kaWFsb2ctbXV0ZWQgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTNcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIEFwcCA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LWdyYXktNzAwXCI+e3sgZm9ybWF0RHVyYXRpb24oY29uZmlnLnRpbWluZ0JyZWFrZG93bi5hcHApIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxXCIgaGVpZ2h0PVwiMTFcIiB2aWV3Qm94PVwiMCAwIDEgMTFcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTS0zLjgxNDdlLTA2IDEwLjMyVi03LjE1MjU2ZS0wN0gwLjk1OTk5NlYxMC4zMkgtMy44MTQ3ZS0wNlpcIiBmaWxsPVwiI0U1RTdFQlwiLz48L3N2Zz48L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIFRvb2wgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1ncmF5LTcwMFwiPnt7IGZvcm1hdER1cmF0aW9uKGNvbmZpZy50aW1pbmdCcmVha2Rvd24udG9vbCkgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -134,6 +134,9 @@ export class LiveExecutionStepComponent extends BaseStepComponent {
134
134
  if (changes['stepDeleted'] && this.config) {
135
135
  this.config.stepDeleted = changes['stepDeleted'].currentValue;
136
136
  }
137
+ if (changes['stepNumber'] && this.config) {
138
+ this.config.stepNumber = changes['stepNumber'].currentValue;
139
+ }
137
140
  }
138
141
  ngDoCheck() {
139
142
  const currentLength = (this.subSteps || []).length;
@@ -446,4 +449,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
446
449
  }], step: [{
447
450
  type: Input
448
451
  }] } });
449
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS1leGVjdXRpb24tc3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2V4ZWN1dGlvbi1zY3JlZW4vbGl2ZS1leGVjdXRpb24tc3RlcC9saXZlLWV4ZWN1dGlvbi1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9saXZlLWV4ZWN1dGlvbi1zdGVwL2xpdmUtZXhlY3V0aW9uLXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBd0QsTUFBTSxlQUFlLENBQUM7QUFDN0gsT0FBTyxFQUF1Riw2QkFBNkIsRUFBc0IsOEJBQThCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsTixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7O0FBUTNELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxpQkFBaUI7SUFOakU7O1FBYVcsWUFBTyxHQUFhLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFhLEtBQUssQ0FBQztRQUNoQyxrQkFBYSxHQUFhLEtBQUssQ0FBQztRQUMvQixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQy9DLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3BDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQzVELHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBQy9ELHVCQUFrQixHQUF3Qiw2QkFBNkIsQ0FBQztRQUN4RSx3QkFBbUIsR0FBeUIsOEJBQThCLENBQUM7UUFHM0UsYUFBUSxHQUFrQixFQUFFLENBQUM7UUF5QzlCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUU1Qyw4REFBOEQ7UUFDOUQsc0JB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QUUsRUFBRTtZQUNyRSxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0MsT0FBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlEO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsR0FBRyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3hELENBQUM7O3VIQTdiVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixndEJDVnZDLG8rYUFpTEE7MkZEdkthLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDRSx5QkFBeUIsUUFHN0IsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUU7OEJBSWhDLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIERvQ2hlY2ssIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VTdGVwQ29uZmlnLCBTdGVwU3RhdHVzLCBMaXZlU3ViU3RlcCwgTGl2ZUV4ZWN1dGlvblN0ZXBDb25maWcsIEFkZFN0ZXBNZW51T3B0aW9uLCBERUZBVUxUX0FERF9TVEVQX01FTlVfT1BUSU9OUywgU3RlcE1vcmVNZW51T3B0aW9uLCBERUZBVUxUX1NURVBfTU9SRV9NRU5VX09QVElPTlMgfSBmcm9tICcuLi9leGVjdXRpb24tc3RlcC5tb2RlbHMnO1xuaW1wb3J0IHsgQmFzZVN0ZXBDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXN0ZXAuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWxpdmUtZXhlY3V0aW9uLXN0ZXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGl2ZS1leGVjdXRpb24tc3RlcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCBjcWEtdy1mdWxsJyB9XG59KVxuZXhwb3J0IGNsYXNzIExpdmVFeGVjdXRpb25TdGVwQ29tcG9uZW50IGV4dGVuZHMgQmFzZVN0ZXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBEb0NoZWNrIHtcbiAgLy8gSW5kaXZpZHVhbCBpbnB1dHNcbiAgQElucHV0KCkgaWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRlc3RTdGVwUmVzdWx0SWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0ZXBOdW1iZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKSBzdGF0dXMhOiBTdGVwU3RhdHVzO1xuICBASW5wdXQoKSBpc0RlYnVnPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkZWJ1Z1BvaW50U2V0PzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwYXJlbnRTa2lwcGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgZGVidWdQb2ludENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGVkaXRTdGVwID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYWRkU3RlcE9wdGlvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8QWRkU3RlcE1lbnVPcHRpb24+KCk7XG4gIEBPdXRwdXQoKSBzdGVwTW9yZU9wdGlvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3RlcE1vcmVNZW51T3B0aW9uPigpO1xuICBASW5wdXQoKSBhZGRTdGVwTWVudU9wdGlvbnM6IEFkZFN0ZXBNZW51T3B0aW9uW10gPSBERUZBVUxUX0FERF9TVEVQX01FTlVfT1BUSU9OUztcbiAgQElucHV0KCkgc3RlcE1vcmVNZW51T3B0aW9uczogU3RlcE1vcmVNZW51T3B0aW9uW10gPSBERUZBVUxUX1NURVBfTU9SRV9NRU5VX09QVElPTlM7XG4gIEBJbnB1dCgpIGR1cmF0aW9uITogbnVtYmVyO1xuICBASW5wdXQoKSBleHBhbmRlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN1YlN0ZXBzOiBMaXZlU3ViU3RlcFtdID0gW107XG4gIEBJbnB1dCgpIHN0ZXBEZWxldGVkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgc3RlcD86IGFueTtcbiAgZ2V0IHN0ZXBCYWRnZXMoKTogKCdza2lwcGVkJyB8ICdlZGl0ZWQnIHwgJ2FkZGVkJyB8ICdyZW1vdmVkJylbXSB7XG4gICAgY29uc3QgYmFkZ2UgPSB0aGlzLnN0ZXA/LnN0ZXBCYWRnZTtcbiAgICBpZiAoIWJhZGdlKSByZXR1cm4gW107XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYmFkZ2UpID8gYmFkZ2UgOiBbYmFkZ2VdO1xuICB9XG5cbiAgZ2V0IGlzU2tpcHBlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwQmFkZ2VzLmluY2x1ZGVzKCdza2lwcGVkJyk7XG4gIH1cblxuICBnZXQgaXNTdGVwRGVsZXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwQmFkZ2VzLmluY2x1ZGVzKCdyZW1vdmVkJyk7XG4gIH1cblxuICAvKiogU2hvdyBkZWJ1ZyBpY29uIG9ubHkgd2hlbiB0aGlzIHN0ZXAgaGFzIG5vIGNoaWxkIHN0ZXBzIChsZWFmIHN0ZXA6IGFsd2F5cyBzaG93IHdoZW4gaXNEZWJ1ZykuICovXG4gIGdldCBzaG93RGVidWdJY29uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRGVidWcgPT09IHRydWU7XG4gIH1cblxuICAvKiogUGVyLXN0ZXAgZmlsdGVyZWQgdGhyZWUtZG90IG1lbnUgb3B0aW9ucyAoZS5nLiBoaWRlIER1cGxpY2F0ZS9EZWxldGUgZm9yIHN0ZXAtZ3JvdXAgY2hpbGRyZW4pLiAqL1xuICBnZXQgZWZmZWN0aXZlU3RlcE1vcmVNZW51T3B0aW9ucygpOiBTdGVwTW9yZU1lbnVPcHRpb25bXSB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuc3RlcE1vcmVNZW51T3B0aW9ucyB8fCBbXTtcbiAgICBjb25zdCBzdGVwUmVmOiBhbnkgPSB0aGlzLnN0ZXA7XG4gICAgaWYgKCFzdGVwUmVmKSByZXR1cm4gYmFzZTtcblxuICAgIGNvbnN0IGlzR3JvdXBDaGlsZCA9ICEhc3RlcFJlZi5pc1N0ZXBHcm91cENoaWxkcmVuO1xuICAgIC8vIFdoZW4gc3RlcC5zdGVwTW9yZU1lbnVPcHRpb25zIGlzIHRydXRoeSBPUiBzdGVwIGlzIGEgc3RlcC1ncm91cCBjaGlsZCwgaGlkZSBtdXRhdGluZyBpdGVtc1xuICAgIGNvbnN0IHN1cHByZXNzTXV0YXRpbmcgPSAhIXN0ZXBSZWYuc3RlcE1vcmVNZW51T3B0aW9ucyB8fCBpc0dyb3VwQ2hpbGQ7XG4gICAgaWYgKCFzdXBwcmVzc011dGF0aW5nKSByZXR1cm4gYmFzZTtcblxuICAgIHJldHVybiBiYXNlLmZpbHRlcihvcHQgPT4gb3B0LmlkICE9PSAnZHVwbGljYXRlJyAmJiBvcHQuaWQgIT09ICdkZWxldGUnKTtcbiAgfVxuXG4gIC8vIENvbmZpZyBwcm9wZXJ0eSBmb3IgYmFzZSBjbGFzcyAtIGJ1aWx0IGZyb20gaW5kaXZpZHVhbCBpbnB1dHMgaW4gbmdPbkluaXRcbiAgb3ZlcnJpZGUgY29uZmlnITogTGl2ZUV4ZWN1dGlvblN0ZXBDb25maWc7XG5cbiAgLy8gVHJhY2sgcHJldmlvdXMgc3RhdHVzIHRvIGRldGVjdCB3aGVuIHN0ZXAgc3RhcnRzIGV4ZWN1dGluZ1xuICBwcml2YXRlIHByZXZpb3VzU3RhdHVzPzogU3RlcFN0YXR1cztcbiAgcHJpdmF0ZSB1c2VyTWFudWFsbHlDbG9zZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBQcm9jZXNzZWQgc3ViLXN0ZXBzIGZvciBXQUlUX0ZPUl9MT0NBVE9SIGNvdW50ZG93biBncm91cGluZ1xuICBwcm9jZXNzZWRTdWJTdGVwczogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBsYXN0UHJvY2Vzc2VkSW5kZXg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgd2FpdExvY2F0b3JHcm91cEVudHJ5OiBhbnkgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBjb3VudGRvd25JbnRlcnZhbElkOiBhbnkgPSBudWxsO1xuXG4gIC8vIEFJX0FVVE9fSEVBTCBncm91cGluZzogc2hvdyBsb2FkaW5nIHVudGlsIEFJX0FVVE9fSEVBTF9TVUNDRVNTIG9yIEFJX0FVVE9fSEVBTF9GQUlMRURcbiAgcHJpdmF0ZSBhaUF1dG9IZWFsR3JvdXBFbnRyeTogYW55IHwgbnVsbCA9IG51bGw7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gQnVpbGQgY29uZmlnIGZyb20gaW5kaXZpZHVhbCBpbnB1dHNcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgdGVzdFN0ZXBSZXN1bHRJZDogdGhpcy50ZXN0U3RlcFJlc3VsdElkLFxuICAgICAgc3RlcE51bWJlcjogdGhpcy5zdGVwTnVtYmVyLFxuICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgICAgZHVyYXRpb246IHRoaXMuZHVyYXRpb24sXG4gICAgICBkaXNwbGF5VHlwZTogJ2xpdmUtZXhlY3V0aW9uJyxcbiAgICAgIHN1YlN0ZXBzOiB0aGlzLnN1YlN0ZXBzIHx8IFtdLFxuICAgICAgc3RlcERlbGV0ZWQ6IHRoaXMuc3RlcERlbGV0ZWQsXG4gICAgICBleHBhbmRlZDogdGhpcy5leHBhbmRlZCxcbiAgICB9IGFzIExpdmVFeGVjdXRpb25TdGVwQ29uZmlnO1xuXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBcbiAgICAvLyBJbml0aWFsaXplIHByZXZpb3VzIHN0YXR1c1xuICAgIHRoaXMucHJldmlvdXNTdGF0dXMgPSB0aGlzLnN0YXR1cztcblxuICAgIC8vIFByb2Nlc3MgYW55IHN1YlN0ZXBzIHRoYXQgd2VyZSBwYXNzZWQgYXQgaW5pdCB0aW1lXG4gICAgaWYgKHRoaXMuc3ViU3RlcHMgJiYgdGhpcy5zdWJTdGVwcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnByb2Nlc3NMaXZlU3ViU3RlcHMoKTtcbiAgICB9XG4gICAgXG4gICAgLy8gQXV0by1leHBhbmQgaWYgc3RlcCBpcyBydW5uaW5nIGFuZCBoYXMgc3ViU3RlcHMgb24gaW5pdFxuICAgIGlmICh0aGlzLnN0YXR1cyA9PT0gJ3J1bm5pbmcnICYmIHRoaXMuaGFzU3ViU3RlcHMgJiYgIXRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgdGhpcy5hdXRvRXhwYW5kKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIFVwZGF0ZSBzdWJTdGVwcyBhcnJheSB3aGVuIG5ldyBvbmVzIGFyZSBhZGRlZFxuICAgIGlmIChjaGFuZ2VzWydzdWJTdGVwcyddKSB7XG4gICAgICBjb25zdCBwcmV2aW91c1N1YlN0ZXBzQ291bnQgPSBjaGFuZ2VzWydzdWJTdGVwcyddLnByZXZpb3VzVmFsdWU/Lmxlbmd0aCB8fCAwO1xuICAgICAgY29uc3QgY3VycmVudFN1YlN0ZXBzQ291bnQgPSAodGhpcy5zdWJTdGVwcyB8fCBbXSkubGVuZ3RoO1xuICAgICAgXG4gICAgICAvLyBTdWItc3RlcHMgYXJlIGFwcGVuZGVkIGV4dGVybmFsbHksIHNvIHdlIGp1c3QgdXBkYXRlIHRoZSBjb25maWdcbiAgICAgIGlmICh0aGlzLmNvbmZpZykge1xuICAgICAgICB0aGlzLmNvbmZpZy5zdWJTdGVwcyA9IHRoaXMuc3ViU3RlcHMgfHwgW107XG4gICAgICB9XG5cbiAgICAgIC8vIFByb2Nlc3MgaW5jb21pbmcgc3ViU3RlcHMgZm9yIFdBSVRfRk9SX0xPQ0FUT1IgZ3JvdXBpbmdcbiAgICAgIHRoaXMucHJvY2Vzc0xpdmVTdWJTdGVwcygpO1xuICAgICAgXG4gICAgICAvLyBBdXRvLWV4cGFuZCBpZiBzdGVwIGlzIHJ1bm5pbmcgYW5kIG5ldyBzdWJTdGVwcyBhcmUgYWRkZWQgKGxvZ3MgY29taW5nIGluKVxuICAgICAgaWYgKCFjaGFuZ2VzWydzdWJTdGVwcyddLmZpcnN0Q2hhbmdlICYmIFxuICAgICAgICAgIHRoaXMuc3RhdHVzID09PSAncnVubmluZycgJiYgXG4gICAgICAgICAgY3VycmVudFN1YlN0ZXBzQ291bnQgPiBwcmV2aW91c1N1YlN0ZXBzQ291bnQgJiZcbiAgICAgICAgICB0aGlzLmhhc1N1YlN0ZXBzICYmIFxuICAgICAgICAgICF0aGlzLmlzRXhwYW5kZWQgJiYgXG4gICAgICAgICAgIXRoaXMudXNlck1hbnVhbGx5Q2xvc2VkKSB7XG4gICAgICAgIHRoaXMuYXV0b0V4cGFuZCgpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBIYW5kbGUgc3RhdHVzIGNoYW5nZXMgLSBhdXRvLWV4cGFuZCB3aGVuIHN0ZXAgc3RhcnRzIGV4ZWN1dGluZ1xuICAgIGlmIChjaGFuZ2VzWydzdGF0dXMnXSAmJiAhY2hhbmdlc1snc3RhdHVzJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIGNvbnN0IG5ld1N0YXR1cyA9IGNoYW5nZXNbJ3N0YXR1cyddLmN1cnJlbnRWYWx1ZTtcbiAgICAgIGNvbnN0IG9sZFN0YXR1cyA9IGNoYW5nZXNbJ3N0YXR1cyddLnByZXZpb3VzVmFsdWU7XG4gICAgICBcbiAgICAgIC8vIEF1dG8tZXhwYW5kIHdoZW4gc3RhdHVzIGNoYW5nZXMgdG8gJ3J1bm5pbmcnIGFuZCBoYXMgc3ViU3RlcHMgKG9yIHdpbGwgaGF2ZSBzb29uKVxuICAgICAgaWYgKG5ld1N0YXR1cyA9PT0gJ3J1bm5pbmcnICYmIG9sZFN0YXR1cyAhPT0gJ3J1bm5pbmcnICYmICF0aGlzLnVzZXJNYW51YWxseUNsb3NlZCkge1xuICAgICAgICAvLyBFeHBhbmQgaW1tZWRpYXRlbHkgaWYgYWxyZWFkeSBoYXMgc3ViU3RlcHMsIG9yIHdhaXQgZm9yIHRoZW1cbiAgICAgICAgaWYgKHRoaXMuaGFzU3ViU3RlcHMpIHtcbiAgICAgICAgICB0aGlzLmF1dG9FeHBhbmQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICB0aGlzLnByZXZpb3VzU3RhdHVzID0gbmV3U3RhdHVzO1xuICAgIH1cbiAgICBcbiAgICAvLyBVcGRhdGUgZXhwYW5kZWQgc3RhdGUgZnJvbSBwYXJlbnQgKHN5bmMgd2l0aCBwYXJlbnQncyBzdGF0ZSlcbiAgICBpZiAoY2hhbmdlc1snZXhwYW5kZWQnXSkge1xuICAgICAgY29uc3QgbmV3RXhwYW5kZWQgPSBjaGFuZ2VzWydleHBhbmRlZCddLmN1cnJlbnRWYWx1ZSA/PyBmYWxzZTtcbiAgICAgIGlmIChuZXdFeHBhbmRlZCAhPT0gdGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IG5ld0V4cGFuZGVkO1xuICAgICAgICAvLyBSZXNldCBtYW51YWwgY2xvc2UgZmxhZyBpZiBwYXJlbnQgZXhwbGljaXRseSBleHBhbmRzXG4gICAgICAgIGlmIChuZXdFeHBhbmRlZCkge1xuICAgICAgICAgIHRoaXMudXNlck1hbnVhbGx5Q2xvc2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snc3RlcERlbGV0ZWQnXSAmJiB0aGlzLmNvbmZpZykge1xuICAgICAgdGhpcy5jb25maWcuc3RlcERlbGV0ZWQgPSBjaGFuZ2VzWydzdGVwRGVsZXRlZCddLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudExlbmd0aCA9ICh0aGlzLnN1YlN0ZXBzIHx8IFtdKS5sZW5ndGg7XG4gICAgaWYgKGN1cnJlbnRMZW5ndGggIT09IHRoaXMubGFzdFByb2Nlc3NlZEluZGV4KSB7XG4gICAgICB0aGlzLnByb2Nlc3NMaXZlU3ViU3RlcHMoKTtcbiAgICB9XG4gIH1cblxuICBvbkRlYnVnUG9pbnRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZGVidWdQb2ludENoYW5nZS5lbWl0KCF0aGlzLmRlYnVnUG9pbnRTZXQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9nZ2xlKCk6IHZvaWQge1xuICAgIC8vIFRyYWNrIGlmIHVzZXIgbWFudWFsbHkgY2xvc2VzIHRoZSBzdGVwXG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgdGhpcy51c2VyTWFudWFsbHlDbG9zZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZXNldCBmbGFnIHdoZW4gdXNlciBvcGVucyBpdFxuICAgICAgdGhpcy51c2VyTWFudWFsbHlDbG9zZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgXG4gICAgc3VwZXIudG9nZ2xlKCk7XG4gIH1cblxuICBwcml2YXRlIGF1dG9FeHBhbmQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzRXhwYW5kZWQgJiYgdGhpcy5oYXNTdWJTdGVwcykge1xuICAgICAgdGhpcy5pc0V4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMudXNlck1hbnVhbGx5Q2xvc2VkID0gZmFsc2U7XG4gICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkLmVtaXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGhhc1N1YlN0ZXBzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3NlZFN1YlN0ZXBzICYmIHRoaXMucHJvY2Vzc2VkU3ViU3RlcHMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHRyYWNrQnlTdWJTdGVwSWQoaW5kZXg6IG51bWJlciwgc3ViU3RlcDogTGl2ZVN1YlN0ZXApOiBzdHJpbmcge1xuICAgIHJldHVybiBzdWJTdGVwLmlkO1xuICB9XG5cbiAgb25FZGl0U3RlcChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZWRpdFN0ZXAuZW1pdCgpO1xuICB9XG5cbiAgb25BZGRTdGVwT3B0aW9uU2VsZWN0KG9wdGlvbjogQWRkU3RlcE1lbnVPcHRpb24sIGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5hZGRTdGVwT3B0aW9uU2VsZWN0LmVtaXQob3B0aW9uKTtcbiAgfVxuXG4gIG9uU3RlcE1vcmVPcHRpb25TZWxlY3Qob3B0aW9uOiBTdGVwTW9yZU1lbnVPcHRpb24sIGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5zdGVwTW9yZU9wdGlvblNlbGVjdC5lbWl0KG9wdGlvbik7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0xpdmVTdWJTdGVwcygpOiB2b2lkIHtcbiAgICBjb25zdCBhbGxTdWJTdGVwcyA9ICh0aGlzLnN1YlN0ZXBzIHx8IFtdKSBhcyBhbnlbXTtcblxuICAgIC8vIFJlc2V0IGlmIHN1YlN0ZXBzIHdlcmUgY2xlYXJlZCBvciByZXBsYWNlZCB3aXRoIGZld2VyIGVudHJpZXNcbiAgICBpZiAoYWxsU3ViU3RlcHMubGVuZ3RoIDwgdGhpcy5sYXN0UHJvY2Vzc2VkSW5kZXgpIHtcbiAgICAgIHRoaXMucmVzZXRMaXZlUHJvY2Vzc2luZygpO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSB0aGlzLmxhc3RQcm9jZXNzZWRJbmRleDsgaSA8IGFsbFN1YlN0ZXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBzdWJTdGVwID0gYWxsU3ViU3RlcHNbaV07XG4gICAgICBjb25zdCB1aVR5cGU6IHN0cmluZyA9IHN1YlN0ZXA/LnVpVHlwZSB8fCBzdWJTdGVwPy50eXBlIHx8ICcnO1xuICAgICAgY29uc3Qgc3RhdHVzOiBzdHJpbmcgPSAoc3ViU3RlcD8uc3RhdHVzIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBpZiAodWlUeXBlID09PSAnV0FJVF9GT1JfTE9DQVRPUicpIHtcbiAgICAgICAgLy8gQ3JlYXRlIGEgc2luZ2xlIGdyb3VwZWQgZW50cnkgd2l0aCBhIGNvdW50ZG93bjsgYWJzb3JicyBGSU5EX0xPQ0FUT1IgYW5kIExPQ0FUT1JfRk9VTkRcbiAgICAgICAgY29uc3QgdGltZW91dFNlY29uZHMgPSB0eXBlb2Ygc3ViU3RlcC52YWx1ZSA9PT0gJ251bWJlcidcbiAgICAgICAgICA/IHN1YlN0ZXAudmFsdWVcbiAgICAgICAgICA6IChzdWJTdGVwLnZhbHVlID8gcGFyc2VGbG9hdChzdWJTdGVwLnZhbHVlKSA6IDMwKTtcblxuICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcblxuICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSA9IHtcbiAgICAgICAgICAuLi5zdWJTdGVwLFxuICAgICAgICAgIGlzUnVubmluZzogdHJ1ZSxcbiAgICAgICAgICByZW1haW5pbmdTZWNvbmRzOiB0aW1lb3V0U2Vjb25kcyxcbiAgICAgICAgICBzdGF0dXM6ICdwZW5kaW5nJ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmFkZER1cmF0aW9uVG9XYWl0TG9jYXRvckdyb3VwRW50cnkoc3ViU3RlcCk7XG4gICAgICAgIHRoaXMucHJvY2Vzc2VkU3ViU3RlcHMucHVzaCh0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSk7XG5cbiAgICAgICAgLy8gVGljayBkb3duIGV2ZXJ5IHNlY29uZFxuICAgICAgICB0aGlzLmNvdW50ZG93bkludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5KSB7XG4gICAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5yZW1haW5pbmdTZWNvbmRzID0gTWF0aC5tYXgoMCwgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkucmVtYWluaW5nU2Vjb25kcyAtIDEpO1xuICAgICAgICAgICAgaWYgKHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5LnJlbWFpbmluZ1NlY29uZHMgPD0gMCkge1xuICAgICAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5pc1J1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkuc3RhdHVzID0gJ2ZhaWxlZCc7XG4gICAgICAgICAgICAgIHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5LnJlbWFpbmluZ1NlY29uZHMgPSBudWxsO1xuICAgICAgICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgICAgICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwMCk7XG5cbiAgICAgIH0gZWxzZSBpZiAodWlUeXBlID09PSAnRklORF9MT0NBVE9SJykge1xuICAgICAgICBpZiAoc3RhdHVzID09PSAnZmFpbGVkJyB8fCBzdGF0dXMgPT09ICdmYWlsdXJlJykge1xuICAgICAgICAgIC8vIEFib3J0IGNvdW50ZG93biwgcmVwbGFjZSBncm91cCBlbnRyeSB3aXRoIHRoaXMgZmFpbGVkIGxvZ1xuICAgICAgICAgIGlmICh0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcyA9IHRoaXMucHJvY2Vzc2VkU3ViU3RlcHMuZmlsdGVyKGVudHJ5ID0+IGVudHJ5ICE9PSB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSk7XG4gICAgICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgICAgICAgICAgIHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcy5wdXNoKHsgLi4uc3ViU3RlcCwgaXNSdW5uaW5nOiBmYWxzZSwgc3RhdHVzOiAnZmFpbGVkJyB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSkge1xuICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgc2luZ2xlIGdyb3VwIGVudHJ5J3MgdGV4dCBzbyB0aGUgdXNlciBzZWVzIHByb2dyZXNzXG4gICAgICAgICAgY29uc3QgbmV3VGV4dCA9IHN1YlN0ZXAudGV4dCB8fCBzdWJTdGVwLmRlc2NyaXB0aW9uIHx8IHN1YlN0ZXAudGl0bGU7XG4gICAgICAgICAgaWYgKG5ld1RleHQpIHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5LnRleHQgPSBuZXdUZXh0O1xuICAgICAgICAgIHRoaXMuYWRkRHVyYXRpb25Ub1dhaXRMb2NhdG9yR3JvdXBFbnRyeShzdWJTdGVwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBObyBhY3RpdmUgZ3JvdXAg4oCTIHB1c2ggRklORF9MT0NBVE9SIG5vcm1hbGx5IG9uY2UgY291bnRkb3duIGlzIGNsZWFyZWRcbiAgICAgICAgICB0aGlzLnByb2Nlc3NlZFN1YlN0ZXBzLnB1c2goeyAuLi5zdWJTdGVwIH0pO1xuICAgICAgICB9XG5cbiAgICAgIH0gZWxzZSBpZiAodWlUeXBlID09PSAnTE9DQVRPUl9GT1VORCcpIHtcblxuICAgICAgICBpZiAoc3RhdHVzID09PSAnZmFpbGVkJyB8fCBzdGF0dXMgPT09ICdmYWlsdXJlJykge1xuICAgICAgICAgIC8vIEFib3J0IGNvdW50ZG93biwgcmVwbGFjZSBncm91cCBlbnRyeSB3aXRoIHRoaXMgZmFpbGVkIGxvZ1xuICAgICAgICAgIGlmICh0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcyA9IHRoaXMucHJvY2Vzc2VkU3ViU3RlcHMuZmlsdGVyKGVudHJ5ID0+IGVudHJ5ICE9PSB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSk7XG4gICAgICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgICAgICAgICAgIHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcy5wdXNoKHsgLi4uc3ViU3RlcCwgaXNSdW5uaW5nOiBmYWxzZSwgc3RhdHVzOiAnZmFpbGVkJyB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBTZXF1ZW5jZSBjb21wbGV0ZSDigJMgdXBkYXRlIHRoZSBncm91cCBlbnRyeSB0byBzaG93IExPQ0FUT1JfRk9VTkQgdGV4dCBhcyBzdWNjZXNzXG4gICAgICAgICAgaWYgKHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5KSB7XG4gICAgICAgICAgICBjb25zdCBuZXdUZXh0ID0gc3ViU3RlcC50ZXh0IHx8IHN1YlN0ZXAuZGVzY3JpcHRpb24gfHwgc3ViU3RlcC50aXRsZTtcbiAgICAgICAgICAgIGlmIChuZXdUZXh0KSB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS50ZXh0ID0gbmV3VGV4dDtcbiAgICAgICAgICAgIHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5LmlzUnVubmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkuc3RhdHVzID0gJ3N1Y2Nlc3MnO1xuICAgICAgICAgICAgdGhpcy5hZGREdXJhdGlvblRvV2FpdExvY2F0b3JHcm91cEVudHJ5KHN1YlN0ZXApO1xuICAgICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkucmVtYWluaW5nU2Vjb25kcyA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgICAgICAgICAgIHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5ID0gbnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gTm8gYWN0aXZlIGdyb3VwIOKAkyBqdXN0IHB1c2ggTE9DQVRPUl9GT1VORCBub3JtYWxseVxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcy5wdXNoKHsgLi4uc3ViU3RlcCwgaXNSdW5uaW5nOiBmYWxzZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfSBlbHNlIGlmICh1aVR5cGUgPT09ICdBSV9BVVRPX0hFQUwnKSB7XG4gICAgICAgIC8vIElmIGEgV0FJVF9GT1JfTE9DQVRPUiBjb3VudGRvd24gaXMgYWN0aXZlLCBjb21wbGV0ZSBpdCBhcyBmYWlsZWQgYmVmb3JlIHN0YXJ0aW5nIEFJIGF1dG8taGVhbFxuICAgICAgICBpZiAodGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkpIHtcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5pc1J1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5zdGF0dXMgPSAnZmFpbGVkJztcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5yZW1haW5pbmdTZWNvbmRzID0gbnVsbDtcbiAgICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgc2luZ2xlIGxvYWRpbmcgZW50cnk7IHdpbGwgYmUgcmVwbGFjZWQgYnkgQUlfQVVUT19IRUFMX1NVQ0NFU1Mgb3IgQUlfQVVUT19IRUFMX0ZBSUxFRFxuICAgICAgICB0aGlzLmFpQXV0b0hlYWxHcm91cEVudHJ5ID0ge1xuICAgICAgICAgIC4uLnN1YlN0ZXAsXG4gICAgICAgICAgdGV4dDogc3ViU3RlcC50ZXh0IHx8IHN1YlN0ZXAuZGVzY3JpcHRpb24gfHwgJ0FJIGF1dG8taGVhbCBzdGFydGVkJyxcbiAgICAgICAgICBpc1J1bm5pbmc6IHRydWUsXG4gICAgICAgICAgc3RhdHVzOiAncGVuZGluZycsXG4gICAgICAgICAgdWlUeXBlOiAnQUlfQVVUT19IRUFMJ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnByb2Nlc3NlZFN1YlN0ZXBzLnB1c2godGhpcy5haUF1dG9IZWFsR3JvdXBFbnRyeSk7XG5cbiAgICAgIH0gZWxzZSBpZiAodWlUeXBlID09PSAnQUlfQVVUT19IRUFMX1NVQ0NFU1MnIHx8IHVpVHlwZSA9PT0gJ0FJX0FVVE9fSEVBTF9GQUlMRUQnKSB7XG4gICAgICAgIC8vIElmIGEgV0FJVF9GT1JfTE9DQVRPUiBjb3VudGRvd24gaXMgYWN0aXZlLCBjb21wbGV0ZSBpdCBhcyBmYWlsZWQgYmVmb3JlIGhhbmRsaW5nIEFJIGF1dG8taGVhbCByZXN1bHRcbiAgICAgICAgaWYgKHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5KSB7XG4gICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkuaXNSdW5uaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkuc3RhdHVzID0gJ2ZhaWxlZCc7XG4gICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkucmVtYWluaW5nU2Vjb25kcyA9IG51bGw7XG4gICAgICAgICAgdGhpcy5jbGVhckNvdW50ZG93blRpbWVyKCk7XG4gICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIGxvYWRpbmcgZW50cnkgYW5kIGFkZCBUV08gc2VwYXJhdGUgZW50cmllczogdmFsdWUgYW5kIHJlYXNvbmluZyAobGlrZSBBSV9BTlNXRVIpXG4gICAgICAgIGlmICh0aGlzLmFpQXV0b0hlYWxHcm91cEVudHJ5KSB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcyA9IHRoaXMucHJvY2Vzc2VkU3ViU3RlcHMuZmlsdGVyKGVudHJ5ID0+IGVudHJ5ICE9PSB0aGlzLmFpQXV0b0hlYWxHcm91cEVudHJ5KTtcbiAgICAgICAgICB0aGlzLmFpQXV0b0hlYWxHcm91cEVudHJ5ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc1N1Y2Nlc3MgPSB1aVR5cGUgPT09ICdBSV9BVVRPX0hFQUxfU1VDQ0VTUyc7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gc3ViU3RlcC52YWx1ZSA/PyBzdWJTdGVwLnRleHQgPz8gJyc7XG4gICAgICAgIGNvbnN0IHJlYXNvbmluZyA9IHN1YlN0ZXAucmVhc29uaW5nID8/IHN1YlN0ZXAuUmVhc29uaW5nID8/ICcnO1xuICAgICAgICBjb25zdCBiYXNlRHVyYXRpb24gPSBzdWJTdGVwLmR1cmF0aW9uIHx8IDA7XG4gICAgICAgIGNvbnN0IGZpbmFsU3RhdHVzID0gaXNTdWNjZXNzID8gJ3N1Y2Nlc3MnIDogJ2ZhaWxlZCc7XG5cbiAgICAgICAgLy8gRmlyc3QgZW50cnk6IHZhbHVlL2Rlc2NyaXB0aW9uXG4gICAgICAgIGNvbnN0IHZhbHVlRGVzY3JpcHRpb24gPSBzdWJTdGVwLnRleHQgfHwgc3ViU3RlcC5kZXNjcmlwdGlvbiB8fCAoaXNTdWNjZXNzXG4gICAgICAgICAgPyBgQUkgYXV0by1oZWFsIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHlgXG4gICAgICAgICAgOiBgQUkgYXV0by1oZWFsIGZhaWxlZGApO1xuICAgICAgICB0aGlzLnByb2Nlc3NlZFN1YlN0ZXBzLnB1c2goe1xuICAgICAgICAgIC4uLnN1YlN0ZXAsXG4gICAgICAgICAgdGV4dDogdmFsdWVEZXNjcmlwdGlvbixcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdmFsdWVEZXNjcmlwdGlvbixcbiAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgcmVhc29uaW5nOiBudWxsLFxuICAgICAgICAgIGlzUnVubmluZzogZmFsc2UsXG4gICAgICAgICAgc3RhdHVzOiBmaW5hbFN0YXR1cyxcbiAgICAgICAgICB1aVR5cGU6ICdBSV9BVVRPX0hFQUxfVkFMVUUnLFxuICAgICAgICAgIHR5cGU6ICdBSV9BVVRPX0hFQUxfVkFMVUUnLFxuICAgICAgICAgIGR1cmF0aW9uOiBiYXNlRHVyYXRpb24sXG4gICAgICAgICAgaXNBaUF1dG9IZWFsUmVzdWx0OiB0cnVlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNlY29uZCBlbnRyeTogcmVhc29uaW5nIChvbmx5IGlmIHByZXNlbnQpXG4gICAgICAgIGlmIChyZWFzb25pbmcpIHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NlZFN1YlN0ZXBzLnB1c2goe1xuICAgICAgICAgICAgLi4uc3ViU3RlcCxcbiAgICAgICAgICAgIHRleHQ6IHJlYXNvbmluZyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByZWFzb25pbmcsXG4gICAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICAgIHJlYXNvbmluZzogcmVhc29uaW5nLFxuICAgICAgICAgICAgaXNSdW5uaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHN0YXR1czogZmluYWxTdGF0dXMsXG4gICAgICAgICAgICB1aVR5cGU6ICdBSV9BVVRPX0hFQUxfUkVBU09OSU5HJyxcbiAgICAgICAgICAgIHR5cGU6ICdBSV9BVVRPX0hFQUxfUkVBU09OSU5HJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiBiYXNlRHVyYXRpb24sXG4gICAgICAgICAgICBpc0FpQXV0b0hlYWxSZXN1bHQ6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBbnkgZmFpbGVkIGxvZyB3aGlsZSBhIGNvdW50ZG93biBpcyBhY3RpdmUg4oCTIHJlc29sdmUgaXQgYXMgZmFpbGVkXG4gICAgICAgIGlmICgoc3RhdHVzID09PSAnZmFpbGVkJyB8fCBzdGF0dXMgPT09ICdmYWlsdXJlJykgJiYgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkpIHtcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5pc1J1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5zdGF0dXMgPSAnZmFpbGVkJztcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5yZW1haW5pbmdTZWNvbmRzID0gbnVsbDtcbiAgICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcy5wdXNoKHN1YlN0ZXApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubGFzdFByb2Nlc3NlZEluZGV4ID0gYWxsU3ViU3RlcHMubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldExpdmVQcm9jZXNzaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJDb3VudGRvd25UaW1lcigpO1xuICAgIHRoaXMucHJvY2Vzc2VkU3ViU3RlcHMgPSBbXTtcbiAgICB0aGlzLmxhc3RQcm9jZXNzZWRJbmRleCA9IDA7XG4gICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkgPSBudWxsO1xuICAgIHRoaXMuYWlBdXRvSGVhbEdyb3VwRW50cnkgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckNvdW50ZG93blRpbWVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvdW50ZG93bkludGVydmFsSWQgIT09IG51bGwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5jb3VudGRvd25JbnRlcnZhbElkKTtcbiAgICAgIHRoaXMuY291bnRkb3duSW50ZXJ2YWxJZCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGREdXJhdGlvblRvV2FpdExvY2F0b3JHcm91cEVudHJ5KHN1YlN0ZXA6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByYXdEdXJhdGlvbiA9IHN1YlN0ZXA/LmR1cmF0aW9uO1xuICAgIGxldCBkZWx0YSA9IDA7XG4gICAgaWYgKHR5cGVvZiByYXdEdXJhdGlvbiA9PT0gJ251bWJlcicpIHtcbiAgICAgIGRlbHRhID0gcmF3RHVyYXRpb247XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcmF3RHVyYXRpb24gPT09ICdzdHJpbmcnICYmIHJhd0R1cmF0aW9uLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlRmxvYXQocmF3RHVyYXRpb24pO1xuICAgICAgZGVsdGEgPSBOdW1iZXIuaXNGaW5pdGUocGFyc2VkKSA/IHBhcnNlZCA6IDA7XG4gICAgfVxuXG4gICAgaWYgKGRlbHRhIDw9IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50UmF3ID0gdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkuZHVyYXRpb247XG4gICAgbGV0IGN1cnJlbnQgPSAwO1xuICAgIGlmICh0eXBlb2YgY3VycmVudFJhdyA9PT0gJ251bWJlcicpIHtcbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50UmF3O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGN1cnJlbnRSYXcgPT09ICdzdHJpbmcnICYmIGN1cnJlbnRSYXcudHJpbSgpICE9PSAnJykge1xuICAgICAgY29uc3QgcGFyc2VkQ3VycmVudCA9IHBhcnNlRmxvYXQoY3VycmVudFJhdyk7XG4gICAgICBjdXJyZW50ID0gTnVtYmVyLmlzRmluaXRlKHBhcnNlZEN1cnJlbnQpID8gcGFyc2VkQ3VycmVudCA6IDA7XG4gICAgfVxuXG4gICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkuZHVyYXRpb24gPSBjdXJyZW50ICsgZGVsdGE7XG4gIH1cbn1cblxuIiwiPGRpdiBjbGFzcz1cImNxYS1mb250LWludGVyIGNxYS13LWZ1bGxcIiBbY2xhc3MuY3FhLW9wYWNpdHktNTBdPVwiaXNEZWJ1ZyAmJiBpc1NraXBwZWQgJiYgIXBhcmVudFNraXBwZWRcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCIhaXNEZWJ1ZyA/IG51bGwgOiBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3BhdXNlZCcgPyAnI0ZGRjlFOScgOiBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWxlZCcgPyAnI0ZFRjJGMicgOiBudWxsXCI+XG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtcC0yIGNxYS1jdXJzb3ItcG9pbnRlclwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICBzdHlsZT1cImJvcmRlci1ib3R0b206ICcxcHggc29saWQgI0YzRjRGNidcIlxuICAgID5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlYnVnSWNvblwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIlxuICAgICAgW21hdFRvb2x0aXBdPVwic3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdydW5uaW5nJyA/ICdCcmVha3BvaW50IGNhbm5vdCBiZSBzZXQgb24gYSBydW5uaW5nIHN0ZXAnIDogKGlzU3RlcERlbGV0ZWQgPyAnQnJlYWtwb2ludCBjYW5ub3QgYmUgc2V0IG9uIGRlbGV0ZWQgc3RlcHMnIDogKCghIXBhcmVudFNraXBwZWQgJiYgIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCkgPyAnQnJlYWtwb2ludCBjYW5ub3QgYmUgc2V0IG9uIGEgcnVubmluZyBzdGVwJyA6ICghIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCA/ICdCcmVha3BvaW50IGNhbm5vdCBiZSBzZXQgb24gc2tpcHBlZCBzdGVwcycgOiAnJykpKVwiXG4gICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjcWEtcC0wIGNxYS1ib3JkZXItMCBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLXJvdW5kZWQtZnVsbCBjcWEtdHJhbnNpdGlvbi1vcGFjaXR5IGZvY3VzOmNxYS1vdXRsaW5lLW5vbmVcIlxuICAgICAgICBbbmdDbGFzc109XCJzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3J1bm5pbmcnIHx8ICEhc3RlcD8uZGVidWdQb2ludERpc2FibGVkIHx8ICEhcGFyZW50U2tpcHBlZCB8fCBpc1N0ZXBEZWxldGVkID8gJ2NxYS1jdXJzb3Itbm90LWFsbG93ZWQgY3FhLW9wYWNpdHktNDAgY3FhLXBvaW50ZXItZXZlbnRzLW5vbmUnIDogJ2NxYS1jdXJzb3ItcG9pbnRlciBob3ZlcjpjcWEtb3BhY2l0eS04MCdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwic3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdydW5uaW5nJyB8fCAhIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCB8fCAhIXBhcmVudFNraXBwZWQgfHwgaXNTdGVwRGVsZXRlZFwiXG4gICAgICAgIChjbGljayk9XCJvbkRlYnVnUG9pbnRDbGljaygkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJkZWJ1Z1BvaW50U2V0ID8gJ1JlbW92ZSBkZWJ1ZyBwb2ludCcgOiAnU2V0IGRlYnVnIHBvaW50J1wiPlxuICAgICAgICA8c3ZnICpuZ0lmPVwiZGVidWdQb2ludFNldFwiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8Y2lyY2xlIGN4PVwiN1wiIGN5PVwiN1wiIHI9XCI2XCIgW2F0dHIuZmlsbF09XCIhIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCB8fCAhIXBhcmVudFNraXBwZWQgfHwgaXNTdGVwRGVsZXRlZCA/ICcjOUU5RTlFJyA6ICcjQzYzNTM1J1wiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICAgIDxzdmcgKm5nSWY9XCIhZGVidWdQb2ludFNldFwiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8Y2lyY2xlIGN4PVwiN1wiIGN5PVwiN1wiIHI9XCI2XCIgW2F0dHIuc3Ryb2tlXT1cIiEhc3RlcD8uZGVidWdQb2ludERpc2FibGVkIHx8ICEhcGFyZW50U2tpcHBlZCB8fCBpc1N0ZXBEZWxldGVkID8gJyM5RTlFOUUnIDogJyNDNjM1MzUnXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgZmlsbD1cIm5vbmVcIi8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTdGF0dXMgSWNvbiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgIDwhLS0gU3VjY2VzcyAtLT5cbiAgICAgIDxzdmcgKm5nSWY9XCJzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3N1Y2Nlc3MnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTAuOTAwNSA0Ljk5OTk5QzExLjEyODkgNi4xMjA2NCAxMC45NjYyIDcuMjg1NzEgMTAuNDM5NSA4LjMwMDg5QzkuOTEyNzkgOS4zMTYwOCA5LjA1NCAxMC4xMiA4LjAwNjMxIDEwLjU3ODdDNi45NTg2MiAxMS4wMzczIDUuNzg1MzYgMTEuMTIyOSA0LjY4MjIgMTAuODIxMkMzLjU3OTA0IDEwLjUxOTUgMi42MTI2NSA5Ljg0ODY5IDEuOTQ0MTkgOC45MjA3MUMxLjI3NTczIDcuOTkyNzIgMC45NDU2MTEgNi44NjM2MSAxLjAwODg4IDUuNzIxNjlDMS4wNzIxNSA0LjU3OTc2IDEuNTI0OTkgMy40OTQwNCAyLjI5MTg4IDIuNjQ1NThDMy4wNTg3NiAxLjc5NzEyIDQuMDkzMzQgMS4yMzcyMSA1LjIyMzA4IDEuMDU5MjJDNi4zNTI4MiAwLjg4MTIzMyA3LjUwOTQ0IDEuMDk1OTIgOC41MDAwNSAxLjY2NzQ5XCIgc3Ryb2tlPVwiIzIyQzU1RVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTQuNSA1LjVMNiA3TDExIDJcIiBzdHJva2U9XCIjMjJDNTVFXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgPCEtLSBGYWlsZWQgLS0+XG4gICAgICA8c3ZnICpuZ0lmPVwic3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdmYWlsdXJlJyB8fCBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWxlZCdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02IDExQzguNzYxNDIgMTEgMTEgOC43NjE0MiAxMSA2QzExIDMuMjM4NTggOC43NjE0MiAxIDYgMUMzLjIzODU4IDEgMSAzLjIzODU4IDEgNkMxIDguNzYxNDIgMy4yMzg1OCAxMSA2IDExWlwiIHN0cm9rZT1cIiNFRjQ0NDRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk00IDRMOCA4TTggNEw0IDhcIiBzdHJva2U9XCIjRUY0NDQ0XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgPCEtLSBQZW5kaW5nIC0tPlxuICAgICAgPHN2ZyAqbmdJZj1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncGVuZGluZydcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02IDExQzguNzYxNDIgMTEgMTEgOC43NjE0MiAxMSA2QzExIDMuMjM4NTggOC43NjE0MiAxIDYgMUMzLjIzODU4IDEgMSAzLjIzODU4IDEgNkMxIDguNzYxNDIgMy4yMzg1OCAxMSA2IDExWlwiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk02IDNWNkw4IDdcIiBzdHJva2U9XCIjOUNBM0FGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgPCEtLSBSdW5uaW5nIC0gU2hvdyBzcGlubmVyIC0tPlxuICAgICAgPHN2ZyAqbmdJZj1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncnVubmluZydcIiBjbGFzcz1cImNxYS1hbmltYXRlLXNwaW4gY3FhLXRleHQtWyMzQjgyRjZdXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICA8Y2lyY2xlIGN4PVwiNlwiIGN5PVwiNlwiIHI9XCI1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgZmlsbD1cIm5vbmVcIiBvcGFjaXR5PVwiMC4yNVwiLz5cbiAgICAgICAgPHBhdGggZD1cIk02IDFBNSA1IDAgMCAxIDExIDZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIi8+XG4gICAgICA8L3N2Zz5cbiAgICAgIDwhLS0gU2tpcHBlZCAtLT5cbiAgICAgIDxzcGFuICpuZ0lmPVwic3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdza2lwcGVkJ1wiIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBjcWEtdGV4dC1bIzlDQTNBRl0gY3FhLXRleHQtWzEycHhdXCI+XG4gICAgICAgIHNraXBfbmV4dFxuICAgICAgPC9zcGFuPlxuICAgICAgPGRpdiAqbmdJZj1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncGF1c2VkJ1wiPjxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNOC41IDJINy41QzcuMjIzODYgMiA3IDIuMjIzODYgNyAyLjVWOS41QzcgOS43NzYxNCA3LjIyMzg2IDEwIDcuNSAxMEg4LjVDOC43NzYxNCAxMCA5IDkuNzc2MTQgOSA5LjVWMi41QzkgMi4yMjM4NiA4Ljc3NjE0IDIgOC41IDJaXCIgc3Ryb2tlPVwiI0UxNzEwMFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTQuNSAySDMuNUMzLjIyMzg2IDIgMyAyLjIyMzg2IDMgMi41VjkuNUMzIDkuNzc2MTQgMy4yMjM4NiAxMCAzLjUgMTBINC41QzQuNzc2MTQgMTAgNSA5Ljc3NjE0IDUgOS41VjIuNUM1IDIuMjIzODYgNC43NzYxNCAyIDQuNSAyWlwiIHN0cm9rZT1cIiNFMTcxMDBcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFN0ZXAgTnVtYmVyIGFuZCBUaXRsZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZvbnQtc2VtaWJvbGQgY3FhLWZsZXgtMSBjcWEtdGV4dC1bIzMzNDE1NV0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtZm9udC1pbnRlciBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMVwiIHN0eWxlPVwid29yZC1icmVhazogYnJlYWstd29yZDtcIj5cbiAgICAgIDxzcGFuPnt7IHN0ZXBOdW1iZXIgfX0uIDxzcGFuIFtpbm5lckhUTUxdPVwidGl0bGVcIj48L3NwYW4+PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWcuc3RlcERlbGV0ZWRcIiBjbGFzcz1cImNxYS1weC0xLjUgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkLVs0cHhdIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTJweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjQjQyMzE4XSBjcWEtYmctWyNGRUYzRjJdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI0ZFRTRFMl1cIj5cbiAgICAgICAgRGVsZXRlZFxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xIGNxYS1mb250LWludGVyXCI+XG4gICAgICA8IS0tIFN0ZXAgQ2hhbmdlIEJhZGdlcyAoZGVidWcgb25seSkgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEZWJ1Z1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBiYWRnZSBvZiBzdGVwQmFkZ2VzXCI+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAnc2tpcHBlZCdcIlxuICAgICAgICAgIGxhYmVsPVwiU2tpcHBlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjNEE1NTY1J1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjOTlBMUFGJ1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0ZGRkZGRidcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAnZWRpdGVkJ1wiXG4gICAgICAgICAgbGFiZWw9XCJFZGl0ZWRcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgW3RleHRDb2xvcl09XCInI0ZCQkYyNCdcIlxuICAgICAgICAgIFtib3JkZXJDb2xvcl09XCInI0ZEREY5MidcIlxuICAgICAgICAgIFtiYWNrZ3JvdW5kQ29sb3JdPVwiJyNGRkY5RTknXCI+XG4gICAgICAgIDwvY3FhLWJhZGdlPlxuICAgICAgICA8Y3FhLWJhZGdlXG4gICAgICAgICAgKm5nSWY9XCJiYWRnZSA9PT0gJ2FkZGVkJ1wiXG4gICAgICAgICAgbGFiZWw9XCJBZGRlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjMERCRDdEJ1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjNUVEM0E4J1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0NGRjJFNSdcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAncmVtb3ZlZCdcIlxuICAgICAgICAgIGxhYmVsPVwiUmVtb3ZlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjRUUzRjNGJ1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjRjQ3RjdGJ1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0ZDRDlEOSdcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaXNEZWJ1Z1wiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTAuNSBjcWEtdGV4dC1bIzlDQTNBRl1cIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhc3RlcD8uaXNTdGVwR3JvdXBDaGlsZHJlblwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eSBmb2N1czpjcWEtb3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIkVkaXRcIiAoY2xpY2spPVwib25FZGl0U3RlcCgkZXZlbnQpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS10ZXh0LVsxNHB4XSAhY3FhLXctWzE0cHhdICFjcWEtaC1bMTRweF1cIj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhc3RlcD8uaXNTdGVwR3JvdXBDaGlsZHJlblwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eSBmb2N1czpjcWEtb3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIkFkZFwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhZGRTdGVwTWVudVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdGV4dC1bMTRweF0gIWNxYS13LVsxNHB4XSAhY3FhLWgtWzE0cHhdXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxtYXQtbWVudSAjYWRkU3RlcE1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJjcWEtYWRkLXN0ZXAtbWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiIHlQb3NpdGlvbj1cImJlbG93XCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBvcHQgb2YgYWRkU3RlcE1lbnVPcHRpb25zXCIgKGNsaWNrKT1cIm9uQWRkU3RlcE9wdGlvblNlbGVjdChvcHQsICRldmVudClcIj57eyBvcHQubGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImVmZmVjdGl2ZVN0ZXBNb3JlTWVudU9wdGlvbnMubGVuZ3RoXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY3FhLXAtMCBjcWEtYm9yZGVyLTAgY3FhLWJnLXRyYW5zcGFyZW50IGNxYS1jdXJzb3ItcG9pbnRlciBob3ZlcjpjcWEtb3BhY2l0eS04MCBjcWEtdHJhbnNpdGlvbi1vcGFjaXR5IGZvY3VzOmNxYS1vdXRsaW5lLW5vbmVcIiBhcmlhLWxhYmVsPVwiTW9yZSBvcHRpb25zXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInN0ZXBNb3JlTWVudVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdGV4dC1bMTRweF0gIWNxYS13LVsxNHB4XSAhY3FhLWgtWzE0cHhdXCI+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxtYXQtbWVudSAjc3RlcE1vcmVNZW51PVwibWF0TWVudVwiIGNsYXNzPVwiY3FhLXN0ZXAtbW9yZS1tZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCIgeVBvc2l0aW9uPVwiYmVsb3dcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IG9wdCBvZiBlZmZlY3RpdmVTdGVwTW9yZU1lbnVPcHRpb25zXCIgKGNsaWNrKT1cIm9uU3RlcE1vcmVPcHRpb25TZWxlY3Qob3B0LCAkZXZlbnQpXCI+e3sgb3B0LmxhYmVsIH19PC9idXR0b24+XG4gICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtdGV4dC1bIzlDQTNBRl0gY3FhLWZvbnQtbWVkaXVtXCI+XG4gICAgICAgIHt7IGZvcm1hdER1cmF0aW9uKGR1cmF0aW9uKSB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPHN2ZyAqbmdJZj1cImhhc1N1YlN0ZXBzXCIgW2NsYXNzLmNxYS1yb3RhdGUtMTgwXT1cImlzRXhwYW5kZWRcIiBjbGFzcz1cImNxYS10cmFuc2l0aW9uLXRyYW5zZm9ybVwiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTMuNSA1TDcgOC41TDEwLjUgNVwiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2Utd2lkdGg9XCIwLjgzMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBFeHBhbmRlZCBDb250ZW50IC0tPlxuICA8ZGl2ICpuZ0lmPVwiaXNFeHBhbmRlZCAmJiBoYXNTdWJTdGVwc1wiPlxuICAgIDwhLS0gU3ViLXN0ZXBzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xIGNxYS1wdC0xIGNxYS1wbC05XCI+XG4gICAgICA8IS0tIFNpbmdsZSBsb29wOiByZW5kZXIgYWxsIGVudHJpZXMgaW4gY2hyb25vbG9naWNhbCBvcmRlciAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN1YlN0ZXAgb2YgcHJvY2Vzc2VkU3ViU3RlcHM7IHRyYWNrQnk6IHRyYWNrQnlTdWJTdGVwSWRcIj5cbiAgICAgICAgPCEtLSBBSV9BVVRPX0hFQUwgcmVzdWx0IGVudHJpZXM6IHJlbmRlciB3aXRoIGFpLWFnZW50LXN0ZXAgc3R5bGUgLS0+XG4gICAgICAgIDxjcWEtYWktbG9ncy13aXRoLXJlYXNvbmluZ1xuICAgICAgICAgICpuZ0lmPVwic3ViU3RlcC5pc0FpQXV0b0hlYWxSZXN1bHRcIlxuICAgICAgICAgIFtzdGF0dXNdPVwic3ViU3RlcC5zdGF0dXNcIlxuICAgICAgICAgIFt0ZXh0XT1cInN1YlN0ZXAudGV4dFwiXG4gICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cInN1YlN0ZXAuZGVzY3JpcHRpb25cIlxuICAgICAgICAgIFtyZWFzb25pbmddPVwic3ViU3RlcC5yZWFzb25pbmdcIlxuICAgICAgICAgIFtkdXJhdGlvbl09XCJzdWJTdGVwLmR1cmF0aW9uXCI+XG4gICAgICAgIDwvY3FhLWFpLWxvZ3Mtd2l0aC1yZWFzb25pbmc+XG5cbiAgICAgICAgPCEtLSBSZWd1bGFyIHN1Yi1zdGVwcyAobm9uLUFJX0FVVE9fSEVBTCkgLS0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cIiFzdWJTdGVwLmlzQWlBdXRvSGVhbFJlc3VsdFwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMyBjcWEtcHktWzUuNXB4XSBjcWEtcHgtM1wiPlxuICAgICAgICBcbiAgICAgICAgICA8IS0tIFN1Yi1zdGVwIFN0YXR1cyBJY29uIG9yIExvYWRlciAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXctMyBjcWEtaC0zXCI+XG4gICAgICAgICAgICA8IS0tIExvYWRlciB3aGVuIHJ1bm5pbmcgLS0+XG4gICAgICAgICAgICA8c3ZnICpuZ0lmPVwic3ViU3RlcC5pc1J1bm5pbmdcIiBjbGFzcz1cImNxYS1hbmltYXRlLXNwaW4gY3FhLXRleHQtWyMzQjgyRjZdXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiNlwiIGN5PVwiNlwiIHI9XCI1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgZmlsbD1cIm5vbmVcIiBvcGFjaXR5PVwiMC4yNVwiLz5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDFBNSA1IDAgMCAxIDExIDZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPCEtLSBTdWNjZXNzIEljb24gd2hlbiBjb21wbGV0ZSAtLT5cbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCIhc3ViU3RlcC5pc1J1bm5pbmcgJiYgKHN1YlN0ZXA/LnN0YXR1cz8udG9Mb3dlckNhc2UoKSA9PT0gJ3Bhc3NlZCcgfHwgc3ViU3RlcD8uc3RhdHVzPy50b0xvd2VyQ2FzZSgpID09PSAnc3VjY2VzcycpXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgMTFDOC43NjE0MiAxMSAxMSA4Ljc2MTQyIDExIDZDMTEgMy4yMzg1OCA4Ljc2MTQyIDEgNiAxQzMuMjM4NTggMSAxIDMuMjM4NTggMSA2QzEgOC43NjE0MiAzLjIzODU4IDExIDYgMTFaXCIgc3Ryb2tlPVwiIzAwQTYzRVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk00LjUgNkw1LjUgN0w3LjUgNVwiIHN0cm9rZT1cIiMwMEE2M0VcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCIhc3ViU3RlcC5pc1J1bm5pbmcgJiYgc3ViU3RlcD8uc3RhdHVzPy50b0xvd2VyQ2FzZSgpID09PSAnZmFpbGVkJ1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDExQzguNzYxNDIgMTEgMTEgOC43NjE0MiAxMSA2QzExIDMuMjM4NTggOC43NjE0MiAxIDYgMUMzLjIzODU4IDEgMSAzLjIzODU4IDEgNkMxIDguNzYxNDIgMy4yMzg1OCAxMSA2IDExWlwiIHN0cm9rZT1cIiNFRjQ0NDRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk00IDRMOCA4TTggNEw0IDhcIiBzdHJva2U9XCIjRUY0NDQ0XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIFN1Yi1zdGVwIERlc2NyaXB0aW9uICh0ZXh0IGZyb20gc29ja2V0KSB3aXRoIHR5cGluZyBhbmltYXRpb24gLS0+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZmxleC0xIGNxYS10ZXh0LVsxM3B4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLXRleHQtWyMzNjQxNTNdXCIgc3R5bGU9XCJ3b3JkLWJyZWFrOiBicmVhay13b3JkO1wiPlxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyBmbGV4LXdyYXA6IHdyYXA7XCI+XG4gICAgICAgICAgICAgIDxuZ3gtdHlwZWQtanMgXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzdWJTdGVwLmlzUnVubmluZyAmJiBzdWJTdGVwLnRleHRcIlxuICAgICAgICAgICAgICAgIFtzdHJpbmdzXT1cIltzdWJTdGVwLnRleHRdXCJcbiAgICAgICAgICAgICAgICBbdHlwZVNwZWVkXT1cIjMwXCJcbiAgICAgICAgICAgICAgICBbc2hvd0N1cnNvcl09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2ZhZGVPdXRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogaW5saW5lO1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHlwaW5nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8L25neC10eXBlZC1qcz5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhc3ViU3RlcC5pc1J1bm5pbmdcIiBzdHlsZT1cImRpc3BsYXk6IGlubGluZTtcIj57eyBzdWJTdGVwLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwhLS0gQ291bnRkb3duIHJlbWFpbmluZyBmb3IgV0FJVF9GT1JfTE9DQVRPUiBncm91cCAtLT5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzdWJTdGVwLnJlbWFpbmluZ1NlY29uZHMgIT0gbnVsbFwiIGNsYXNzPVwiY3FhLXRleHQtWyNGOTczMTZdIGNxYS1mb250LW1lZGl1bSBjcWEtbWwtMVwiIHN0eWxlPVwiZGlzcGxheTogaW5saW5lO1wiPih7eyBzdWJTdGVwLnJlbWFpbmluZ1NlY29uZHMgfX1zIHJlbWFpbmluZyk8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuICBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLXRleHQtWyM2QTcyODJdIGNxYS1mb250LW1lZGl1bVwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IHByZS1saW5lO1wiPlxuICAgICAgICAgICAge3sgZm9ybWF0RHVyYXRpb24oc3ViU3RlcC5kdXJhdGlvbiB8fCAwKSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19
452
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS1leGVjdXRpb24tc3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2V4ZWN1dGlvbi1zY3JlZW4vbGl2ZS1leGVjdXRpb24tc3RlcC9saXZlLWV4ZWN1dGlvbi1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9saXZlLWV4ZWN1dGlvbi1zdGVwL2xpdmUtZXhlY3V0aW9uLXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBd0QsTUFBTSxlQUFlLENBQUM7QUFDN0gsT0FBTyxFQUF1Riw2QkFBNkIsRUFBc0IsOEJBQThCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsTixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7O0FBUTNELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxpQkFBaUI7SUFOakU7O1FBYVcsWUFBTyxHQUFhLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFhLEtBQUssQ0FBQztRQUNoQyxrQkFBYSxHQUFhLEtBQUssQ0FBQztRQUMvQixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQy9DLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3BDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQzVELHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBQy9ELHVCQUFrQixHQUF3Qiw2QkFBNkIsQ0FBQztRQUN4RSx3QkFBbUIsR0FBeUIsOEJBQThCLENBQUM7UUFHM0UsYUFBUSxHQUFrQixFQUFFLENBQUM7UUF5QzlCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUU1Qyw4REFBOEQ7UUFDOUQsc0JB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STtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIERvQ2hlY2ssIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VTdGVwQ29uZmlnLCBTdGVwU3RhdHVzLCBMaXZlU3ViU3RlcCwgTGl2ZUV4ZWN1dGlvblN0ZXBDb25maWcsIEFkZFN0ZXBNZW51T3B0aW9uLCBERUZBVUxUX0FERF9TVEVQX01FTlVfT1BUSU9OUywgU3RlcE1vcmVNZW51T3B0aW9uLCBERUZBVUxUX1NURVBfTU9SRV9NRU5VX09QVElPTlMgfSBmcm9tICcuLi9leGVjdXRpb24tc3RlcC5tb2RlbHMnO1xuaW1wb3J0IHsgQmFzZVN0ZXBDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXN0ZXAuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWxpdmUtZXhlY3V0aW9uLXN0ZXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGl2ZS1leGVjdXRpb24tc3RlcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCBjcWEtdy1mdWxsJyB9XG59KVxuZXhwb3J0IGNsYXNzIExpdmVFeGVjdXRpb25TdGVwQ29tcG9uZW50IGV4dGVuZHMgQmFzZVN0ZXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBEb0NoZWNrIHtcbiAgLy8gSW5kaXZpZHVhbCBpbnB1dHNcbiAgQElucHV0KCkgaWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRlc3RTdGVwUmVzdWx0SWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0ZXBOdW1iZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKSBzdGF0dXMhOiBTdGVwU3RhdHVzO1xuICBASW5wdXQoKSBpc0RlYnVnPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkZWJ1Z1BvaW50U2V0PzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwYXJlbnRTa2lwcGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgZGVidWdQb2ludENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGVkaXRTdGVwID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYWRkU3RlcE9wdGlvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8QWRkU3RlcE1lbnVPcHRpb24+KCk7XG4gIEBPdXRwdXQoKSBzdGVwTW9yZU9wdGlvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3RlcE1vcmVNZW51T3B0aW9uPigpO1xuICBASW5wdXQoKSBhZGRTdGVwTWVudU9wdGlvbnM6IEFkZFN0ZXBNZW51T3B0aW9uW10gPSBERUZBVUxUX0FERF9TVEVQX01FTlVfT1BUSU9OUztcbiAgQElucHV0KCkgc3RlcE1vcmVNZW51T3B0aW9uczogU3RlcE1vcmVNZW51T3B0aW9uW10gPSBERUZBVUxUX1NURVBfTU9SRV9NRU5VX09QVElPTlM7XG4gIEBJbnB1dCgpIGR1cmF0aW9uITogbnVtYmVyO1xuICBASW5wdXQoKSBleHBhbmRlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN1YlN0ZXBzOiBMaXZlU3ViU3RlcFtdID0gW107XG4gIEBJbnB1dCgpIHN0ZXBEZWxldGVkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgc3RlcD86IGFueTtcbiAgZ2V0IHN0ZXBCYWRnZXMoKTogKCdza2lwcGVkJyB8ICdlZGl0ZWQnIHwgJ2FkZGVkJyB8ICdyZW1vdmVkJylbXSB7XG4gICAgY29uc3QgYmFkZ2UgPSB0aGlzLnN0ZXA/LnN0ZXBCYWRnZTtcbiAgICBpZiAoIWJhZGdlKSByZXR1cm4gW107XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYmFkZ2UpID8gYmFkZ2UgOiBbYmFkZ2VdO1xuICB9XG5cbiAgZ2V0IGlzU2tpcHBlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwQmFkZ2VzLmluY2x1ZGVzKCdza2lwcGVkJyk7XG4gIH1cblxuICBnZXQgaXNTdGVwRGVsZXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwQmFkZ2VzLmluY2x1ZGVzKCdyZW1vdmVkJyk7XG4gIH1cblxuICAvKiogU2hvdyBkZWJ1ZyBpY29uIG9ubHkgd2hlbiB0aGlzIHN0ZXAgaGFzIG5vIGNoaWxkIHN0ZXBzIChsZWFmIHN0ZXA6IGFsd2F5cyBzaG93IHdoZW4gaXNEZWJ1ZykuICovXG4gIGdldCBzaG93RGVidWdJY29uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRGVidWcgPT09IHRydWU7XG4gIH1cblxuICAvKiogUGVyLXN0ZXAgZmlsdGVyZWQgdGhyZWUtZG90IG1lbnUgb3B0aW9ucyAoZS5nLiBoaWRlIER1cGxpY2F0ZS9EZWxldGUgZm9yIHN0ZXAtZ3JvdXAgY2hpbGRyZW4pLiAqL1xuICBnZXQgZWZmZWN0aXZlU3RlcE1vcmVNZW51T3B0aW9ucygpOiBTdGVwTW9yZU1lbnVPcHRpb25bXSB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuc3RlcE1vcmVNZW51T3B0aW9ucyB8fCBbXTtcbiAgICBjb25zdCBzdGVwUmVmOiBhbnkgPSB0aGlzLnN0ZXA7XG4gICAgaWYgKCFzdGVwUmVmKSByZXR1cm4gYmFzZTtcblxuICAgIGNvbnN0IGlzR3JvdXBDaGlsZCA9ICEhc3RlcFJlZi5pc1N0ZXBHcm91cENoaWxkcmVuO1xuICAgIC8vIFdoZW4gc3RlcC5zdGVwTW9yZU1lbnVPcHRpb25zIGlzIHRydXRoeSBPUiBzdGVwIGlzIGEgc3RlcC1ncm91cCBjaGlsZCwgaGlkZSBtdXRhdGluZyBpdGVtc1xuICAgIGNvbnN0IHN1cHByZXNzTXV0YXRpbmcgPSAhIXN0ZXBSZWYuc3RlcE1vcmVNZW51T3B0aW9ucyB8fCBpc0dyb3VwQ2hpbGQ7XG4gICAgaWYgKCFzdXBwcmVzc011dGF0aW5nKSByZXR1cm4gYmFzZTtcblxuICAgIHJldHVybiBiYXNlLmZpbHRlcihvcHQgPT4gb3B0LmlkICE9PSAnZHVwbGljYXRlJyAmJiBvcHQuaWQgIT09ICdkZWxldGUnKTtcbiAgfVxuXG4gIC8vIENvbmZpZyBwcm9wZXJ0eSBmb3IgYmFzZSBjbGFzcyAtIGJ1aWx0IGZyb20gaW5kaXZpZHVhbCBpbnB1dHMgaW4gbmdPbkluaXRcbiAgb3ZlcnJpZGUgY29uZmlnITogTGl2ZUV4ZWN1dGlvblN0ZXBDb25maWc7XG5cbiAgLy8gVHJhY2sgcHJldmlvdXMgc3RhdHVzIHRvIGRldGVjdCB3aGVuIHN0ZXAgc3RhcnRzIGV4ZWN1dGluZ1xuICBwcml2YXRlIHByZXZpb3VzU3RhdHVzPzogU3RlcFN0YXR1cztcbiAgcHJpdmF0ZSB1c2VyTWFudWFsbHlDbG9zZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBQcm9jZXNzZWQgc3ViLXN0ZXBzIGZvciBXQUlUX0ZPUl9MT0NBVE9SIGNvdW50ZG93biBncm91cGluZ1xuICBwcm9jZXNzZWRTdWJTdGVwczogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBsYXN0UHJvY2Vzc2VkSW5kZXg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgd2FpdExvY2F0b3JHcm91cEVudHJ5OiBhbnkgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBjb3VudGRvd25JbnRlcnZhbElkOiBhbnkgPSBudWxsO1xuXG4gIC8vIEFJX0FVVE9fSEVBTCBncm91cGluZzogc2hvdyBsb2FkaW5nIHVudGlsIEFJX0FVVE9fSEVBTF9TVUNDRVNTIG9yIEFJX0FVVE9fSEVBTF9GQUlMRURcbiAgcHJpdmF0ZSBhaUF1dG9IZWFsR3JvdXBFbnRyeTogYW55IHwgbnVsbCA9IG51bGw7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gQnVpbGQgY29uZmlnIGZyb20gaW5kaXZpZHVhbCBpbnB1dHNcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgdGVzdFN0ZXBSZXN1bHRJZDogdGhpcy50ZXN0U3RlcFJlc3VsdElkLFxuICAgICAgc3RlcE51bWJlcjogdGhpcy5zdGVwTnVtYmVyLFxuICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgICAgZHVyYXRpb246IHRoaXMuZHVyYXRpb24sXG4gICAgICBkaXNwbGF5VHlwZTogJ2xpdmUtZXhlY3V0aW9uJyxcbiAgICAgIHN1YlN0ZXBzOiB0aGlzLnN1YlN0ZXBzIHx8IFtdLFxuICAgICAgc3RlcERlbGV0ZWQ6IHRoaXMuc3RlcERlbGV0ZWQsXG4gICAgICBleHBhbmRlZDogdGhpcy5leHBhbmRlZCxcbiAgICB9IGFzIExpdmVFeGVjdXRpb25TdGVwQ29uZmlnO1xuXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBcbiAgICAvLyBJbml0aWFsaXplIHByZXZpb3VzIHN0YXR1c1xuICAgIHRoaXMucHJldmlvdXNTdGF0dXMgPSB0aGlzLnN0YXR1cztcblxuICAgIC8vIFByb2Nlc3MgYW55IHN1YlN0ZXBzIHRoYXQgd2VyZSBwYXNzZWQgYXQgaW5pdCB0aW1lXG4gICAgaWYgKHRoaXMuc3ViU3RlcHMgJiYgdGhpcy5zdWJTdGVwcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnByb2Nlc3NMaXZlU3ViU3RlcHMoKTtcbiAgICB9XG4gICAgXG4gICAgLy8gQXV0by1leHBhbmQgaWYgc3RlcCBpcyBydW5uaW5nIGFuZCBoYXMgc3ViU3RlcHMgb24gaW5pdFxuICAgIGlmICh0aGlzLnN0YXR1cyA9PT0gJ3J1bm5pbmcnICYmIHRoaXMuaGFzU3ViU3RlcHMgJiYgIXRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgdGhpcy5hdXRvRXhwYW5kKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIFVwZGF0ZSBzdWJTdGVwcyBhcnJheSB3aGVuIG5ldyBvbmVzIGFyZSBhZGRlZFxuICAgIGlmIChjaGFuZ2VzWydzdWJTdGVwcyddKSB7XG4gICAgICBjb25zdCBwcmV2aW91c1N1YlN0ZXBzQ291bnQgPSBjaGFuZ2VzWydzdWJTdGVwcyddLnByZXZpb3VzVmFsdWU/Lmxlbmd0aCB8fCAwO1xuICAgICAgY29uc3QgY3VycmVudFN1YlN0ZXBzQ291bnQgPSAodGhpcy5zdWJTdGVwcyB8fCBbXSkubGVuZ3RoO1xuICAgICAgXG4gICAgICAvLyBTdWItc3RlcHMgYXJlIGFwcGVuZGVkIGV4dGVybmFsbHksIHNvIHdlIGp1c3QgdXBkYXRlIHRoZSBjb25maWdcbiAgICAgIGlmICh0aGlzLmNvbmZpZykge1xuICAgICAgICB0aGlzLmNvbmZpZy5zdWJTdGVwcyA9IHRoaXMuc3ViU3RlcHMgfHwgW107XG4gICAgICB9XG5cbiAgICAgIC8vIFByb2Nlc3MgaW5jb21pbmcgc3ViU3RlcHMgZm9yIFdBSVRfRk9SX0xPQ0FUT1IgZ3JvdXBpbmdcbiAgICAgIHRoaXMucHJvY2Vzc0xpdmVTdWJTdGVwcygpO1xuICAgICAgXG4gICAgICAvLyBBdXRvLWV4cGFuZCBpZiBzdGVwIGlzIHJ1bm5pbmcgYW5kIG5ldyBzdWJTdGVwcyBhcmUgYWRkZWQgKGxvZ3MgY29taW5nIGluKVxuICAgICAgaWYgKCFjaGFuZ2VzWydzdWJTdGVwcyddLmZpcnN0Q2hhbmdlICYmIFxuICAgICAgICAgIHRoaXMuc3RhdHVzID09PSAncnVubmluZycgJiYgXG4gICAgICAgICAgY3VycmVudFN1YlN0ZXBzQ291bnQgPiBwcmV2aW91c1N1YlN0ZXBzQ291bnQgJiZcbiAgICAgICAgICB0aGlzLmhhc1N1YlN0ZXBzICYmIFxuICAgICAgICAgICF0aGlzLmlzRXhwYW5kZWQgJiYgXG4gICAgICAgICAgIXRoaXMudXNlck1hbnVhbGx5Q2xvc2VkKSB7XG4gICAgICAgIHRoaXMuYXV0b0V4cGFuZCgpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBIYW5kbGUgc3RhdHVzIGNoYW5nZXMgLSBhdXRvLWV4cGFuZCB3aGVuIHN0ZXAgc3RhcnRzIGV4ZWN1dGluZ1xuICAgIGlmIChjaGFuZ2VzWydzdGF0dXMnXSAmJiAhY2hhbmdlc1snc3RhdHVzJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIGNvbnN0IG5ld1N0YXR1cyA9IGNoYW5nZXNbJ3N0YXR1cyddLmN1cnJlbnRWYWx1ZTtcbiAgICAgIGNvbnN0IG9sZFN0YXR1cyA9IGNoYW5nZXNbJ3N0YXR1cyddLnByZXZpb3VzVmFsdWU7XG4gICAgICBcbiAgICAgIC8vIEF1dG8tZXhwYW5kIHdoZW4gc3RhdHVzIGNoYW5nZXMgdG8gJ3J1bm5pbmcnIGFuZCBoYXMgc3ViU3RlcHMgKG9yIHdpbGwgaGF2ZSBzb29uKVxuICAgICAgaWYgKG5ld1N0YXR1cyA9PT0gJ3J1bm5pbmcnICYmIG9sZFN0YXR1cyAhPT0gJ3J1bm5pbmcnICYmICF0aGlzLnVzZXJNYW51YWxseUNsb3NlZCkge1xuICAgICAgICAvLyBFeHBhbmQgaW1tZWRpYXRlbHkgaWYgYWxyZWFkeSBoYXMgc3ViU3RlcHMsIG9yIHdhaXQgZm9yIHRoZW1cbiAgICAgICAgaWYgKHRoaXMuaGFzU3ViU3RlcHMpIHtcbiAgICAgICAgICB0aGlzLmF1dG9FeHBhbmQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICB0aGlzLnByZXZpb3VzU3RhdHVzID0gbmV3U3RhdHVzO1xuICAgIH1cbiAgICBcbiAgICAvLyBVcGRhdGUgZXhwYW5kZWQgc3RhdGUgZnJvbSBwYXJlbnQgKHN5bmMgd2l0aCBwYXJlbnQncyBzdGF0ZSlcbiAgICBpZiAoY2hhbmdlc1snZXhwYW5kZWQnXSkge1xuICAgICAgY29uc3QgbmV3RXhwYW5kZWQgPSBjaGFuZ2VzWydleHBhbmRlZCddLmN1cnJlbnRWYWx1ZSA/PyBmYWxzZTtcbiAgICAgIGlmIChuZXdFeHBhbmRlZCAhPT0gdGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IG5ld0V4cGFuZGVkO1xuICAgICAgICAvLyBSZXNldCBtYW51YWwgY2xvc2UgZmxhZyBpZiBwYXJlbnQgZXhwbGljaXRseSBleHBhbmRzXG4gICAgICAgIGlmIChuZXdFeHBhbmRlZCkge1xuICAgICAgICAgIHRoaXMudXNlck1hbnVhbGx5Q2xvc2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snc3RlcERlbGV0ZWQnXSAmJiB0aGlzLmNvbmZpZykge1xuICAgICAgdGhpcy5jb25maWcuc3RlcERlbGV0ZWQgPSBjaGFuZ2VzWydzdGVwRGVsZXRlZCddLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snc3RlcE51bWJlciddICYmIHRoaXMuY29uZmlnKSB7XG4gICAgICB0aGlzLmNvbmZpZy5zdGVwTnVtYmVyID0gY2hhbmdlc1snc3RlcE51bWJlciddLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudExlbmd0aCA9ICh0aGlzLnN1YlN0ZXBzIHx8IFtdKS5sZW5ndGg7XG4gICAgaWYgKGN1cnJlbnRMZW5ndGggIT09IHRoaXMubGFzdFByb2Nlc3NlZEluZGV4KSB7XG4gICAgICB0aGlzLnByb2Nlc3NMaXZlU3ViU3RlcHMoKTtcbiAgICB9XG4gIH1cblxuICBvbkRlYnVnUG9pbnRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZGVidWdQb2ludENoYW5nZS5lbWl0KCF0aGlzLmRlYnVnUG9pbnRTZXQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9nZ2xlKCk6IHZvaWQge1xuICAgIC8vIFRyYWNrIGlmIHVzZXIgbWFudWFsbHkgY2xvc2VzIHRoZSBzdGVwXG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgdGhpcy51c2VyTWFudWFsbHlDbG9zZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZXNldCBmbGFnIHdoZW4gdXNlciBvcGVucyBpdFxuICAgICAgdGhpcy51c2VyTWFudWFsbHlDbG9zZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgXG4gICAgc3VwZXIudG9nZ2xlKCk7XG4gIH1cblxuICBwcml2YXRlIGF1dG9FeHBhbmQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzRXhwYW5kZWQgJiYgdGhpcy5oYXNTdWJTdGVwcykge1xuICAgICAgdGhpcy5pc0V4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMudXNlck1hbnVhbGx5Q2xvc2VkID0gZmFsc2U7XG4gICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkLmVtaXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGhhc1N1YlN0ZXBzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3NlZFN1YlN0ZXBzICYmIHRoaXMucHJvY2Vzc2VkU3ViU3RlcHMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHRyYWNrQnlTdWJTdGVwSWQoaW5kZXg6IG51bWJlciwgc3ViU3RlcDogTGl2ZVN1YlN0ZXApOiBzdHJpbmcge1xuICAgIHJldHVybiBzdWJTdGVwLmlkO1xuICB9XG5cbiAgb25FZGl0U3RlcChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZWRpdFN0ZXAuZW1pdCgpO1xuICB9XG5cbiAgb25BZGRTdGVwT3B0aW9uU2VsZWN0KG9wdGlvbjogQWRkU3RlcE1lbnVPcHRpb24sIGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5hZGRTdGVwT3B0aW9uU2VsZWN0LmVtaXQob3B0aW9uKTtcbiAgfVxuXG4gIG9uU3RlcE1vcmVPcHRpb25TZWxlY3Qob3B0aW9uOiBTdGVwTW9yZU1lbnVPcHRpb24sIGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5zdGVwTW9yZU9wdGlvblNlbGVjdC5lbWl0KG9wdGlvbik7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0xpdmVTdWJTdGVwcygpOiB2b2lkIHtcbiAgICBjb25zdCBhbGxTdWJTdGVwcyA9ICh0aGlzLnN1YlN0ZXBzIHx8IFtdKSBhcyBhbnlbXTtcblxuICAgIC8vIFJlc2V0IGlmIHN1YlN0ZXBzIHdlcmUgY2xlYXJlZCBvciByZXBsYWNlZCB3aXRoIGZld2VyIGVudHJpZXNcbiAgICBpZiAoYWxsU3ViU3RlcHMubGVuZ3RoIDwgdGhpcy5sYXN0UHJvY2Vzc2VkSW5kZXgpIHtcbiAgICAgIHRoaXMucmVzZXRMaXZlUHJvY2Vzc2luZygpO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSB0aGlzLmxhc3RQcm9jZXNzZWRJbmRleDsgaSA8IGFsbFN1YlN0ZXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBzdWJTdGVwID0gYWxsU3ViU3RlcHNbaV07XG4gICAgICBjb25zdCB1aVR5cGU6IHN0cmluZyA9IHN1YlN0ZXA/LnVpVHlwZSB8fCBzdWJTdGVwPy50eXBlIHx8ICcnO1xuICAgICAgY29uc3Qgc3RhdHVzOiBzdHJpbmcgPSAoc3ViU3RlcD8uc3RhdHVzIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICBpZiAodWlUeXBlID09PSAnV0FJVF9GT1JfTE9DQVRPUicpIHtcbiAgICAgICAgLy8gQ3JlYXRlIGEgc2luZ2xlIGdyb3VwZWQgZW50cnkgd2l0aCBhIGNvdW50ZG93bjsgYWJzb3JicyBGSU5EX0xPQ0FUT1IgYW5kIExPQ0FUT1JfRk9VTkRcbiAgICAgICAgY29uc3QgdGltZW91dFNlY29uZHMgPSB0eXBlb2Ygc3ViU3RlcC52YWx1ZSA9PT0gJ251bWJlcidcbiAgICAgICAgICA/IHN1YlN0ZXAudmFsdWVcbiAgICAgICAgICA6IChzdWJTdGVwLnZhbHVlID8gcGFyc2VGbG9hdChzdWJTdGVwLnZhbHVlKSA6IDMwKTtcblxuICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcblxuICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSA9IHtcbiAgICAgICAgICAuLi5zdWJTdGVwLFxuICAgICAgICAgIGlzUnVubmluZzogdHJ1ZSxcbiAgICAgICAgICByZW1haW5pbmdTZWNvbmRzOiB0aW1lb3V0U2Vjb25kcyxcbiAgICAgICAgICBzdGF0dXM6ICdwZW5kaW5nJ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmFkZER1cmF0aW9uVG9XYWl0TG9jYXRvckdyb3VwRW50cnkoc3ViU3RlcCk7XG4gICAgICAgIHRoaXMucHJvY2Vzc2VkU3ViU3RlcHMucHVzaCh0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSk7XG5cbiAgICAgICAgLy8gVGljayBkb3duIGV2ZXJ5IHNlY29uZFxuICAgICAgICB0aGlzLmNvdW50ZG93bkludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5KSB7XG4gICAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5yZW1haW5pbmdTZWNvbmRzID0gTWF0aC5tYXgoMCwgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkucmVtYWluaW5nU2Vjb25kcyAtIDEpO1xuICAgICAgICAgICAgaWYgKHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5LnJlbWFpbmluZ1NlY29uZHMgPD0gMCkge1xuICAgICAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5pc1J1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkuc3RhdHVzID0gJ2ZhaWxlZCc7XG4gICAgICAgICAgICAgIHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5LnJlbWFpbmluZ1NlY29uZHMgPSBudWxsO1xuICAgICAgICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgICAgICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwMCk7XG5cbiAgICAgIH0gZWxzZSBpZiAodWlUeXBlID09PSAnRklORF9MT0NBVE9SJykge1xuICAgICAgICBpZiAoc3RhdHVzID09PSAnZmFpbGVkJyB8fCBzdGF0dXMgPT09ICdmYWlsdXJlJykge1xuICAgICAgICAgIC8vIEFib3J0IGNvdW50ZG93biwgcmVwbGFjZSBncm91cCBlbnRyeSB3aXRoIHRoaXMgZmFpbGVkIGxvZ1xuICAgICAgICAgIGlmICh0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcyA9IHRoaXMucHJvY2Vzc2VkU3ViU3RlcHMuZmlsdGVyKGVudHJ5ID0+IGVudHJ5ICE9PSB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSk7XG4gICAgICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgICAgICAgICAgIHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcy5wdXNoKHsgLi4uc3ViU3RlcCwgaXNSdW5uaW5nOiBmYWxzZSwgc3RhdHVzOiAnZmFpbGVkJyB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSkge1xuICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgc2luZ2xlIGdyb3VwIGVudHJ5J3MgdGV4dCBzbyB0aGUgdXNlciBzZWVzIHByb2dyZXNzXG4gICAgICAgICAgY29uc3QgbmV3VGV4dCA9IHN1YlN0ZXAudGV4dCB8fCBzdWJTdGVwLmRlc2NyaXB0aW9uIHx8IHN1YlN0ZXAudGl0bGU7XG4gICAgICAgICAgaWYgKG5ld1RleHQpIHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5LnRleHQgPSBuZXdUZXh0O1xuICAgICAgICAgIHRoaXMuYWRkRHVyYXRpb25Ub1dhaXRMb2NhdG9yR3JvdXBFbnRyeShzdWJTdGVwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBObyBhY3RpdmUgZ3JvdXAg4oCTIHB1c2ggRklORF9MT0NBVE9SIG5vcm1hbGx5IG9uY2UgY291bnRkb3duIGlzIGNsZWFyZWRcbiAgICAgICAgICB0aGlzLnByb2Nlc3NlZFN1YlN0ZXBzLnB1c2goeyAuLi5zdWJTdGVwIH0pO1xuICAgICAgICB9XG5cbiAgICAgIH0gZWxzZSBpZiAodWlUeXBlID09PSAnTE9DQVRPUl9GT1VORCcpIHtcblxuICAgICAgICBpZiAoc3RhdHVzID09PSAnZmFpbGVkJyB8fCBzdGF0dXMgPT09ICdmYWlsdXJlJykge1xuICAgICAgICAgIC8vIEFib3J0IGNvdW50ZG93biwgcmVwbGFjZSBncm91cCBlbnRyeSB3aXRoIHRoaXMgZmFpbGVkIGxvZ1xuICAgICAgICAgIGlmICh0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcyA9IHRoaXMucHJvY2Vzc2VkU3ViU3RlcHMuZmlsdGVyKGVudHJ5ID0+IGVudHJ5ICE9PSB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSk7XG4gICAgICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgICAgICAgICAgIHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcy5wdXNoKHsgLi4uc3ViU3RlcCwgaXNSdW5uaW5nOiBmYWxzZSwgc3RhdHVzOiAnZmFpbGVkJyB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBTZXF1ZW5jZSBjb21wbGV0ZSDigJMgdXBkYXRlIHRoZSBncm91cCBlbnRyeSB0byBzaG93IExPQ0FUT1JfRk9VTkQgdGV4dCBhcyBzdWNjZXNzXG4gICAgICAgICAgaWYgKHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5KSB7XG4gICAgICAgICAgICBjb25zdCBuZXdUZXh0ID0gc3ViU3RlcC50ZXh0IHx8IHN1YlN0ZXAuZGVzY3JpcHRpb24gfHwgc3ViU3RlcC50aXRsZTtcbiAgICAgICAgICAgIGlmIChuZXdUZXh0KSB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS50ZXh0ID0gbmV3VGV4dDtcbiAgICAgICAgICAgIHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5LmlzUnVubmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkuc3RhdHVzID0gJ3N1Y2Nlc3MnO1xuICAgICAgICAgICAgdGhpcy5hZGREdXJhdGlvblRvV2FpdExvY2F0b3JHcm91cEVudHJ5KHN1YlN0ZXApO1xuICAgICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkucmVtYWluaW5nU2Vjb25kcyA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgICAgICAgICAgIHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5ID0gbnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gTm8gYWN0aXZlIGdyb3VwIOKAkyBqdXN0IHB1c2ggTE9DQVRPUl9GT1VORCBub3JtYWxseVxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcy5wdXNoKHsgLi4uc3ViU3RlcCwgaXNSdW5uaW5nOiBmYWxzZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfSBlbHNlIGlmICh1aVR5cGUgPT09ICdBSV9BVVRPX0hFQUwnKSB7XG4gICAgICAgIC8vIElmIGEgV0FJVF9GT1JfTE9DQVRPUiBjb3VudGRvd24gaXMgYWN0aXZlLCBjb21wbGV0ZSBpdCBhcyBmYWlsZWQgYmVmb3JlIHN0YXJ0aW5nIEFJIGF1dG8taGVhbFxuICAgICAgICBpZiAodGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkpIHtcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5pc1J1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5zdGF0dXMgPSAnZmFpbGVkJztcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5yZW1haW5pbmdTZWNvbmRzID0gbnVsbDtcbiAgICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgc2luZ2xlIGxvYWRpbmcgZW50cnk7IHdpbGwgYmUgcmVwbGFjZWQgYnkgQUlfQVVUT19IRUFMX1NVQ0NFU1Mgb3IgQUlfQVVUT19IRUFMX0ZBSUxFRFxuICAgICAgICB0aGlzLmFpQXV0b0hlYWxHcm91cEVudHJ5ID0ge1xuICAgICAgICAgIC4uLnN1YlN0ZXAsXG4gICAgICAgICAgdGV4dDogc3ViU3RlcC50ZXh0IHx8IHN1YlN0ZXAuZGVzY3JpcHRpb24gfHwgJ0FJIGF1dG8taGVhbCBzdGFydGVkJyxcbiAgICAgICAgICBpc1J1bm5pbmc6IHRydWUsXG4gICAgICAgICAgc3RhdHVzOiAncGVuZGluZycsXG4gICAgICAgICAgdWlUeXBlOiAnQUlfQVVUT19IRUFMJ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnByb2Nlc3NlZFN1YlN0ZXBzLnB1c2godGhpcy5haUF1dG9IZWFsR3JvdXBFbnRyeSk7XG5cbiAgICAgIH0gZWxzZSBpZiAodWlUeXBlID09PSAnQUlfQVVUT19IRUFMX1NVQ0NFU1MnIHx8IHVpVHlwZSA9PT0gJ0FJX0FVVE9fSEVBTF9GQUlMRUQnKSB7XG4gICAgICAgIC8vIElmIGEgV0FJVF9GT1JfTE9DQVRPUiBjb3VudGRvd24gaXMgYWN0aXZlLCBjb21wbGV0ZSBpdCBhcyBmYWlsZWQgYmVmb3JlIGhhbmRsaW5nIEFJIGF1dG8taGVhbCByZXN1bHRcbiAgICAgICAgaWYgKHRoaXMud2FpdExvY2F0b3JHcm91cEVudHJ5KSB7XG4gICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkuaXNSdW5uaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkuc3RhdHVzID0gJ2ZhaWxlZCc7XG4gICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkucmVtYWluaW5nU2Vjb25kcyA9IG51bGw7XG4gICAgICAgICAgdGhpcy5jbGVhckNvdW50ZG93blRpbWVyKCk7XG4gICAgICAgICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIGxvYWRpbmcgZW50cnkgYW5kIGFkZCBUV08gc2VwYXJhdGUgZW50cmllczogdmFsdWUgYW5kIHJlYXNvbmluZyAobGlrZSBBSV9BTlNXRVIpXG4gICAgICAgIGlmICh0aGlzLmFpQXV0b0hlYWxHcm91cEVudHJ5KSB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcyA9IHRoaXMucHJvY2Vzc2VkU3ViU3RlcHMuZmlsdGVyKGVudHJ5ID0+IGVudHJ5ICE9PSB0aGlzLmFpQXV0b0hlYWxHcm91cEVudHJ5KTtcbiAgICAgICAgICB0aGlzLmFpQXV0b0hlYWxHcm91cEVudHJ5ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc1N1Y2Nlc3MgPSB1aVR5cGUgPT09ICdBSV9BVVRPX0hFQUxfU1VDQ0VTUyc7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gc3ViU3RlcC52YWx1ZSA/PyBzdWJTdGVwLnRleHQgPz8gJyc7XG4gICAgICAgIGNvbnN0IHJlYXNvbmluZyA9IHN1YlN0ZXAucmVhc29uaW5nID8/IHN1YlN0ZXAuUmVhc29uaW5nID8/ICcnO1xuICAgICAgICBjb25zdCBiYXNlRHVyYXRpb24gPSBzdWJTdGVwLmR1cmF0aW9uIHx8IDA7XG4gICAgICAgIGNvbnN0IGZpbmFsU3RhdHVzID0gaXNTdWNjZXNzID8gJ3N1Y2Nlc3MnIDogJ2ZhaWxlZCc7XG5cbiAgICAgICAgLy8gRmlyc3QgZW50cnk6IHZhbHVlL2Rlc2NyaXB0aW9uXG4gICAgICAgIGNvbnN0IHZhbHVlRGVzY3JpcHRpb24gPSBzdWJTdGVwLnRleHQgfHwgc3ViU3RlcC5kZXNjcmlwdGlvbiB8fCAoaXNTdWNjZXNzXG4gICAgICAgICAgPyBgQUkgYXV0by1oZWFsIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHlgXG4gICAgICAgICAgOiBgQUkgYXV0by1oZWFsIGZhaWxlZGApO1xuICAgICAgICB0aGlzLnByb2Nlc3NlZFN1YlN0ZXBzLnB1c2goe1xuICAgICAgICAgIC4uLnN1YlN0ZXAsXG4gICAgICAgICAgdGV4dDogdmFsdWVEZXNjcmlwdGlvbixcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdmFsdWVEZXNjcmlwdGlvbixcbiAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgcmVhc29uaW5nOiBudWxsLFxuICAgICAgICAgIGlzUnVubmluZzogZmFsc2UsXG4gICAgICAgICAgc3RhdHVzOiBmaW5hbFN0YXR1cyxcbiAgICAgICAgICB1aVR5cGU6ICdBSV9BVVRPX0hFQUxfVkFMVUUnLFxuICAgICAgICAgIHR5cGU6ICdBSV9BVVRPX0hFQUxfVkFMVUUnLFxuICAgICAgICAgIGR1cmF0aW9uOiBiYXNlRHVyYXRpb24sXG4gICAgICAgICAgaXNBaUF1dG9IZWFsUmVzdWx0OiB0cnVlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNlY29uZCBlbnRyeTogcmVhc29uaW5nIChvbmx5IGlmIHByZXNlbnQpXG4gICAgICAgIGlmIChyZWFzb25pbmcpIHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NlZFN1YlN0ZXBzLnB1c2goe1xuICAgICAgICAgICAgLi4uc3ViU3RlcCxcbiAgICAgICAgICAgIHRleHQ6IHJlYXNvbmluZyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByZWFzb25pbmcsXG4gICAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICAgIHJlYXNvbmluZzogcmVhc29uaW5nLFxuICAgICAgICAgICAgaXNSdW5uaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHN0YXR1czogZmluYWxTdGF0dXMsXG4gICAgICAgICAgICB1aVR5cGU6ICdBSV9BVVRPX0hFQUxfUkVBU09OSU5HJyxcbiAgICAgICAgICAgIHR5cGU6ICdBSV9BVVRPX0hFQUxfUkVBU09OSU5HJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiBiYXNlRHVyYXRpb24sXG4gICAgICAgICAgICBpc0FpQXV0b0hlYWxSZXN1bHQ6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBbnkgZmFpbGVkIGxvZyB3aGlsZSBhIGNvdW50ZG93biBpcyBhY3RpdmUg4oCTIHJlc29sdmUgaXQgYXMgZmFpbGVkXG4gICAgICAgIGlmICgoc3RhdHVzID09PSAnZmFpbGVkJyB8fCBzdGF0dXMgPT09ICdmYWlsdXJlJykgJiYgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkpIHtcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5pc1J1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5zdGF0dXMgPSAnZmFpbGVkJztcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeS5yZW1haW5pbmdTZWNvbmRzID0gbnVsbDtcbiAgICAgICAgICB0aGlzLmNsZWFyQ291bnRkb3duVGltZXIoKTtcbiAgICAgICAgICB0aGlzLndhaXRMb2NhdG9yR3JvdXBFbnRyeSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcm9jZXNzZWRTdWJTdGVwcy5wdXNoKHN1YlN0ZXApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubGFzdFByb2Nlc3NlZEluZGV4ID0gYWxsU3ViU3RlcHMubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldExpdmVQcm9jZXNzaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJDb3VudGRvd25UaW1lcigpO1xuICAgIHRoaXMucHJvY2Vzc2VkU3ViU3RlcHMgPSBbXTtcbiAgICB0aGlzLmxhc3RQcm9jZXNzZWRJbmRleCA9IDA7XG4gICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkgPSBudWxsO1xuICAgIHRoaXMuYWlBdXRvSGVhbEdyb3VwRW50cnkgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckNvdW50ZG93blRpbWVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvdW50ZG93bkludGVydmFsSWQgIT09IG51bGwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5jb3VudGRvd25JbnRlcnZhbElkKTtcbiAgICAgIHRoaXMuY291bnRkb3duSW50ZXJ2YWxJZCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGREdXJhdGlvblRvV2FpdExvY2F0b3JHcm91cEVudHJ5KHN1YlN0ZXA6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByYXdEdXJhdGlvbiA9IHN1YlN0ZXA/LmR1cmF0aW9uO1xuICAgIGxldCBkZWx0YSA9IDA7XG4gICAgaWYgKHR5cGVvZiByYXdEdXJhdGlvbiA9PT0gJ251bWJlcicpIHtcbiAgICAgIGRlbHRhID0gcmF3RHVyYXRpb247XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcmF3RHVyYXRpb24gPT09ICdzdHJpbmcnICYmIHJhd0R1cmF0aW9uLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlRmxvYXQocmF3RHVyYXRpb24pO1xuICAgICAgZGVsdGEgPSBOdW1iZXIuaXNGaW5pdGUocGFyc2VkKSA/IHBhcnNlZCA6IDA7XG4gICAgfVxuXG4gICAgaWYgKGRlbHRhIDw9IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50UmF3ID0gdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkuZHVyYXRpb247XG4gICAgbGV0IGN1cnJlbnQgPSAwO1xuICAgIGlmICh0eXBlb2YgY3VycmVudFJhdyA9PT0gJ251bWJlcicpIHtcbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50UmF3O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGN1cnJlbnRSYXcgPT09ICdzdHJpbmcnICYmIGN1cnJlbnRSYXcudHJpbSgpICE9PSAnJykge1xuICAgICAgY29uc3QgcGFyc2VkQ3VycmVudCA9IHBhcnNlRmxvYXQoY3VycmVudFJhdyk7XG4gICAgICBjdXJyZW50ID0gTnVtYmVyLmlzRmluaXRlKHBhcnNlZEN1cnJlbnQpID8gcGFyc2VkQ3VycmVudCA6IDA7XG4gICAgfVxuXG4gICAgdGhpcy53YWl0TG9jYXRvckdyb3VwRW50cnkuZHVyYXRpb24gPSBjdXJyZW50ICsgZGVsdGE7XG4gIH1cbn1cblxuIiwiPGRpdiBjbGFzcz1cImNxYS1mb250LWludGVyIGNxYS13LWZ1bGxcIiBbY2xhc3MuY3FhLW9wYWNpdHktNTBdPVwiaXNEZWJ1ZyAmJiBpc1NraXBwZWQgJiYgIXBhcmVudFNraXBwZWRcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCIhaXNEZWJ1ZyA/IG51bGwgOiBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3BhdXNlZCcgPyAnI0ZGRjlFOScgOiBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWxlZCcgPyAnI0ZFRjJGMicgOiBudWxsXCI+XG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtcC0yIGNxYS1jdXJzb3ItcG9pbnRlclwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICBzdHlsZT1cImJvcmRlci1ib3R0b206ICcxcHggc29saWQgI0YzRjRGNidcIlxuICAgID5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlYnVnSWNvblwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIlxuICAgICAgW21hdFRvb2x0aXBdPVwic3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdydW5uaW5nJyA/ICdCcmVha3BvaW50IGNhbm5vdCBiZSBzZXQgb24gYSBydW5uaW5nIHN0ZXAnIDogKGlzU3RlcERlbGV0ZWQgPyAnQnJlYWtwb2ludCBjYW5ub3QgYmUgc2V0IG9uIGRlbGV0ZWQgc3RlcHMnIDogKCghIXBhcmVudFNraXBwZWQgJiYgIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCkgPyAnQnJlYWtwb2ludCBjYW5ub3QgYmUgc2V0IG9uIGEgcnVubmluZyBzdGVwJyA6ICghIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCA/ICdCcmVha3BvaW50IGNhbm5vdCBiZSBzZXQgb24gc2tpcHBlZCBzdGVwcycgOiAnJykpKVwiXG4gICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjcWEtcC0wIGNxYS1ib3JkZXItMCBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLXJvdW5kZWQtZnVsbCBjcWEtdHJhbnNpdGlvbi1vcGFjaXR5IGZvY3VzOmNxYS1vdXRsaW5lLW5vbmVcIlxuICAgICAgICBbbmdDbGFzc109XCJzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3J1bm5pbmcnIHx8ICEhc3RlcD8uZGVidWdQb2ludERpc2FibGVkIHx8ICEhcGFyZW50U2tpcHBlZCB8fCBpc1N0ZXBEZWxldGVkID8gJ2NxYS1jdXJzb3Itbm90LWFsbG93ZWQgY3FhLW9wYWNpdHktNDAgY3FhLXBvaW50ZXItZXZlbnRzLW5vbmUnIDogJ2NxYS1jdXJzb3ItcG9pbnRlciBob3ZlcjpjcWEtb3BhY2l0eS04MCdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwic3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdydW5uaW5nJyB8fCAhIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCB8fCAhIXBhcmVudFNraXBwZWQgfHwgaXNTdGVwRGVsZXRlZFwiXG4gICAgICAgIChjbGljayk9XCJvbkRlYnVnUG9pbnRDbGljaygkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJkZWJ1Z1BvaW50U2V0ID8gJ1JlbW92ZSBkZWJ1ZyBwb2ludCcgOiAnU2V0IGRlYnVnIHBvaW50J1wiPlxuICAgICAgICA8c3ZnICpuZ0lmPVwiZGVidWdQb2ludFNldFwiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8Y2lyY2xlIGN4PVwiN1wiIGN5PVwiN1wiIHI9XCI2XCIgW2F0dHIuZmlsbF09XCIhIXN0ZXA/LmRlYnVnUG9pbnREaXNhYmxlZCB8fCAhIXBhcmVudFNraXBwZWQgfHwgaXNTdGVwRGVsZXRlZCA/ICcjOUU5RTlFJyA6ICcjQzYzNTM1J1wiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICAgIDxzdmcgKm5nSWY9XCIhZGVidWdQb2ludFNldFwiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8Y2lyY2xlIGN4PVwiN1wiIGN5PVwiN1wiIHI9XCI2XCIgW2F0dHIuc3Ryb2tlXT1cIiEhc3RlcD8uZGVidWdQb2ludERpc2FibGVkIHx8ICEhcGFyZW50U2tpcHBlZCB8fCBpc1N0ZXBEZWxldGVkID8gJyM5RTlFOUUnIDogJyNDNjM1MzUnXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgZmlsbD1cIm5vbmVcIi8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTdGF0dXMgSWNvbiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgIDwhLS0gU3VjY2VzcyAtLT5cbiAgICAgIDxzdmcgKm5nSWY9XCJzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3N1Y2Nlc3MnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTAuOTAwNSA0Ljk5OTk5QzExLjEyODkgNi4xMjA2NCAxMC45NjYyIDcuMjg1NzEgMTAuNDM5NSA4LjMwMDg5QzkuOTEyNzkgOS4zMTYwOCA5LjA1NCAxMC4xMiA4LjAwNjMxIDEwLjU3ODdDNi45NTg2MiAxMS4wMzczIDUuNzg1MzYgMTEuMTIyOSA0LjY4MjIgMTAuODIxMkMzLjU3OTA0IDEwLjUxOTUgMi42MTI2NSA5Ljg0ODY5IDEuOTQ0MTkgOC45MjA3MUMxLjI3NTczIDcuOTkyNzIgMC45NDU2MTEgNi44NjM2MSAxLjAwODg4IDUuNzIxNjlDMS4wNzIxNSA0LjU3OTc2IDEuNTI0OTkgMy40OTQwNCAyLjI5MTg4IDIuNjQ1NThDMy4wNTg3NiAxLjc5NzEyIDQuMDkzMzQgMS4yMzcyMSA1LjIyMzA4IDEuMDU5MjJDNi4zNTI4MiAwLjg4MTIzMyA3LjUwOTQ0IDEuMDk1OTIgOC41MDAwNSAxLjY2NzQ5XCIgc3Ryb2tlPVwiIzIyQzU1RVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTQuNSA1LjVMNiA3TDExIDJcIiBzdHJva2U9XCIjMjJDNTVFXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgPCEtLSBGYWlsZWQgLS0+XG4gICAgICA8c3ZnICpuZ0lmPVwic3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdmYWlsdXJlJyB8fCBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWxlZCdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02IDExQzguNzYxNDIgMTEgMTEgOC43NjE0MiAxMSA2QzExIDMuMjM4NTggOC43NjE0MiAxIDYgMUMzLjIzODU4IDEgMSAzLjIzODU4IDEgNkMxIDguNzYxNDIgMy4yMzg1OCAxMSA2IDExWlwiIHN0cm9rZT1cIiNFRjQ0NDRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk00IDRMOCA4TTggNEw0IDhcIiBzdHJva2U9XCIjRUY0NDQ0XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgPCEtLSBQZW5kaW5nIC0tPlxuICAgICAgPHN2ZyAqbmdJZj1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncGVuZGluZydcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk02IDExQzguNzYxNDIgMTEgMTEgOC43NjE0MiAxMSA2QzExIDMuMjM4NTggOC43NjE0MiAxIDYgMUMzLjIzODU4IDEgMSAzLjIzODU4IDEgNkMxIDguNzYxNDIgMy4yMzg1OCAxMSA2IDExWlwiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk02IDNWNkw4IDdcIiBzdHJva2U9XCIjOUNBM0FGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgPCEtLSBSdW5uaW5nIC0gU2hvdyBzcGlubmVyIC0tPlxuICAgICAgPHN2ZyAqbmdJZj1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncnVubmluZydcIiBjbGFzcz1cImNxYS1hbmltYXRlLXNwaW4gY3FhLXRleHQtWyMzQjgyRjZdXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICA8Y2lyY2xlIGN4PVwiNlwiIGN5PVwiNlwiIHI9XCI1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgZmlsbD1cIm5vbmVcIiBvcGFjaXR5PVwiMC4yNVwiLz5cbiAgICAgICAgPHBhdGggZD1cIk02IDFBNSA1IDAgMCAxIDExIDZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIi8+XG4gICAgICA8L3N2Zz5cbiAgICAgIDwhLS0gU2tpcHBlZCAtLT5cbiAgICAgIDxzcGFuICpuZ0lmPVwic3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdza2lwcGVkJ1wiIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBjcWEtdGV4dC1bIzlDQTNBRl0gY3FhLXRleHQtWzEycHhdXCI+XG4gICAgICAgIHNraXBfbmV4dFxuICAgICAgPC9zcGFuPlxuICAgICAgPGRpdiAqbmdJZj1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncGF1c2VkJ1wiPjxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNOC41IDJINy41QzcuMjIzODYgMiA3IDIuMjIzODYgNyAyLjVWOS41QzcgOS43NzYxNCA3LjIyMzg2IDEwIDcuNSAxMEg4LjVDOC43NzYxNCAxMCA5IDkuNzc2MTQgOSA5LjVWMi41QzkgMi4yMjM4NiA4Ljc3NjE0IDIgOC41IDJaXCIgc3Ryb2tlPVwiI0UxNzEwMFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTQuNSAySDMuNUMzLjIyMzg2IDIgMyAyLjIyMzg2IDMgMi41VjkuNUMzIDkuNzc2MTQgMy4yMjM4NiAxMCAzLjUgMTBINC41QzQuNzc2MTQgMTAgNSA5Ljc3NjE0IDUgOS41VjIuNUM1IDIuMjIzODYgNC43NzYxNCAyIDQuNSAyWlwiIHN0cm9rZT1cIiNFMTcxMDBcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFN0ZXAgTnVtYmVyIGFuZCBUaXRsZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZvbnQtc2VtaWJvbGQgY3FhLWZsZXgtMSBjcWEtdGV4dC1bIzMzNDE1NV0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtZm9udC1pbnRlciBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMVwiIHN0eWxlPVwid29yZC1icmVhazogYnJlYWstd29yZDtcIj5cbiAgICAgIDxzcGFuPnt7IHN0ZXBOdW1iZXIgfX0uIDxzcGFuIFtpbm5lckhUTUxdPVwidGl0bGVcIj48L3NwYW4+PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWcuc3RlcERlbGV0ZWRcIiBjbGFzcz1cImNxYS1weC0xLjUgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkLVs0cHhdIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTJweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjQjQyMzE4XSBjcWEtYmctWyNGRUYzRjJdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI0ZFRTRFMl1cIj5cbiAgICAgICAgRGVsZXRlZFxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xIGNxYS1mb250LWludGVyXCI+XG4gICAgICA8IS0tIFN0ZXAgQ2hhbmdlIEJhZGdlcyAoZGVidWcgb25seSkgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEZWJ1Z1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBiYWRnZSBvZiBzdGVwQmFkZ2VzXCI+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAnc2tpcHBlZCdcIlxuICAgICAgICAgIGxhYmVsPVwiU2tpcHBlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjNEE1NTY1J1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjOTlBMUFGJ1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0ZGRkZGRidcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAnZWRpdGVkJ1wiXG4gICAgICAgICAgbGFiZWw9XCJFZGl0ZWRcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgW3RleHRDb2xvcl09XCInI0ZCQkYyNCdcIlxuICAgICAgICAgIFtib3JkZXJDb2xvcl09XCInI0ZEREY5MidcIlxuICAgICAgICAgIFtiYWNrZ3JvdW5kQ29sb3JdPVwiJyNGRkY5RTknXCI+XG4gICAgICAgIDwvY3FhLWJhZGdlPlxuICAgICAgICA8Y3FhLWJhZGdlXG4gICAgICAgICAgKm5nSWY9XCJiYWRnZSA9PT0gJ2FkZGVkJ1wiXG4gICAgICAgICAgbGFiZWw9XCJBZGRlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjMERCRDdEJ1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjNUVEM0E4J1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0NGRjJFNSdcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAncmVtb3ZlZCdcIlxuICAgICAgICAgIGxhYmVsPVwiUmVtb3ZlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjRUUzRjNGJ1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjRjQ3RjdGJ1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0ZDRDlEOSdcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaXNEZWJ1Z1wiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTAuNSBjcWEtdGV4dC1bIzlDQTNBRl1cIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhc3RlcD8uaXNTdGVwR3JvdXBDaGlsZHJlblwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eSBmb2N1czpjcWEtb3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIkVkaXRcIiAoY2xpY2spPVwib25FZGl0U3RlcCgkZXZlbnQpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS10ZXh0LVsxNHB4XSAhY3FhLXctWzE0cHhdICFjcWEtaC1bMTRweF1cIj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhc3RlcD8uaXNTdGVwR3JvdXBDaGlsZHJlblwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eSBmb2N1czpjcWEtb3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIkFkZFwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhZGRTdGVwTWVudVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdGV4dC1bMTRweF0gIWNxYS13LVsxNHB4XSAhY3FhLWgtWzE0cHhdXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxtYXQtbWVudSAjYWRkU3RlcE1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJjcWEtYWRkLXN0ZXAtbWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiIHlQb3NpdGlvbj1cImJlbG93XCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBvcHQgb2YgYWRkU3RlcE1lbnVPcHRpb25zXCIgKGNsaWNrKT1cIm9uQWRkU3RlcE9wdGlvblNlbGVjdChvcHQsICRldmVudClcIj57eyBvcHQubGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImVmZmVjdGl2ZVN0ZXBNb3JlTWVudU9wdGlvbnMubGVuZ3RoXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY3FhLXAtMCBjcWEtYm9yZGVyLTAgY3FhLWJnLXRyYW5zcGFyZW50IGNxYS1jdXJzb3ItcG9pbnRlciBob3ZlcjpjcWEtb3BhY2l0eS04MCBjcWEtdHJhbnNpdGlvbi1vcGFjaXR5IGZvY3VzOmNxYS1vdXRsaW5lLW5vbmVcIiBhcmlhLWxhYmVsPVwiTW9yZSBvcHRpb25zXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInN0ZXBNb3JlTWVudVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdGV4dC1bMTRweF0gIWNxYS13LVsxNHB4XSAhY3FhLWgtWzE0cHhdXCI+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxtYXQtbWVudSAjc3RlcE1vcmVNZW51PVwibWF0TWVudVwiIGNsYXNzPVwiY3FhLXN0ZXAtbW9yZS1tZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCIgeVBvc2l0aW9uPVwiYmVsb3dcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IG9wdCBvZiBlZmZlY3RpdmVTdGVwTW9yZU1lbnVPcHRpb25zXCIgKGNsaWNrKT1cIm9uU3RlcE1vcmVPcHRpb25TZWxlY3Qob3B0LCAkZXZlbnQpXCI+e3sgb3B0LmxhYmVsIH19PC9idXR0b24+XG4gICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtdGV4dC1bIzlDQTNBRl0gY3FhLWZvbnQtbWVkaXVtXCI+XG4gICAgICAgIHt7IGZvcm1hdER1cmF0aW9uKGR1cmF0aW9uKSB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPHN2ZyAqbmdJZj1cImhhc1N1YlN0ZXBzXCIgW2NsYXNzLmNxYS1yb3RhdGUtMTgwXT1cImlzRXhwYW5kZWRcIiBjbGFzcz1cImNxYS10cmFuc2l0aW9uLXRyYW5zZm9ybVwiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTMuNSA1TDcgOC41TDEwLjUgNVwiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2Utd2lkdGg9XCIwLjgzMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBFeHBhbmRlZCBDb250ZW50IC0tPlxuICA8ZGl2ICpuZ0lmPVwiaXNFeHBhbmRlZCAmJiBoYXNTdWJTdGVwc1wiPlxuICAgIDwhLS0gU3ViLXN0ZXBzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xIGNxYS1wdC0xIGNxYS1wbC05XCI+XG4gICAgICA8IS0tIFNpbmdsZSBsb29wOiByZW5kZXIgYWxsIGVudHJpZXMgaW4gY2hyb25vbG9naWNhbCBvcmRlciAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN1YlN0ZXAgb2YgcHJvY2Vzc2VkU3ViU3RlcHM7IHRyYWNrQnk6IHRyYWNrQnlTdWJTdGVwSWRcIj5cbiAgICAgICAgPCEtLSBBSV9BVVRPX0hFQUwgcmVzdWx0IGVudHJpZXM6IHJlbmRlciB3aXRoIGFpLWFnZW50LXN0ZXAgc3R5bGUgLS0+XG4gICAgICAgIDxjcWEtYWktbG9ncy13aXRoLXJlYXNvbmluZ1xuICAgICAgICAgICpuZ0lmPVwic3ViU3RlcC5pc0FpQXV0b0hlYWxSZXN1bHRcIlxuICAgICAgICAgIFtzdGF0dXNdPVwic3ViU3RlcC5zdGF0dXNcIlxuICAgICAgICAgIFt0ZXh0XT1cInN1YlN0ZXAudGV4dFwiXG4gICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cInN1YlN0ZXAuZGVzY3JpcHRpb25cIlxuICAgICAgICAgIFtyZWFzb25pbmddPVwic3ViU3RlcC5yZWFzb25pbmdcIlxuICAgICAgICAgIFtkdXJhdGlvbl09XCJzdWJTdGVwLmR1cmF0aW9uXCI+XG4gICAgICAgIDwvY3FhLWFpLWxvZ3Mtd2l0aC1yZWFzb25pbmc+XG5cbiAgICAgICAgPCEtLSBSZWd1bGFyIHN1Yi1zdGVwcyAobm9uLUFJX0FVVE9fSEVBTCkgLS0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cIiFzdWJTdGVwLmlzQWlBdXRvSGVhbFJlc3VsdFwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMyBjcWEtcHktWzUuNXB4XSBjcWEtcHgtM1wiPlxuICAgICAgICBcbiAgICAgICAgICA8IS0tIFN1Yi1zdGVwIFN0YXR1cyBJY29uIG9yIExvYWRlciAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXctMyBjcWEtaC0zXCI+XG4gICAgICAgICAgICA8IS0tIExvYWRlciB3aGVuIHJ1bm5pbmcgLS0+XG4gICAgICAgICAgICA8c3ZnICpuZ0lmPVwic3ViU3RlcC5pc1J1bm5pbmdcIiBjbGFzcz1cImNxYS1hbmltYXRlLXNwaW4gY3FhLXRleHQtWyMzQjgyRjZdXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiNlwiIGN5PVwiNlwiIHI9XCI1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgZmlsbD1cIm5vbmVcIiBvcGFjaXR5PVwiMC4yNVwiLz5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDFBNSA1IDAgMCAxIDExIDZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPCEtLSBTdWNjZXNzIEljb24gd2hlbiBjb21wbGV0ZSAtLT5cbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCIhc3ViU3RlcC5pc1J1bm5pbmcgJiYgKHN1YlN0ZXA/LnN0YXR1cz8udG9Mb3dlckNhc2UoKSA9PT0gJ3Bhc3NlZCcgfHwgc3ViU3RlcD8uc3RhdHVzPy50b0xvd2VyQ2FzZSgpID09PSAnc3VjY2VzcycpXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgMTFDOC43NjE0MiAxMSAxMSA4Ljc2MTQyIDExIDZDMTEgMy4yMzg1OCA4Ljc2MTQyIDEgNiAxQzMuMjM4NTggMSAxIDMuMjM4NTggMSA2QzEgOC43NjE0MiAzLjIzODU4IDExIDYgMTFaXCIgc3Ryb2tlPVwiIzAwQTYzRVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk00LjUgNkw1LjUgN0w3LjUgNVwiIHN0cm9rZT1cIiMwMEE2M0VcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCIhc3ViU3RlcC5pc1J1bm5pbmcgJiYgc3ViU3RlcD8uc3RhdHVzPy50b0xvd2VyQ2FzZSgpID09PSAnZmFpbGVkJ1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDExQzguNzYxNDIgMTEgMTEgOC43NjE0MiAxMSA2QzExIDMuMjM4NTggOC43NjE0MiAxIDYgMUMzLjIzODU4IDEgMSAzLjIzODU4IDEgNkMxIDguNzYxNDIgMy4yMzg1OCAxMSA2IDExWlwiIHN0cm9rZT1cIiNFRjQ0NDRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk00IDRMOCA4TTggNEw0IDhcIiBzdHJva2U9XCIjRUY0NDQ0XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIFN1Yi1zdGVwIERlc2NyaXB0aW9uICh0ZXh0IGZyb20gc29ja2V0KSB3aXRoIHR5cGluZyBhbmltYXRpb24gLS0+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZmxleC0xIGNxYS10ZXh0LVsxM3B4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLXRleHQtWyMzNjQxNTNdXCIgc3R5bGU9XCJ3b3JkLWJyZWFrOiBicmVhay13b3JkO1wiPlxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyBmbGV4LXdyYXA6IHdyYXA7XCI+XG4gICAgICAgICAgICAgIDxuZ3gtdHlwZWQtanMgXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzdWJTdGVwLmlzUnVubmluZyAmJiBzdWJTdGVwLnRleHRcIlxuICAgICAgICAgICAgICAgIFtzdHJpbmdzXT1cIltzdWJTdGVwLnRleHRdXCJcbiAgICAgICAgICAgICAgICBbdHlwZVNwZWVkXT1cIjMwXCJcbiAgICAgICAgICAgICAgICBbc2hvd0N1cnNvcl09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2ZhZGVPdXRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogaW5saW5lO1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHlwaW5nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8L25neC10eXBlZC1qcz5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhc3ViU3RlcC5pc1J1bm5pbmdcIiBzdHlsZT1cImRpc3BsYXk6IGlubGluZTtcIj57eyBzdWJTdGVwLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwhLS0gQ291bnRkb3duIHJlbWFpbmluZyBmb3IgV0FJVF9GT1JfTE9DQVRPUiBncm91cCAtLT5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzdWJTdGVwLnJlbWFpbmluZ1NlY29uZHMgIT0gbnVsbFwiIGNsYXNzPVwiY3FhLXRleHQtWyNGOTczMTZdIGNxYS1mb250LW1lZGl1bSBjcWEtbWwtMVwiIHN0eWxlPVwiZGlzcGxheTogaW5saW5lO1wiPih7eyBzdWJTdGVwLnJlbWFpbmluZ1NlY29uZHMgfX1zIHJlbWFpbmluZyk8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuICBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLXRleHQtWyM2QTcyODJdIGNxYS1mb250LW1lZGl1bVwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IHByZS1saW5lO1wiPlxuICAgICAgICAgICAge3sgZm9ybWF0RHVyYXRpb24oc3ViU3RlcC5kdXJhdGlvbiB8fCAwKSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19