@skyux/lists 7.6.0 → 7.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +68 -68
- package/esm2020/lib/modules/filter/filter-button.component.mjs +3 -2
- package/esm2020/lib/modules/repeater/repeater-item.component.mjs +1 -1
- package/esm2020/lib/modules/repeater/repeater.component.mjs +1 -1
- package/fesm2015/skyux-lists.mjs +2 -1
- package/fesm2015/skyux-lists.mjs.map +1 -1
- package/fesm2020/skyux-lists.mjs +2 -1
- package/fesm2020/skyux-lists.mjs.map +1 -1
- package/lib/modules/filter/filter-button.component.d.ts +4 -2
- package/lib/modules/repeater/repeater-item.component.d.ts +1 -0
- package/lib/modules/repeater/repeater.component.d.ts +2 -1
- package/package.json +10 -10
|
@@ -487,4 +487,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
|
|
|
487
487
|
type: HostListener,
|
|
488
488
|
args: ['keydown', ['$event']]
|
|
489
489
|
}] } });
|
|
490
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdHMvc3JjL2xpYi9tb2R1bGVzL3JlcGVhdGVyL3JlcGVhdGVyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3NyYy9saWIvbW9kdWxlcy9yZXBlYXRlci9yZXBlYXRlci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUdOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFRdEQsT0FBTyxFQUFjLE9BQU8sRUFBRSxRQUFRLElBQUksa0JBQWtCLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7QUFJN0YsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO0FBRXRCOztHQUVHO0FBUUgsTUFBTSxPQUFPLHdCQUF3QjtJQThObkMsWUFDRSxlQUFtQyxFQUNuQyxjQUFpQyxFQUNqQyxjQUF5QyxFQUN6QyxVQUFzQixFQUN0QixlQUF1Qzs7UUFySXpDOzs7V0FHRztRQUVJLGdCQUFXLEdBQXdCLEtBQUssQ0FBQztRQUVoRDs7V0FFRztRQUVJLGVBQVUsR0FBd0IsS0FB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YztzQkFEcEIsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSTFDLGFBQWE7c0JBRG5CLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJekMsT0FBTztzQkFEYixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSW5DLDZCQUE2QjtzQkFEbkMsZUFBZTt1QkFBQywrQkFBK0I7Z0JBcUd6QyxTQUFTO3NCQURmLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2t5QW5pbWF0aW9uU2xpZGUgfSBmcm9tICdAc2t5dXgvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTa3lDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHtcbiAgU2t5SW5saW5lRm9ybUNsb3NlQXJncyxcbiAgU2t5SW5saW5lRm9ybUNvbmZpZyxcbn0gZnJvbSAnQHNreXV4L2lubGluZS1mb3JtJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZm9ya0pvaW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVJlcGVhdGVyQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3JlcGVhdGVyLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1Db250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9yZXBlYXRlci1pdGVtLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVJlcGVhdGVySXRlbUNvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9yZXBlYXRlci1pdGVtLWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJJdGVtUm9sZXNUeXBlIH0gZnJvbSAnLi9yZXBlYXRlci1pdGVtLXJvbGVzLnR5cGUnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXBlYXRlci5zZXJ2aWNlJztcblxubGV0IG5leHRDb250ZW50SWQgPSAwO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gaW5kaXZpZHVhbCByZXBlYXRlciBpdGVtLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktcmVwZWF0ZXItaXRlbScsXG4gIHN0eWxlVXJsczogWycuL3JlcGVhdGVyLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGVhdGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBhbmltYXRpb25zOiBbc2t5QW5pbWF0aW9uU2xpZGVdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdFxue1xuICAvKipcbiAgICogTWFrZSB0aGUgZmlyc3QsIG5vbi1kaXNhYmxlZCBpdGVtIHRhYi1mb2N1c2FibGUuXG4gICAqIC0gRGlzYWJsZWQgaXRlbXMgc2hvdWxkIG5vdCBiZSBmb2N1c2FibGUgcGVyIFtXM0NdKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMtMS4xLyNrYmRfZGlzYWJsZWRfY29udHJvbHMpLlxuICAgKiAtIE9uZSBpdGVtIHBlciBsaXN0L2dyaWQvbGlzdGJveCBzaG91bGQgYmUgdGFiIGZvY3VzYWJsZSBwZXIgW1czQ10oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy0xLjEvI2dyaWQpLlxuICAgKi9cbiAgcHVibGljIGdldCB0YWJpbmRleCgpOiAwIHwgLTEge1xuICAgIHJldHVybiB0aGlzLiNyZXBlYXRlclNlcnZpY2UuaXRlbXMuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5kaXNhYmxlZClbMF0gPT09XG4gICAgICB0aGlzXG4gICAgICA/IDBcbiAgICAgIDogLTE7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBleGNsdWRlIGFuIGl0ZW0gd2hlbiBjeWNsaW5nIHRocm91Z2guXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMuI19pc0Rpc2FibGVkICE9PSB2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLiNfaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNfaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNBY3RpdmUpIHtcbiAgICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmFjdGl2YXRlSXRlbUJ5SW5kZXgodW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubWF0Y2hlcygnOmZvY3VzLXdpdGhpbicpKSB7XG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgfVxuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19pc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcmVwZWF0ZXIgaXRlbSB0aGF0IGlzIGF2YWlsYWJsZSBmb3IgbXVsdGlwbGUgcHVycG9zZXMsXG4gICAqIHN1Y2ggYXMgYWNjZXNzaWJpbGl0eSBhbmQgaW5zdHJ1bWVudGF0aW9uLiBGb3IgZXhhbXBsZSwgdGhlIGNvbXBvbmVudCB1c2VzIHRoZSBuYW1lIHRvXG4gICAqIGNvbnN0cnVjdCBBUklBIGxhYmVscyBmb3IgdGhlIHJlcGVhdGVyIGl0ZW0gY29udHJvbHNcbiAgICogdG8gW3N1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpdGVtTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBidXR0b25zIHRvIGRpc3BsYXkgb24gYW4gaW5saW5lIGZvcm1cbiAgICogd2l0aGluIHRoZSByZXBlYXRlci4gVGhpcyBwcm9wZXJ0eSBhY2NlcHRzXG4gICAqIFthIGBTa3lJbmxpbmVGb3JtQ29uZmlnYCBvYmplY3RdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9pbmxpbmUtZm9ybSNza3lpbmxpbmVmb3JtY29uZmlnLXByb3BlcnRpZXMpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGlubGluZUZvcm1Db25maWc6IFNreUlubGluZUZvcm1Db25maWcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBbYW4gQW5ndWxhciBgVGVtcGxhdGVSZWZgXShodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvcmUvVGVtcGxhdGVSZWYpIHRvIHVzZVxuICAgKiBhcyBhIHRlbXBsYXRlIHRvIGluc3RhbnRpYXRlIGFuIGlubGluZSBmb3JtIHdpdGhpbiB0aGUgcmVwZWF0ZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaW5saW5lRm9ybVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmVwZWF0ZXIgaXRlbSBpcyBleHBhbmRlZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpc0V4cGFuZGVkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy51cGRhdGVGb3JFeHBhbmRlZCh2YWx1ZSAhPT0gZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0V4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNpc0V4cGFuZGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJlcGVhdGVyIGl0ZW0ncyBjaGVja2JveCBpcyBzZWxlY3RlZC5cbiAgICogV2hlbiB1c2VycyBzZWxlY3QgdGhlIHJlcGVhdGVyIGl0ZW0sIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb24geW91ciBtb2RlbCBpcyB1cGRhdGVkIGFjY29yZGluZ2x5LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpc1NlbGVjdGVkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHZhbHVlICE9PSB0aGlzLiNfaXNTZWxlY3RlZCkge1xuICAgICAgdGhpcy4jX2lzU2VsZWN0ZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMuaXNTZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuI19pc1NlbGVjdGVkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU2VsZWN0ZWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19pc1NlbGVjdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdXNlcnMgY2FuIGNoYW5nZSB0aGUgb3JkZXIgb2YgdGhlIHJlcGVhdGVyIGl0ZW0uXG4gICAqIFRoZSByZXBlYXRlciBjb21wb25lbnQncyBgcmVvcmRlcmFibGVgIHByb3BlcnR5IG11c3QgYWxzbyBiZSBzZXQgdG8gYHRydWVgLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHJlb3JkZXJhYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzcGxheSBhIGNoZWNrYm94IGluIHRoZSBsZWZ0IG9mIHRoZSByZXBlYXRlciBpdGVtLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGFibGU6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNwbGF5IGFuIGlubGluZSBmb3JtIHdpdGhpbiB0aGUgcmVwZWF0ZXIuXG4gICAqIFVzZXJzIGNhbiB0b2dnbGUgYmV0d2VlbiBkaXNwbGF5aW5nIGFuZCBoaWRpbmcgdGhlIGlubGluZSBmb3JtLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dJbmxpbmVGb3JtOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBvYmplY3QgdGhhdCB0aGUgcmVwZWF0ZXIgY29tcG9uZW50IHJldHVybnMgZm9yIHRoaXMgcmVwZWF0ZXIgaXRlbVxuICAgKiB3aGVuIHRoZSBgb3JkZXJDaGFuZ2VgIGV2ZW50IGZpcmVzLiBUaGlzIGlzIHJlcXVpcmVkXG4gICAqIGlmIHlvdSBzZXQgdGhlIGByZW9yZGVyYWJsZWAgcHJvcGVydHkgdG8gYHRydWVgLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRhZzogYW55O1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIGNvbGxhcHNlIHRoZSByZXBlYXRlciBpdGVtLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjb2xsYXBzZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBleHBhbmQgdGhlIHJlcGVhdGVyIGl0ZW0uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGV4cGFuZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgcmVwZWF0ZXIgaW5jbHVkZXMgYW4gaW5saW5lIGZvcm0gYW5kIHVzZXJzIGNsb3NlIGl0LiBUaGlzIGV2ZW50IGVtaXRzXG4gICAqIFthIGBTa3lJbmxpbmVGb3JtQ2xvc2VBcmdzYCB0eXBlXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaW5saW5lLWZvcm0jc2t5aW5saW5lZm9ybWNsb3NlYXJncy1wcm9wZXJ0aWVzKS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaW5saW5lRm9ybUNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lJbmxpbmVGb3JtQ2xvc2VBcmdzPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCBvciBjbGVhciB0aGUgY2hlY2tib3ggZm9yIHRoZSByZXBlYXRlciBpdGVtLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpc1NlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoU2t5UmVwZWF0ZXJJdGVtQ29udGV4dE1lbnVDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgY29udGV4dE1lbnU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGNvbnRlbnRJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBoYXNJdGVtQ29udGVudCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpc0FjdGl2ZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzZXQgaXNDb2xsYXBzaWJsZSh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLmlzQ29sbGFwc2libGUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLiNfaXNDb2xsYXBzaWJsZSA9IHZhbHVlICE9PSBmYWxzZTtcblxuICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKCF0aGlzLiNfaXNDb2xsYXBzaWJsZSkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvckV4cGFuZGVkKHRydWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0NvbGxhcHNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaXNDb2xsYXBzaWJsZTtcbiAgfVxuXG4gIHB1YmxpYyBpdGVtUm9sZSQ6IE9ic2VydmFibGU8U2t5UmVwZWF0ZXJJdGVtUm9sZXNUeXBlPjtcblxuICBwdWJsaWMgcmVvcmRlckJ1dHRvbkxhYmVsID0gJyc7XG5cbiAgcHVibGljIHJlb3JkZXJTdGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBzbGlkZURpcmVjdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgcmVwZWF0ZXJHcm91cENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdza3ktcmVwZWF0ZXItaXRlbS1ncm91cC0nICsgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLnJlcGVhdGVyR3JvdXBJZDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2dyYWJIYW5kbGUnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGdyYWJIYW5kbGU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnaXRlbUNvbnRlbnRSZWYnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGl0ZW1Db250ZW50UmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ2l0ZW1IZWFkZXJSZWYnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGl0ZW1IZWFkZXJSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnaXRlbVJlZicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgaXRlbVJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBAQ29udGVudENoaWxkcmVuKFNreVJlcGVhdGVySXRlbUNvbnRlbnRDb21wb25lbnQpXG4gIHB1YmxpYyByZXBlYXRlckl0ZW1Db250ZW50Q29tcG9uZW50czpcbiAgICB8IFF1ZXJ5TGlzdDxTa3lSZXBlYXRlckl0ZW1Db250ZW50Q29tcG9uZW50PlxuICAgIHwgdW5kZWZpbmVkO1xuXG4gICNhZGFwdGVyU2VydmljZTogU2t5UmVwZWF0ZXJBZGFwdGVyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gICNpc0V4cGFuZGVkID0gdHJ1ZTtcbiAgI2tleWJvYXJkUmVvcmRlcmluZ0VuYWJsZWQgPSBmYWxzZTtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjcmVvcmRlckNhbmNlbFRleHQgPSAnJztcbiAgI3Jlb3JkZXJDdXJyZW50SW5kZXggPSAtMTtcbiAgI3Jlb3JkZXJGaW5pc2hUZXh0ID0gJyc7XG4gICNyZW9yZGVySW5zdHJ1Y3Rpb25zID0gJyc7XG4gICNyZW9yZGVyTW92ZWRUZXh0ID0gJyc7XG4gICNyZW9yZGVyU3RhdGVEZXNjcmlwdGlvbiA9ICcnO1xuICAjcmVvcmRlclN0ZXBzID0gMDtcbiAgI3JlcGVhdGVyU2VydmljZTogU2t5UmVwZWF0ZXJTZXJ2aWNlO1xuICAjcmVzb3VyY2VTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlO1xuICAjX2lzQ29sbGFwc2libGUgPSB0cnVlO1xuICAjX2lzRGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcbiAgI19pc1NlbGVjdGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlcGVhdGVyU2VydmljZTogU2t5UmVwZWF0ZXJTZXJ2aWNlLFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBhZGFwdGVyU2VydmljZTogU2t5UmVwZWF0ZXJBZGFwdGVyU2VydmljZSxcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHJlc291cmNlU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZVxuICApIHtcbiAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UgPSByZXBlYXRlclNlcnZpY2U7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI2VsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICAgIHRoaXMuI3Jlc291cmNlU2VydmljZSA9IHJlc291cmNlU2VydmljZTtcblxuICAgIHRoaXMuI3NsaWRlRm9yRXhwYW5kZWQoKTtcblxuICAgIG9ic2VydmFibGVGb3JrSm9pbihbXG4gICAgICB0aGlzLiNyZXNvdXJjZVNlcnZpY2UuZ2V0U3RyaW5nKCdza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfY2FuY2VsJyksXG4gICAgICB0aGlzLiNyZXNvdXJjZVNlcnZpY2UuZ2V0U3RyaW5nKCdza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfZmluaXNoJyksXG4gICAgICB0aGlzLiNyZXNvdXJjZVNlcnZpY2UuZ2V0U3RyaW5nKFxuICAgICAgICAnc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX2luc3RydWN0aW9ucydcbiAgICAgICksXG4gICAgICB0aGlzLiNyZXNvdXJjZVNlcnZpY2UuZ2V0U3RyaW5nKCdza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfb3BlcmF0aW9uJyksXG4gICAgICB0aGlzLiNyZXNvdXJjZVNlcnZpY2UuZ2V0U3RyaW5nKCdza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfbW92ZWQnKSxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKFtcbiAgICAgICAgICByZW9yZGVyQ2FuY2VsVGV4dCxcbiAgICAgICAgICByZW9yZGVyRmluaXNoVGV4dCxcbiAgICAgICAgICByZW9yZGVySW5zdHJ1Y3Rpb25zVGV4dCxcbiAgICAgICAgICByZW9yZGVyT3BlcmF0aW9uVGV4dCxcbiAgICAgICAgICByZW9yZGVyTW92ZWRUZXh0LFxuICAgICAgICBdKSA9PiB7XG4gICAgICAgICAgdGhpcy4jcmVvcmRlckNhbmNlbFRleHQgPSByZW9yZGVyQ2FuY2VsVGV4dDtcbiAgICAgICAgICB0aGlzLiNyZW9yZGVyRmluaXNoVGV4dCA9IHJlb3JkZXJGaW5pc2hUZXh0O1xuICAgICAgICAgIHRoaXMuI3Jlb3JkZXJTdGF0ZURlc2NyaXB0aW9uID0gcmVvcmRlckluc3RydWN0aW9uc1RleHQ7XG4gICAgICAgICAgdGhpcy4jcmVvcmRlckluc3RydWN0aW9ucyA9IHJlb3JkZXJPcGVyYXRpb25UZXh0O1xuICAgICAgICAgIHRoaXMuI3Jlb3JkZXJNb3ZlZFRleHQgPSByZW9yZGVyTW92ZWRUZXh0O1xuICAgICAgICAgIHRoaXMucmVvcmRlckJ1dHRvbkxhYmVsID0gdGhpcy4jcmVvcmRlckluc3RydWN0aW9ucztcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgIHRoaXMuY29udGVudElkID0gYHNreS1yZXBlYXRlci1pdGVtLWNvbnRlbnQtJHsrK25leHRDb250ZW50SWR9YDtcbiAgICB0aGlzLml0ZW1Sb2xlJCA9IHRoaXMuI3JlcGVhdGVyU2VydmljZS5pdGVtUm9sZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UucmVnaXN0ZXJJdGVtKHRoaXMpO1xuICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5hY3RpdmVJdGVtQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0lzQWN0aXZlVmFsdWUgPSB0aGlzID09PSBpdGVtO1xuICAgICAgICBpZiAobmV3SXNBY3RpdmVWYWx1ZSAhPT0gdGhpcy5pc0FjdGl2ZSkge1xuICAgICAgICAgIHRoaXMuaXNBY3RpdmUgPSBuZXdJc0FjdGl2ZVZhbHVlO1xuICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5oYXNJdGVtQ29udGVudCA9ICEhdGhpcy5yZXBlYXRlckl0ZW1Db250ZW50Q29tcG9uZW50cz8ubGVuZ3RoO1xuICAgIHRoaXMuI3VwZGF0ZUV4cGFuZE9uQ29udGVudENoYW5nZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGFwc2UuY29tcGxldGUoKTtcbiAgICB0aGlzLmV4cGFuZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuaW5saW5lRm9ybUNsb3NlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5pc1NlbGVjdGVkQ2hhbmdlLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UudW5yZWdpc3Rlckl0ZW0odGhpcyk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uS2V5ZG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBbJyAnLCAnRW50ZXInLCAnSG9tZScsICdFbmQnLCAnQXJyb3dVcCcsICdBcnJvd0Rvd24nXS5pbmNsdWRlcygkZXZlbnQua2V5KVxuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICAoJGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkubWF0Y2hlcyhcbiAgICAgICAgICAnaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIG9wdGlvbiwgW2NvbnRlbnRlZGl0YWJsZV0sIFtjb250ZW50ZWRpdGFibGVdIConXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGxldCBhY3RpdmF0ZUl0ZW06IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAoWycgJywgJ0VudGVyJ10uaW5jbHVkZXMoJGV2ZW50LmtleSkpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZCA9ICF0aGlzLmlzU2VsZWN0ZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgICAgIGFjdGl2YXRlSXRlbSA9IHRoaXM7XG4gICAgICB9XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKFsnSG9tZScsICdFbmQnXS5pbmNsdWRlcygkZXZlbnQua2V5KSkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuI3JlcGVhdGVyU2VydmljZS5pdGVtcy5maWx0ZXIoXG4gICAgICAgICAgKGl0ZW0pID0+ICFpdGVtLmRpc2FibGVkXG4gICAgICAgICk7XG4gICAgICAgIGlmICgkZXZlbnQua2V5ID09PSAnSG9tZScpIHtcbiAgICAgICAgICBhY3RpdmF0ZUl0ZW0gPSBpdGVtcy5zaGlmdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjdGl2YXRlSXRlbSA9IGl0ZW1zLnBvcCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKFsnQXJyb3dVcCcsICdBcnJvd0Rvd24nXS5pbmNsdWRlcygkZXZlbnQua2V5KSkge1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLiNyZXBlYXRlclNlcnZpY2UuaXRlbXMuZmluZEluZGV4KFxuICAgICAgICAgIChpdGVtKSA9PiBpdGVtID09PSB0aGlzXG4gICAgICAgICk7XG4gICAgICAgIGxldCBzbGljZUZyb206IG51bWJlcjtcbiAgICAgICAgbGV0IHNsaWNlVG86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCRldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgICAgIHNsaWNlRnJvbSA9IDA7XG4gICAgICAgICAgc2xpY2VUbyA9IGN1cnJlbnRJbmRleDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzbGljZUZyb20gPSBjdXJyZW50SW5kZXggKyAxO1xuICAgICAgICAgIHNsaWNlVG8gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLiNyZXBlYXRlclNlcnZpY2UuaXRlbXNcbiAgICAgICAgICAuc2xpY2Uoc2xpY2VGcm9tLCBzbGljZVRvKVxuICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmRpc2FibGVkKTtcbiAgICAgICAgYWN0aXZhdGVJdGVtID0gJGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnID8gaXRlbXMucG9wKCkgOiBpdGVtcy5zaGlmdCgpO1xuICAgICAgICBpZiAoIWFjdGl2YXRlSXRlbSkge1xuICAgICAgICAgIC8vIFdyYXAgYXJvdW5kLlxuICAgICAgICAgIGlmICgkZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICAgICAgc2xpY2VGcm9tID0gMDtcbiAgICAgICAgICAgIHNsaWNlVG8gPSBjdXJyZW50SW5kZXg7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNsaWNlRnJvbSA9IGN1cnJlbnRJbmRleCArIDE7XG4gICAgICAgICAgICBzbGljZVRvID0gdW5kZWZpbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuI3JlcGVhdGVyU2VydmljZS5pdGVtc1xuICAgICAgICAgICAgLnNsaWNlKHNsaWNlRnJvbSwgc2xpY2VUbylcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmRpc2FibGVkKTtcbiAgICAgICAgICBhY3RpdmF0ZUl0ZW0gPSAkZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgPyBpdGVtcy5wb3AoKSA6IGl0ZW1zLnNoaWZ0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAoYWN0aXZhdGVJdGVtICYmICFhY3RpdmF0ZUl0ZW0uaXNBY3RpdmUpIHtcbiAgICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmFjdGl2YXRlSXRlbShhY3RpdmF0ZUl0ZW0pO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIShhY3RpdmF0ZUl0ZW0uI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBFbGVtZW50KS5tYXRjaGVzKFxuICAgICAgICAgICAgJzpmb2N1cy13aXRoaW4nXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBhY3RpdmF0ZUl0ZW0uaXRlbVJlZj8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhlYWRlckNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQ29sbGFwc2libGUpIHtcbiAgICAgIHRoaXMudXBkYXRlRm9yRXhwYW5kZWQoIXRoaXMuaXNFeHBhbmRlZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNoZXZyb25EaXJlY3Rpb25DaGFuZ2UoZGlyZWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUZvckV4cGFuZGVkKGRpcmVjdGlvbiA9PT0gJ3VwJyk7XG4gIH1cblxuICBwdWJsaWMgb25SZXBlYXRlckl0ZW1DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIC8vIE9ubHkgYWN0aXZhdGUgaXRlbSBpZiBjbGlja2luZyBvbiB0aGUgdGl0bGUsIGNvbnRlbnQsIG9yIHBhcmVudCBpdGVtIGRpdi5cbiAgICAvLyBUaGlzIHdpbGwgYXZvaWQgYWNjaWRlbnRhbCBhY3RpdmF0aW9ucyB3aGVuIGNsaWNraW5nIGluc2lkZSBpbnRlcmFjdGl2ZSBlbGVtZW50cyBsaWtlXG4gICAgLy8gdGhlIGV4cGFuZC9jb2xsYXBzZSBjaGV2cm9uLCBkcm9wZG93biwgaW5saW5lLWRlbGV0ZSwgZXRjLi4uXG4gICAgaWYgKFxuICAgICAgZXZlbnQudGFyZ2V0ID09PSB0aGlzLml0ZW1SZWY/Lm5hdGl2ZUVsZW1lbnQgfHxcbiAgICAgIHRoaXMuaXRlbUNvbnRlbnRSZWY/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSB8fFxuICAgICAgdGhpcy5pdGVtSGVhZGVyUmVmPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICApIHtcbiAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5hY3RpdmF0ZUl0ZW0odGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZvckV4cGFuZGVkKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNDb2xsYXBzaWJsZSA9PT0gZmFsc2UgJiYgdmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBTZXR0aW5nIGlzRXhwYW5kZWQgdG8gZmFsc2Ugd2hlbiB0aGUgcmVwZWF0ZXIgaXRlbSBpcyBub3QgY29sbGFwc2libGVcbiAgICAgICAgd2lsbCBoYXZlIG5vIGVmZmVjdC5gXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy4jaXNFeHBhbmRlZCAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuI2lzRXhwYW5kZWQgPSB2YWx1ZTtcblxuICAgICAgaWYgKHRoaXMuI2lzRXhwYW5kZWQpIHtcbiAgICAgICAgdGhpcy5leHBhbmQuZW1pdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZS5lbWl0KCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5vbkl0ZW1Db2xsYXBzZVN0YXRlQ2hhbmdlKHRoaXMpO1xuICAgICAgdGhpcy4jc2xpZGVGb3JFeHBhbmRlZCgpO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2hlY2tib3hDaGFuZ2UodmFsdWU6IFNreUNoZWNrYm94Q2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5pc1NlbGVjdGVkID0gdmFsdWUuY2hlY2tlZDtcbiAgfVxuXG4gIHB1YmxpYyBvbklubGluZUZvcm1DbG9zZShpbmxpbmVGb3JtQ2xvc2VBcmdzOiBTa3lJbmxpbmVGb3JtQ2xvc2VBcmdzKTogdm9pZCB7XG4gICAgdGhpcy5pbmxpbmVGb3JtQ2xvc2UuZW1pdChpbmxpbmVGb3JtQ2xvc2VBcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlVG9Ub3AoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2UubW92ZUl0ZW1VcCh0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpO1xuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmZvY3VzRWxlbWVudChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5yZWdpc3Rlck9yZGVyQ2hhbmdlKCk7XG4gIH1cblxuICBwdWJsaWMgb25SZW9yZGVySGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoZXZlbnQua2V5KSB7XG4gICAgICBzd2l0Y2ggKGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgJyAnOlxuICAgICAgICBjYXNlICdlbnRlcic6XG4gICAgICAgICAgdGhpcy4ja2V5Ym9hcmRUb2dnbGVSZW9yZGVyKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdlc2NhcGUnOlxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKHRoaXMuI2tleWJvYXJkUmVvcmRlcmluZ0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuI2tleWJvYXJkUmVvcmRlcmluZ0VuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuI3JldmVydFJlb3JkZXJTdGVwcygpO1xuICAgICAgICAgICAgdGhpcy5yZW9yZGVyQnV0dG9uTGFiZWwgPVxuICAgICAgICAgICAgICB0aGlzLiNyZW9yZGVyQ2FuY2VsVGV4dCArICcgJyArIHRoaXMuI3Jlb3JkZXJJbnN0cnVjdGlvbnM7XG4gICAgICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5mb2N1c0VsZW1lbnQoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnYXJyb3d1cCc6XG4gICAgICAgICAgaWYgKHRoaXMuI2tleWJvYXJkUmVvcmRlcmluZ0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuI2tleWJvYXJkUmVvcmRlclVwKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UucmVnaXN0ZXJPcmRlckNoYW5nZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdhcnJvd2Rvd24nOlxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKHRoaXMuI2tleWJvYXJkUmVvcmRlcmluZ0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuI2tleWJvYXJkUmVvcmRlckRvd24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5yZWdpc3Rlck9yZGVyQ2hhbmdlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2Fycm93bGVmdCc6XG4gICAgICAgIGNhc2UgJ2Fycm93cmlnaHQnOlxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKHRoaXMuI2tleWJvYXJkUmVvcmRlcmluZ0VuYWJsZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25SZW9yZGVySGFuZGxlQmx1cihldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy4ja2V5Ym9hcmRSZW9yZGVyaW5nRW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuI3JldmVydFJlb3JkZXJTdGVwcygpO1xuICAgIHRoaXMucmVvcmRlckJ1dHRvbkxhYmVsID0gdGhpcy4jcmVvcmRlckluc3RydWN0aW9ucztcbiAgICB0aGlzLnJlb3JkZXJTdGF0ZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gICNzbGlkZUZvckV4cGFuZGVkKCk6IHZvaWQge1xuICAgIHRoaXMuc2xpZGVEaXJlY3Rpb24gPSB0aGlzLmlzRXhwYW5kZWQgPyAnZG93bicgOiAndXAnO1xuICB9XG5cbiAgI2tleWJvYXJkUmVvcmRlclVwKCk6IHZvaWQge1xuICAgIGNvbnN0IG5ld0luZGV4ID0gdGhpcy4jYWRhcHRlclNlcnZpY2UubW92ZUl0ZW1VcChcbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICk7XG4gICAgaWYgKG5ld0luZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuI3Jlb3JkZXJDdXJyZW50SW5kZXggPSBuZXdJbmRleDtcbiAgICAgIHRoaXMuI3Jlb3JkZXJTdGVwcy0tO1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2UuZm9jdXNFbGVtZW50KHRoaXMuZ3JhYkhhbmRsZSk7XG4gICAgICB0aGlzLiNrZXlib2FyZFJlb3JkZXJpbmdFbmFibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVvcmRlckJ1dHRvbkxhYmVsID0gYCR7dGhpcy4jcmVvcmRlck1vdmVkVGV4dH0gJHtcbiAgICAgICAgdGhpcy4jcmVvcmRlckN1cnJlbnRJbmRleCArIDFcbiAgICAgIH1gO1xuICAgIH1cbiAgfVxuXG4gICNrZXlib2FyZFJlb3JkZXJEb3duKCk6IHZvaWQge1xuICAgIGNvbnN0IG5ld0luZGV4ID0gdGhpcy4jYWRhcHRlclNlcnZpY2UubW92ZUl0ZW1Eb3duKFxuICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgKTtcbiAgICBpZiAobmV3SW5kZXgpIHtcbiAgICAgIHRoaXMuI3Jlb3JkZXJDdXJyZW50SW5kZXggPSBuZXdJbmRleDtcbiAgICAgIHRoaXMuI3Jlb3JkZXJTdGVwcysrO1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2UuZm9jdXNFbGVtZW50KHRoaXMuZ3JhYkhhbmRsZSk7XG4gICAgICB0aGlzLiNrZXlib2FyZFJlb3JkZXJpbmdFbmFibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVvcmRlckJ1dHRvbkxhYmVsID0gYCR7dGhpcy4jcmVvcmRlck1vdmVkVGV4dH0gJHtcbiAgICAgICAgdGhpcy4jcmVvcmRlckN1cnJlbnRJbmRleCArIDFcbiAgICAgIH1gO1xuICAgIH1cbiAgfVxuXG4gICNrZXlib2FyZFRvZ2dsZVJlb3JkZXIoKTogdm9pZCB7XG4gICAgdGhpcy4ja2V5Ym9hcmRSZW9yZGVyaW5nRW5hYmxlZCA9ICF0aGlzLiNrZXlib2FyZFJlb3JkZXJpbmdFbmFibGVkO1xuICAgIHRoaXMuI3Jlb3JkZXJTdGVwcyA9IDA7XG5cbiAgICBpZiAodGhpcy4ja2V5Ym9hcmRSZW9yZGVyaW5nRW5hYmxlZCkge1xuICAgICAgdGhpcy5yZW9yZGVyU3RhdGUgPSB0aGlzLiNyZW9yZGVyU3RhdGVEZXNjcmlwdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVE9ETzogTmVlZHMgaW1wcm92ZW1lbnQgdG8gYmUgbG9jYWxpemVkXG4gICAgICB0aGlzLnJlb3JkZXJTdGF0ZSA9IGAke3RoaXMuI3Jlb3JkZXJGaW5pc2hUZXh0fSAke1xuICAgICAgICB0aGlzLiNyZW9yZGVyQ3VycmVudEluZGV4ICsgMVxuICAgICAgfSAke3RoaXMuI3Jlb3JkZXJJbnN0cnVjdGlvbnN9YDtcbiAgICAgIHRoaXMuI3Jlb3JkZXJDdXJyZW50SW5kZXggPSAtMTtcbiAgICB9XG4gIH1cblxuICAjcmV2ZXJ0UmVvcmRlclN0ZXBzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNyZW9yZGVyU3RlcHMgPCAwKSB7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5tb3ZlSXRlbURvd24oXG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgTWF0aC5hYnModGhpcy4jcmVvcmRlclN0ZXBzKVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuI3Jlb3JkZXJTdGVwcyA+IDApIHtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLm1vdmVJdGVtVXAoXG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIHRoaXMuI3Jlb3JkZXJTdGVwc1xuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLnJlZ2lzdGVyT3JkZXJDaGFuZ2UoKTtcbiAgfVxuXG4gICN1cGRhdGVFeHBhbmRPbkNvbnRlbnRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5yZXBlYXRlckl0ZW1Db250ZW50Q29tcG9uZW50cz8uY2hhbmdlc1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFzSXRlbUNvbnRlbnQgPSAhIXRoaXMucmVwZWF0ZXJJdGVtQ29udGVudENvbXBvbmVudHM/Lmxlbmd0aDtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgdGhpcy5pc0NvbGxhcHNpYmxlID1cbiAgICAgICAgICB0aGlzLmhhc0l0ZW1Db250ZW50ICYmIHRoaXMuI3JlcGVhdGVyU2VydmljZS5leHBhbmRNb2RlICE9PSAnbm9uZSc7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICh0aGlzLiNyZXBlYXRlclNlcnZpY2UuZXhwYW5kTW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2Uub25JdGVtQ29sbGFwc2VTdGF0ZUNoYW5nZSh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktcmVwZWF0ZXItaXRlbSBza3ktcGFkZGluZy1ldmVuLWRlZmF1bHRcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW1OYW1lXCJcbiAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJzZWxlY3RhYmxlID8gISFpc1NlbGVjdGVkIDogdW5kZWZpbmVkXCJcbiAgW2F0dHIucm9sZV09XCIoaXRlbVJvbGUkIHwgYXN5bmMpPy5pdGVtXCJcbiAgW2F0dHIudGFiSW5kZXhdPVwidGFiaW5kZXhcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3NreS1yZXBlYXRlci1pdGVtLWFjdGl2ZSc6IGlzQWN0aXZlLFxuICAgICdza3ktcmVwZWF0ZXItaXRlbS1jb2xsYXBzaWJsZSc6IGlzQ29sbGFwc2libGUsXG4gICAgJ3NreS1yZXBlYXRlci1pdGVtLXNlbGVjdGVkJzogaXNTZWxlY3RlZFxuICB9XCJcbiAgKGNsaWNrKT1cIm9uUmVwZWF0ZXJJdGVtQ2xpY2soJGV2ZW50KVwiXG4gICNpdGVtUmVmXG4+XG4gIDxkaXYgI2lubGluZURlbGV0ZT5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktaW5saW5lLWRlbGV0ZVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlubGluZUZvcm1UZW1wbGF0ZVwiPlxuICAgIDxza3ktaW5saW5lLWZvcm1cbiAgICAgIFtjb25maWddPVwiaW5saW5lRm9ybUNvbmZpZ1wiXG4gICAgICBbc2hvd0Zvcm1dPVwic2hvd0lubGluZUZvcm1cIlxuICAgICAgW3RlbXBsYXRlXT1cImlubGluZUZvcm1UZW1wbGF0ZVwiXG4gICAgICAoY2xvc2UpPVwib25JbmxpbmVGb3JtQ2xvc2UoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNreVJlcGVhdGVySXRlbUxlZnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJza3lSZXBlYXRlckl0ZW1SaWdodFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvc2t5LWlubGluZS1mb3JtPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlubGluZUZvcm1UZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJza3lSZXBlYXRlckl0ZW1MZWZ0XCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNreVJlcGVhdGVySXRlbVJpZ2h0XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2t5UmVwZWF0ZXJJdGVtTGVmdD5cbiAgPGRpdlxuICAgIFthdHRyLnJvbGVdPVwiIXNob3dJbmxpbmVGb3JtID8gKGl0ZW1Sb2xlJCB8IGFzeW5jKT8uY29udGVudCA6IHVuZGVmaW5lZFwiXG4gICAgY2xhc3M9XCJza3ktcmVwZWF0ZXItaXRlbS1sZWZ0XCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZW9yZGVyYWJsZVwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCJcbiAgICAgICAgY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCJcbiAgICAgICAgW2lkXT1cImNvbnRlbnRJZCArICctcmVvcmRlci1zdGF0ZSdcIlxuICAgICAgPlxuICAgICAgICB7eyByZW9yZGVyU3RhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiXG4gICAgICAgIFtpZF09XCJjb250ZW50SWQgKyAnLXJlb3JkZXItaW5zdHJ1Y3Rpb25zJ1wiXG4gICAgICAgID57eyByZW9yZGVyQnV0dG9uTGFiZWwgfX08L3NwYW5cbiAgICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS10aWxlLXRvb2xzLWNvbnRyb2wgc2t5LXJlcGVhdGVyLWl0ZW0tZ3JhYi1oYW5kbGVcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJjb250ZW50SWQgKyAnLXJlb3JkZXItaW5zdHJ1Y3Rpb25zJ1wiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgaXRlbU5hbWVcbiAgICAgICAgICAgID8gKCdza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzOiBpdGVtTmFtZSlcbiAgICAgICAgICAgIDogKCdza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfbGFiZWxfZGVmYXVsdCcgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgIFwiXG4gICAgICAgIChibHVyKT1cIm9uUmVvcmRlckhhbmRsZUJsdXIoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uUmVvcmRlckhhbmRsZUtleURvd24oJGV2ZW50KVwiXG4gICAgICAgICNncmFiSGFuZGxlXG4gICAgICA+XG4gICAgICAgIDxza3ktaWNvbiBpY29uPVwiYXJyb3dzLXZcIj48L3NreS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPHNreS1jaGVja2JveFxuICAgICAgKm5nSWY9XCJzZWxlY3RhYmxlXCJcbiAgICAgIGNsYXNzPVwic2t5LXJlcGVhdGVyLWl0ZW0tY2hlY2tib3hcIlxuICAgICAgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZFwiXG4gICAgICBbbGFiZWxdPVwiXG4gICAgICAgIGl0ZW1OYW1lXG4gICAgICAgICAgPyAoJ3NreXV4X3JlcGVhdGVyX2l0ZW1fY2hlY2tib3hfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzOiBpdGVtTmFtZSlcbiAgICAgICAgICA6ICgnc2t5dXhfcmVwZWF0ZXJfaXRlbV9jaGVja2JveF9sYWJlbF9kZWZhdWx0JyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgIFwiXG4gICAgICAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvc2t5LWNoZWNrYm94PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LXJlcGVhdGVyLWl0ZW0tY29udGV4dC1tZW51XCJcbiAgICAgIFtoaWRkZW5dPVwiY29udGV4dE1lbnVFbC5jaGlsZHJlbi5sZW5ndGggPT09IDBcIlxuICAgICAgI2NvbnRleHRNZW51RWxcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktcmVwZWF0ZXItaXRlbS1jb250ZXh0LW1lbnVcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNza3lSZXBlYXRlckl0ZW1SaWdodD5cbiAgPGRpdiBjbGFzcz1cInNreS1yZXBlYXRlci1pdGVtLXJpZ2h0XCIgI2l0ZW1IZWFkZXJSZWY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktcmVwZWF0ZXItaXRlbS1oZWFkZXJcIlxuICAgICAgW2F0dHIucm9sZV09XCIoaXRlbVJvbGUkIHwgYXN5bmMpPy50aXRsZVwiXG4gICAgICBbaGlkZGVuXT1cInRpdGxlUmVmLmNoaWxkcmVuLmxlbmd0aCA9PT0gMFwiXG4gICAgICAoY2xpY2spPVwiaGVhZGVyQ2xpY2soKVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS1yZXBlYXRlci1pdGVtLXRpdGxlIHNreS1lbXBoYXNpemVkXCIgI3RpdGxlUmVmPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktcmVwZWF0ZXItaXRlbS10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cInJlb3JkZXJhYmxlXCJcbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluayBza3ktcmVwZWF0ZXItaXRlbS1yZW9yZGVyLXRvcFwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgIGl0ZW1OYW1lXG4gICAgICAgICAgICA/ICgnc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX3RvcF9sYWJlbCdcbiAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IGl0ZW1OYW1lKVxuICAgICAgICAgICAgOiAoJ3NreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl90b3BfbGFiZWxfZGVmYXVsdCdcbiAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgIFwiXG4gICAgICAgIChjbGljayk9XCJtb3ZlVG9Ub3AoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktaWNvbiBpY29uPVwiYXJyb3ctY2lyY2xlLXVwXCI+PC9za3ktaWNvbj5cbiAgICAgICAge3sgJ3NreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl90b3AnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgKm5nSWY9XCJpc0NvbGxhcHNpYmxlXCIgY2xhc3M9XCJza3ktcmVwZWF0ZXItaXRlbS1jaGV2cm9uXCI+XG4gICAgICAgIDxza3ktY2hldnJvblxuICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiY29udGVudElkXCJcbiAgICAgICAgICBbYXJpYUxhYmVsXT1cIlxuICAgICAgICAgICAgaXRlbU5hbWVcbiAgICAgICAgICAgICAgPyAoJ3NreXV4X3JlcGVhdGVyX2l0ZW1fZXhwYW5kJyB8IHNreUxpYlJlc291cmNlczogaXRlbU5hbWUpXG4gICAgICAgICAgICAgIDogKCdza3l1eF9yZXBlYXRlcl9pdGVtX2V4cGFuZF9kZWZhdWx0JyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtkaXJlY3Rpb25dPVwiaXNFeHBhbmRlZCA/ICd1cCcgOiAnZG93bidcIlxuICAgICAgICAgIChkaXJlY3Rpb25DaGFuZ2UpPVwiY2hldnJvbkRpcmVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jaGV2cm9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIFVzZWQgZm9yIHdoZW4gdGhlIGNoZXZyb24gaXMgaGlkZGVuIHRvIGVuc3VyZSB0aGF0IHRoZSByaWdodCBzaWRlIGlzIHRoZSBzYW1lIGhlaWdodCBhcyB0aGUgbGVmdC4tLT5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCIhaXNDb2xsYXBzaWJsZSAmJiAhY29udGV4dE1lbnVcIlxuICAgICAgICBjbGFzcz1cInNreS1yZXBlYXRlci1pdGVtLWNoZXZyb24tcGxhY2Vob2xkZXJcIlxuICAgICAgPjwvZGl2PlxuICAgICAgPCEtLSBVc2VkIHRvIGVuc3VyZSB0aGF0IHRoZSByaWdodCBzaWRlIGlzIHRoZSBzYW1lIGhlaWdodCBhcyB0aGUgbGVmdC4tLT5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJjb250ZXh0TWVudVwiXG4gICAgICAgIGNsYXNzPVwic2t5LXJlcGVhdGVyLWl0ZW0tY2hldnJvbi1wbGFjZWhvbGRlci13aXRoLWNvbnRleHRcIlxuICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LXJlcGVhdGVyLWl0ZW0tY29udGVudFwiXG4gICAgICBbaWRdPVwiY29udGVudElkXCJcbiAgICAgIFtAc2t5QW5pbWF0aW9uU2xpZGVdPVwic2xpZGVEaXJlY3Rpb25cIlxuICAgICAgI2l0ZW1Db250ZW50UmVmXG4gICAgICBbYXR0ci5yb2xlXT1cIihpdGVtUm9sZSQgfCBhc3luYyk/LmNvbnRlbnRcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1yZXBlYXRlci1pdGVtLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
490
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdHMvc3JjL2xpYi9tb2R1bGVzL3JlcGVhdGVyL3JlcGVhdGVyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3NyYy9saWIvbW9kdWxlcy9yZXBlYXRlci9yZXBlYXRlci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUdOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFRdEQsT0FBTyxFQUFjLE9BQU8sRUFBRSxRQUFRLElBQUksa0JBQWtCLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7QUFJN0YsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO0FBRXRCOztHQUVHO0FBUUgsTUFBTSxPQUFPLHdCQUF3QjtJQStObkMsWUFDRSxlQUFtQyxFQUNuQyxjQUFpQyxFQUNqQyxjQUF5QyxFQUN6QyxVQUFzQixFQUN0QixlQUF1Qzs7UUFySXpDOzs7V0FHRztRQUVJLGdCQUFXLEdBQXdCLEtBQUssQ0FBQztRQUVoRDs7V0FFRztRQUVJLGVBQVUsR0FBd0IsS0FB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YztzQkFEcEIsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSTFDLGFBQWE7c0JBRG5CLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJekMsT0FBTztzQkFEYixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSW5DLDZCQUE2QjtzQkFEbkMsZUFBZTt1QkFBQywrQkFBK0I7Z0JBcUd6QyxTQUFTO3NCQURmLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2t5QW5pbWF0aW9uU2xpZGUgfSBmcm9tICdAc2t5dXgvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTa3lDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuaW1wb3J0IHtcbiAgU2t5SW5saW5lRm9ybUNsb3NlQXJncyxcbiAgU2t5SW5saW5lRm9ybUNvbmZpZyxcbn0gZnJvbSAnQHNreXV4L2lubGluZS1mb3JtJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZm9ya0pvaW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVJlcGVhdGVyQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3JlcGVhdGVyLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1Db250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9yZXBlYXRlci1pdGVtLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVJlcGVhdGVySXRlbUNvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9yZXBlYXRlci1pdGVtLWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJJdGVtUm9sZXNUeXBlIH0gZnJvbSAnLi9yZXBlYXRlci1pdGVtLXJvbGVzLnR5cGUnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXBlYXRlci5zZXJ2aWNlJztcblxubGV0IG5leHRDb250ZW50SWQgPSAwO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gaW5kaXZpZHVhbCByZXBlYXRlciBpdGVtLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktcmVwZWF0ZXItaXRlbScsXG4gIHN0eWxlVXJsczogWycuL3JlcGVhdGVyLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGVhdGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBhbmltYXRpb25zOiBbc2t5QW5pbWF0aW9uU2xpZGVdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdFxue1xuICAvKipcbiAgICogTWFrZSB0aGUgZmlyc3QsIG5vbi1kaXNhYmxlZCBpdGVtIHRhYi1mb2N1c2FibGUuXG4gICAqIC0gRGlzYWJsZWQgaXRlbXMgc2hvdWxkIG5vdCBiZSBmb2N1c2FibGUgcGVyIFtXM0NdKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMtMS4xLyNrYmRfZGlzYWJsZWRfY29udHJvbHMpLlxuICAgKiAtIE9uZSBpdGVtIHBlciBsaXN0L2dyaWQvbGlzdGJveCBzaG91bGQgYmUgdGFiIGZvY3VzYWJsZSBwZXIgW1czQ10oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy0xLjEvI2dyaWQpLlxuICAgKi9cbiAgcHVibGljIGdldCB0YWJpbmRleCgpOiAwIHwgLTEge1xuICAgIHJldHVybiB0aGlzLiNyZXBlYXRlclNlcnZpY2UuaXRlbXMuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5kaXNhYmxlZClbMF0gPT09XG4gICAgICB0aGlzXG4gICAgICA/IDBcbiAgICAgIDogLTE7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBleGNsdWRlIGFuIGl0ZW0gd2hlbiBjeWNsaW5nIHRocm91Z2guXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMuI19pc0Rpc2FibGVkICE9PSB2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLiNfaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNfaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNBY3RpdmUpIHtcbiAgICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmFjdGl2YXRlSXRlbUJ5SW5kZXgodW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubWF0Y2hlcygnOmZvY3VzLXdpdGhpbicpKSB7XG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgfVxuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19pc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcmVwZWF0ZXIgaXRlbSB0aGF0IGlzIGF2YWlsYWJsZSBmb3IgbXVsdGlwbGUgcHVycG9zZXMsXG4gICAqIHN1Y2ggYXMgYWNjZXNzaWJpbGl0eSBhbmQgaW5zdHJ1bWVudGF0aW9uLiBGb3IgZXhhbXBsZSwgdGhlIGNvbXBvbmVudCB1c2VzIHRoZSBuYW1lIHRvXG4gICAqIGNvbnN0cnVjdCBBUklBIGxhYmVscyBmb3IgdGhlIHJlcGVhdGVyIGl0ZW0gY29udHJvbHNcbiAgICogdG8gW3N1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbCkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaXRlbU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgYnV0dG9ucyB0byBkaXNwbGF5IG9uIGFuIGlubGluZSBmb3JtXG4gICAqIHdpdGhpbiB0aGUgcmVwZWF0ZXIuIFRoaXMgcHJvcGVydHkgYWNjZXB0c1xuICAgKiBbYSBgU2t5SW5saW5lRm9ybUNvbmZpZ2Agb2JqZWN0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaW5saW5lLWZvcm0jc2t5aW5saW5lZm9ybWNvbmZpZy1wcm9wZXJ0aWVzKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmxpbmVGb3JtQ29uZmlnOiBTa3lJbmxpbmVGb3JtQ29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgW2FuIEFuZ3VsYXIgYFRlbXBsYXRlUmVmYF0oaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb3JlL1RlbXBsYXRlUmVmKSB0byB1c2VcbiAgICogYXMgYSB0ZW1wbGF0ZSB0byBpbnN0YW50aWF0ZSBhbiBpbmxpbmUgZm9ybSB3aXRoaW4gdGhlIHJlcGVhdGVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGlubGluZUZvcm1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJlcGVhdGVyIGl0ZW0gaXMgZXhwYW5kZWQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaXNFeHBhbmRlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMudXBkYXRlRm9yRXhwYW5kZWQodmFsdWUgIT09IGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNFeHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jaXNFeHBhbmRlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSByZXBlYXRlciBpdGVtJ3MgY2hlY2tib3ggaXMgc2VsZWN0ZWQuXG4gICAqIFdoZW4gdXNlcnMgc2VsZWN0IHRoZSByZXBlYXRlciBpdGVtLCB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9uIHlvdXIgbW9kZWwgaXMgdXBkYXRlZCBhY2NvcmRpbmdseS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaXNTZWxlY3RlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiB2YWx1ZSAhPT0gdGhpcy4jX2lzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuI19pc1NlbGVjdGVkID0gdmFsdWU7XG4gICAgICB0aGlzLmlzU2VsZWN0ZWRDaGFuZ2UuZW1pdCh0aGlzLiNfaXNTZWxlY3RlZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpc1NlbGVjdGVkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfaXNTZWxlY3RlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHVzZXJzIGNhbiBjaGFuZ2UgdGhlIG9yZGVyIG9mIHRoZSByZXBlYXRlciBpdGVtLlxuICAgKiBUaGUgcmVwZWF0ZXIgY29tcG9uZW50J3MgYHJlb3JkZXJhYmxlYCBwcm9wZXJ0eSBtdXN0IGFsc28gYmUgc2V0IHRvIGB0cnVlYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZW9yZGVyYWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBjaGVja2JveCBpbiB0aGUgbGVmdCBvZiB0aGUgcmVwZWF0ZXIgaXRlbS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RhYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzcGxheSBhbiBpbmxpbmUgZm9ybSB3aXRoaW4gdGhlIHJlcGVhdGVyLlxuICAgKiBVc2VycyBjYW4gdG9nZ2xlIGJldHdlZW4gZGlzcGxheWluZyBhbmQgaGlkaW5nIHRoZSBpbmxpbmUgZm9ybS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93SW5saW5lRm9ybTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgb2JqZWN0IHRoYXQgdGhlIHJlcGVhdGVyIGNvbXBvbmVudCByZXR1cm5zIGZvciB0aGlzIHJlcGVhdGVyIGl0ZW1cbiAgICogd2hlbiB0aGUgYG9yZGVyQ2hhbmdlYCBldmVudCBmaXJlcy4gVGhpcyBpcyByZXF1aXJlZFxuICAgKiBpZiB5b3Ugc2V0IHRoZSBgcmVvcmRlcmFibGVgIHByb3BlcnR5IHRvIGB0cnVlYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWc6IGFueTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBjb2xsYXBzZSB0aGUgcmVwZWF0ZXIgaXRlbS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY29sbGFwc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgZXhwYW5kIHRoZSByZXBlYXRlciBpdGVtLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBleHBhbmQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHJlcGVhdGVyIGluY2x1ZGVzIGFuIGlubGluZSBmb3JtIGFuZCB1c2VycyBjbG9zZSBpdC4gVGhpcyBldmVudCBlbWl0c1xuICAgKiBbYSBgU2t5SW5saW5lRm9ybUNsb3NlQXJnc2AgdHlwZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2lubGluZS1mb3JtI3NreWlubGluZWZvcm1jbG9zZWFyZ3MtcHJvcGVydGllcykuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGlubGluZUZvcm1DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5SW5saW5lRm9ybUNsb3NlQXJncz4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3Qgb3IgY2xlYXIgdGhlIGNoZWNrYm94IGZvciB0aGUgcmVwZWF0ZXIgaXRlbS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaXNTZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAQ29udGVudENoaWxkKFNreVJlcGVhdGVySXRlbUNvbnRleHRNZW51Q29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGNvbnRleHRNZW51OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBjb250ZW50SWQ6IHN0cmluZztcblxuICBwdWJsaWMgaGFzSXRlbUNvbnRlbnQgPSBmYWxzZTtcblxuICBwdWJsaWMgaXNBY3RpdmUgPSBmYWxzZTtcblxuICBwdWJsaWMgc2V0IGlzQ29sbGFwc2libGUodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodGhpcy5pc0NvbGxhcHNpYmxlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy4jX2lzQ29sbGFwc2libGUgPSB2YWx1ZSAhPT0gZmFsc2U7XG5cbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmICghdGhpcy4jX2lzQ29sbGFwc2libGUpIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JFeHBhbmRlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNDb2xsYXBzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2lzQ29sbGFwc2libGU7XG4gIH1cblxuICBwdWJsaWMgaXRlbVJvbGUkOiBPYnNlcnZhYmxlPFNreVJlcGVhdGVySXRlbVJvbGVzVHlwZT47XG5cbiAgcHVibGljIHJlb3JkZXJCdXR0b25MYWJlbCA9ICcnO1xuXG4gIHB1YmxpYyByZW9yZGVyU3RhdGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2xpZGVEaXJlY3Rpb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IHJlcGVhdGVyR3JvdXBDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiAnc2t5LXJlcGVhdGVyLWl0ZW0tZ3JvdXAtJyArIHRoaXMuI3JlcGVhdGVyU2VydmljZS5yZXBlYXRlckdyb3VwSWQ7XG4gIH1cblxuICBAVmlld0NoaWxkKCdncmFiSGFuZGxlJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBncmFiSGFuZGxlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ2l0ZW1Db250ZW50UmVmJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBpdGVtQ29udGVudFJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdpdGVtSGVhZGVyUmVmJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBpdGVtSGVhZGVyUmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ2l0ZW1SZWYnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGl0ZW1SZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTa3lSZXBlYXRlckl0ZW1Db250ZW50Q29tcG9uZW50KVxuICBwdWJsaWMgcmVwZWF0ZXJJdGVtQ29udGVudENvbXBvbmVudHM6XG4gICAgfCBRdWVyeUxpc3Q8U2t5UmVwZWF0ZXJJdGVtQ29udGVudENvbXBvbmVudD5cbiAgICB8IHVuZGVmaW5lZDtcblxuICAjYWRhcHRlclNlcnZpY2U6IFNreVJlcGVhdGVyQWRhcHRlclNlcnZpY2U7XG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuICAjaXNFeHBhbmRlZCA9IHRydWU7XG4gICNrZXlib2FyZFJlb3JkZXJpbmdFbmFibGVkID0gZmFsc2U7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI3Jlb3JkZXJDYW5jZWxUZXh0ID0gJyc7XG4gICNyZW9yZGVyQ3VycmVudEluZGV4ID0gLTE7XG4gICNyZW9yZGVyRmluaXNoVGV4dCA9ICcnO1xuICAjcmVvcmRlckluc3RydWN0aW9ucyA9ICcnO1xuICAjcmVvcmRlck1vdmVkVGV4dCA9ICcnO1xuICAjcmVvcmRlclN0YXRlRGVzY3JpcHRpb24gPSAnJztcbiAgI3Jlb3JkZXJTdGVwcyA9IDA7XG4gICNyZXBlYXRlclNlcnZpY2U6IFNreVJlcGVhdGVyU2VydmljZTtcbiAgI3Jlc291cmNlU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZTtcbiAgI19pc0NvbGxhcHNpYmxlID0gdHJ1ZTtcbiAgI19pc0Rpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG4gICNfaXNTZWxlY3RlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZXBlYXRlclNlcnZpY2U6IFNreVJlcGVhdGVyU2VydmljZSxcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreVJlcGVhdGVyQWRhcHRlclNlcnZpY2UsXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICByZXNvdXJjZVNlcnZpY2U6IFNreUxpYlJlc291cmNlc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlID0gcmVwZWF0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2UgPSBhZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNlbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgICB0aGlzLiNyZXNvdXJjZVNlcnZpY2UgPSByZXNvdXJjZVNlcnZpY2U7XG5cbiAgICB0aGlzLiNzbGlkZUZvckV4cGFuZGVkKCk7XG5cbiAgICBvYnNlcnZhYmxlRm9ya0pvaW4oW1xuICAgICAgdGhpcy4jcmVzb3VyY2VTZXJ2aWNlLmdldFN0cmluZygnc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX2NhbmNlbCcpLFxuICAgICAgdGhpcy4jcmVzb3VyY2VTZXJ2aWNlLmdldFN0cmluZygnc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX2ZpbmlzaCcpLFxuICAgICAgdGhpcy4jcmVzb3VyY2VTZXJ2aWNlLmdldFN0cmluZyhcbiAgICAgICAgJ3NreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl9pbnN0cnVjdGlvbnMnXG4gICAgICApLFxuICAgICAgdGhpcy4jcmVzb3VyY2VTZXJ2aWNlLmdldFN0cmluZygnc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX29wZXJhdGlvbicpLFxuICAgICAgdGhpcy4jcmVzb3VyY2VTZXJ2aWNlLmdldFN0cmluZygnc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX21vdmVkJyksXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChbXG4gICAgICAgICAgcmVvcmRlckNhbmNlbFRleHQsXG4gICAgICAgICAgcmVvcmRlckZpbmlzaFRleHQsXG4gICAgICAgICAgcmVvcmRlckluc3RydWN0aW9uc1RleHQsXG4gICAgICAgICAgcmVvcmRlck9wZXJhdGlvblRleHQsXG4gICAgICAgICAgcmVvcmRlck1vdmVkVGV4dCxcbiAgICAgICAgXSkgPT4ge1xuICAgICAgICAgIHRoaXMuI3Jlb3JkZXJDYW5jZWxUZXh0ID0gcmVvcmRlckNhbmNlbFRleHQ7XG4gICAgICAgICAgdGhpcy4jcmVvcmRlckZpbmlzaFRleHQgPSByZW9yZGVyRmluaXNoVGV4dDtcbiAgICAgICAgICB0aGlzLiNyZW9yZGVyU3RhdGVEZXNjcmlwdGlvbiA9IHJlb3JkZXJJbnN0cnVjdGlvbnNUZXh0O1xuICAgICAgICAgIHRoaXMuI3Jlb3JkZXJJbnN0cnVjdGlvbnMgPSByZW9yZGVyT3BlcmF0aW9uVGV4dDtcbiAgICAgICAgICB0aGlzLiNyZW9yZGVyTW92ZWRUZXh0ID0gcmVvcmRlck1vdmVkVGV4dDtcbiAgICAgICAgICB0aGlzLnJlb3JkZXJCdXR0b25MYWJlbCA9IHRoaXMuI3Jlb3JkZXJJbnN0cnVjdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICB0aGlzLmNvbnRlbnRJZCA9IGBza3ktcmVwZWF0ZXItaXRlbS1jb250ZW50LSR7KytuZXh0Q29udGVudElkfWA7XG4gICAgdGhpcy5pdGVtUm9sZSQgPSB0aGlzLiNyZXBlYXRlclNlcnZpY2UuaXRlbVJvbGUuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLnJlZ2lzdGVySXRlbSh0aGlzKTtcbiAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UuYWN0aXZlSXRlbUNoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdJc0FjdGl2ZVZhbHVlID0gdGhpcyA9PT0gaXRlbTtcbiAgICAgICAgaWYgKG5ld0lzQWN0aXZlVmFsdWUgIT09IHRoaXMuaXNBY3RpdmUpIHtcbiAgICAgICAgICB0aGlzLmlzQWN0aXZlID0gbmV3SXNBY3RpdmVWYWx1ZTtcbiAgICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGFzSXRlbUNvbnRlbnQgPSAhIXRoaXMucmVwZWF0ZXJJdGVtQ29udGVudENvbXBvbmVudHM/Lmxlbmd0aDtcbiAgICB0aGlzLiN1cGRhdGVFeHBhbmRPbkNvbnRlbnRDaGFuZ2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxhcHNlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5leHBhbmQuY29tcGxldGUoKTtcbiAgICB0aGlzLmlubGluZUZvcm1DbG9zZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuaXNTZWxlY3RlZENoYW5nZS5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLnVucmVnaXN0ZXJJdGVtKHRoaXMpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgWycgJywgJ0VudGVyJywgJ0hvbWUnLCAnRW5kJywgJ0Fycm93VXAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoJGV2ZW50LmtleSlcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgKCRldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLm1hdGNoZXMoXG4gICAgICAgICAgJ2lucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBvcHRpb24sIFtjb250ZW50ZWRpdGFibGVdLCBbY29udGVudGVkaXRhYmxlXSAqJ1xuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBsZXQgYWN0aXZhdGVJdGVtOiBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKFsnICcsICdFbnRlciddLmluY2x1ZGVzKCRldmVudC5rZXkpKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGFibGUpIHtcbiAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWQgPSAhdGhpcy5pc1NlbGVjdGVkO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgICAgICBhY3RpdmF0ZUl0ZW0gPSB0aGlzO1xuICAgICAgfVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChbJ0hvbWUnLCAnRW5kJ10uaW5jbHVkZXMoJGV2ZW50LmtleSkpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLiNyZXBlYXRlclNlcnZpY2UuaXRlbXMuZmlsdGVyKFxuICAgICAgICAgIChpdGVtKSA9PiAhaXRlbS5kaXNhYmxlZFxuICAgICAgICApO1xuICAgICAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ0hvbWUnKSB7XG4gICAgICAgICAgYWN0aXZhdGVJdGVtID0gaXRlbXMuc2hpZnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhY3RpdmF0ZUl0ZW0gPSBpdGVtcy5wb3AoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChbJ0Fycm93VXAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoJGV2ZW50LmtleSkpIHtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLml0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgICAoaXRlbSkgPT4gaXRlbSA9PT0gdGhpc1xuICAgICAgICApO1xuICAgICAgICBsZXQgc2xpY2VGcm9tOiBudW1iZXI7XG4gICAgICAgIGxldCBzbGljZVRvOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmICgkZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgICBzbGljZUZyb20gPSAwO1xuICAgICAgICAgIHNsaWNlVG8gPSBjdXJyZW50SW5kZXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2xpY2VGcm9tID0gY3VycmVudEluZGV4ICsgMTtcbiAgICAgICAgICBzbGljZVRvID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLml0ZW1zXG4gICAgICAgICAgLnNsaWNlKHNsaWNlRnJvbSwgc2xpY2VUbylcbiAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5kaXNhYmxlZCk7XG4gICAgICAgIGFjdGl2YXRlSXRlbSA9ICRldmVudC5rZXkgPT09ICdBcnJvd1VwJyA/IGl0ZW1zLnBvcCgpIDogaXRlbXMuc2hpZnQoKTtcbiAgICAgICAgaWYgKCFhY3RpdmF0ZUl0ZW0pIHtcbiAgICAgICAgICAvLyBXcmFwIGFyb3VuZC5cbiAgICAgICAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgIHNsaWNlRnJvbSA9IDA7XG4gICAgICAgICAgICBzbGljZVRvID0gY3VycmVudEluZGV4O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzbGljZUZyb20gPSBjdXJyZW50SW5kZXggKyAxO1xuICAgICAgICAgICAgc2xpY2VUbyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLiNyZXBlYXRlclNlcnZpY2UuaXRlbXNcbiAgICAgICAgICAgIC5zbGljZShzbGljZUZyb20sIHNsaWNlVG8pXG4gICAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5kaXNhYmxlZCk7XG4gICAgICAgICAgYWN0aXZhdGVJdGVtID0gJGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnID8gaXRlbXMucG9wKCkgOiBpdGVtcy5zaGlmdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGFjdGl2YXRlSXRlbSAmJiAhYWN0aXZhdGVJdGVtLmlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5hY3RpdmF0ZUl0ZW0oYWN0aXZhdGVJdGVtKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICEoYWN0aXZhdGVJdGVtLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgRWxlbWVudCkubWF0Y2hlcyhcbiAgICAgICAgICAgICc6Zm9jdXMtd2l0aGluJ1xuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgYWN0aXZhdGVJdGVtLml0ZW1SZWY/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoZWFkZXJDbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0NvbGxhcHNpYmxlKSB7XG4gICAgICB0aGlzLnVwZGF0ZUZvckV4cGFuZGVkKCF0aGlzLmlzRXhwYW5kZWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGV2cm9uRGlyZWN0aW9uQ2hhbmdlKGRpcmVjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVGb3JFeHBhbmRlZChkaXJlY3Rpb24gPT09ICd1cCcpO1xuICB9XG5cbiAgcHVibGljIG9uUmVwZWF0ZXJJdGVtQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBPbmx5IGFjdGl2YXRlIGl0ZW0gaWYgY2xpY2tpbmcgb24gdGhlIHRpdGxlLCBjb250ZW50LCBvciBwYXJlbnQgaXRlbSBkaXYuXG4gICAgLy8gVGhpcyB3aWxsIGF2b2lkIGFjY2lkZW50YWwgYWN0aXZhdGlvbnMgd2hlbiBjbGlja2luZyBpbnNpZGUgaW50ZXJhY3RpdmUgZWxlbWVudHMgbGlrZVxuICAgIC8vIHRoZSBleHBhbmQvY29sbGFwc2UgY2hldnJvbiwgZHJvcGRvd24sIGlubGluZS1kZWxldGUsIGV0Yy4uLlxuICAgIGlmIChcbiAgICAgIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5pdGVtUmVmPy5uYXRpdmVFbGVtZW50IHx8XG4gICAgICB0aGlzLml0ZW1Db250ZW50UmVmPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgfHxcbiAgICAgIHRoaXMuaXRlbUhlYWRlclJlZj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpXG4gICAgKSB7XG4gICAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UuYWN0aXZhdGVJdGVtKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGb3JFeHBhbmRlZCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQ29sbGFwc2libGUgPT09IGZhbHNlICYmIHZhbHVlID09PSBmYWxzZSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgU2V0dGluZyBpc0V4cGFuZGVkIHRvIGZhbHNlIHdoZW4gdGhlIHJlcGVhdGVyIGl0ZW0gaXMgbm90IGNvbGxhcHNpYmxlXG4gICAgICAgIHdpbGwgaGF2ZSBubyBlZmZlY3QuYFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuI2lzRXhwYW5kZWQgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLiNpc0V4cGFuZGVkID0gdmFsdWU7XG5cbiAgICAgIGlmICh0aGlzLiNpc0V4cGFuZGVkKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kLmVtaXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2UuZW1pdCgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2Uub25JdGVtQ29sbGFwc2VTdGF0ZUNoYW5nZSh0aGlzKTtcbiAgICAgIHRoaXMuI3NsaWRlRm9yRXhwYW5kZWQoKTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkNoZWNrYm94Q2hhbmdlKHZhbHVlOiBTa3lDaGVja2JveENoYW5nZSk6IHZvaWQge1xuICAgIHRoaXMuaXNTZWxlY3RlZCA9IHZhbHVlLmNoZWNrZWQ7XG4gIH1cblxuICBwdWJsaWMgb25JbmxpbmVGb3JtQ2xvc2UoaW5saW5lRm9ybUNsb3NlQXJnczogU2t5SW5saW5lRm9ybUNsb3NlQXJncyk6IHZvaWQge1xuICAgIHRoaXMuaW5saW5lRm9ybUNsb3NlLmVtaXQoaW5saW5lRm9ybUNsb3NlQXJncyk7XG4gIH1cblxuICBwdWJsaWMgbW92ZVRvVG9wKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLm1vdmVJdGVtVXAodGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKTtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5mb2N1c0VsZW1lbnQoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UucmVnaXN0ZXJPcmRlckNoYW5nZSgpO1xuICB9XG5cbiAgcHVibGljIG9uUmVvcmRlckhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGV2ZW50LmtleSkge1xuICAgICAgc3dpdGNoIChldmVudC5rZXkudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBjYXNlICcgJzpcbiAgICAgICAgY2FzZSAnZW50ZXInOlxuICAgICAgICAgIHRoaXMuI2tleWJvYXJkVG9nZ2xlUmVvcmRlcigpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZXNjYXBlJzpcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICh0aGlzLiNrZXlib2FyZFJlb3JkZXJpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLiNrZXlib2FyZFJlb3JkZXJpbmdFbmFibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLiNyZXZlcnRSZW9yZGVyU3RlcHMoKTtcbiAgICAgICAgICAgIHRoaXMucmVvcmRlckJ1dHRvbkxhYmVsID1cbiAgICAgICAgICAgICAgdGhpcy4jcmVvcmRlckNhbmNlbFRleHQgKyAnICcgKyB0aGlzLiNyZW9yZGVySW5zdHJ1Y3Rpb25zO1xuICAgICAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2UuZm9jdXNFbGVtZW50KGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2Fycm93dXAnOlxuICAgICAgICAgIGlmICh0aGlzLiNrZXlib2FyZFJlb3JkZXJpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLiNrZXlib2FyZFJlb3JkZXJVcCgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLnJlZ2lzdGVyT3JkZXJDaGFuZ2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnYXJyb3dkb3duJzpcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICh0aGlzLiNrZXlib2FyZFJlb3JkZXJpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLiNrZXlib2FyZFJlb3JkZXJEb3duKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UucmVnaXN0ZXJPcmRlckNoYW5nZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdhcnJvd2xlZnQnOlxuICAgICAgICBjYXNlICdhcnJvd3JpZ2h0JzpcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICh0aGlzLiNrZXlib2FyZFJlb3JkZXJpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uUmVvcmRlckhhbmRsZUJsdXIoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI2tleWJvYXJkUmVvcmRlcmluZ0VuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLiNyZXZlcnRSZW9yZGVyU3RlcHMoKTtcbiAgICB0aGlzLnJlb3JkZXJCdXR0b25MYWJlbCA9IHRoaXMuI3Jlb3JkZXJJbnN0cnVjdGlvbnM7XG4gICAgdGhpcy5yZW9yZGVyU3RhdGUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAjc2xpZGVGb3JFeHBhbmRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNsaWRlRGlyZWN0aW9uID0gdGhpcy5pc0V4cGFuZGVkID8gJ2Rvd24nIDogJ3VwJztcbiAgfVxuXG4gICNrZXlib2FyZFJlb3JkZXJVcCgpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdJbmRleCA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLm1vdmVJdGVtVXAoXG4gICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICApO1xuICAgIGlmIChuZXdJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLiNyZW9yZGVyQ3VycmVudEluZGV4ID0gbmV3SW5kZXg7XG4gICAgICB0aGlzLiNyZW9yZGVyU3RlcHMtLTtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmZvY3VzRWxlbWVudCh0aGlzLmdyYWJIYW5kbGUpO1xuICAgICAgdGhpcy4ja2V5Ym9hcmRSZW9yZGVyaW5nRW5hYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLnJlb3JkZXJCdXR0b25MYWJlbCA9IGAke3RoaXMuI3Jlb3JkZXJNb3ZlZFRleHR9ICR7XG4gICAgICAgIHRoaXMuI3Jlb3JkZXJDdXJyZW50SW5kZXggKyAxXG4gICAgICB9YDtcbiAgICB9XG4gIH1cblxuICAja2V5Ym9hcmRSZW9yZGVyRG93bigpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdJbmRleCA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLm1vdmVJdGVtRG93bihcbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICk7XG4gICAgaWYgKG5ld0luZGV4KSB7XG4gICAgICB0aGlzLiNyZW9yZGVyQ3VycmVudEluZGV4ID0gbmV3SW5kZXg7XG4gICAgICB0aGlzLiNyZW9yZGVyU3RlcHMrKztcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmZvY3VzRWxlbWVudCh0aGlzLmdyYWJIYW5kbGUpO1xuICAgICAgdGhpcy4ja2V5Ym9hcmRSZW9yZGVyaW5nRW5hYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLnJlb3JkZXJCdXR0b25MYWJlbCA9IGAke3RoaXMuI3Jlb3JkZXJNb3ZlZFRleHR9ICR7XG4gICAgICAgIHRoaXMuI3Jlb3JkZXJDdXJyZW50SW5kZXggKyAxXG4gICAgICB9YDtcbiAgICB9XG4gIH1cblxuICAja2V5Ym9hcmRUb2dnbGVSZW9yZGVyKCk6IHZvaWQge1xuICAgIHRoaXMuI2tleWJvYXJkUmVvcmRlcmluZ0VuYWJsZWQgPSAhdGhpcy4ja2V5Ym9hcmRSZW9yZGVyaW5nRW5hYmxlZDtcbiAgICB0aGlzLiNyZW9yZGVyU3RlcHMgPSAwO1xuXG4gICAgaWYgKHRoaXMuI2tleWJvYXJkUmVvcmRlcmluZ0VuYWJsZWQpIHtcbiAgICAgIHRoaXMucmVvcmRlclN0YXRlID0gdGhpcy4jcmVvcmRlclN0YXRlRGVzY3JpcHRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRPRE86IE5lZWRzIGltcHJvdmVtZW50IHRvIGJlIGxvY2FsaXplZFxuICAgICAgdGhpcy5yZW9yZGVyU3RhdGUgPSBgJHt0aGlzLiNyZW9yZGVyRmluaXNoVGV4dH0gJHtcbiAgICAgICAgdGhpcy4jcmVvcmRlckN1cnJlbnRJbmRleCArIDFcbiAgICAgIH0gJHt0aGlzLiNyZW9yZGVySW5zdHJ1Y3Rpb25zfWA7XG4gICAgICB0aGlzLiNyZW9yZGVyQ3VycmVudEluZGV4ID0gLTE7XG4gICAgfVxuICB9XG5cbiAgI3JldmVydFJlb3JkZXJTdGVwcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jcmVvcmRlclN0ZXBzIDwgMCkge1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2UubW92ZUl0ZW1Eb3duKFxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIE1hdGguYWJzKHRoaXMuI3Jlb3JkZXJTdGVwcylcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLiNyZW9yZGVyU3RlcHMgPiAwKSB7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5tb3ZlSXRlbVVwKFxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICB0aGlzLiNyZW9yZGVyU3RlcHNcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5yZWdpc3Rlck9yZGVyQ2hhbmdlKCk7XG4gIH1cblxuICAjdXBkYXRlRXhwYW5kT25Db250ZW50Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMucmVwZWF0ZXJJdGVtQ29udGVudENvbXBvbmVudHM/LmNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmhhc0l0ZW1Db250ZW50ID0gISF0aGlzLnJlcGVhdGVySXRlbUNvbnRlbnRDb21wb25lbnRzPy5sZW5ndGg7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIHRoaXMuaXNDb2xsYXBzaWJsZSA9XG4gICAgICAgICAgdGhpcy5oYXNJdGVtQ29udGVudCAmJiB0aGlzLiNyZXBlYXRlclNlcnZpY2UuZXhwYW5kTW9kZSAhPT0gJ25vbmUnO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAodGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmV4cGFuZE1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLm9uSXRlbUNvbGxhcHNlU3RhdGVDaGFuZ2UodGhpcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LXJlcGVhdGVyLWl0ZW0gc2t5LXBhZGRpbmctZXZlbi1kZWZhdWx0XCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtTmFtZVwiXG4gIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwic2VsZWN0YWJsZSA/ICEhaXNTZWxlY3RlZCA6IHVuZGVmaW5lZFwiXG4gIFthdHRyLnJvbGVdPVwiKGl0ZW1Sb2xlJCB8IGFzeW5jKT8uaXRlbVwiXG4gIFthdHRyLnRhYkluZGV4XT1cInRhYmluZGV4XCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdza3ktcmVwZWF0ZXItaXRlbS1hY3RpdmUnOiBpc0FjdGl2ZSxcbiAgICAnc2t5LXJlcGVhdGVyLWl0ZW0tY29sbGFwc2libGUnOiBpc0NvbGxhcHNpYmxlLFxuICAgICdza3ktcmVwZWF0ZXItaXRlbS1zZWxlY3RlZCc6IGlzU2VsZWN0ZWRcbiAgfVwiXG4gIChjbGljayk9XCJvblJlcGVhdGVySXRlbUNsaWNrKCRldmVudClcIlxuICAjaXRlbVJlZlxuPlxuICA8ZGl2ICNpbmxpbmVEZWxldGU+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWlubGluZS1kZWxldGVcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbmxpbmVGb3JtVGVtcGxhdGVcIj5cbiAgICA8c2t5LWlubGluZS1mb3JtXG4gICAgICBbY29uZmlnXT1cImlubGluZUZvcm1Db25maWdcIlxuICAgICAgW3Nob3dGb3JtXT1cInNob3dJbmxpbmVGb3JtXCJcbiAgICAgIFt0ZW1wbGF0ZV09XCJpbmxpbmVGb3JtVGVtcGxhdGVcIlxuICAgICAgKGNsb3NlKT1cIm9uSW5saW5lRm9ybUNsb3NlKCRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJza3lSZXBlYXRlckl0ZW1MZWZ0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2t5UmVwZWF0ZXJJdGVtUmlnaHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3NreS1pbmxpbmUtZm9ybT5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbmxpbmVGb3JtVGVtcGxhdGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2t5UmVwZWF0ZXJJdGVtTGVmdFwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJza3lSZXBlYXRlckl0ZW1SaWdodFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3NreVJlcGVhdGVySXRlbUxlZnQ+XG4gIDxkaXZcbiAgICBbYXR0ci5yb2xlXT1cIiFzaG93SW5saW5lRm9ybSA/IChpdGVtUm9sZSQgfCBhc3luYyk/LmNvbnRlbnQgOiB1bmRlZmluZWRcIlxuICAgIGNsYXNzPVwic2t5LXJlcGVhdGVyLWl0ZW0tbGVmdFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVvcmRlcmFibGVcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiXG4gICAgICAgIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiXG4gICAgICAgIFtpZF09XCJjb250ZW50SWQgKyAnLXJlb3JkZXItc3RhdGUnXCJcbiAgICAgID5cbiAgICAgICAge3sgcmVvcmRlclN0YXRlIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInNreS1zY3JlZW4tcmVhZGVyLW9ubHlcIlxuICAgICAgICBbaWRdPVwiY29udGVudElkICsgJy1yZW9yZGVyLWluc3RydWN0aW9ucydcIlxuICAgICAgICA+e3sgcmVvcmRlckJ1dHRvbkxhYmVsIH19PC9zcGFuXG4gICAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktdGlsZS10b29scy1jb250cm9sIHNreS1yZXBlYXRlci1pdGVtLWdyYWItaGFuZGxlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiY29udGVudElkICsgJy1yZW9yZGVyLWluc3RydWN0aW9ucydcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgIGl0ZW1OYW1lXG4gICAgICAgICAgICA/ICgnc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX2xhYmVsJyB8IHNreUxpYlJlc291cmNlczogaXRlbU5hbWUpXG4gICAgICAgICAgICA6ICgnc2t5dXhfcmVwZWF0ZXJfaXRlbV9yZW9yZGVyX2xhYmVsX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICBcIlxuICAgICAgICAoYmx1cik9XCJvblJlb3JkZXJIYW5kbGVCbHVyKCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bik9XCJvblJlb3JkZXJIYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAgICAgICAjZ3JhYkhhbmRsZVxuICAgICAgPlxuICAgICAgICA8c2t5LWljb24gaWNvbj1cImFycm93cy12XCI+PC9za3ktaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxza3ktY2hlY2tib3hcbiAgICAgICpuZ0lmPVwic2VsZWN0YWJsZVwiXG4gICAgICBjbGFzcz1cInNreS1yZXBlYXRlci1pdGVtLWNoZWNrYm94XCJcbiAgICAgIFtjaGVja2VkXT1cImlzU2VsZWN0ZWRcIlxuICAgICAgW2xhYmVsXT1cIlxuICAgICAgICBpdGVtTmFtZVxuICAgICAgICAgID8gKCdza3l1eF9yZXBlYXRlcl9pdGVtX2NoZWNrYm94X2xhYmVsJyB8IHNreUxpYlJlc291cmNlczogaXRlbU5hbWUpXG4gICAgICAgICAgOiAoJ3NreXV4X3JlcGVhdGVyX2l0ZW1fY2hlY2tib3hfbGFiZWxfZGVmYXVsdCcgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICBcIlxuICAgICAgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICA8L3NreS1jaGVja2JveD5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1yZXBlYXRlci1pdGVtLWNvbnRleHQtbWVudVwiXG4gICAgICBbaGlkZGVuXT1cImNvbnRleHRNZW51RWwuY2hpbGRyZW4ubGVuZ3RoID09PSAwXCJcbiAgICAgICNjb250ZXh0TWVudUVsXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LXJlcGVhdGVyLWl0ZW0tY29udGV4dC1tZW51XCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2t5UmVwZWF0ZXJJdGVtUmlnaHQ+XG4gIDxkaXYgY2xhc3M9XCJza3ktcmVwZWF0ZXItaXRlbS1yaWdodFwiICNpdGVtSGVhZGVyUmVmPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LXJlcGVhdGVyLWl0ZW0taGVhZGVyXCJcbiAgICAgIFthdHRyLnJvbGVdPVwiKGl0ZW1Sb2xlJCB8IGFzeW5jKT8udGl0bGVcIlxuICAgICAgW2hpZGRlbl09XCJ0aXRsZVJlZi5jaGlsZHJlbi5sZW5ndGggPT09IDBcIlxuICAgICAgKGNsaWNrKT1cImhlYWRlckNsaWNrKClcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktcmVwZWF0ZXItaXRlbS10aXRsZSBza3ktZW1waGFzaXplZFwiICN0aXRsZVJlZj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LXJlcGVhdGVyLWl0ZW0tdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJyZW9yZGVyYWJsZVwiXG4gICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LXJlcGVhdGVyLWl0ZW0tcmVvcmRlci10b3BcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICBpdGVtTmFtZVxuICAgICAgICAgICAgPyAoJ3NreXV4X3JlcGVhdGVyX2l0ZW1fcmVvcmRlcl90b3BfbGFiZWwnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBpdGVtTmFtZSlcbiAgICAgICAgICAgIDogKCdza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfdG9wX2xhYmVsX2RlZmF1bHQnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICBcIlxuICAgICAgICAoY2xpY2spPVwibW92ZVRvVG9wKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8c2t5LWljb24gaWNvbj1cImFycm93LWNpcmNsZS11cFwiPjwvc2t5LWljb24+XG4gICAgICAgIHt7ICdza3l1eF9yZXBlYXRlcl9pdGVtX3Jlb3JkZXJfdG9wJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaXNDb2xsYXBzaWJsZVwiIGNsYXNzPVwic2t5LXJlcGVhdGVyLWl0ZW0tY2hldnJvblwiPlxuICAgICAgICA8c2t5LWNoZXZyb25cbiAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cImNvbnRlbnRJZFwiXG4gICAgICAgICAgW2FyaWFMYWJlbF09XCJcbiAgICAgICAgICAgIGl0ZW1OYW1lXG4gICAgICAgICAgICAgID8gKCdza3l1eF9yZXBlYXRlcl9pdGVtX2V4cGFuZCcgfCBza3lMaWJSZXNvdXJjZXM6IGl0ZW1OYW1lKVxuICAgICAgICAgICAgICA6ICgnc2t5dXhfcmVwZWF0ZXJfaXRlbV9leHBhbmRfZGVmYXVsdCcgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbZGlyZWN0aW9uXT1cImlzRXhwYW5kZWQgPyAndXAnIDogJ2Rvd24nXCJcbiAgICAgICAgICAoZGlyZWN0aW9uQ2hhbmdlKT1cImNoZXZyb25EaXJlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9za3ktY2hldnJvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBVc2VkIGZvciB3aGVuIHRoZSBjaGV2cm9uIGlzIGhpZGRlbiB0byBlbnN1cmUgdGhhdCB0aGUgcmlnaHQgc2lkZSBpcyB0aGUgc2FtZSBoZWlnaHQgYXMgdGhlIGxlZnQuLS0+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiIWlzQ29sbGFwc2libGUgJiYgIWNvbnRleHRNZW51XCJcbiAgICAgICAgY2xhc3M9XCJza3ktcmVwZWF0ZXItaXRlbS1jaGV2cm9uLXBsYWNlaG9sZGVyXCJcbiAgICAgID48L2Rpdj5cbiAgICAgIDwhLS0gVXNlZCB0byBlbnN1cmUgdGhhdCB0aGUgcmlnaHQgc2lkZSBpcyB0aGUgc2FtZSBoZWlnaHQgYXMgdGhlIGxlZnQuLS0+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiY29udGV4dE1lbnVcIlxuICAgICAgICBjbGFzcz1cInNreS1yZXBlYXRlci1pdGVtLWNoZXZyb24tcGxhY2Vob2xkZXItd2l0aC1jb250ZXh0XCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1yZXBlYXRlci1pdGVtLWNvbnRlbnRcIlxuICAgICAgW2lkXT1cImNvbnRlbnRJZFwiXG4gICAgICBbQHNreUFuaW1hdGlvblNsaWRlXT1cInNsaWRlRGlyZWN0aW9uXCJcbiAgICAgICNpdGVtQ29udGVudFJlZlxuICAgICAgW2F0dHIucm9sZV09XCIoaXRlbVJvbGUkIHwgYXN5bmMpPy5jb250ZW50XCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktcmVwZWF0ZXItaXRlbS1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -310,4 +310,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
|
|
|
310
310
|
type: ContentChildren,
|
|
311
311
|
args: [SkyRepeaterItemComponent]
|
|
312
312
|
}] } });
|
|
313
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3NyYy9saWIvbW9kdWxlcy9yZXBlYXRlci9yZXBlYXRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdHMvc3JjL2xpYi9tb2R1bGVzL3JlcGVhdGVyL3JlcGVhdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxHQUlQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0FBRXhEOztHQUVHO0FBUUgsTUFBTSxPQUFPLG9CQUFvQjtJQXVGL0IsWUFDRSxjQUFpQyxFQUNqQyxlQUFtQyxFQUNuQyxjQUF5QyxFQUN6QyxjQUE4QixFQUM5QixVQUFzQixFQUN0QixRQUFtQjs7UUF4RXJCOzs7O1dBSUc7UUFFSSxnQkFBVyxHQUF3QixLQUFLLENBQUM7UUFnQ2hEOztXQUVHO1FBRUksc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0RDs7O1dBR0c7UUFFSSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFTL0MsdURBQTJDO1FBQzNDLHVEQUFtQztRQUNuQyx1REFBZ0M7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ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERyYWd1bGFTZXJ2aWNlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lSZXBlYXRlckFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXBlYXRlci1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJFeHBhbmRNb2RlVHlwZSB9IGZyb20gJy4vcmVwZWF0ZXItZXhwYW5kLW1vZGUtdHlwZSc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1Sb2xlc1R5cGUgfSBmcm9tICcuL3JlcGVhdGVyLWl0ZW0tcm9sZXMudHlwZSc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3JlcGVhdGVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFNreVJlcGVhdGVyUm9sZVR5cGUgfSBmcm9tICcuL3JlcGVhdGVyLXJvbGUudHlwZSc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlclNlcnZpY2UgfSBmcm9tICcuL3JlcGVhdGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjb250YWluZXIgdG8gZGlzcGxheSByZXBlYXRlciBpdGVtcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXJlcGVhdGVyJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVwZWF0ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGVhdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5UmVwZWF0ZXJTZXJ2aWNlLCBTa3lSZXBlYXRlckFkYXB0ZXJTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreVJlcGVhdGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdFxue1xuICAvKipcbiAgICogVGhlIGluZGV4IG9mIHRoZSByZXBlYXRlciBpdGVtIHRvIHZpc3VhbGx5IGhpZ2hsaWdodCBhcyBhY3RpdmUuXG4gICAqIEZvciBleGFtcGxlLCB1c2UgdGhpcyBwcm9wZXJ0eSBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZVxuICAgKiBbc3BsaXQgdmlldyBjb21wb25lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9zcGxpdC12aWV3KVxuICAgKiB0byBoaWdobGlnaHQgYSByZXBlYXRlciBpdGVtIHdoaWxlIHVzZXJzIGVkaXQgaXQuIE9ubHkgb25lIGl0ZW0gY2FuIGJlIGFjdGl2ZSBhdCBhIHRpbWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWN0aXZlSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIEFSSUEgbGFiZWwgZm9yIHRoZSByZXBlYXRlciBsaXN0LlxuICAgKiBUaGlzIHNldHMgdGhlIHJlcGVhdGVyIGxpc3QncyBgYXJpYS1sYWJlbGAgYXR0cmlidXRlXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIEBkZWZhdWx0IFwiTGlzdCBvZiBpdGVtc1wiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXJpYUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdXNlcnMgY2FuIGNoYW5nZSB0aGUgb3JkZXIgb2YgaXRlbXMgaW4gdGhlIHJlcGVhdGVyIGxpc3QuXG4gICAqIEVhY2ggcmVwZWF0ZXIgaXRlbSBhbHNvIGhhcyBgcmVvcmRlcmFibGVgIHByb3BlcnR5IHRvIGluZGljYXRlIHdoZXRoZXJcbiAgICogdXNlcnMgY2FuIGNoYW5nZSBpdHMgb3JkZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVvcmRlcmFibGU6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGxheW91dCB0aGF0IGRldGVybWluZXMgd2hpY2ggcmVwZWF0ZXIgaXRlbXMgYXJlIGV4cGFuZGVkIGJ5IGRlZmF1bHQgYW5kIHdoZXRoZXJcbiAgICogcmVwZWF0ZXIgaXRlbXMgYXJlIGV4cGFuZGFibGUgYW5kIGNvbGxhcHNpYmxlLiBDb2xsYXBzZWQgaXRlbXMgZGlzcGxheSB0aXRsZXMgb25seS5cbiAgICogVGhlIHZhbGlkIG9wdGlvbnMgYXJlIGBtdWx0aXBsZWAsIGBub25lYCwgYW5kIGBzaW5nbGVgLlxuICAgKiAtIGBtdWx0aXBsZWAgbG9hZHMgcmVwZWF0ZXIgaXRlbXMgaW4gYW4gZXhwYW5kZWQgc3RhdGUgdW5sZXNzIGBpc0V4cGFuZGVkYCBpcyBzZXQgdG9cbiAgICogYGZhbHNlYCBmb3IgYSByZXBlYXRlciBpdGVtLiBUaGlzIGxheW91dCBhbGxvd3MgdXNlcnMgdG8gZXhwYW5kIGFuZCBjb2xsYXBzZVxuICAgKiBhcyBtYW55IHJlcGVhdGVyIGl0ZW1zIGFzIG5lY2Vzc2FyeS4gSXQgaXMgYmVzdC1zdWl0ZWQgdG8gcmVwZWF0ZXIgaXRlbXMgd2hlcmUgYm9keVxuICAgKiBjb250ZW50IGlzIGltcG9ydGFudCBidXQgdXNlcnMgZG9uJ3QgYWx3YXlzIG5lZWQgdG8gc2VlIGl0LlxuICAgKiAtIGBub25lYCBsb2FkcyBhbGwgcmVwZWF0ZXIgaXRlbXMgaW4gYW4gZXhwYW5kZWQgc3RhdGUgYW5kIGRvZXMgbm90IGFsbG93IHVzZXJzIHRvXG4gICAqIGNvbGxhcHNlIHRoZW0uIFRoaXMgZGVmYXVsdCBsYXlvdXQgcHJvdmlkZXMgdGhlIHF1aWNrZXN0IGFjY2VzcyB0byB0aGUgZGV0YWlscyBpbiB0aGVcbiAgICogcmVwZWF0ZXIgaXRlbXMuIEl0IGlzIGJlc3Qtc3VpdGVkIHRvIHJlcGVhdGVyIGl0ZW1zIHdpdGggY29uY2lzZSBjb250ZW50XG4gICAqIHRoYXQgdXNlcnMgbmVlZCB0byB2aWV3IGZyZXF1ZW50bHkuXG4gICAqIC0gYHNpbmdsZWAgbG9hZHMgb25lIHJlcGVhdGVyIGl0ZW0gaW4gYW4gZXhwYW5kZWQgc3RhdGUgYW5kIGNvbGxhcHNlcyBhbGwgb3RoZXJzLlxuICAgKiBUaGUgZXhwYW5kZWQgcmVwZWF0ZXIgaXRlbSBpcyB0aGUgZmlyc3Qgb25lIHdoZXJlIGBpc0V4cGFuZGVkYCBpcyBzZXQgdG8gYHRydWVgLiBUaGlzIGxheW91dFxuICAgKiBhbGxvd3MgdXNlcnMgdG8gZXhwYW5kIG9uZSBpdGVtIGF0IGEgdGltZS4gSXQgcHJvdmlkZXMgdGhlIG1vc3QgY29tcGFjdCB2aWV3IGFuZCBpc1xuICAgKiBiZXN0LXN1aXRlZCB0byByZXBlYXRlciBpdGVtcyB3aGVyZSB0aGUgbW9zdCBpbXBvcnRhbnQgaW5mb3JtYXRpb24gaXMgaW4gdGhlIHRpdGxlc1xuICAgKiBhbmQgdXNlcnMgb25seSBvY2Nhc2lvbmFsbHkgbmVlZCB0byB2aWV3IHRoZSBib2R5IGNvbnRlbnQuXG4gICAqIEBkZWZhdWx0IFwibm9uZVwiXG4gICAqL1xuICAvLyBUT0RPOiBSZW1vdmUgJ3N0cmluZycgYXMgYSB2YWxpZCB0eXBlIGluIGEgYnJlYWtpbmcgY2hhbmdlLlxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGV4cGFuZE1vZGUodmFsdWU6IFNreVJlcGVhdGVyRXhwYW5kTW9kZVR5cGUgfCBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UuZXhwYW5kTW9kZSA9IHZhbHVlO1xuICAgIHRoaXMuI3VwZGF0ZUZvckV4cGFuZE1vZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXhwYW5kTW9kZSgpOiBTa3lSZXBlYXRlckV4cGFuZE1vZGVUeXBlIHwgc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmV4cGFuZE1vZGU7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgYWN0aXZlIHJlcGVhdGVyIGl0ZW0gY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYWN0aXZlSW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBjaGFuZ2UgdGhlIG9yZGVyIG9mIHJlcGVhdGVyIGl0ZW1zLlxuICAgKiBUaGlzIGV2ZW50IGVtaXRzIGFuIG9yZGVyZWQgYXJyYXkgb2YgdGhlIGB0YWdgIHByb3BlcnRpZXMgdGhhdCB0aGUgY29uc3VtZXIgcHJvdmlkZXMgZm9yIGVhY2ggcmVwZWF0ZXIgaXRlbS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3JkZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50KVxuICBwdWJsaWMgaXRlbXM6IFF1ZXJ5TGlzdDxTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBkcmFndWxhR3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgcHVibGljIHJvbGU6IFNreVJlcGVhdGVyUm9sZVR5cGUgfCB1bmRlZmluZWQ7XG5cbiAgI2FkYXB0ZXJTZXJ2aWNlOiBTa3lSZXBlYXRlckFkYXB0ZXJTZXJ2aWNlO1xuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjZHJhZ3VsYVNlcnZpY2U6IERyYWd1bGFTZXJ2aWNlO1xuICAjZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG4gICNyZXBlYXRlclNlcnZpY2U6IFNreVJlcGVhdGVyU2VydmljZTtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICByZXBlYXRlclNlcnZpY2U6IFNreVJlcGVhdGVyU2VydmljZSxcbiAgICBhZGFwdGVyU2VydmljZTogU2t5UmVwZWF0ZXJBZGFwdGVyU2VydmljZSxcbiAgICBkcmFndWxhU2VydmljZTogRHJhZ3VsYVNlcnZpY2UsXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlID0gcmVwZWF0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlID0gYWRhcHRlclNlcnZpY2U7XG4gICAgdGhpcy4jZHJhZ3VsYVNlcnZpY2UgPSBkcmFndWxhU2VydmljZTtcbiAgICB0aGlzLiNlbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgICB0aGlzLiNyZW5kZXJlciA9IHJlbmRlcmVyO1xuXG4gICAgdGhpcy5kcmFndWxhR3JvdXBOYW1lID0gYHNreS1yZXBlYXRlci1kcmFndWxhLSR7XG4gICAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UucmVwZWF0ZXJHcm91cElkXG4gICAgfWA7XG5cbiAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UuaXRlbUNvbGxhcHNlU3RhdGVDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5leHBhbmRNb2RlID09PSAnc2luZ2xlJyAmJiBpdGVtLmlzRXhwYW5kZWQpIHtcbiAgICAgICAgICB0aGlzLml0ZW1zPy5mb3JFYWNoKChvdGhlckl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgb3RoZXJJdGVtICE9PSBpdGVtICYmXG4gICAgICAgICAgICAgIG90aGVySXRlbS5pc0V4cGFuZGVkICYmXG4gICAgICAgICAgICAgIG90aGVySXRlbS5pc0NvbGxhcHNpYmxlXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgb3RoZXJJdGVtLmlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UuYWN0aXZlSXRlbUluZGV4Q2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChpbmRleCkgPT4ge1xuICAgICAgICBpZiAoaW5kZXggIT09IHRoaXMuYWN0aXZlSW5kZXgpIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgdGhpcy5hY3RpdmVJbmRleENoYW5nZS5lbWl0KGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2Uub3JkZXJDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLiNlbWl0VGFncygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiN1cGRhdGVGb3JFeHBhbmRNb2RlKCk7XG5cbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRSZXBlYXRlckhvc3QodGhpcy4jZWxlbWVudFJlZik7XG5cbiAgICB0aGlzLiNpbml0aWFsaXplRHJhZ0FuZERyb3AoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLy8gSWYgYWN0aXZlSW5kZXggaGFzIGJlZW4gc2V0IG9uIGluaXQsIGNhbGwgc2VydmljZSB0byBhY3RpdmF0ZSB0aGUgYXBwcm9wcmlhdGUgaXRlbS5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZUluZGV4IHx8IHRoaXMuYWN0aXZlSW5kZXggPT09IDApIHtcbiAgICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmFjdGl2YXRlSXRlbUJ5SW5kZXgodGhpcy5hY3RpdmVJbmRleCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnJlb3JkZXJhYmxlICYmICF0aGlzLiNldmVyeUl0ZW1IYXNUYWcoKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1BsZWFzZSBzdXBwbHkgdGFnIHByb3BlcnRpZXMgZm9yIGVhY2ggcmVwZWF0ZXIgaXRlbSB3aGVuIHJlb3JkZXJpbmcgZnVuY3Rpb25hbGl0eSBpcyBlbmFibGVkLidcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIEhBQ0s6IE5vdCB1cGRhdGluZyBmb3IgZXhwYW5kIG1vZGUgaW4gYSB0aW1lb3V0IGNhdXNlcyBhbiBlcnJvci5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy82MDA1XG4gICAgdGhpcy5pdGVtcz8uY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pdGVtcz8ubGFzdCkge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZUZvckV4cGFuZE1vZGUodGhpcy5pdGVtcy5sYXN0KTtcbiAgICAgICAgICB0aGlzLml0ZW1zLmxhc3QucmVvcmRlcmFibGUgPSB0aGlzLnJlb3JkZXJhYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5hY3RpdmF0ZUl0ZW1CeUluZGV4KHRoaXMuYWN0aXZlSW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy4jdXBkYXRlUm9sZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuI3VwZGF0ZUZvckV4cGFuZE1vZGUoKTtcblxuICAgICAgdGhpcy5pdGVtcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpdGVtLnJlb3JkZXJhYmxlID0gdGhpcy5yZW9yZGVyYWJsZTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLiN1cGRhdGVSb2xlKCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydhY3RpdmVJbmRleCddKSB7XG4gICAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UuZW5hYmxlQWN0aXZlU3RhdGUgPSB0cnVlO1xuICAgICAgaWYgKFxuICAgICAgICBjaGFuZ2VzWydhY3RpdmVJbmRleCddLmN1cnJlbnRWYWx1ZSAhPT1cbiAgICAgICAgY2hhbmdlc1snYWN0aXZlSW5kZXgnXS5wcmV2aW91c1ZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmFjdGl2YXRlSXRlbUJ5SW5kZXgodGhpcy5hY3RpdmVJbmRleCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMucmVvcmRlcmFibGUpIHtcbiAgICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0ucmVvcmRlcmFibGUgPSB0aGlzLnJlb3JkZXJhYmxlKSk7XG4gICAgICB9XG4gICAgICB0aGlzLiN1cGRhdGVSb2xlKCk7XG5cbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jZGVzdHJveURyYWdBbmREcm9wKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jdXBkYXRlUm9sZSgpO1xuICB9XG5cbiAgcHVibGljIG9uQ2RrT2JzZXJ2ZUNvbnRlbnQoKTogdm9pZCB7XG4gICAgdGhpcy4jdXBkYXRlUm9sZSgpO1xuICB9XG5cbiAgI3VwZGF0ZUZvckV4cGFuZE1vZGUoaXRlbUFkZGVkPzogU2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXRlbXMpIHtcbiAgICAgIGxldCBmb3VuZEV4cGFuZGVkID0gZmFsc2U7XG4gICAgICBjb25zdCBpc0NvbGxhcHNpYmxlID0gdGhpcy5leHBhbmRNb2RlICE9PSAnbm9uZSc7XG4gICAgICBjb25zdCBpc1NpbmdsZSA9IHRoaXMuZXhwYW5kTW9kZSA9PT0gJ3NpbmdsZSc7XG5cbiAgICAgIC8vIEtlZXAgYW55IG5ld2x5LWFkZGVkIGV4cGFuZGVkIGl0ZW0gZXhwYW5kZWQgYW5kIGNvbGxhcHNlIHRoZSByZXN0LlxuICAgICAgaWYgKGl0ZW1BZGRlZCAmJiBpdGVtQWRkZWQuaXNFeHBhbmRlZCkge1xuICAgICAgICBmb3VuZEV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0uaXNDb2xsYXBzaWJsZSA9IGlzQ29sbGFwc2libGUgJiYgISFpdGVtLmhhc0l0ZW1Db250ZW50O1xuXG4gICAgICAgIGlmIChpdGVtICE9PSBpdGVtQWRkZWQgJiYgaXNTaW5nbGUgJiYgaXRlbS5pc0V4cGFuZGVkKSB7XG4gICAgICAgICAgaWYgKGZvdW5kRXhwYW5kZWQpIHtcbiAgICAgICAgICAgIGl0ZW0udXBkYXRlRm9yRXhwYW5kZWQoZmFsc2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZvdW5kRXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy4jdXBkYXRlUm9sZSgpO1xuICAgIH1cbiAgfVxuXG4gICNpbml0aWFsaXplRHJhZ0FuZERyb3AoKTogdm9pZCB7XG4gICAgLyogU2FuaXR5IGNoZWNrIHRoYXQgd2UgaGF2ZW4ndCBhbHJlYWR5IHNldCB1cCBkcmFnZ2luZyBhYmlsaXRpZXMgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghdGhpcy4jZHJhZ3VsYVNlcnZpY2UuZmluZCh0aGlzLmRyYWd1bGFHcm91cE5hbWUpKSB7XG4gICAgICB0aGlzLiNkcmFndWxhU2VydmljZS5jcmVhdGVHcm91cCh0aGlzLmRyYWd1bGFHcm91cE5hbWUsIHtcbiAgICAgICAgbW92ZXM6IChlbCwgY29udGFpbmVyLCBoYW5kbGUpID0+IHtcbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSBlbD8ucXVlcnlTZWxlY3RvcignLnNreS1yZXBlYXRlci1pdGVtLWdyYWItaGFuZGxlJyk7XG4gICAgICAgICAgcmV0dXJuICEhdGhpcy5yZW9yZGVyYWJsZSAmJiAhIXRhcmdldCAmJiB0YXJnZXQuY29udGFpbnMoaGFuZGxlISk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgZHJhZ2dlZEl0ZW1JbmRleCA9IC0xO1xuXG4gICAgdGhpcy4jZHJhZ3VsYVNlcnZpY2VcbiAgICAgIC5kcmFnKHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGFyZ3MpID0+IHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGFyZ3MubmFtZSA9PT0gdGhpcy5kcmFndWxhR3JvdXBOYW1lKSB7XG4gICAgICAgICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3MoYXJncy5lbCwgJ3NreS1yZXBlYXRlci1pdGVtLWRyYWdnaW5nJyk7XG4gICAgICAgICAgZHJhZ2dlZEl0ZW1JbmRleCA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldFJlcGVhdGVySXRlbUluZGV4KFxuICAgICAgICAgICAgYXJncy5lbCBhcyBIVE1MRWxlbWVudFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jZHJhZ3VsYVNlcnZpY2VcbiAgICAgIC5kcmFnZW5kKHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGFyZ3MpID0+IHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGFyZ3MubmFtZSA9PT0gdGhpcy5kcmFndWxhR3JvdXBOYW1lKSB7XG4gICAgICAgICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQ2xhc3MoYXJncy5lbCwgJ3NreS1yZXBlYXRlci1pdGVtLWRyYWdnaW5nJyk7XG4gICAgICAgICAgY29uc3QgbmV3SXRlbUluZGV4ID0gdGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0UmVwZWF0ZXJJdGVtSW5kZXgoXG4gICAgICAgICAgICBhcmdzLmVsIGFzIEhUTUxFbGVtZW50XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKGRyYWdnZWRJdGVtSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLnJlb3JkZXJJdGVtKGRyYWdnZWRJdGVtSW5kZXgsIG5ld0l0ZW1JbmRleCk7XG4gICAgICAgICAgICBkcmFnZ2VkSXRlbUluZGV4ID0gLTE7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy4jZW1pdFRhZ3MoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAjZGVzdHJveURyYWdBbmREcm9wKCk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayB0aGF0IHdlIGhhdmUgc2V0IHVwIGRyYWdnaW5nIGFiaWxpdGllcyAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI2RyYWd1bGFTZXJ2aWNlLmZpbmQodGhpcy5kcmFndWxhR3JvdXBOYW1lKSkge1xuICAgICAgdGhpcy4jZHJhZ3VsYVNlcnZpY2UuZGVzdHJveSh0aGlzLmRyYWd1bGFHcm91cE5hbWUpO1xuICAgIH1cbiAgfVxuXG4gICNlbWl0VGFncygpOiB2b2lkIHtcbiAgICBjb25zdCB0YWdzID0gdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS50YWcpO1xuICAgIHRoaXMub3JkZXJDaGFuZ2UuZW1pdCh0YWdzKTtcbiAgfVxuXG4gICNldmVyeUl0ZW1IYXNUYWcoKTogYm9vbGVhbiB7XG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKCF0aGlzLml0ZW1zIHx8IHRoaXMuaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLml0ZW1zLnRvQXJyYXkoKS5ldmVyeSgoaXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIGl0ZW0udGFnICE9PSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cblxuICAjdXBkYXRlUm9sZSgpOiB2b2lkIHtcbiAgICAvLyBEZXRlcm1pbmUgYSByb2xlIHVzaW5nIGEgaGllcmFyY2h5IGJhc2VkIG9uIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMtMS4xL1xuICAgIC8vICAgMS4gSWYgdGhlcmUgYXJlIG9uZSBvciBtb3JlIGludGVyYWN0aW9ucyBpbiB0aGUgcmVwZWF0ZXIgaXRlbSBwcm9qZWN0ZWQgY29udGVudCwgdXNlIGdyaWQuXG4gICAgLy8gICAyLiBJZiB0aGVyZSBhcmUgc2VsZWN0YWJsZSByZXBlYXRlciBpdGVtcyBhbmQgbm8gb3RoZXIgaW50ZXJhY3Rpb25zLCB1c2UgbGlzdGJveC5cbiAgICAvLyAgIDMuIElmIHRoZXJlIGFyZSBubyBpbnRlcmFjdGlvbnMsIHVzZSBsaXN0LlxuXG4gICAgLy8gRGVmYXVsdCB0byBsaXN0IHJvbGUuXG4gICAgbGV0IGF1dG9Sb2xlOiBTa3lSZXBlYXRlclJvbGVUeXBlID0gJ2xpc3QnO1xuXG4gICAgY29uc3Qgcm9sZU1hcDogUmVjb3JkPFNreVJlcGVhdGVyUm9sZVR5cGUsIFNreVJlcGVhdGVySXRlbVJvbGVzVHlwZT4gPSB7XG4gICAgICBsaXN0OiB7IGl0ZW06ICdsaXN0aXRlbScsIHRpdGxlOiB1bmRlZmluZWQsIGNvbnRlbnQ6IHVuZGVmaW5lZCB9LFxuICAgICAgbGlzdGJveDogeyBpdGVtOiAnb3B0aW9uJywgdGl0bGU6IHVuZGVmaW5lZCwgY29udGVudDogdW5kZWZpbmVkIH0sXG4gICAgICBncmlkOiB7IGl0ZW06ICdyb3cnLCB0aXRsZTogJ3Jvd2hlYWRlcicsIGNvbnRlbnQ6ICdncmlkY2VsbCcgfSxcbiAgICB9O1xuXG4gICAgLy8gQmFzZWQgb24gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZG9tLmh0bWwjaW50ZXJhY3RpdmUtY29udGVudFxuICAgIGNvbnN0IGludGVyYWN0aW9uU2VsZWN0b3IgPSBbXG4gICAgICAnYVtocmVmXScsXG4gICAgICAnYXVkaW9bY29udHJvbHNdJyxcbiAgICAgICdidXR0b24nLFxuICAgICAgJ2RldGFpbHMnLFxuICAgICAgJ2VtYmVkJyxcbiAgICAgICdpZnJhbWUnLFxuICAgICAgJ2ltZ1t1c2VtYXBdJyxcbiAgICAgICdpbnB1dDpub3QoW3R5cGU9XCJoaWRkZW5cIl0pJyxcbiAgICAgICdsYWJlbCcsXG4gICAgICAnc2VsZWN0JyxcbiAgICAgICd0ZXh0YXJlYScsXG4gICAgICAndmlkZW9bY29udHJvbHNdJyxcbiAgICAgICdbY29udGVudGVkaXRhYmxlXScsXG4gICAgICAnLnNreS1yZXBlYXRlcltyb2xlPVwiZ3JpZFwiXScsXG4gICAgXVxuICAgICAgLm1hcChcbiAgICAgICAgKHNlbGVjdG9yKSA9PlxuICAgICAgICAgIGBza3ktcmVwZWF0ZXItaXRlbS10aXRsZSAke3NlbGVjdG9yfTpub3QoW2hpZGRlbl0pLCBza3ktcmVwZWF0ZXItaXRlbS1jb250ZW50ICR7c2VsZWN0b3J9Om5vdChbaGlkZGVuXSlgXG4gICAgICApXG4gICAgICAuY29uY2F0KFtgc2t5dXgtZHJvcGRvd25gXSlcbiAgICAgIC5qb2luKCcsICcpO1xuXG4gICAgY29uc3QgaGFzSW50ZXJhY3Rpb24gPVxuICAgICAgdGhpcy5yZW9yZGVyYWJsZSB8fFxuICAgICAgdGhpcy5pdGVtcz8uc29tZSgoaXRlbSkgPT4gaXRlbS5pc0NvbGxhcHNpYmxlKSB8fFxuICAgICAgdGhpcy5pdGVtcz8uc29tZSgoaXRlbSkgPT4gISFpdGVtLnNlbGVjdGFibGUpIHx8XG4gICAgICAhISh0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIGludGVyYWN0aW9uU2VsZWN0b3JcbiAgICAgICk7XG5cbiAgICBpZiAoaGFzSW50ZXJhY3Rpb24pIHtcbiAgICAgIC8vIElmIHRoZSByZXBlYXRlciBtYXRjaGVzIGludGVyYWN0aW9uIHNlbGVjdG9yIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMtMS4xLyNncmlkXG4gICAgICBhdXRvUm9sZSA9ICdncmlkJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yb2xlICE9PSBhdXRvUm9sZSkge1xuICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLml0ZW1Sb2xlLm5leHQoe1xuICAgICAgICAuLi5yb2xlTWFwW2F1dG9Sb2xlXSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5yb2xlID0gYCR7YXV0b1JvbGV9YDtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAjcmVwZWF0ZXJIb3N0PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktcmVwZWF0ZXJcIlxuICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgfHwgKCdza3l1eF9yZXBlYXRlcl9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMpXCJcbiAgICBbZHJhZ3VsYV09XCJkcmFndWxhR3JvdXBOYW1lXCJcbiAgICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwib25DZGtPYnNlcnZlQ29udGVudCgpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
313
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3NyYy9saWIvbW9kdWxlcy9yZXBlYXRlci9yZXBlYXRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdHMvc3JjL2xpYi9tb2R1bGVzL3JlcGVhdGVyL3JlcGVhdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxHQUlQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0FBRXhEOztHQUVHO0FBUUgsTUFBTSxPQUFPLG9CQUFvQjtJQXdGL0IsWUFDRSxjQUFpQyxFQUNqQyxlQUFtQyxFQUNuQyxjQUF5QyxFQUN6QyxjQUE4QixFQUM5QixVQUFzQixFQUN0QixRQUFtQjs7UUF4RXJCOzs7O1dBSUc7UUFFSSxnQkFBVyxHQUF3QixLQUFLLENBQUM7UUFnQ2hEOztXQUVHO1FBRUksc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0RDs7O1dBR0c7UUFFSSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFTL0MsdURBQTJDO1FBQzNDLHVEQUFtQztRQUNuQyx1REFBZ0M7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ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERyYWd1bGFTZXJ2aWNlIH0gZnJvbSAnbmcyLWRyYWd1bGEnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lSZXBlYXRlckFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXBlYXRlci1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJFeHBhbmRNb2RlVHlwZSB9IGZyb20gJy4vcmVwZWF0ZXItZXhwYW5kLW1vZGUtdHlwZSc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1Sb2xlc1R5cGUgfSBmcm9tICcuL3JlcGVhdGVyLWl0ZW0tcm9sZXMudHlwZSc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3JlcGVhdGVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFNreVJlcGVhdGVyUm9sZVR5cGUgfSBmcm9tICcuL3JlcGVhdGVyLXJvbGUudHlwZSc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlclNlcnZpY2UgfSBmcm9tICcuL3JlcGVhdGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjb250YWluZXIgdG8gZGlzcGxheSByZXBlYXRlciBpdGVtcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXJlcGVhdGVyJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVwZWF0ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGVhdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5UmVwZWF0ZXJTZXJ2aWNlLCBTa3lSZXBlYXRlckFkYXB0ZXJTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreVJlcGVhdGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdFxue1xuICAvKipcbiAgICogVGhlIGluZGV4IG9mIHRoZSByZXBlYXRlciBpdGVtIHRvIHZpc3VhbGx5IGhpZ2hsaWdodCBhcyBhY3RpdmUuXG4gICAqIEZvciBleGFtcGxlLCB1c2UgdGhpcyBwcm9wZXJ0eSBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZVxuICAgKiBbc3BsaXQgdmlldyBjb21wb25lbnRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9zcGxpdC12aWV3KVxuICAgKiB0byBoaWdobGlnaHQgYSByZXBlYXRlciBpdGVtIHdoaWxlIHVzZXJzIGVkaXQgaXQuIE9ubHkgb25lIGl0ZW0gY2FuIGJlIGFjdGl2ZSBhdCBhIHRpbWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWN0aXZlSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIEFSSUEgbGFiZWwgZm9yIHRoZSByZXBlYXRlciBsaXN0LlxuICAgKiBUaGlzIHNldHMgdGhlIHJlcGVhdGVyIGxpc3QncyBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHByb3ZpZGUgYSB0ZXh0IGVxdWl2YWxlbnQgZm9yIHNjcmVlbiByZWFkZXJzXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtbGFiZWwpLlxuICAgKiBAZGVmYXVsdCBcIkxpc3Qgb2YgaXRlbXNcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHVzZXJzIGNhbiBjaGFuZ2UgdGhlIG9yZGVyIG9mIGl0ZW1zIGluIHRoZSByZXBlYXRlciBsaXN0LlxuICAgKiBFYWNoIHJlcGVhdGVyIGl0ZW0gYWxzbyBoYXMgYHJlb3JkZXJhYmxlYCBwcm9wZXJ0eSB0byBpbmRpY2F0ZSB3aGV0aGVyXG4gICAqIHVzZXJzIGNhbiBjaGFuZ2UgaXRzIG9yZGVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHJlb3JkZXJhYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBsYXlvdXQgdGhhdCBkZXRlcm1pbmVzIHdoaWNoIHJlcGVhdGVyIGl0ZW1zIGFyZSBleHBhbmRlZCBieSBkZWZhdWx0IGFuZCB3aGV0aGVyXG4gICAqIHJlcGVhdGVyIGl0ZW1zIGFyZSBleHBhbmRhYmxlIGFuZCBjb2xsYXBzaWJsZS4gQ29sbGFwc2VkIGl0ZW1zIGRpc3BsYXkgdGl0bGVzIG9ubHkuXG4gICAqIFRoZSB2YWxpZCBvcHRpb25zIGFyZSBgbXVsdGlwbGVgLCBgbm9uZWAsIGFuZCBgc2luZ2xlYC5cbiAgICogLSBgbXVsdGlwbGVgIGxvYWRzIHJlcGVhdGVyIGl0ZW1zIGluIGFuIGV4cGFuZGVkIHN0YXRlIHVubGVzcyBgaXNFeHBhbmRlZGAgaXMgc2V0IHRvXG4gICAqIGBmYWxzZWAgZm9yIGEgcmVwZWF0ZXIgaXRlbS4gVGhpcyBsYXlvdXQgYWxsb3dzIHVzZXJzIHRvIGV4cGFuZCBhbmQgY29sbGFwc2VcbiAgICogYXMgbWFueSByZXBlYXRlciBpdGVtcyBhcyBuZWNlc3NhcnkuIEl0IGlzIGJlc3Qtc3VpdGVkIHRvIHJlcGVhdGVyIGl0ZW1zIHdoZXJlIGJvZHlcbiAgICogY29udGVudCBpcyBpbXBvcnRhbnQgYnV0IHVzZXJzIGRvbid0IGFsd2F5cyBuZWVkIHRvIHNlZSBpdC5cbiAgICogLSBgbm9uZWAgbG9hZHMgYWxsIHJlcGVhdGVyIGl0ZW1zIGluIGFuIGV4cGFuZGVkIHN0YXRlIGFuZCBkb2VzIG5vdCBhbGxvdyB1c2VycyB0b1xuICAgKiBjb2xsYXBzZSB0aGVtLiBUaGlzIGRlZmF1bHQgbGF5b3V0IHByb3ZpZGVzIHRoZSBxdWlja2VzdCBhY2Nlc3MgdG8gdGhlIGRldGFpbHMgaW4gdGhlXG4gICAqIHJlcGVhdGVyIGl0ZW1zLiBJdCBpcyBiZXN0LXN1aXRlZCB0byByZXBlYXRlciBpdGVtcyB3aXRoIGNvbmNpc2UgY29udGVudFxuICAgKiB0aGF0IHVzZXJzIG5lZWQgdG8gdmlldyBmcmVxdWVudGx5LlxuICAgKiAtIGBzaW5nbGVgIGxvYWRzIG9uZSByZXBlYXRlciBpdGVtIGluIGFuIGV4cGFuZGVkIHN0YXRlIGFuZCBjb2xsYXBzZXMgYWxsIG90aGVycy5cbiAgICogVGhlIGV4cGFuZGVkIHJlcGVhdGVyIGl0ZW0gaXMgdGhlIGZpcnN0IG9uZSB3aGVyZSBgaXNFeHBhbmRlZGAgaXMgc2V0IHRvIGB0cnVlYC4gVGhpcyBsYXlvdXRcbiAgICogYWxsb3dzIHVzZXJzIHRvIGV4cGFuZCBvbmUgaXRlbSBhdCBhIHRpbWUuIEl0IHByb3ZpZGVzIHRoZSBtb3N0IGNvbXBhY3QgdmlldyBhbmQgaXNcbiAgICogYmVzdC1zdWl0ZWQgdG8gcmVwZWF0ZXIgaXRlbXMgd2hlcmUgdGhlIG1vc3QgaW1wb3J0YW50IGluZm9ybWF0aW9uIGlzIGluIHRoZSB0aXRsZXNcbiAgICogYW5kIHVzZXJzIG9ubHkgb2NjYXNpb25hbGx5IG5lZWQgdG8gdmlldyB0aGUgYm9keSBjb250ZW50LlxuICAgKiBAZGVmYXVsdCBcIm5vbmVcIlxuICAgKi9cbiAgLy8gVE9ETzogUmVtb3ZlICdzdHJpbmcnIGFzIGEgdmFsaWQgdHlwZSBpbiBhIGJyZWFraW5nIGNoYW5nZS5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBleHBhbmRNb2RlKHZhbHVlOiBTa3lSZXBlYXRlckV4cGFuZE1vZGVUeXBlIHwgc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmV4cGFuZE1vZGUgPSB2YWx1ZTtcbiAgICB0aGlzLiN1cGRhdGVGb3JFeHBhbmRNb2RlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGV4cGFuZE1vZGUoKTogU2t5UmVwZWF0ZXJFeHBhbmRNb2RlVHlwZSB8IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI3JlcGVhdGVyU2VydmljZS5leHBhbmRNb2RlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGFjdGl2ZSByZXBlYXRlciBpdGVtIGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGFjdGl2ZUluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgY2hhbmdlIHRoZSBvcmRlciBvZiByZXBlYXRlciBpdGVtcy5cbiAgICogVGhpcyBldmVudCBlbWl0cyBhbiBvcmRlcmVkIGFycmF5IG9mIHRoZSBgdGFnYCBwcm9wZXJ0aWVzIHRoYXQgdGhlIGNvbnN1bWVyIHByb3ZpZGVzIGZvciBlYWNoIHJlcGVhdGVyIGl0ZW0uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIG9yZGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcblxuICBAQ29udGVudENoaWxkcmVuKFNreVJlcGVhdGVySXRlbUNvbXBvbmVudClcbiAgcHVibGljIGl0ZW1zOiBRdWVyeUxpc3Q8U2t5UmVwZWF0ZXJJdGVtQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZHJhZ3VsYUdyb3VwTmFtZTogc3RyaW5nO1xuXG4gIHB1YmxpYyByb2xlOiBTa3lSZXBlYXRlclJvbGVUeXBlIHwgdW5kZWZpbmVkO1xuXG4gICNhZGFwdGVyU2VydmljZTogU2t5UmVwZWF0ZXJBZGFwdGVyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2RyYWd1bGFTZXJ2aWNlOiBEcmFndWxhU2VydmljZTtcbiAgI2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuICAjcmVwZWF0ZXJTZXJ2aWNlOiBTa3lSZXBlYXRlclNlcnZpY2U7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcmVwZWF0ZXJTZXJ2aWNlOiBTa3lSZXBlYXRlclNlcnZpY2UsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreVJlcGVhdGVyQWRhcHRlclNlcnZpY2UsXG4gICAgZHJhZ3VsYVNlcnZpY2U6IERyYWd1bGFTZXJ2aWNlLFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZSA9IHJlcGVhdGVyU2VydmljZTtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI2RyYWd1bGFTZXJ2aWNlID0gZHJhZ3VsYVNlcnZpY2U7XG4gICAgdGhpcy4jZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlcjtcblxuICAgIHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSA9IGBza3ktcmVwZWF0ZXItZHJhZ3VsYS0ke1xuICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLnJlcGVhdGVyR3JvdXBJZFxuICAgIH1gO1xuXG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLml0ZW1Db2xsYXBzZVN0YXRlQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChpdGVtOiBTa3lSZXBlYXRlckl0ZW1Db21wb25lbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZXhwYW5kTW9kZSA9PT0gJ3NpbmdsZScgJiYgaXRlbS5pc0V4cGFuZGVkKSB7XG4gICAgICAgICAgdGhpcy5pdGVtcz8uZm9yRWFjaCgob3RoZXJJdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIG90aGVySXRlbSAhPT0gaXRlbSAmJlxuICAgICAgICAgICAgICBvdGhlckl0ZW0uaXNFeHBhbmRlZCAmJlxuICAgICAgICAgICAgICBvdGhlckl0ZW0uaXNDb2xsYXBzaWJsZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIG90aGVySXRlbS5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmFjdGl2ZUl0ZW1JbmRleENoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ICE9PSB0aGlzLmFjdGl2ZUluZGV4KSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4O1xuICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXhDaGFuZ2UuZW1pdChpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLm9yZGVyQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy4jZW1pdFRhZ3MoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jdXBkYXRlRm9yRXhwYW5kTW9kZSgpO1xuXG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0UmVwZWF0ZXJIb3N0KHRoaXMuI2VsZW1lbnRSZWYpO1xuXG4gICAgdGhpcy4jaW5pdGlhbGl6ZURyYWdBbmREcm9wKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIC8vIElmIGFjdGl2ZUluZGV4IGhhcyBiZWVuIHNldCBvbiBpbml0LCBjYWxsIHNlcnZpY2UgdG8gYWN0aXZhdGUgdGhlIGFwcHJvcHJpYXRlIGl0ZW0uXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCB8fCB0aGlzLmFjdGl2ZUluZGV4ID09PSAwKSB7XG4gICAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5hY3RpdmF0ZUl0ZW1CeUluZGV4KHRoaXMuYWN0aXZlSW5kZXgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5yZW9yZGVyYWJsZSAmJiAhdGhpcy4jZXZlcnlJdGVtSGFzVGFnKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdQbGVhc2Ugc3VwcGx5IHRhZyBwcm9wZXJ0aWVzIGZvciBlYWNoIHJlcGVhdGVyIGl0ZW0gd2hlbiByZW9yZGVyaW5nIGZ1bmN0aW9uYWxpdHkgaXMgZW5hYmxlZC4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBIQUNLOiBOb3QgdXBkYXRpbmcgZm9yIGV4cGFuZCBtb2RlIGluIGEgdGltZW91dCBjYXVzZXMgYW4gZXJyb3IuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNjAwNVxuICAgIHRoaXMuaXRlbXM/LmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXM/Lmxhc3QpIHtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVGb3JFeHBhbmRNb2RlKHRoaXMuaXRlbXMubGFzdCk7XG4gICAgICAgICAgdGhpcy5pdGVtcy5sYXN0LnJlb3JkZXJhYmxlID0gdGhpcy5yZW9yZGVyYWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLiNyZXBlYXRlclNlcnZpY2UuYWN0aXZhdGVJdGVtQnlJbmRleCh0aGlzLmFjdGl2ZUluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuI3VwZGF0ZVJvbGUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLiN1cGRhdGVGb3JFeHBhbmRNb2RlKCk7XG5cbiAgICAgIHRoaXMuaXRlbXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaXRlbS5yZW9yZGVyYWJsZSA9IHRoaXMucmVvcmRlcmFibGU7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy4jdXBkYXRlUm9sZSgpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snYWN0aXZlSW5kZXgnXSkge1xuICAgICAgdGhpcy4jcmVwZWF0ZXJTZXJ2aWNlLmVuYWJsZUFjdGl2ZVN0YXRlID0gdHJ1ZTtcbiAgICAgIGlmIChcbiAgICAgICAgY2hhbmdlc1snYWN0aXZlSW5kZXgnXS5jdXJyZW50VmFsdWUgIT09XG4gICAgICAgIGNoYW5nZXNbJ2FjdGl2ZUluZGV4J10ucHJldmlvdXNWYWx1ZVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5hY3RpdmF0ZUl0ZW1CeUluZGV4KHRoaXMuYWN0aXZlSW5kZXgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLnJlb3JkZXJhYmxlKSB7XG4gICAgICBpZiAodGhpcy5pdGVtcykge1xuICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IChpdGVtLnJlb3JkZXJhYmxlID0gdGhpcy5yZW9yZGVyYWJsZSkpO1xuICAgICAgfVxuICAgICAgdGhpcy4jdXBkYXRlUm9sZSgpO1xuXG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2Rlc3Ryb3lEcmFnQW5kRHJvcCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZVJvbGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNka09ic2VydmVDb250ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZVJvbGUoKTtcbiAgfVxuXG4gICN1cGRhdGVGb3JFeHBhbmRNb2RlKGl0ZW1BZGRlZD86IFNreVJlcGVhdGVySXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICBsZXQgZm91bmRFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgY29uc3QgaXNDb2xsYXBzaWJsZSA9IHRoaXMuZXhwYW5kTW9kZSAhPT0gJ25vbmUnO1xuICAgICAgY29uc3QgaXNTaW5nbGUgPSB0aGlzLmV4cGFuZE1vZGUgPT09ICdzaW5nbGUnO1xuXG4gICAgICAvLyBLZWVwIGFueSBuZXdseS1hZGRlZCBleHBhbmRlZCBpdGVtIGV4cGFuZGVkIGFuZCBjb2xsYXBzZSB0aGUgcmVzdC5cbiAgICAgIGlmIChpdGVtQWRkZWQgJiYgaXRlbUFkZGVkLmlzRXhwYW5kZWQpIHtcbiAgICAgICAgZm91bmRFeHBhbmRlZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpdGVtLmlzQ29sbGFwc2libGUgPSBpc0NvbGxhcHNpYmxlICYmICEhaXRlbS5oYXNJdGVtQ29udGVudDtcblxuICAgICAgICBpZiAoaXRlbSAhPT0gaXRlbUFkZGVkICYmIGlzU2luZ2xlICYmIGl0ZW0uaXNFeHBhbmRlZCkge1xuICAgICAgICAgIGlmIChmb3VuZEV4cGFuZGVkKSB7XG4gICAgICAgICAgICBpdGVtLnVwZGF0ZUZvckV4cGFuZGVkKGZhbHNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmb3VuZEV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuI3VwZGF0ZVJvbGUoKTtcbiAgICB9XG4gIH1cblxuICAjaW5pdGlhbGl6ZURyYWdBbmREcm9wKCk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayB0aGF0IHdlIGhhdmVuJ3QgYWxyZWFkeSBzZXQgdXAgZHJhZ2dpbmcgYWJpbGl0aWVzICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXRoaXMuI2RyYWd1bGFTZXJ2aWNlLmZpbmQodGhpcy5kcmFndWxhR3JvdXBOYW1lKSkge1xuICAgICAgdGhpcy4jZHJhZ3VsYVNlcnZpY2UuY3JlYXRlR3JvdXAodGhpcy5kcmFndWxhR3JvdXBOYW1lLCB7XG4gICAgICAgIG1vdmVzOiAoZWwsIGNvbnRhaW5lciwgaGFuZGxlKSA9PiB7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZWw/LnF1ZXJ5U2VsZWN0b3IoJy5za3ktcmVwZWF0ZXItaXRlbS1ncmFiLWhhbmRsZScpO1xuICAgICAgICAgIHJldHVybiAhIXRoaXMucmVvcmRlcmFibGUgJiYgISF0YXJnZXQgJiYgdGFyZ2V0LmNvbnRhaW5zKGhhbmRsZSEpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IGRyYWdnZWRJdGVtSW5kZXggPSAtMTtcblxuICAgIHRoaXMuI2RyYWd1bGFTZXJ2aWNlXG4gICAgICAuZHJhZyh0aGlzLmRyYWd1bGFHcm91cE5hbWUpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChhcmdzKSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChhcmdzLm5hbWUgPT09IHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSkge1xuICAgICAgICAgIHRoaXMuI3JlbmRlcmVyLmFkZENsYXNzKGFyZ3MuZWwsICdza3ktcmVwZWF0ZXItaXRlbS1kcmFnZ2luZycpO1xuICAgICAgICAgIGRyYWdnZWRJdGVtSW5kZXggPSB0aGlzLiNhZGFwdGVyU2VydmljZS5nZXRSZXBlYXRlckl0ZW1JbmRleChcbiAgICAgICAgICAgIGFyZ3MuZWwgYXMgSFRNTEVsZW1lbnRcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2RyYWd1bGFTZXJ2aWNlXG4gICAgICAuZHJhZ2VuZCh0aGlzLmRyYWd1bGFHcm91cE5hbWUpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChhcmdzKSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChhcmdzLm5hbWUgPT09IHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSkge1xuICAgICAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKGFyZ3MuZWwsICdza3ktcmVwZWF0ZXItaXRlbS1kcmFnZ2luZycpO1xuICAgICAgICAgIGNvbnN0IG5ld0l0ZW1JbmRleCA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldFJlcGVhdGVySXRlbUluZGV4KFxuICAgICAgICAgICAgYXJncy5lbCBhcyBIVE1MRWxlbWVudFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmIChkcmFnZ2VkSXRlbUluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5yZW9yZGVySXRlbShkcmFnZ2VkSXRlbUluZGV4LCBuZXdJdGVtSW5kZXgpO1xuICAgICAgICAgICAgZHJhZ2dlZEl0ZW1JbmRleCA9IC0xO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuI2VtaXRUYWdzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgI2Rlc3Ryb3lEcmFnQW5kRHJvcCgpOiB2b2lkIHtcbiAgICAvKiBTYW5pdHkgY2hlY2sgdGhhdCB3ZSBoYXZlIHNldCB1cCBkcmFnZ2luZyBhYmlsaXRpZXMgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLiNkcmFndWxhU2VydmljZS5maW5kKHRoaXMuZHJhZ3VsYUdyb3VwTmFtZSkpIHtcbiAgICAgIHRoaXMuI2RyYWd1bGFTZXJ2aWNlLmRlc3Ryb3kodGhpcy5kcmFndWxhR3JvdXBOYW1lKTtcbiAgICB9XG4gIH1cblxuICAjZW1pdFRhZ3MoKTogdm9pZCB7XG4gICAgY29uc3QgdGFncyA9IHRoaXMuI3JlcGVhdGVyU2VydmljZS5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0udGFnKTtcbiAgICB0aGlzLm9yZGVyQ2hhbmdlLmVtaXQodGFncyk7XG4gIH1cblxuICAjZXZlcnlJdGVtSGFzVGFnKCk6IGJvb2xlYW4ge1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghdGhpcy5pdGVtcyB8fCB0aGlzLml0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pdGVtcy50b0FycmF5KCkuZXZlcnkoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBpdGVtLnRhZyAhPT0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICB9XG5cbiAgI3VwZGF0ZVJvbGUoKTogdm9pZCB7XG4gICAgLy8gRGV0ZXJtaW5lIGEgcm9sZSB1c2luZyBhIGhpZXJhcmNoeSBiYXNlZCBvbiBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMS9cbiAgICAvLyAgIDEuIElmIHRoZXJlIGFyZSBvbmUgb3IgbW9yZSBpbnRlcmFjdGlvbnMgaW4gdGhlIHJlcGVhdGVyIGl0ZW0gcHJvamVjdGVkIGNvbnRlbnQsIHVzZSBncmlkLlxuICAgIC8vICAgMi4gSWYgdGhlcmUgYXJlIHNlbGVjdGFibGUgcmVwZWF0ZXIgaXRlbXMgYW5kIG5vIG90aGVyIGludGVyYWN0aW9ucywgdXNlIGxpc3Rib3guXG4gICAgLy8gICAzLiBJZiB0aGVyZSBhcmUgbm8gaW50ZXJhY3Rpb25zLCB1c2UgbGlzdC5cblxuICAgIC8vIERlZmF1bHQgdG8gbGlzdCByb2xlLlxuICAgIGxldCBhdXRvUm9sZTogU2t5UmVwZWF0ZXJSb2xlVHlwZSA9ICdsaXN0JztcblxuICAgIGNvbnN0IHJvbGVNYXA6IFJlY29yZDxTa3lSZXBlYXRlclJvbGVUeXBlLCBTa3lSZXBlYXRlckl0ZW1Sb2xlc1R5cGU+ID0ge1xuICAgICAgbGlzdDogeyBpdGVtOiAnbGlzdGl0ZW0nLCB0aXRsZTogdW5kZWZpbmVkLCBjb250ZW50OiB1bmRlZmluZWQgfSxcbiAgICAgIGxpc3Rib3g6IHsgaXRlbTogJ29wdGlvbicsIHRpdGxlOiB1bmRlZmluZWQsIGNvbnRlbnQ6IHVuZGVmaW5lZCB9LFxuICAgICAgZ3JpZDogeyBpdGVtOiAncm93JywgdGl0bGU6ICdyb3doZWFkZXInLCBjb250ZW50OiAnZ3JpZGNlbGwnIH0sXG4gICAgfTtcblxuICAgIC8vIEJhc2VkIG9uIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2RvbS5odG1sI2ludGVyYWN0aXZlLWNvbnRlbnRcbiAgICBjb25zdCBpbnRlcmFjdGlvblNlbGVjdG9yID0gW1xuICAgICAgJ2FbaHJlZl0nLFxuICAgICAgJ2F1ZGlvW2NvbnRyb2xzXScsXG4gICAgICAnYnV0dG9uJyxcbiAgICAgICdkZXRhaWxzJyxcbiAgICAgICdlbWJlZCcsXG4gICAgICAnaWZyYW1lJyxcbiAgICAgICdpbWdbdXNlbWFwXScsXG4gICAgICAnaW5wdXQ6bm90KFt0eXBlPVwiaGlkZGVuXCJdKScsXG4gICAgICAnbGFiZWwnLFxuICAgICAgJ3NlbGVjdCcsXG4gICAgICAndGV4dGFyZWEnLFxuICAgICAgJ3ZpZGVvW2NvbnRyb2xzXScsXG4gICAgICAnW2NvbnRlbnRlZGl0YWJsZV0nLFxuICAgICAgJy5za3ktcmVwZWF0ZXJbcm9sZT1cImdyaWRcIl0nLFxuICAgIF1cbiAgICAgIC5tYXAoXG4gICAgICAgIChzZWxlY3RvcikgPT5cbiAgICAgICAgICBgc2t5LXJlcGVhdGVyLWl0ZW0tdGl0bGUgJHtzZWxlY3Rvcn06bm90KFtoaWRkZW5dKSwgc2t5LXJlcGVhdGVyLWl0ZW0tY29udGVudCAke3NlbGVjdG9yfTpub3QoW2hpZGRlbl0pYFxuICAgICAgKVxuICAgICAgLmNvbmNhdChbYHNreXV4LWRyb3Bkb3duYF0pXG4gICAgICAuam9pbignLCAnKTtcblxuICAgIGNvbnN0IGhhc0ludGVyYWN0aW9uID1cbiAgICAgIHRoaXMucmVvcmRlcmFibGUgfHxcbiAgICAgIHRoaXMuaXRlbXM/LnNvbWUoKGl0ZW0pID0+IGl0ZW0uaXNDb2xsYXBzaWJsZSkgfHxcbiAgICAgIHRoaXMuaXRlbXM/LnNvbWUoKGl0ZW0pID0+ICEhaXRlbS5zZWxlY3RhYmxlKSB8fFxuICAgICAgISEodGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBpbnRlcmFjdGlvblNlbGVjdG9yXG4gICAgICApO1xuXG4gICAgaWYgKGhhc0ludGVyYWN0aW9uKSB7XG4gICAgICAvLyBJZiB0aGUgcmVwZWF0ZXIgbWF0Y2hlcyBpbnRlcmFjdGlvbiBzZWxlY3RvciBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMS8jZ3JpZFxuICAgICAgYXV0b1JvbGUgPSAnZ3JpZCc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucm9sZSAhPT0gYXV0b1JvbGUpIHtcbiAgICAgIHRoaXMuI3JlcGVhdGVyU2VydmljZS5pdGVtUm9sZS5uZXh0KHtcbiAgICAgICAgLi4ucm9sZU1hcFthdXRvUm9sZV0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMucm9sZSA9IGAke2F1dG9Sb2xlfWA7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgI3JlcGVhdGVySG9zdD5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LXJlcGVhdGVyXCJcbiAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8ICgnc2t5dXhfcmVwZWF0ZXJfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzKVwiXG4gICAgW2RyYWd1bGFdPVwiZHJhZ3VsYUdyb3VwTmFtZVwiXG4gICAgKGNka09ic2VydmVDb250ZW50KT1cIm9uQ2RrT2JzZXJ2ZUNvbnRlbnQoKVwiXG4gID5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
package/fesm2015/skyux-lists.mjs
CHANGED
|
@@ -110,7 +110,8 @@ class SkyFilterButtonComponent {
|
|
|
110
110
|
/**
|
|
111
111
|
* Whether the filtering options are exposed.
|
|
112
112
|
* To support [accessibility rules for disclosures](https://www.w3.org/TR/wai-aria-practices-1.1/#disclosure),
|
|
113
|
-
* this property is necessary when using inline filters.
|
|
113
|
+
* this property is necessary to set the `aria-expanded` attribute when using inline filters.
|
|
114
|
+
* For more information about the `aria-expanded` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-expanded).
|
|
114
115
|
*/
|
|
115
116
|
this.ariaExpanded = false;
|
|
116
117
|
/**
|