@huntsman-cancer-institute/dashboard 17.3.3 → 17.4.0

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.
@@ -224,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
224
224
  type: HostBinding,
225
225
  args: ["class"]
226
226
  }] } });
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbmZpZ3VyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2NvbmZpZ3VyZS93aWRnZXQtY29uZmlndXJlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUloRSxPQUFPLEVBQTRELE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7O0FBRy9EOztHQUVHO0FBK0RILE1BQU0sT0FBTyx3QkFBd0I7SUFlbkMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFiaEMsY0FBUyxHQUFXLGVBQWUsQ0FBQztRQUluRCx3QkFBbUIsR0FBK0IsRUFBRSxDQUFDO0lBU0gsQ0FBQztJQUUxRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtDQUFrQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQThCLEVBQUUsRUFBRTtZQUNwRyxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0VBQXdFLENBQUMsQ0FBQztnQkFDeEYsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNoQyxDQUFDO1lBRUQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7Z0JBQ2pDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxTQUFTLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO2dCQUU3QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO2dCQUVyQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztxQkFDOUcsU0FBUyxDQUFDLENBQUMsZUFBZ0MsRUFBRSxFQUFFO29CQUNsRCxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7d0JBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQzt3QkFDOUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDakMsQ0FBQztvQkFFRCxJQUFJLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDO3dCQUN6QyxJQUFJLENBQUMsK0JBQStCLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3JELENBQUM7b0JBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7b0JBQ3ZDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO3dCQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQzt3QkFFcEMsSUFBSSxDQUFDLCtCQUErQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsbUJBQTBELEVBQUUsRUFBRTs0QkFDdkosSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO2dDQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7Z0NBQzFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQzs0QkFDckMsQ0FBQzs0QkFFRCxJQUFJLG1CQUFtQixFQUFFLENBQUM7Z0NBQ3hCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7Z0NBQzVHLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDOzRCQUNyQyxDQUFDO2lDQUFNLENBQUM7Z0NBQ04sSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dDQUN6RSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQzs0QkFDckMsQ0FBQzt3QkFDTixDQUFDLENBQUMsQ0FBQztvQkFDRixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsK0JBQStCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCwyQkFBMkI7UUFDekIsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0RBQXdELEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVHLENBQUM7UUFFRCxJQUFJLGNBQWMsR0FBK0IsRUFBRSxDQUFDO1FBQ3BELEtBQUssSUFBSSxrQkFBa0IsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNuRSxJQUFJLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM5QixTQUFTO1lBQ1gsQ0FBQztZQUVELGtCQUFrQixDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDbkMsS0FBSyxJQUFJLFNBQVMsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztnQkFDL0Q7O21CQUVHO2dCQUNILGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUNELGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFrQixFQUFFLENBQWtCLEVBQUUsRUFBRTtnQkFDNUUsSUFBSSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDOUIsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDWixDQUFDO3FCQUFNLElBQUksQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ3JDLE9BQU8sQ0FBQyxDQUFDO2dCQUNYLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxjQUFjLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUEyQixFQUFFLENBQTJCLEVBQUUsRUFBRTtZQUMvRSxJQUFJLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUM5QixPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQztpQkFBTSxJQUFJLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNyQyxPQUFPLENBQUMsQ0FBQztZQUNYLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsQ0FBQztZQUNYLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ3ZHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxjQUFjLENBQUM7WUFFMUMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2pLLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdFLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztZQUNyQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLDBCQUEwQixHQUFHLFNBQVMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDN0IsQ0FBQztZQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQ0FBbUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUVwRixJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLENBQTZCLEVBQUUsQ0FBNkI7UUFDcEUsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDNUIsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztxQkFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzdELE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUM7cUJBQU0sQ0FBQztvQkFDTixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQzt3QkFDaEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDOzRCQUN4RCxPQUFPLEtBQUssQ0FBQzt3QkFDZixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQXRLVSx3QkFBd0I7a0dBQXhCLHdCQUF3Qiw2R0E1RHpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVDs7MkZBa0NVLHdCQUF3QjtrQkE5RHBDLFNBQVM7K0JBQ0Usa0JBQWtCLFlBQ2xCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVDtxRkFvQ3FCLFNBQVM7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoYykgMjAxNiBIdW50c21hbiBDYW5jZXIgSW5zdGl0dXRlIGF0IHRoZSBVbml2ZXJzaXR5IG9mIFV0YWgsIENvbmZpZGVudGlhbCBhbmQgUHJvcHJpZXRhcnlcclxuICovXHJcbmltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgaXNEZXZNb2RlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcblxyXG5pbXBvcnQge1dpZGdldEF0dHJpYnV0ZSwgV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyLCBXaWRnZXRJbnN0YW5jZSwgV2lkZ2V0fSBmcm9tIFwiLi4vbW9kZWwvbW9kZWxcIjtcclxuaW1wb3J0IHtEYXNoYm9hcmRTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvZGFzaGJvYXJkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtXaWRnZXRDb21wb25lbnR9IGZyb20gXCIuLi93aWRnZXQvd2lkZ2V0LmNvbXBvbmVudFwiO1xyXG5cclxuLyoqXHJcbiAqIEBzaW5jZSAxLjAuMFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwid2lkZ2V0LWNvbmZpZ3VyZVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwid2lkZ2V0SW5zdGFuY2UgJiYgc2VsZWN0ZWRBdHRyaWJ1dGVDb250YWluZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImF0dHJpYnV0ZS1jb250YWluZXItaGVhZGVyLXBhcmVudFwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtYXR0cmlidXRlQ29udGFpbmVyIGxldC1pPVwiaW5kZXhcIiBbbmdGb3JPZl09XCJhdHRyaWJ1dGVDb250YWluZXJzIHwgaGFzRWRpdGFibGVBdHRyaWJ1dGVzXCI+XHJcbiAgICAgICAgICA8ZGl2IChjbGljayk9XCJzZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lciA9IGF0dHJpYnV0ZUNvbnRhaW5lcjsgaVNlbGVjdGVkID0gaTtcIlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImF0dHJpYnV0ZS1jb250YWluZXItaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0ZWRBdHRyaWJ1dGVDb250YWluZXIubmFtZSA9PT0gYXR0cmlidXRlQ29udGFpbmVyLm5hbWUgPyAnc2VsZWN0ZWQnIDogJydcIlxyXG4gICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJhdHRyaWJ1dGVDb250YWluZXIubmFtZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyLm5hbWUgPT09IGF0dHJpYnV0ZUNvbnRhaW5lci5uYW1lXCI+e3tzZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lci5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWdyb3ctMSBhdHRyaWJ1dGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LWdyb3ctMSB5LWF1dG9cIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtYXR0cmlidXRlIFtuZ0Zvck9mXT1cInNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyLmF0dHJpYnV0ZXNcIj5cclxuICAgICAgICAgICAgPHdpZGdldC1hdHRyaWJ1dGUgW2F0dHJpYnV0ZV09XCJhdHRyaWJ1dGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRXaWRnZXRBdHRyaWJ1dGVWYWx1ZVNldF09XCJ3aWRnZXRJbnN0YW5jZS5hdHRyaWJ1dGVWYWx1ZVNldC5pZFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3dpZGdldENvbXBvbmVudF09XCJ3aWRnZXRDb21wb25lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImF0dHJpYnV0ZS51c2VyRWRpdGFibGVcIj48L3dpZGdldC1hdHRyaWJ1dGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJpYnV0ZUNvbnRhaW5lcnMubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgVGhlcmUgYXJlIG5vIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhpcyB3aWRnZXQuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgXHJcblxyXG4gICAgLmF0dHJpYnV0ZS1jb250YWluZXItaGVhZGVyLXBhcmVudCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IGJsYWNrIDJweCBzb2xpZDtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5hdHRyaWJ1dGUtY29udGFpbmVyLWhlYWRlciB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgd2lkdGg6IDM1cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2NmFhZmY7XHJcbiAgICAgIGJvcmRlcjogYmxhY2sgMXB4IHNvbGlkO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xyXG4gICAgICBwYWRkaW5nOiA0cHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogbGFyZ2U7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDM1cHg7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICB9XHJcblxyXG4gICAgLmF0dHJpYnV0ZS1jb250YWluZXItaGVhZGVyLnNlbGVjdGVkIHtcclxuICAgICAgd2lkdGg6IDQ1JTtcclxuICAgIH1cclxuXHJcbiAgICAuYXR0cmlidXRlLWNvbnRhaW5lciB7XHJcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIH1cclxuXHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFdpZGdldENvbmZpZ3VyZUNvbXBvbmVudCB7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzXCIpIGNsYXNzTGlzdDogc3RyaW5nID0gXCJvdXRsZXQtY29sdW1uXCI7XHJcblxyXG4gIHB1YmxpYyBpU2VsZWN0ZWQ6IG51bWJlcjtcclxuICBwdWJsaWMgc2VsZWN0ZWRBdHRyaWJ1dGVDb250YWluZXI6IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcjtcclxuICBwdWJsaWMgYXR0cmlidXRlQ29udGFpbmVyczogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyW10gPSBbXTtcclxuXHJcbiAgcHVibGljIHdpZGdldEluc3RhbmNlOiBXaWRnZXRJbnN0YW5jZTtcclxuICAgd2lkZ2V0Q29tcG9uZW50OiBXaWRnZXRDb21wb25lbnQ7XHJcbiAgIGF0dHJpYnV0ZUNvbnRhaW5lck1hcDogTWFwPHN0cmluZywgV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyPjtcclxuXHJcbiAgIHdpZGdldENvbXBvbmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gICBhdHRyaWJ1dGVDb250YWluZXJzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogRGFzaGJvYXJkU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlU3ViamVjdC5zdWJzY3JpYmUoKHdpZGdldEluc3RhbmNlOiBXaWRnZXRJbnN0YW5jZSkgPT4ge1xyXG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiV2lkZ2V0Q29uZmlndXJlQ29tcG9uZW50LmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3Quc3Vic2NyaWJlOlwiKTtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKHdpZGdldEluc3RhbmNlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF3aWRnZXRJbnN0YW5jZSkge1xyXG4gICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy53aWRnZXRDb21wb25lbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lciA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmlTZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuXHJcblx0XHQgICAgdGhpcy51bnN1YnNjcmliZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UgPSB3aWRnZXRJbnN0YW5jZTtcclxuXHJcbiAgICAgICAgdGhpcy53aWRnZXRDb21wb25lbnRTdWJzY3JpcHRpb24gPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0V2lkZ2V0Q29tcG9uZW50U3ViamVjdCh3aWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh3aWRnZXRDb21wb25lbnQ6IFdpZGdldENvbXBvbmVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb25maWd1cmVDb21wb25lbnQuZ2V0V2lkZ2V0Q29tcG9uZW50U3ViamVjdC5zdWJzY3JpYmVcIik7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcod2lkZ2V0Q29tcG9uZW50KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5hdHRyaWJ1dGVDb250YWluZXJzU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMud2lkZ2V0Q29tcG9uZW50ID0gd2lkZ2V0Q29tcG9uZW50O1xyXG4gICAgICAgICAgaWYgKHRoaXMud2lkZ2V0Q29tcG9uZW50KSB7XHJcblx0XHRcdCAgICAgIHRoaXMud2lkZ2V0Q29tcG9uZW50LmNvbmZpZyh1bmRlZmluZWQpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzU3Vic2NyaXB0aW9uID0gdGhpcy53aWRnZXRDb21wb25lbnQuYXR0cmlidXRlQ29udGFpbmVycy5zdWJzY3JpYmUoKGF0dHJpYnV0ZUNvbnRhaW5lcnM6IE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4pID0+IHtcclxuICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb25maWd1cmVDb21wb25lbnQuYXR0cmlidXRlQ29udGFpbmVyc1N1YnNjcmlwdGlvblwiKTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYXR0cmlidXRlQ29udGFpbmVycyk7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlQ29udGFpbmVycykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJNYXAgPSBXaWRnZXQubWVyZ2UoYXR0cmlidXRlQ29udGFpbmVycywgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdldENvbW1vbkF0dHJpYnV0ZXMoKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQXR0cmlidXRlQ29udGFpbmVycygpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lck1hcCA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRDb21tb25BdHRyaWJ1dGVzKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQXR0cmlidXRlQ29udGFpbmVycygpO1xyXG4gICAgICAgICAgICAgIH1cclxuXHRcdFx0ICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICB1bnN1YnNjcmliZSgpIHtcclxuICAgIGlmICh0aGlzLndpZGdldENvbXBvbmVudFN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLndpZGdldENvbXBvbmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYXR0cmlidXRlQ29udGFpbmVyc1N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRob3VnaCBhIG1hcCBpcyB1c2VkIHRvIG92ZXJyaWRlIGF0dHJpYnV0ZXMgZWFzaWx5LCB0cmFuc2ZlciBiYWNrIHRvIGFuIGFycmF5IGZvciBlYXN5IHNvcnRpbmcgYW5kIHRvIG1ha2VcclxuICAgKiB0aGUgbmdGb3IgaGFwcHkuXHJcbiAgICovXHJcbiAgZ2VuZXJhdGVBdHRyaWJ1dGVDb250YWluZXJzKCkge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb25maWd1cmVDb21wb25lbnQuZ2VuZXJhdGVBdHRyaWJ1dGVDb250YWluZXJzOiBcIiArIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyTWFwLnNpemUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB0ZW1wQ29udGFpbmVyczogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyW10gPSBbXTtcclxuICAgIGZvciAobGV0IGF0dHJpYnV0ZUNvbnRhaW5lciBvZiB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lck1hcC52YWx1ZXMoKSkge1xyXG4gICAgICBpZiAoYXR0cmlidXRlQ29udGFpbmVyLmhpZGRlbikge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhdHRyaWJ1dGVDb250YWluZXIuYXR0cmlidXRlcyA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlQ29udGFpbmVyLmF0dHJpYnV0ZU1hcC52YWx1ZXMoKSkge1xyXG4gICAgICAgIC8qaWYgKGF0dHJpYnV0ZS51c2VyRWRpdGFibGUpIHtcclxuICAgICAgICAgIGF0dHJpYnV0ZUNvbnRhaW5lci5hdHRyaWJ1dGVzLnB1c2goYXR0cmlidXRlKTtcclxuICAgICAgICB9Ki9cclxuICAgICAgICBhdHRyaWJ1dGVDb250YWluZXIuYXR0cmlidXRlcy5wdXNoKGF0dHJpYnV0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgYXR0cmlidXRlQ29udGFpbmVyLmF0dHJpYnV0ZXMuc29ydCgoYTogV2lkZ2V0QXR0cmlidXRlLCBiOiBXaWRnZXRBdHRyaWJ1dGUpID0+IHtcclxuICAgICAgICBpZiAoYS5zb3J0T3JkZXIgPCBiLnNvcnRPcmRlcikge1xyXG4gICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYS5zb3J0T3JkZXIgPiBiLnNvcnRPcmRlcikge1xyXG4gICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0ZW1wQ29udGFpbmVycy5wdXNoKGF0dHJpYnV0ZUNvbnRhaW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgdGVtcENvbnRhaW5lcnMuc29ydCgoYTogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyLCBiOiBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXIpID0+IHtcclxuICAgICAgaWYgKGEuc29ydE9yZGVyIDwgYi5zb3J0T3JkZXIpIHtcclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgIH0gZWxzZSBpZiAoYS5zb3J0T3JkZXIgPiBiLnNvcnRPcmRlcikge1xyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5hdHRyaWJ1dGVDb250YWluZXJzLmxlbmd0aCA9PT0gMCB8fCAhdGhpcy53YWNFcXVhbHModGVtcENvbnRhaW5lcnMsIHRoaXMuYXR0cmlidXRlQ29udGFpbmVycykpIHtcclxuICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzID0gdGVtcENvbnRhaW5lcnM7XHJcblxyXG4gICAgICBpZiAodGhpcy5pU2VsZWN0ZWQgJiYgdGhpcy5pU2VsZWN0ZWQgPCB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnMubGVuZ3RoICYmIHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGVDb250YWluZXIubmFtZSA9PT0gdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzW3RoaXMuaVNlbGVjdGVkXS5uYW1lKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lciA9IHRoaXMuYXR0cmlidXRlQ29udGFpbmVyc1t0aGlzLmlTZWxlY3RlZF07XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5hdHRyaWJ1dGVDb250YWluZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyID0gdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzWzBdO1xyXG4gICAgICAgIHRoaXMuaVNlbGVjdGVkID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuaVNlbGVjdGVkID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5zZXRDb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVycyh0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnMpO1xyXG5cclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3YWNFcXVhbHMoYTogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyW10sIGI6IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcltdKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChhW2ldLm5hbWUgIT09IGJbaV0ubmFtZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYVtpXS5hdHRyaWJ1dGVzLmxlbmd0aCAhPT0gYltpXS5hdHRyaWJ1dGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFbaV0uYXR0cmlidXRlcy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZiAoYVtpXS5hdHRyaWJ1dGVzW2pdLm5hbWUgIT09IGJbaV0uYXR0cmlidXRlc1tqXS5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuIl19
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbmZpZ3VyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2NvbmZpZ3VyZS93aWRnZXQtY29uZmlndXJlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUloRSxPQUFPLEVBQTRELE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7O0FBRy9EOztHQUVHO0FBK0RILE1BQU0sT0FBTyx3QkFBd0I7SUFnQm5DLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBZGhDLGNBQVMsR0FBVyxlQUFlLENBQUM7UUFJbkQsd0JBQW1CLEdBQStCLEVBQUUsQ0FBQztJQVVILENBQUM7SUFFMUQsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQ0FBa0MsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUE4QixFQUFFLEVBQUU7WUFDcEcsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7Z0JBQ3hGLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsU0FBUyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztnQkFFN0IsSUFBSSxD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cmlnaHQgKGMpIDIwMTYgSHVudHNtYW4gQ2FuY2VyIEluc3RpdHV0ZSBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoLCBDb25maWRlbnRpYWwgYW5kIFByb3ByaWV0YXJ5XHJcbiAqL1xyXG5pbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGlzRGV2TW9kZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5cclxuaW1wb3J0IHtXaWRnZXRBdHRyaWJ1dGUsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lciwgV2lkZ2V0SW5zdGFuY2UsIFdpZGdldH0gZnJvbSBcIi4uL21vZGVsL21vZGVsXCI7XHJcbmltcG9ydCB7RGFzaGJvYXJkU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2Rhc2hib2FyZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7V2lkZ2V0Q29tcG9uZW50fSBmcm9tIFwiLi4vd2lkZ2V0L3dpZGdldC5jb21wb25lbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBAc2luY2UgMS4wLjBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcIndpZGdldC1jb25maWd1cmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpZGdldEluc3RhbmNlICYmIHNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhdHRyaWJ1dGUtY29udGFpbmVyLWhlYWRlci1wYXJlbnRcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWF0dHJpYnV0ZUNvbnRhaW5lciBsZXQtaT1cImluZGV4XCIgW25nRm9yT2ZdPVwiYXR0cmlidXRlQ29udGFpbmVycyB8IGhhc0VkaXRhYmxlQXR0cmlidXRlc1wiPlxyXG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwic2VsZWN0ZWRBdHRyaWJ1dGVDb250YWluZXIgPSBhdHRyaWJ1dGVDb250YWluZXI7IGlTZWxlY3RlZCA9IGk7XCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJhdHRyaWJ1dGUtY29udGFpbmVyLWhlYWRlclwiXHJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyLm5hbWUgPT09IGF0dHJpYnV0ZUNvbnRhaW5lci5uYW1lID8gJ3NlbGVjdGVkJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwiYXR0cmlidXRlQ29udGFpbmVyLm5hbWVcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lci5uYW1lID09PSBhdHRyaWJ1dGVDb250YWluZXIubmFtZVwiPnt7c2VsZWN0ZWRBdHRyaWJ1dGVDb250YWluZXIubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1ncm93LTEgYXR0cmlidXRlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1ncm93LTEgeS1hdXRvXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWF0dHJpYnV0ZSBbbmdGb3JPZl09XCJzZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lci5hdHRyaWJ1dGVzXCI+XHJcbiAgICAgICAgICAgIDx3aWRnZXQtYXR0cmlidXRlIFthdHRyaWJ1dGVdPVwiYXR0cmlidXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkV2lkZ2V0QXR0cmlidXRlVmFsdWVTZXRdPVwid2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQuaWRXaWRnZXRBdHRyaWJ1dGVWYWx1ZVNldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt3aWRnZXRDb21wb25lbnRdPVwid2lkZ2V0Q29tcG9uZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhdHRyaWJ1dGUudXNlckVkaXRhYmxlXCI+PC93aWRnZXQtYXR0cmlidXRlPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGVDb250YWluZXJzLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgIFRoZXJlIGFyZSBubyBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgd2lkZ2V0LlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG5cclxuICAgIC5hdHRyaWJ1dGUtY29udGFpbmVyLWhlYWRlci1wYXJlbnQge1xyXG4gICAgICBib3JkZXItYm90dG9tOiBibGFjayAycHggc29saWQ7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgIH1cclxuXHJcbiAgICAuYXR0cmlidXRlLWNvbnRhaW5lci1oZWFkZXIge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIHdpZHRoOiAzNXB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjZhYWZmO1xyXG4gICAgICBib3JkZXI6IGJsYWNrIDFweCBzb2xpZDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuICAgICAgcGFkZGluZzogNHB4O1xyXG4gICAgICBmb250LXNpemU6IGxhcmdlO1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBtaW4taGVpZ2h0OiAzNXB4O1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgfVxyXG5cclxuICAgIC5hdHRyaWJ1dGUtY29udGFpbmVyLWhlYWRlci5zZWxlY3RlZCB7XHJcbiAgICAgIHdpZHRoOiA0NSU7XHJcbiAgICB9XHJcblxyXG4gICAgLmF0dHJpYnV0ZS1jb250YWluZXIge1xyXG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICB9XHJcblxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXaWRnZXRDb25maWd1cmVDb21wb25lbnQge1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKSBjbGFzc0xpc3Q6IHN0cmluZyA9IFwib3V0bGV0LWNvbHVtblwiO1xyXG5cclxuICBwdWJsaWMgaVNlbGVjdGVkOiBudW1iZXI7XHJcbiAgcHVibGljIHNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyOiBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXI7XHJcbiAgcHVibGljIGF0dHJpYnV0ZUNvbnRhaW5lcnM6IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcltdID0gW107XHJcblxyXG4gIHB1YmxpYyB3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2U7XHJcbiAgXHJcbiAgd2lkZ2V0Q29tcG9uZW50OiBXaWRnZXRDb21wb25lbnQ7XHJcbiAgYXR0cmlidXRlQ29udGFpbmVyTWFwOiBNYXA8c3RyaW5nLCBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXI+O1xyXG5cclxuICB3aWRnZXRDb21wb25lbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBhdHRyaWJ1dGVDb250YWluZXJzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogRGFzaGJvYXJkU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlU3ViamVjdC5zdWJzY3JpYmUoKHdpZGdldEluc3RhbmNlOiBXaWRnZXRJbnN0YW5jZSkgPT4ge1xyXG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiV2lkZ2V0Q29uZmlndXJlQ29tcG9uZW50LmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3Quc3Vic2NyaWJlOlwiKTtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKHdpZGdldEluc3RhbmNlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF3aWRnZXRJbnN0YW5jZSkge1xyXG4gICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy53aWRnZXRDb21wb25lbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lciA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmlTZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuXHJcblx0XHQgICAgdGhpcy51bnN1YnNjcmliZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UgPSB3aWRnZXRJbnN0YW5jZTtcclxuXHJcbiAgICAgICAgdGhpcy53aWRnZXRDb21wb25lbnRTdWJzY3JpcHRpb24gPSB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0V2lkZ2V0Q29tcG9uZW50U3ViamVjdCh3aWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh3aWRnZXRDb21wb25lbnQ6IFdpZGdldENvbXBvbmVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb25maWd1cmVDb21wb25lbnQuZ2V0V2lkZ2V0Q29tcG9uZW50U3ViamVjdC5zdWJzY3JpYmVcIik7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcod2lkZ2V0Q29tcG9uZW50KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5hdHRyaWJ1dGVDb250YWluZXJzU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMud2lkZ2V0Q29tcG9uZW50ID0gd2lkZ2V0Q29tcG9uZW50O1xyXG4gICAgICAgICAgaWYgKHRoaXMud2lkZ2V0Q29tcG9uZW50KSB7XHJcblx0XHRcdCAgICAgIHRoaXMud2lkZ2V0Q29tcG9uZW50LmNvbmZpZyh1bmRlZmluZWQpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzU3Vic2NyaXB0aW9uID0gdGhpcy53aWRnZXRDb21wb25lbnQuYXR0cmlidXRlQ29udGFpbmVycy5zdWJzY3JpYmUoKGF0dHJpYnV0ZUNvbnRhaW5lcnM6IE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4pID0+IHtcclxuICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb25maWd1cmVDb21wb25lbnQuYXR0cmlidXRlQ29udGFpbmVyc1N1YnNjcmlwdGlvblwiKTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYXR0cmlidXRlQ29udGFpbmVycyk7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlQ29udGFpbmVycykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJNYXAgPSBXaWRnZXQubWVyZ2UoYXR0cmlidXRlQ29udGFpbmVycywgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdldENvbW1vbkF0dHJpYnV0ZXMoKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQXR0cmlidXRlQ29udGFpbmVycygpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lck1hcCA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRDb21tb25BdHRyaWJ1dGVzKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQXR0cmlidXRlQ29udGFpbmVycygpO1xyXG4gICAgICAgICAgICAgIH1cclxuXHRcdFx0ICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICB1bnN1YnNjcmliZSgpIHtcclxuICAgIGlmICh0aGlzLndpZGdldENvbXBvbmVudFN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLndpZGdldENvbXBvbmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYXR0cmlidXRlQ29udGFpbmVyc1N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRob3VnaCBhIG1hcCBpcyB1c2VkIHRvIG92ZXJyaWRlIGF0dHJpYnV0ZXMgZWFzaWx5LCB0cmFuc2ZlciBiYWNrIHRvIGFuIGFycmF5IGZvciBlYXN5IHNvcnRpbmcgYW5kIHRvIG1ha2VcclxuICAgKiB0aGUgbmdGb3IgaGFwcHkuXHJcbiAgICovXHJcbiAgZ2VuZXJhdGVBdHRyaWJ1dGVDb250YWluZXJzKCkge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb25maWd1cmVDb21wb25lbnQuZ2VuZXJhdGVBdHRyaWJ1dGVDb250YWluZXJzOiBcIiArIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyTWFwLnNpemUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB0ZW1wQ29udGFpbmVyczogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyW10gPSBbXTtcclxuICAgIGZvciAobGV0IGF0dHJpYnV0ZUNvbnRhaW5lciBvZiB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lck1hcC52YWx1ZXMoKSkge1xyXG4gICAgICBpZiAoYXR0cmlidXRlQ29udGFpbmVyLmhpZGRlbikge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhdHRyaWJ1dGVDb250YWluZXIuYXR0cmlidXRlcyA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlQ29udGFpbmVyLmF0dHJpYnV0ZU1hcC52YWx1ZXMoKSkge1xyXG4gICAgICAgIC8qaWYgKGF0dHJpYnV0ZS51c2VyRWRpdGFibGUpIHtcclxuICAgICAgICAgIGF0dHJpYnV0ZUNvbnRhaW5lci5hdHRyaWJ1dGVzLnB1c2goYXR0cmlidXRlKTtcclxuICAgICAgICB9Ki9cclxuICAgICAgICBhdHRyaWJ1dGVDb250YWluZXIuYXR0cmlidXRlcy5wdXNoKGF0dHJpYnV0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgYXR0cmlidXRlQ29udGFpbmVyLmF0dHJpYnV0ZXMuc29ydCgoYTogV2lkZ2V0QXR0cmlidXRlLCBiOiBXaWRnZXRBdHRyaWJ1dGUpID0+IHtcclxuICAgICAgICBpZiAoYS5zb3J0T3JkZXIgPCBiLnNvcnRPcmRlcikge1xyXG4gICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYS5zb3J0T3JkZXIgPiBiLnNvcnRPcmRlcikge1xyXG4gICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0ZW1wQ29udGFpbmVycy5wdXNoKGF0dHJpYnV0ZUNvbnRhaW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgdGVtcENvbnRhaW5lcnMuc29ydCgoYTogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyLCBiOiBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXIpID0+IHtcclxuICAgICAgaWYgKGEuc29ydE9yZGVyIDwgYi5zb3J0T3JkZXIpIHtcclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgIH0gZWxzZSBpZiAoYS5zb3J0T3JkZXIgPiBiLnNvcnRPcmRlcikge1xyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5hdHRyaWJ1dGVDb250YWluZXJzLmxlbmd0aCA9PT0gMCB8fCAhdGhpcy53YWNFcXVhbHModGVtcENvbnRhaW5lcnMsIHRoaXMuYXR0cmlidXRlQ29udGFpbmVycykpIHtcclxuICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzID0gdGVtcENvbnRhaW5lcnM7XHJcblxyXG4gICAgICBpZiAodGhpcy5pU2VsZWN0ZWQgJiYgdGhpcy5pU2VsZWN0ZWQgPCB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnMubGVuZ3RoICYmIHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGVDb250YWluZXIubmFtZSA9PT0gdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzW3RoaXMuaVNlbGVjdGVkXS5uYW1lKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZUNvbnRhaW5lciA9IHRoaXMuYXR0cmlidXRlQ29udGFpbmVyc1t0aGlzLmlTZWxlY3RlZF07XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5hdHRyaWJ1dGVDb250YWluZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyID0gdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzWzBdO1xyXG4gICAgICAgIHRoaXMuaVNlbGVjdGVkID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXR0cmlidXRlQ29udGFpbmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuaVNlbGVjdGVkID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5zZXRDb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVycyh0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnMpO1xyXG5cclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lcnMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3YWNFcXVhbHMoYTogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyW10sIGI6IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcltdKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChhW2ldLm5hbWUgIT09IGJbaV0ubmFtZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYVtpXS5hdHRyaWJ1dGVzLmxlbmd0aCAhPT0gYltpXS5hdHRyaWJ1dGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFbaV0uYXR0cmlidXRlcy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZiAoYVtpXS5hdHRyaWJ1dGVzW2pdLm5hbWUgIT09IGJbaV0uYXR0cmlidXRlc1tqXS5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuIl19