@ambl-on/lcu-ambl-on-common
Advanced tools
Comparing version 0.1.294-integration to 0.1.295-my-atlas
@@ -396,2 +396,2 @@ /** | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbWFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUsxRCxNQUFNLE9BQU8sVUFBVTs7Ozs7O0lBaURyQixZQUFzQixXQUErQixFQUFZLFNBQXlCO1FBQXBFLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWdCOzs7OztRQTlCbkYsZ0JBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUM7Ozs7UUFVcEcsa0JBQWEsR0FBc0IsSUFBSSxPQUFPLEVBQVksQ0FBQztRQUUzRCwyQkFBc0IsR0FBdUIsSUFBSSxPQUFPLEVBQWEsQ0FBQzs7OztRQUt0RSxxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBRXhDLG9CQUFlLEdBQUcsRUFBRSxDQUFDOzs7O1FBT3JCLGVBQVUsR0FBaUIsU0FBUyxDQUFDLG1CQUFtQixDQUFDO1FBSzlELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJ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LEdBQUc7aURBQzFCLENBQUM7SUFDaEQsQ0FBQzs7Ozs7Ozs7Ozs7OztJQVlTLG9CQUFvQixDQUFDLEVBQVU7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTTs7OztRQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7O1lBOVRGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQUxRLGtCQUFrQjtZQUNsQixjQUFjOzs7Ozs7Ozs7SUFZckIsZ0NBQW9DOzs7Ozs7SUFLcEMsNkJBQXdDOzs7OztJQU94QyxpQ0FBMkc7Ozs7O0lBSzNHLGdDQUErQzs7Ozs7SUFLL0MsbUNBQWtFOztJQUVsRSw0Q0FBNkU7Ozs7O0lBSzdFLHNDQUErQzs7SUFFL0MscUNBQTRCOztJQUU1QixtQ0FBZ0Q7Ozs7O0lBS2hELGdDQUFnRTs7Ozs7SUFJcEQsaUNBQXlDOzs7OztJQUFFLCtCQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmRpdmlkdWFsTWFwLCBNYXJrZXJJbmZvLCBNYXBNYXJrZXIgfSBmcm9tICdAbG93Y29kZXVuaXQvbGN1LW1hcC1jb21tb24nO1xyXG5pbXBvcnQgeyBUaHVtYm5haWxMaXN0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvdGh1bWJuYWlsLWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBUZW1wU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3RlbXAuc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYXRpb25Mb2FkZXIgfSBmcm9tICcuLi91dGlscy9sb2NhdGlvbi1sb2FkZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFwU2VydmljZSB7XHJcblxyXG4gIC8vIEZJRUxEU1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgcHJpbWFyeSBtYXAgdG8gYmUgZGlzcGxheWVkIC0gcmVwcmVzZW50cyB0aGUgY3VycmVudCBtYXAgYmVpbmcgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHByaW1hcnlNYXA6IEluZGl2aWR1YWxNYXA7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2Ygc2Vjb25kYXJ5IG1hcHMgYXZhaWxhYmxlIHRvIGNob29zZSBhcyBwcmltYXJ5IGFuZCBhbHNvIGZvciB1c2UgYXMgbGF5ZXJzIGluIHRoZSBwcmltYXJ5IG1hcFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtYXBMaXN0OiBBcnJheTxJbmRpdmlkdWFsTWFwPjtcclxuXHJcbiAgLy8gUFJPUEVSVElFU1xyXG5cclxuICAvKipcclxuICAgKiBDdXJhdGVkIGxpc3Qgb2YgYW1ibF9vbiBsb2NhdGlvbiBtYXJrZXJzXHJcbiAgICovXHJcbiAgcHVibGljIEN1cmF0ZWRMaXN0ID0gdGhpcy5sb2NMb2FkZXIuQ3JlYXRlTGF5ZXIoQ29uc3RhbnRzLkxPQ0FUSU9OU19UT19MT0FELCBDb25zdGFudHMuTUFQX0NPTkZJR19UT19MT0FEKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgbmV3IHByaW1hcnkgbWFwIGFueSB0aW1lIHRoZSBtYXBzIChwcmltYXJ5IGFuZCBzZWNvbmRhcnkpIGFyZSBjaGFuZ2VkXHJcbiAgICovXHJcbiAgcHVibGljIE1hcENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsTWFwPjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3ViamVjdCB0aGF0IGVtaXRzIGxhdC9sbmcgZm9yIG1hcCBwYW5uaW5nXHJcbiAgICovXHJcbiAgcHVibGljIExhdExuZ0VtaXR0ZXI6IFN1YmplY3Q8bnVtYmVyW10+ID0gbmV3IFN1YmplY3Q8bnVtYmVyW10+KCk7XHJcblxyXG4gIHB1YmxpYyBCYXNpY0luZm9XaW5kb3dFbWl0dGVyOiBTdWJqZWN0PE1hcE1hcmtlcj4gPSBuZXcgU3ViamVjdDxNYXBNYXJrZXI+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2YgYWN0aXZlIHNlY29uZGFyeSBsb2NhdGlvbnMgd2hpY2ggYXJlIGN1cnJlbnRseSBkaXNwbGF5ZWQgb24gdGhlIGN1cnJlbnQgbWFwXHJcbiAgICovXHJcbiAgcHVibGljIFZpc2libGVMb2NhdGlvbnM6IEFycmF5PE1hcE1hcmtlcj4gPSBbXTtcclxuXHJcbiAgcHVibGljIExlZ2VuZExvY2F0aW9ucyA9IFtdO1xyXG5cclxuICBwdWJsaWMgVGh1bWJuYWlsTGlzdDogQXJyYXk8VGh1bWJuYWlsTGlzdE1vZGVsPjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1hcmtlcnMgZm9yIHVzZSBpbiB0aGUgbWFwXHJcbiAgICovXHJcbiAgcHVibGljIE1hcmtlckxpc3Q6IE1hcmtlckluZm9bXSA9IENvbnN0YW50cy5ERUZBVUxUX01BUktFUl9JTkZPO1xyXG5cclxuICAvLyBDT05TVFJVQ1RPUlNcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHRlbXBTdG9yYWdlOiBUZW1wU3RvcmFnZVNlcnZpY2UsIHByb3RlY3RlZCBsb2NMb2FkZXI6IExvY2F0aW9uTG9hZGVyKSB7XHJcbiAgICB0aGlzLnByaW1hcnlNYXAgPSB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcExpc3QoKVswXTtcclxuICAgIHRoaXMubWFwTGlzdCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpLmZpbHRlcihtYXAgPT4gbWFwLmlkICE9PSB0aGlzLnByaW1hcnlNYXAuaWQpO1xyXG4gICAgdGhpcy5NYXBDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsTWFwPigpO1xyXG4gIH1cclxuXHJcbiAgLy8gTElGRSBDWUNMRVxyXG5cclxuICAvLyBBUEkgTUVUSE9EU1xyXG5cclxuICBwdWJsaWMgR2V0TGVnZW5kTG9jYXRpb25zKCkge1xyXG4gICAvL3RoaXMuTGVnZW5kTG9jYXRpb25zID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRMb2NhdGlvbkxlZ2VuZCgpO1xyXG4gICAgcmV0dXJuIHRoaXMuTGVnZW5kTG9jYXRpb25zO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGlzIG1hcGxpc3QgbGlzdCBvZiB0aHVtYm5haWxzIGFuZCB0aGVpciBpbmZvXHJcbiAgICovXHJcbiAgcHVibGljIEdldFRodW1ibmFpbExpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5UaHVtYm5haWxMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgcHJpbWFyeSBtYXAgdG8gYmUgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgcHVibGljIEdldFByaW1hcnlNYXAoKTogSW5kaXZpZHVhbE1hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmltYXJ5TWFwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBzZWNvbmRhcnkgKG5vbi1wcmltYXJ5KSBtYXBzXHJcbiAgICovXHJcbiAgcHVibGljIEdldE1hcExpc3QoKTogQXJyYXk8SW5kaXZpZHVhbE1hcD4ge1xyXG4gICAgLy8gcmV0dXJuIHRoaXMubWFwTGlzdDtcclxuICAgIHJldHVybiB0aGlzLm1hcExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgdGhlIG1hcHMgaW4gdGhlIGRiXHJcbiAgICovXHJcbiAgcHVibGljIEdldEFsbE1hcHMoKTogQXJyYXk8SW5kaXZpZHVhbE1hcD4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbWFwIHRvIHJldHJpZXZlXHJcbiAgICogXHJcbiAgICogUmV0dXJucyBhIHNwZWNpZmljIG1hcCB3aXRoIGEgc3BlY2lmaWMgaWRcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFwQnlJZChpZCk6IEluZGl2aWR1YWxNYXAge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwTGlzdC5maW5kKG1hcCA9PiBtYXAuaWQgPT09IGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1hcmtlcnMgZm9yIHVzZSBpbiBtYXBcclxuICAgKiBcclxuICAgKiBUaGlzIHdpbGwgY2FsbCBhIGJhY2sgZW5kIHNlcnZpY2UgZXZlbnR1YWxseSBhbmQgdGhlbiBmb3JtYXQgdGhlIHJlc3VsdHMgYWNjb3JkaW5nbHlcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFya2VyTGlzdCgpOiBNYXJrZXJJbmZvW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuTWFya2VyTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCB0byBhZGRcclxuICAgKiBcclxuICAgKiBBZGRzIHRoZSBtYXAgdG8gdGhlIG1hcCBhcnJheVxyXG4gICAqL1xyXG4gIHB1YmxpYyBBZGRNYXAobWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLkFkZE1hcFRvTGlzdChtYXApO1xyXG4gICAgdGhpcy5zZXRNYXBzV2l0aFByaW1hcnlJZChtYXAuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGxhdCBUaGUgbGF0aXR1ZGUgdG8gcGFuIHRvXHJcbiAgICogQHBhcmFtIGxuZyBUaGUgbG9uZ2l0dWRlIHRvIHBhbiB0b1xyXG4gICAqIFxyXG4gICAqIFRha2VzIGEgbGF0L2xuZyBhbmQgZW1pdHMgZXZlbnQgZm9yIG1hcCB0byBsaXN0ZW4gdG9cclxuICAgKi9cclxuICBwdWJsaWMgQ2hhbmdlTGF0TG5nKGxhdCwgbG5nKTogdm9pZCB7XHJcbiAgICB0aGlzLkxhdExuZ0VtaXR0ZXIubmV4dChbbGF0LCBsbmddKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIG1hcmtlclxyXG4gICAqIFxyXG4gICAqIFRha2VzIGEgbWFya2VyIGZyb20gdGhlIGxlZ2VuZCBhbmQgc2VuZCB0byBsY3UtbWFwXHJcbiAgICovXHJcbiAgcHVibGljIERpc3BsYXlCYXNpY0luZm8obWFya2VyOiBNYXBNYXJrZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuQmFzaWNJbmZvV2luZG93RW1pdHRlci5uZXh0KG1hcmtlcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbGlzdCBUaGUgbGlzdCBvZiB2aXNpYmxlIGxvY2F0aW9uc1xyXG4gICAqIFxyXG4gICAqIFdoZW4gbWFwIHVwZGF0ZXMgdGhlIHZpc2libGUgbG9jYXRpb25zLCB0aGlzLlZpc2libGVMb2NhdGlvbnMgd2lsbCBiZSB1cGRhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIFVwZGF0ZVZpc2libGVMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy5WaXNpYmxlTG9jYXRpb25zID0gbGlzdDtcclxuICAgIGNvbnNvbGUubG9nKFwidmlzaWJsZSBsb2NhdGlvbnMgdXBkYXRlZDogXCIsIGxpc3QpO1xyXG4gICAgaWYgKHRoaXMuVmlzaWJsZUxvY2F0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuVXBkYXRlTGVnZW5kTG9jYXRpb25zKHRoaXMuVmlzaWJsZUxvY2F0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0aGlzLlZpc2libGVMb2NhdGlvbnM7XHJcbiAgICAvLyBpZih0aGlzLlZpc2libGVMb2NhdGlvbnMgIT09IHRoaXMuTGVnZW5kTG9jYXRpb25zKXtcclxuICAgIC8vICAgY29uc29sZS5sb2coXCJVcGRhdGluZyBsZWdlbmRcIilcclxuICAgIC8vICAgdGhpcy5BZGRUb0xlZ2VuZExvY2F0aW9ucyhsaXN0KTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBBZGRUb0xlZ2VuZExvY2F0aW9ucyh2aXNMb2M6IEFycmF5PE1hcE1hcmtlcj4pIHtcclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJ2aXNMb2MgPSBcIiwgdmlzTG9jKTtcclxuICAvLyAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmlzTG9jLmxlbmd0aDsgaSsrKSB7XHJcbiAgLy8gICAgIGxldCB0ZW1wSWQgPSB2aXNMb2NbaV0uaWQ7XHJcbiAgLy8gICAgIGlmICh0aGlzLkxlZ2VuZExvY2F0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlkID09PSB0ZW1wSWQpLmxlbmd0aCA9PT0gMCkge1xyXG4gIC8vICAgICAgIHRoaXMuTGVnZW5kTG9jYXRpb25zLnB1c2godmlzTG9jW2ldKTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgICBlbHNlIHtcclxuICAvLyAgICAgICB0aGlzLkNoZWNrSW5mbyh2aXNMb2NbaV0pO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwiYWRkZWQgdG8gTGVnZW5kQXJyYXkgXCIsIHRoaXMuTGVnZW5kTG9jYXRpb25zKTtcclxuICAvLyAgIHRoaXMuVXBkYXRlTGVnZW5kTG9jYXRpb25zKHRoaXMuTGVnZW5kTG9jYXRpb25zKTtcclxuICAvLyAgIC8vdGhpcy5VcGRhdGVWaXNpYmxlTG9jYXRpb25zKHRoaXMuTGVnZW5kTG9jYXRpb25zKTtcclxuICAvLyB9XHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIHRvIGluc3VyZSB0aGF0IHRoZSBsb2NhdGlvbiBkaXNwbGF5ZWQgaW4gdGhlIGxlZ2VuZCBtYXRjaGVzIHRoYXQgb2YgdGhlIHZpc2libGUgbG9jYXRpb25zXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG1hcmtlclxyXG4gICAqL1xyXG4gIC8vIHB1YmxpYyBDaGVja0luZm8obWFya2VyOiBNYXBNYXJrZXIpIHtcclxuICAvLyAgIGxldCB0ZW1wTWFya2VyID0gdGhpcy5MZWdlbmRMb2NhdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pZCA9PT0gbWFya2VyLmlkKTtcclxuICAvLyAgIGxldCBpbmRleCA9IHRoaXMuTGVnZW5kTG9jYXRpb25zLmluZGV4T2YodGVtcE1hcmtlclswXSk7XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwiaW5kZXggPSBcIiwgaW5kZXgpO1xyXG4gIC8vICAgLy9jb25zb2xlLmxvZyhcInRlbXBNYXJrZXIgPSBcIiwgdGVtcE1hcmtlcik7XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwibWFya2VyID0gXCIsIG1hcmtlcik7XHJcbiAgLy8gICB0aGlzLkxlZ2VuZExvY2F0aW9uc1tpbmRleF0gPSBtYXJrZXI7XHJcbiAgLy8gfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBsZWdlbmQgYXJyYXlcclxuICAgKiBAcGFyYW0gbGlzdCBcclxuICAgKi9cclxuICBwdWJsaWMgVXBkYXRlTGVnZW5kTG9jYXRpb25zKGxpc3QpOiB2b2lkIHtcclxuICAgIGxldCB0ZW1wOiBBcnJheTxNYXBNYXJrZXI+ID0gbmV3IEFycmF5PE1hcE1hcmtlcj4oKTtcclxuICAgIGNvbnNvbGUubG9nKFwibWFzdGVyIGxpc3QgbGVuZ3RoXCIsdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXN0ZXJMb2NhdGlvbkxlZ2VuZCgpLmxlbmd0aCk7XHJcbiAgICBpZiAodGhpcy50ZW1wU3RvcmFnZS5HZXRNYXN0ZXJMb2NhdGlvbkxlZ2VuZCgpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLkxlZ2VuZExvY2F0aW9ucyA9IHRoaXMuVmlzaWJsZUxvY2F0aW9ucztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgdGVtcE1hcmtlcjpNYXBNYXJrZXIgPSB0aGlzLnRlbXBTdG9yYWdlLkdldExvY2F0aW9uQnlJZChsaXN0W2ldLmlkKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInRlbXBNYXJrZXIgPSBcIiwgdGVtcE1hcmtlcik7XHJcbiAgICAgICAgaWYgKHRlbXBNYXJrZXIpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwicHVzaGluZyBpbiBpZlwiKTtcclxuICAgICAgICAgIHRlbXAucHVzaCh0ZW1wTWFya2VyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInB1c2hpbmcgaW4gZWxzZVwiKTtcclxuICAgICAgICAgIHRlbXAucHVzaChsaXN0W2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuTGVnZW5kTG9jYXRpb25zID0gdGVtcDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBsaXN0IHNhdmVzIHRoZSBsZWdlbmQgdG8gbG9jYWwgc3RvcmFnZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBTYXZlTGVnZW5kTG9jYXRpb25zKGxpc3QpOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuU2F2ZUxvY2F0aW9uTGVnZW5kKGxpc3QpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIHRvIHJlcGxhY2UgdGhlIG9ubGQgb25lIHdpdGhcclxuICAgKiBcclxuICAgKiBUaGlzIHJlcGxhY2VzIHRoZSBtYXAgaW4gdGhlIGRiIHdpdGggdGhlIG1hcCAoYmFzZWQgb24gaWQpXHJcbiAgICovXHJcbiAgcHVibGljIFJlcGxhY2VNYXAobWFwOiBJbmRpdmlkdWFsTWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLlJlcGxhY2VNYXAobWFwKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBMaXN0T2ZNYXBzIFRoZSBsaXN0IG9mIG1hcHMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBnZXQgdGhlIHRodW1ibmFpbHMgYW5kIG90aGVyIGluZm8gZm9yXHJcbiAgICogXHJcbiAgICogYSB0aHVtYm5haWwgbGlzdCBjb250YWlucyB0aGUgaW1nIHVybCwgdGhlIHRpdGxlIG9mIHRoZSBtYXAsIGFuZCB0aGUgbGF0IGFuZCBsb25nIG9mIHRoZSBvcmdpblxyXG4gICAqIFxyXG4gICAqL1xyXG4gIHB1YmxpYyBCdWlsZFRodW1ibmFpbExpc3QoTGlzdE9mTWFwczogQXJyYXk8SW5kaXZpZHVhbE1hcD4pOiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+IHtcclxuICAgIHZhciB0ZW1wVGh1bWJuYWlsTGlzdCA9IG5ldyBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+KCk7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IExpc3RPZk1hcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIHRlbXAgPSBuZXcgVGh1bWJuYWlsTGlzdE1vZGVsKExpc3RPZk1hcHNbaV0sIHRoaXMuZ2V0TWFwVGh1bWJuYWlsKExpc3RPZk1hcHNbaV0sIDIwMCwgMjAwKSwgTGlzdE9mTWFwc1tpXS50aXRsZSwgTGlzdE9mTWFwc1tpXS5vcmlnaW4ubGF0LCBMaXN0T2ZNYXBzW2ldLm9yaWdpbi5sbmcpO1xyXG4gICAgICB0ZW1wVGh1bWJuYWlsTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIHNvcnRzIGJhc2VkIG9uIHRoZSBUaXRsZSBvZiB0aGUgbWFwIHNvIHRoZSB0aHVtYm5haWwgbGlzdCBpcyBpbiBhbHBoYWJldGljYWwgb3JkZXJcclxuICAgICAqL1xyXG4gICAgdGVtcFRodW1ibmFpbExpc3Quc29ydCgodDEsIHQyKSA9PiB7XHJcbiAgICAgIHJldHVybiB0MS5UaXRsZS50b1VwcGVyQ2FzZSgpID4gdDIuVGl0bGUudG9VcHBlckNhc2UoKSA/IDEgOiAtMTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRlbXBUaHVtYm5haWxMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbmV3IHByaW1hcnkgbWFwXHJcbiAgICogXHJcbiAgICogQ2FsbHMgdGhlIHByb3RlY3RlZCBtZXRob2QgXCJzZXRNYXBzV2l0aFByaW1hcnlJZFwiXHJcbiAgICovXHJcbiAgcHVibGljIFByaW1hcnlNYXBDaGFuZ2VkKGlkKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE1hcHNXaXRoUHJpbWFyeUlkKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgYWxsIHRoZSBtYXBzIGZyb20gdGhlIGRiIChmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5KVxyXG4gICAqL1xyXG4gIHB1YmxpYyBEZWxldGVNYXBzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW1wU3RvcmFnZS5EZWxldGVNYXBMaXN0KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgIC8qKlxyXG4gICAqIEN1cmF0ZWQgbGlzdCBvZiBhbWJsX29uIGxvY2F0aW9uIG1hcmtlcnNcclxuICAgKi9cclxuICBwdWJsaWMgR2V0Q3VyYXRlZExpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2NMb2FkZXIuQ3JlYXRlTGF5ZXIoQ29uc3RhbnRzLkpTT05fREFUQV9GT1JfTE9DQVRJT05fQ09OVkVSU0lPTiwgQ29uc3RhbnRzLk1BUF9DT05GSUdfVE9fTE9BRCk7XHJcbiAgfVxyXG4gIC8vIEhFTFBFUlNcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgY29uZmlndXJhdGlvbiBmcm9tIHdoaWNoIHlvdSB3YW50IHRvIGNyZWF0ZSBhIHRodW1ibmFpbFxyXG4gICAqIEBwYXJhbSB3aWR0aCBPcHRpb25hbCB3aWR0aCBwYXJhbWV0ZXIgKG11c3QgYWxzbyBpbmNsdWRlIGhlaWd0aClcclxuICAgKiBAcGFyYW0gaGVpZ2h0IE9wdGlvbmFsIGhlaWdodCBwYXJhbWV0ZXIgKG11c3QgYWxzbyBpbmNsdWRlIHdpZHRoKVxyXG4gICAqXHJcbiAgICogVGFrZXMgYSBtYXAgY29uZmlndXJhdGlvbiBmaWxlIGFuZCByZXR1cm5zIGEgZ29vZ2xlIG1hcHMgc3RhdGljIG1hcCB0byBiZSB1c2VkIGFzIGEgdGh1bWJuYWlsXHJcbiAgICpcclxuICAgKiBJbiBvcmRlciB0byBzcGVjaWZ5IGhlaWdodCBhbmQgd2lkdGgsIHlvdSBtdXN0IHNwZWNpZnkgQk9USCwgb3RoZXJ3aXNlLCB0aGUgZGVmYXVsdCBpcyAzMDB4MzAwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdldE1hcFRodW1ibmFpbChtYXA6IEluZGl2aWR1YWxNYXAsIHdpZHRoPywgaGVpZ2h0Pyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYGh0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9zdGF0aWNtYXA/Y2VudGVyPSR7bWFwLm9yaWdpbi5sYXR9LCR7bWFwLm9yaWdpbi5sbmd9XHJcbiAgICAmem9vbT0ke21hcC56b29tIC0gMn1cclxuICAgICZzaXplPSR7aGVpZ2h0ICYmIHdpZHRoID8gd2lkdGggOiAzMDB9eCR7aGVpZ2h0ICYmIHdpZHRoID8gaGVpZ2h0IDogMzAwfVxyXG4gICAgJmtleT1BSXphU3lBc0toNF9UWHBZVjU3U0JzN2ozYjZxRmNKVUc2Zk5Ib1VgO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKlxyXG4gICAqIFNldHMgdGhlIHByaW1hcnkgbWFwIHRvIHRoYXQgd2l0aCB0aGUgcGFzc2VkIGlkLFxyXG4gICAqXHJcbiAgICogU2V0cyB0aGUgc2Vjb25kYXJ5IG1hcHMgdG8gYSBsaXN0IG9mIGFsbCB0aGUgbWFwcyBtaW51cyB0aGF0IHdpdGggdGhlIHBhc3NlZCBpZFxyXG4gICAqXHJcbiAgICogRW1pdHMgdGhlIG5ldyBwcmltYXJ5IG1hcFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzZXRNYXBzV2l0aFByaW1hcnlJZChpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnByaW1hcnlNYXAgPSB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcEJ5SWQoaWQpO1xyXG4gICAgdGhpcy5tYXBMaXN0ID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCkuZmlsdGVyKG1hcCA9PiBtYXAuaWQgIT09IGlkKTtcclxuICAgIHRoaXMuTWFwQ2hhbmdlZC5lbWl0KHRoaXMucHJpbWFyeU1hcCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbWFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUsxRCxNQUFNLE9BQU8sVUFBVTs7Ozs7O0lBaURyQixZQUFzQixXQUErQixFQUFZLFNBQXlCO1FBQXBFLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWdCOzs7OztRQTlCbkYsZ0JBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUM7Ozs7UUFVcEcsa0JBQWEsR0FBc0IsSUFBSSxPQUFPLEVBQVksQ0FBQztRQUUzRCwyQkFBc0IsR0FBdUIsSUFBSSxPQUFPLEVBQWEsQ0FBQzs7OztRQUt0RSxxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBRXhDLG9CQUFlLEdBQUcsRUFBRSxDQUFDOzs7O1FBT3JCLGVBQVUsR0FBaUIsU0FBUyxDQUFDLG1CQUFtQixDQUFDO1FBSzlELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJ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LEdBQUc7aURBQzFCLENBQUM7SUFDaEQsQ0FBQzs7Ozs7Ozs7Ozs7OztJQVlTLG9CQUFvQixDQUFDLEVBQVU7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTTs7OztRQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7O1lBN1RGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQUxRLGtCQUFrQjtZQUNsQixjQUFjOzs7Ozs7Ozs7SUFZckIsZ0NBQW9DOzs7Ozs7SUFLcEMsNkJBQXdDOzs7OztJQU94QyxpQ0FBMkc7Ozs7O0lBSzNHLGdDQUErQzs7Ozs7SUFLL0MsbUNBQWtFOztJQUVsRSw0Q0FBNkU7Ozs7O0lBSzdFLHNDQUErQzs7SUFFL0MscUNBQTRCOztJQUU1QixtQ0FBZ0Q7Ozs7O0lBS2hELGdDQUFnRTs7Ozs7SUFJcEQsaUNBQXlDOzs7OztJQUFFLCtCQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmRpdmlkdWFsTWFwLCBNYXJrZXJJbmZvLCBNYXBNYXJrZXIgfSBmcm9tICdAbG93Y29kZXVuaXQvbGN1LW1hcC1jb21tb24nO1xyXG5pbXBvcnQgeyBUaHVtYm5haWxMaXN0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvdGh1bWJuYWlsLWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBUZW1wU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3RlbXAuc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYXRpb25Mb2FkZXIgfSBmcm9tICcuLi91dGlscy9sb2NhdGlvbi1sb2FkZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFwU2VydmljZSB7XHJcblxyXG4gIC8vIEZJRUxEU1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgcHJpbWFyeSBtYXAgdG8gYmUgZGlzcGxheWVkIC0gcmVwcmVzZW50cyB0aGUgY3VycmVudCBtYXAgYmVpbmcgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHByaW1hcnlNYXA6IEluZGl2aWR1YWxNYXA7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2Ygc2Vjb25kYXJ5IG1hcHMgYXZhaWxhYmxlIHRvIGNob29zZSBhcyBwcmltYXJ5IGFuZCBhbHNvIGZvciB1c2UgYXMgbGF5ZXJzIGluIHRoZSBwcmltYXJ5IG1hcFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtYXBMaXN0OiBBcnJheTxJbmRpdmlkdWFsTWFwPjtcclxuXHJcbiAgLy8gUFJPUEVSVElFU1xyXG5cclxuICAvKipcclxuICAgKiBDdXJhdGVkIGxpc3Qgb2YgYW1ibF9vbiBsb2NhdGlvbiBtYXJrZXJzXHJcbiAgICovXHJcbiAgcHVibGljIEN1cmF0ZWRMaXN0ID0gdGhpcy5sb2NMb2FkZXIuQ3JlYXRlTGF5ZXIoQ29uc3RhbnRzLkxPQ0FUSU9OU19UT19MT0FELCBDb25zdGFudHMuTUFQX0NPTkZJR19UT19MT0FEKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgbmV3IHByaW1hcnkgbWFwIGFueSB0aW1lIHRoZSBtYXBzIChwcmltYXJ5IGFuZCBzZWNvbmRhcnkpIGFyZSBjaGFuZ2VkXHJcbiAgICovXHJcbiAgcHVibGljIE1hcENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsTWFwPjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3ViamVjdCB0aGF0IGVtaXRzIGxhdC9sbmcgZm9yIG1hcCBwYW5uaW5nXHJcbiAgICovXHJcbiAgcHVibGljIExhdExuZ0VtaXR0ZXI6IFN1YmplY3Q8bnVtYmVyW10+ID0gbmV3IFN1YmplY3Q8bnVtYmVyW10+KCk7XHJcblxyXG4gIHB1YmxpYyBCYXNpY0luZm9XaW5kb3dFbWl0dGVyOiBTdWJqZWN0PE1hcE1hcmtlcj4gPSBuZXcgU3ViamVjdDxNYXBNYXJrZXI+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2YgYWN0aXZlIHNlY29uZGFyeSBsb2NhdGlvbnMgd2hpY2ggYXJlIGN1cnJlbnRseSBkaXNwbGF5ZWQgb24gdGhlIGN1cnJlbnQgbWFwXHJcbiAgICovXHJcbiAgcHVibGljIFZpc2libGVMb2NhdGlvbnM6IEFycmF5PE1hcE1hcmtlcj4gPSBbXTtcclxuXHJcbiAgcHVibGljIExlZ2VuZExvY2F0aW9ucyA9IFtdO1xyXG5cclxuICBwdWJsaWMgVGh1bWJuYWlsTGlzdDogQXJyYXk8VGh1bWJuYWlsTGlzdE1vZGVsPjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1hcmtlcnMgZm9yIHVzZSBpbiB0aGUgbWFwXHJcbiAgICovXHJcbiAgcHVibGljIE1hcmtlckxpc3Q6IE1hcmtlckluZm9bXSA9IENvbnN0YW50cy5ERUZBVUxUX01BUktFUl9JTkZPO1xyXG5cclxuICAvLyBDT05TVFJVQ1RPUlNcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHRlbXBTdG9yYWdlOiBUZW1wU3RvcmFnZVNlcnZpY2UsIHByb3RlY3RlZCBsb2NMb2FkZXI6IExvY2F0aW9uTG9hZGVyKSB7XHJcbiAgICB0aGlzLnByaW1hcnlNYXAgPSB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcExpc3QoKVswXTtcclxuICAgIHRoaXMubWFwTGlzdCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpLmZpbHRlcihtYXAgPT4gbWFwLmlkICE9PSB0aGlzLnByaW1hcnlNYXAuaWQpO1xyXG4gICAgdGhpcy5NYXBDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsTWFwPigpO1xyXG4gIH1cclxuXHJcbiAgLy8gTElGRSBDWUNMRVxyXG5cclxuICAvLyBBUEkgTUVUSE9EU1xyXG5cclxuICBwdWJsaWMgR2V0TGVnZW5kTG9jYXRpb25zKCkge1xyXG4gICAvL3RoaXMuTGVnZW5kTG9jYXRpb25zID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRMb2NhdGlvbkxlZ2VuZCgpO1xyXG4gICAgcmV0dXJuIHRoaXMuTGVnZW5kTG9jYXRpb25zO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGlzIG1hcGxpc3QgbGlzdCBvZiB0aHVtYm5haWxzIGFuZCB0aGVpciBpbmZvXHJcbiAgICovXHJcbiAgcHVibGljIEdldFRodW1ibmFpbExpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5UaHVtYm5haWxMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgcHJpbWFyeSBtYXAgdG8gYmUgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgcHVibGljIEdldFByaW1hcnlNYXAoKTogSW5kaXZpZHVhbE1hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmltYXJ5TWFwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBzZWNvbmRhcnkgKG5vbi1wcmltYXJ5KSBtYXBzXHJcbiAgICovXHJcbiAgcHVibGljIEdldE1hcExpc3QoKTogQXJyYXk8SW5kaXZpZHVhbE1hcD4ge1xyXG4gICAgLy8gcmV0dXJuIHRoaXMubWFwTGlzdDtcclxuICAgIHJldHVybiB0aGlzLm1hcExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgdGhlIG1hcHMgaW4gdGhlIGRiXHJcbiAgICovXHJcbiAgcHVibGljIEdldEFsbE1hcHMoKTogQXJyYXk8SW5kaXZpZHVhbE1hcD4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbWFwIHRvIHJldHJpZXZlXHJcbiAgICogXHJcbiAgICogUmV0dXJucyBhIHNwZWNpZmljIG1hcCB3aXRoIGEgc3BlY2lmaWMgaWRcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFwQnlJZChpZCk6IEluZGl2aWR1YWxNYXAge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwTGlzdC5maW5kKG1hcCA9PiBtYXAuaWQgPT09IGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1hcmtlcnMgZm9yIHVzZSBpbiBtYXBcclxuICAgKiBcclxuICAgKiBUaGlzIHdpbGwgY2FsbCBhIGJhY2sgZW5kIHNlcnZpY2UgZXZlbnR1YWxseSBhbmQgdGhlbiBmb3JtYXQgdGhlIHJlc3VsdHMgYWNjb3JkaW5nbHlcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFya2VyTGlzdCgpOiBNYXJrZXJJbmZvW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuTWFya2VyTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCB0byBhZGRcclxuICAgKiBcclxuICAgKiBBZGRzIHRoZSBtYXAgdG8gdGhlIG1hcCBhcnJheVxyXG4gICAqL1xyXG4gIHB1YmxpYyBBZGRNYXAobWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLkFkZE1hcFRvTGlzdChtYXApO1xyXG4gICAgdGhpcy5zZXRNYXBzV2l0aFByaW1hcnlJZChtYXAuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGxhdCBUaGUgbGF0aXR1ZGUgdG8gcGFuIHRvXHJcbiAgICogQHBhcmFtIGxuZyBUaGUgbG9uZ2l0dWRlIHRvIHBhbiB0b1xyXG4gICAqIFxyXG4gICAqIFRha2VzIGEgbGF0L2xuZyBhbmQgZW1pdHMgZXZlbnQgZm9yIG1hcCB0byBsaXN0ZW4gdG9cclxuICAgKi9cclxuICBwdWJsaWMgQ2hhbmdlTGF0TG5nKGxhdCwgbG5nKTogdm9pZCB7XHJcbiAgICB0aGlzLkxhdExuZ0VtaXR0ZXIubmV4dChbbGF0LCBsbmddKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIG1hcmtlclxyXG4gICAqIFxyXG4gICAqIFRha2VzIGEgbWFya2VyIGZyb20gdGhlIGxlZ2VuZCBhbmQgc2VuZCB0byBsY3UtbWFwXHJcbiAgICovXHJcbiAgcHVibGljIERpc3BsYXlCYXNpY0luZm8obWFya2VyOiBNYXBNYXJrZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuQmFzaWNJbmZvV2luZG93RW1pdHRlci5uZXh0KG1hcmtlcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbGlzdCBUaGUgbGlzdCBvZiB2aXNpYmxlIGxvY2F0aW9uc1xyXG4gICAqIFxyXG4gICAqIFdoZW4gbWFwIHVwZGF0ZXMgdGhlIHZpc2libGUgbG9jYXRpb25zLCB0aGlzLlZpc2libGVMb2NhdGlvbnMgd2lsbCBiZSB1cGRhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIFVwZGF0ZVZpc2libGVMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy5WaXNpYmxlTG9jYXRpb25zID0gbGlzdDtcclxuICAgIGNvbnNvbGUubG9nKFwidmlzaWJsZSBsb2NhdGlvbnMgdXBkYXRlZDogXCIsIGxpc3QpO1xyXG4gICAgaWYgKHRoaXMuVmlzaWJsZUxvY2F0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuVXBkYXRlTGVnZW5kTG9jYXRpb25zKHRoaXMuVmlzaWJsZUxvY2F0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0aGlzLlZpc2libGVMb2NhdGlvbnM7XHJcbiAgICAvLyBpZih0aGlzLlZpc2libGVMb2NhdGlvbnMgIT09IHRoaXMuTGVnZW5kTG9jYXRpb25zKXtcclxuICAgIC8vICAgY29uc29sZS5sb2coXCJVcGRhdGluZyBsZWdlbmRcIilcclxuICAgIC8vICAgdGhpcy5BZGRUb0xlZ2VuZExvY2F0aW9ucyhsaXN0KTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBBZGRUb0xlZ2VuZExvY2F0aW9ucyh2aXNMb2M6IEFycmF5PE1hcE1hcmtlcj4pIHtcclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJ2aXNMb2MgPSBcIiwgdmlzTG9jKTtcclxuICAvLyAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmlzTG9jLmxlbmd0aDsgaSsrKSB7XHJcbiAgLy8gICAgIGxldCB0ZW1wSWQgPSB2aXNMb2NbaV0uaWQ7XHJcbiAgLy8gICAgIGlmICh0aGlzLkxlZ2VuZExvY2F0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlkID09PSB0ZW1wSWQpLmxlbmd0aCA9PT0gMCkge1xyXG4gIC8vICAgICAgIHRoaXMuTGVnZW5kTG9jYXRpb25zLnB1c2godmlzTG9jW2ldKTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgICBlbHNlIHtcclxuICAvLyAgICAgICB0aGlzLkNoZWNrSW5mbyh2aXNMb2NbaV0pO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwiYWRkZWQgdG8gTGVnZW5kQXJyYXkgXCIsIHRoaXMuTGVnZW5kTG9jYXRpb25zKTtcclxuICAvLyAgIHRoaXMuVXBkYXRlTGVnZW5kTG9jYXRpb25zKHRoaXMuTGVnZW5kTG9jYXRpb25zKTtcclxuICAvLyAgIC8vdGhpcy5VcGRhdGVWaXNpYmxlTG9jYXRpb25zKHRoaXMuTGVnZW5kTG9jYXRpb25zKTtcclxuICAvLyB9XHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIHRvIGluc3VyZSB0aGF0IHRoZSBsb2NhdGlvbiBkaXNwbGF5ZWQgaW4gdGhlIGxlZ2VuZCBtYXRjaGVzIHRoYXQgb2YgdGhlIHZpc2libGUgbG9jYXRpb25zXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG1hcmtlclxyXG4gICAqL1xyXG4gIC8vIHB1YmxpYyBDaGVja0luZm8obWFya2VyOiBNYXBNYXJrZXIpIHtcclxuICAvLyAgIGxldCB0ZW1wTWFya2VyID0gdGhpcy5MZWdlbmRMb2NhdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pZCA9PT0gbWFya2VyLmlkKTtcclxuICAvLyAgIGxldCBpbmRleCA9IHRoaXMuTGVnZW5kTG9jYXRpb25zLmluZGV4T2YodGVtcE1hcmtlclswXSk7XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwiaW5kZXggPSBcIiwgaW5kZXgpO1xyXG4gIC8vICAgLy9jb25zb2xlLmxvZyhcInRlbXBNYXJrZXIgPSBcIiwgdGVtcE1hcmtlcik7XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwibWFya2VyID0gXCIsIG1hcmtlcik7XHJcbiAgLy8gICB0aGlzLkxlZ2VuZExvY2F0aW9uc1tpbmRleF0gPSBtYXJrZXI7XHJcbiAgLy8gfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBsZWdlbmQgYXJyYXlcclxuICAgKiBAcGFyYW0gbGlzdCBcclxuICAgKi9cclxuICBwdWJsaWMgVXBkYXRlTGVnZW5kTG9jYXRpb25zKGxpc3QpOiB2b2lkIHtcclxuICAgIGxldCB0ZW1wOiBBcnJheTxNYXBNYXJrZXI+ID0gbmV3IEFycmF5PE1hcE1hcmtlcj4oKTtcclxuICAgIGNvbnNvbGUubG9nKFwibWFzdGVyIGxpc3QgbGVuZ3RoXCIsdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXN0ZXJMb2NhdGlvbkxlZ2VuZCgpLmxlbmd0aCk7XHJcbiAgICBpZiAodGhpcy50ZW1wU3RvcmFnZS5HZXRNYXN0ZXJMb2NhdGlvbkxlZ2VuZCgpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLkxlZ2VuZExvY2F0aW9ucyA9IHRoaXMuVmlzaWJsZUxvY2F0aW9ucztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgdGVtcE1hcmtlcjpNYXBNYXJrZXIgPSB0aGlzLnRlbXBTdG9yYWdlLkdldExvY2F0aW9uQnlJZChsaXN0W2ldLmlkKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInRlbXBNYXJrZXIgPSBcIiwgdGVtcE1hcmtlcik7XHJcbiAgICAgICAgaWYgKHRlbXBNYXJrZXIpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwicHVzaGluZyBpbiBpZlwiKTtcclxuICAgICAgICAgIHRlbXAucHVzaCh0ZW1wTWFya2VyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInB1c2hpbmcgaW4gZWxzZVwiKTtcclxuICAgICAgICAgIHRlbXAucHVzaChsaXN0W2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuTGVnZW5kTG9jYXRpb25zID0gdGVtcDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBsaXN0IHNhdmVzIHRoZSBsZWdlbmQgdG8gbG9jYWwgc3RvcmFnZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBTYXZlTGVnZW5kTG9jYXRpb25zKGxpc3QpOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuU2F2ZUxvY2F0aW9uTGVnZW5kKGxpc3QpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIHRvIHJlcGxhY2UgdGhlIG9ubGQgb25lIHdpdGhcclxuICAgKiBcclxuICAgKiBUaGlzIHJlcGxhY2VzIHRoZSBtYXAgaW4gdGhlIGRiIHdpdGggdGhlIG1hcCAoYmFzZWQgb24gaWQpXHJcbiAgICovXHJcbiAgcHVibGljIFJlcGxhY2VNYXAobWFwOiBJbmRpdmlkdWFsTWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLlJlcGxhY2VNYXAobWFwKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBMaXN0T2ZNYXBzIFRoZSBsaXN0IG9mIG1hcHMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBnZXQgdGhlIHRodW1ibmFpbHMgYW5kIG90aGVyIGluZm8gZm9yXHJcbiAgICogXHJcbiAgICogYSB0aHVtYm5haWwgbGlzdCBjb250YWlucyB0aGUgaW1nIHVybCwgdGhlIHRpdGxlIG9mIHRoZSBtYXAsIGFuZCB0aGUgbGF0IGFuZCBsb25nIG9mIHRoZSBvcmdpblxyXG4gICAqIFxyXG4gICAqL1xyXG4gIHB1YmxpYyBCdWlsZFRodW1ibmFpbExpc3QoTGlzdE9mTWFwczogQXJyYXk8SW5kaXZpZHVhbE1hcD4pOiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+IHtcclxuICAgIHZhciB0ZW1wVGh1bWJuYWlsTGlzdCA9IG5ldyBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+KCk7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IExpc3RPZk1hcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIHRlbXAgPSBuZXcgVGh1bWJuYWlsTGlzdE1vZGVsKExpc3RPZk1hcHNbaV0sIHRoaXMuZ2V0TWFwVGh1bWJuYWlsKExpc3RPZk1hcHNbaV0sIDIwMCwgMjAwKSwgTGlzdE9mTWFwc1tpXS50aXRsZSwgTGlzdE9mTWFwc1tpXS5vcmlnaW4ubGF0LCBMaXN0T2ZNYXBzW2ldLm9yaWdpbi5sbmcpO1xyXG4gICAgICB0ZW1wVGh1bWJuYWlsTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIHNvcnRzIGJhc2VkIG9uIHRoZSBUaXRsZSBvZiB0aGUgbWFwIHNvIHRoZSB0aHVtYm5haWwgbGlzdCBpcyBpbiBhbHBoYWJldGljYWwgb3JkZXJcclxuICAgICAqL1xyXG4gICAgdGVtcFRodW1ibmFpbExpc3Quc29ydCgodDEsIHQyKSA9PiB7XHJcbiAgICAgIHJldHVybiB0MS5UaXRsZS50b1VwcGVyQ2FzZSgpID4gdDIuVGl0bGUudG9VcHBlckNhc2UoKSA/IDEgOiAtMTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRlbXBUaHVtYm5haWxMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbmV3IHByaW1hcnkgbWFwXHJcbiAgICogXHJcbiAgICogQ2FsbHMgdGhlIHByb3RlY3RlZCBtZXRob2QgXCJzZXRNYXBzV2l0aFByaW1hcnlJZFwiXHJcbiAgICovXHJcbiAgcHVibGljIFByaW1hcnlNYXBDaGFuZ2VkKGlkKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE1hcHNXaXRoUHJpbWFyeUlkKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgYWxsIHRoZSBtYXBzIGZyb20gdGhlIGRiIChmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5KVxyXG4gICAqL1xyXG4gIHB1YmxpYyBEZWxldGVNYXBzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW1wU3RvcmFnZS5EZWxldGVNYXBMaXN0KCk7XHJcbiAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAqIEN1cmF0ZWQgbGlzdCBvZiBhbWJsX29uIGxvY2F0aW9uIG1hcmtlcnNcclxuICAgKi9cclxuICBwdWJsaWMgR2V0Q3VyYXRlZExpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2NMb2FkZXIuQ3JlYXRlTGF5ZXIoQ29uc3RhbnRzLkpTT05fREFUQV9GT1JfTE9DQVRJT05fQ09OVkVSU0lPTiwgQ29uc3RhbnRzLk1BUF9DT05GSUdfVE9fTE9BRCk7XHJcbiAgfVxyXG4gIC8vIEhFTFBFUlNcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgY29uZmlndXJhdGlvbiBmcm9tIHdoaWNoIHlvdSB3YW50IHRvIGNyZWF0ZSBhIHRodW1ibmFpbFxyXG4gICAqIEBwYXJhbSB3aWR0aCBPcHRpb25hbCB3aWR0aCBwYXJhbWV0ZXIgKG11c3QgYWxzbyBpbmNsdWRlIGhlaWd0aClcclxuICAgKiBAcGFyYW0gaGVpZ2h0IE9wdGlvbmFsIGhlaWdodCBwYXJhbWV0ZXIgKG11c3QgYWxzbyBpbmNsdWRlIHdpZHRoKVxyXG4gICAqXHJcbiAgICogVGFrZXMgYSBtYXAgY29uZmlndXJhdGlvbiBmaWxlIGFuZCByZXR1cm5zIGEgZ29vZ2xlIG1hcHMgc3RhdGljIG1hcCB0byBiZSB1c2VkIGFzIGEgdGh1bWJuYWlsXHJcbiAgICpcclxuICAgKiBJbiBvcmRlciB0byBzcGVjaWZ5IGhlaWdodCBhbmQgd2lkdGgsIHlvdSBtdXN0IHNwZWNpZnkgQk9USCwgb3RoZXJ3aXNlLCB0aGUgZGVmYXVsdCBpcyAzMDB4MzAwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdldE1hcFRodW1ibmFpbChtYXA6IEluZGl2aWR1YWxNYXAsIHdpZHRoPywgaGVpZ2h0Pyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYGh0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9zdGF0aWNtYXA/Y2VudGVyPSR7bWFwLm9yaWdpbi5sYXR9LCR7bWFwLm9yaWdpbi5sbmd9XHJcbiAgICAmem9vbT0ke21hcC56b29tIC0gMn1cclxuICAgICZzaXplPSR7aGVpZ2h0ICYmIHdpZHRoID8gd2lkdGggOiAzMDB9eCR7aGVpZ2h0ICYmIHdpZHRoID8gaGVpZ2h0IDogMzAwfVxyXG4gICAgJmtleT1BSXphU3lBc0toNF9UWHBZVjU3U0JzN2ozYjZxRmNKVUc2Zk5Ib1VgO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKlxyXG4gICAqIFNldHMgdGhlIHByaW1hcnkgbWFwIHRvIHRoYXQgd2l0aCB0aGUgcGFzc2VkIGlkLFxyXG4gICAqXHJcbiAgICogU2V0cyB0aGUgc2Vjb25kYXJ5IG1hcHMgdG8gYSBsaXN0IG9mIGFsbCB0aGUgbWFwcyBtaW51cyB0aGF0IHdpdGggdGhlIHBhc3NlZCBpZFxyXG4gICAqXHJcbiAgICogRW1pdHMgdGhlIG5ldyBwcmltYXJ5IG1hcFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzZXRNYXBzV2l0aFByaW1hcnlJZChpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnByaW1hcnlNYXAgPSB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcEJ5SWQoaWQpO1xyXG4gICAgdGhpcy5tYXBMaXN0ID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCkuZmlsdGVyKG1hcCA9PiBtYXAuaWQgIT09IGlkKTtcclxuICAgIHRoaXMuTWFwQ2hhbmdlZC5lbWl0KHRoaXMucHJpbWFyeU1hcCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= |
@@ -515,4 +515,4 @@ /** | ||
/** | ||
* Curated list of ambl_on location markers | ||
*/ | ||
* Curated list of ambl_on location markers | ||
*/ | ||
/** | ||
@@ -682,2 +682,2 @@ * Curated list of ambl_on location markers | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbWFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUUxRDtJQWtERSxlQUFlO0lBRWYsb0JBQXNCLFdBQStCLEVBQVksU0FBeUI7UUFBMUYsaUJBSUM7UUFKcUIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQVksY0FBUyxHQUFULFNBQVMsQ0FBZ0I7Ozs7O1FBOUJuRixnQkFBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQzs7OztRQVVwRyxrQkFBYSxHQUFzQixJQUFJLE9BQU8sRUFBWSxDQUFDO1FBRTNELDJCQUFzQixHQUF1QixJQUFJLE9BQU8sRUFBYSxDQUFDOzs7O1FBS3RFLHFCQUFnQixHQUFxQixFQUFFLENBQUM7UUFFeEMsb0JBQWUsR0FBRyxFQUFFLENBQUM7Ozs7UUFPckIsZUFBVSxHQUFpQixTQUFTLENBQUMsbUJBQW1CLENBQUM7UUFLOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25E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Ozs7Ozs7Ozs7OztJQUE5QixVQUErQixFQUFVO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU07Ozs7UUFBQyxVQUFBLEdBQUcsSUFBSSxPQUFBLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFiLENBQWEsRUFBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDOztnQkE5VEYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFMUSxrQkFBa0I7Z0JBQ2xCLGNBQWM7OztxQkFOdkI7Q0F3VUMsQUFoVUQsSUFnVUM7U0E3VFksVUFBVTs7Ozs7OztJQU9yQixnQ0FBb0M7Ozs7OztJQUtwQyw2QkFBd0M7Ozs7O0lBT3hDLGlDQUEyRzs7Ozs7SUFLM0csZ0NBQStDOzs7OztJQUsvQyxtQ0FBa0U7O0lBRWxFLDRDQUE2RTs7Ozs7SUFLN0Usc0NBQStDOztJQUUvQyxxQ0FBNEI7O0lBRTVCLG1DQUFnRDs7Ozs7SUFLaEQsZ0NBQWdFOzs7OztJQUlwRCxpQ0FBeUM7Ozs7O0lBQUUsK0JBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxNYXAsIE1hcmtlckluZm8sIE1hcE1hcmtlciB9IGZyb20gJ0Bsb3djb2RldW5pdC9sY3UtbWFwLWNvbW1vbic7XHJcbmltcG9ydCB7IFRodW1ibmFpbExpc3RNb2RlbCB9IGZyb20gJy4uL21vZGVscy90aHVtYm5haWwtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vdXRpbHMvY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFRlbXBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vdGVtcC5zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbkxvYWRlciB9IGZyb20gJy4uL3V0aWxzL2xvY2F0aW9uLWxvYWRlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXBTZXJ2aWNlIHtcclxuXHJcbiAgLy8gRklFTERTXHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBwcmltYXJ5IG1hcCB0byBiZSBkaXNwbGF5ZWQgLSByZXByZXNlbnRzIHRoZSBjdXJyZW50IG1hcCBiZWluZyBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcHJpbWFyeU1hcDogSW5kaXZpZHVhbE1hcDtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiBzZWNvbmRhcnkgbWFwcyBhdmFpbGFibGUgdG8gY2hvb3NlIGFzIHByaW1hcnkgYW5kIGFsc28gZm9yIHVzZSBhcyBsYXllcnMgaW4gdGhlIHByaW1hcnkgbWFwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIG1hcExpc3Q6IEFycmF5PEluZGl2aWR1YWxNYXA+O1xyXG5cclxuICAvLyBQUk9QRVJUSUVTXHJcblxyXG4gIC8qKlxyXG4gICAqIEN1cmF0ZWQgbGlzdCBvZiBhbWJsX29uIGxvY2F0aW9uIG1hcmtlcnNcclxuICAgKi9cclxuICBwdWJsaWMgQ3VyYXRlZExpc3QgPSB0aGlzLmxvY0xvYWRlci5DcmVhdGVMYXllcihDb25zdGFudHMuTE9DQVRJT05TX1RPX0xPQUQsIENvbnN0YW50cy5NQVBfQ09ORklHX1RPX0xPQUQpO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBuZXcgcHJpbWFyeSBtYXAgYW55IHRpbWUgdGhlIG1hcHMgKHByaW1hcnkgYW5kIHNlY29uZGFyeSkgYXJlIGNoYW5nZWRcclxuICAgKi9cclxuICBwdWJsaWMgTWFwQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEluZGl2aWR1YWxNYXA+O1xyXG5cclxuICAvKipcclxuICAgKiBTdWJqZWN0IHRoYXQgZW1pdHMgbGF0L2xuZyBmb3IgbWFwIHBhbm5pbmdcclxuICAgKi9cclxuICBwdWJsaWMgTGF0TG5nRW1pdHRlcjogU3ViamVjdDxudW1iZXJbXT4gPSBuZXcgU3ViamVjdDxudW1iZXJbXT4oKTtcclxuXHJcbiAgcHVibGljIEJhc2ljSW5mb1dpbmRvd0VtaXR0ZXI6IFN1YmplY3Q8TWFwTWFya2VyPiA9IG5ldyBTdWJqZWN0PE1hcE1hcmtlcj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiBhY3RpdmUgc2Vjb25kYXJ5IGxvY2F0aW9ucyB3aGljaCBhcmUgY3VycmVudGx5IGRpc3BsYXllZCBvbiB0aGUgY3VycmVudCBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgVmlzaWJsZUxvY2F0aW9uczogQXJyYXk8TWFwTWFya2VyPiA9IFtdO1xyXG5cclxuICBwdWJsaWMgTGVnZW5kTG9jYXRpb25zID0gW107XHJcblxyXG4gIHB1YmxpYyBUaHVtYm5haWxMaXN0OiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbGlzdCBvZiBhdmFpbGFibGUgbWFya2VycyBmb3IgdXNlIGluIHRoZSBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgTWFya2VyTGlzdDogTWFya2VySW5mb1tdID0gQ29uc3RhbnRzLkRFRkFVTFRfTUFSS0VSX0lORk87XHJcblxyXG4gIC8vIENPTlNUUlVDVE9SU1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdGVtcFN0b3JhZ2U6IFRlbXBTdG9yYWdlU2VydmljZSwgcHJvdGVjdGVkIGxvY0xvYWRlcjogTG9jYXRpb25Mb2FkZXIpIHtcclxuICAgIHRoaXMucHJpbWFyeU1hcCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpWzBdO1xyXG4gICAgdGhpcy5tYXBMaXN0ID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCkuZmlsdGVyKG1hcCA9PiBtYXAuaWQgIT09IHRoaXMucHJpbWFyeU1hcC5pZCk7XHJcbiAgICB0aGlzLk1hcENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEluZGl2aWR1YWxNYXA+KCk7XHJcbiAgfVxyXG5cclxuICAvLyBMSUZFIENZQ0xFXHJcblxyXG4gIC8vIEFQSSBNRVRIT0RTXHJcblxyXG4gIHB1YmxpYyBHZXRMZWdlbmRMb2NhdGlvbnMoKSB7XHJcbiAgIC8vdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0aGlzLnRlbXBTdG9yYWdlLkdldExvY2F0aW9uTGVnZW5kKCk7XHJcbiAgICByZXR1cm4gdGhpcy5MZWdlbmRMb2NhdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoaXMgbWFwbGlzdCBsaXN0IG9mIHRodW1ibmFpbHMgYW5kIHRoZWlyIGluZm9cclxuICAgKi9cclxuICBwdWJsaWMgR2V0VGh1bWJuYWlsTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLlRodW1ibmFpbExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBwcmltYXJ5IG1hcCB0byBiZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBwdWJsaWMgR2V0UHJpbWFyeU1hcCgpOiBJbmRpdmlkdWFsTWFwIHtcclxuICAgIHJldHVybiB0aGlzLnByaW1hcnlNYXA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHNlY29uZGFyeSAobm9uLXByaW1hcnkpIG1hcHNcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFwTGlzdCgpOiBBcnJheTxJbmRpdmlkdWFsTWFwPiB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5tYXBMaXN0O1xyXG4gICAgcmV0dXJuIHRoaXMubWFwTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCB0aGUgbWFwcyBpbiB0aGUgZGJcclxuICAgKi9cclxuICBwdWJsaWMgR2V0QWxsTWFwcygpOiBBcnJheTxJbmRpdmlkdWFsTWFwPiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBtYXAgdG8gcmV0cmlldmVcclxuICAgKiBcclxuICAgKiBSZXR1cm5zIGEgc3BlY2lmaWMgbWFwIHdpdGggYSBzcGVjaWZpYyBpZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRNYXBCeUlkKGlkKTogSW5kaXZpZHVhbE1hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXBMaXN0LmZpbmQobWFwID0+IG1hcC5pZCA9PT0gaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbWFya2VycyBmb3IgdXNlIGluIG1hcFxyXG4gICAqIFxyXG4gICAqIFRoaXMgd2lsbCBjYWxsIGEgYmFjayBlbmQgc2VydmljZSBldmVudHVhbGx5IGFuZCB0aGVuIGZvcm1hdCB0aGUgcmVzdWx0cyBhY2NvcmRpbmdseVxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRNYXJrZXJMaXN0KCk6IE1hcmtlckluZm9bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5NYXJrZXJMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIHRvIGFkZFxyXG4gICAqIFxyXG4gICAqIEFkZHMgdGhlIG1hcCB0byB0aGUgbWFwIGFycmF5XHJcbiAgICovXHJcbiAgcHVibGljIEFkZE1hcChtYXApOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuQWRkTWFwVG9MaXN0KG1hcCk7XHJcbiAgICB0aGlzLnNldE1hcHNXaXRoUHJpbWFyeUlkKG1hcC5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbGF0IFRoZSBsYXRpdHVkZSB0byBwYW4gdG9cclxuICAgKiBAcGFyYW0gbG5nIFRoZSBsb25naXR1ZGUgdG8gcGFuIHRvXHJcbiAgICogXHJcbiAgICogVGFrZXMgYSBsYXQvbG5nIGFuZCBlbWl0cyBldmVudCBmb3IgbWFwIHRvIGxpc3RlbiB0b1xyXG4gICAqL1xyXG4gIHB1YmxpYyBDaGFuZ2VMYXRMbmcobGF0LCBsbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuTGF0TG5nRW1pdHRlci5uZXh0KFtsYXQsIGxuZ10pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAcGFyYW0gbWFya2VyXHJcbiAgICogXHJcbiAgICogVGFrZXMgYSBtYXJrZXIgZnJvbSB0aGUgbGVnZW5kIGFuZCBzZW5kIHRvIGxjdS1tYXBcclxuICAgKi9cclxuICBwdWJsaWMgRGlzcGxheUJhc2ljSW5mbyhtYXJrZXI6IE1hcE1hcmtlcik6IHZvaWQge1xyXG4gICAgdGhpcy5CYXNpY0luZm9XaW5kb3dFbWl0dGVyLm5leHQobWFya2VyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBsaXN0IFRoZSBsaXN0IG9mIHZpc2libGUgbG9jYXRpb25zXHJcbiAgICogXHJcbiAgICogV2hlbiBtYXAgdXBkYXRlcyB0aGUgdmlzaWJsZSBsb2NhdGlvbnMsIHRoaXMuVmlzaWJsZUxvY2F0aW9ucyB3aWxsIGJlIHVwZGF0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgVXBkYXRlVmlzaWJsZUxvY2F0aW9ucyhsaXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLlZpc2libGVMb2NhdGlvbnMgPSBsaXN0O1xyXG4gICAgY29uc29sZS5sb2coXCJ2aXNpYmxlIGxvY2F0aW9ucyB1cGRhdGVkOiBcIiwgbGlzdCk7XHJcbiAgICBpZiAodGhpcy5WaXNpYmxlTG9jYXRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5VcGRhdGVMZWdlbmRMb2NhdGlvbnModGhpcy5WaXNpYmxlTG9jYXRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLkxlZ2VuZExvY2F0aW9ucyA9IHRoaXMuVmlzaWJsZUxvY2F0aW9ucztcclxuICAgIC8vIGlmKHRoaXMuVmlzaWJsZUxvY2F0aW9ucyAhPT0gdGhpcy5MZWdlbmRMb2NhdGlvbnMpe1xyXG4gICAgLy8gICBjb25zb2xlLmxvZyhcIlVwZGF0aW5nIGxlZ2VuZFwiKVxyXG4gICAgLy8gICB0aGlzLkFkZFRvTGVnZW5kTG9jYXRpb25zKGxpc3QpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIEFkZFRvTGVnZW5kTG9jYXRpb25zKHZpc0xvYzogQXJyYXk8TWFwTWFya2VyPikge1xyXG4gIC8vICAgLy9jb25zb2xlLmxvZyhcInZpc0xvYyA9IFwiLCB2aXNMb2MpO1xyXG4gIC8vICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2aXNMb2MubGVuZ3RoOyBpKyspIHtcclxuICAvLyAgICAgbGV0IHRlbXBJZCA9IHZpc0xvY1tpXS5pZDtcclxuICAvLyAgICAgaWYgKHRoaXMuTGVnZW5kTG9jYXRpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgPT09IHRlbXBJZCkubGVuZ3RoID09PSAwKSB7XHJcbiAgLy8gICAgICAgdGhpcy5MZWdlbmRMb2NhdGlvbnMucHVzaCh2aXNMb2NbaV0pO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICAgIGVsc2Uge1xyXG4gIC8vICAgICAgIHRoaXMuQ2hlY2tJbmZvKHZpc0xvY1tpXSk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJhZGRlZCB0byBMZWdlbmRBcnJheSBcIiwgdGhpcy5MZWdlbmRMb2NhdGlvbnMpO1xyXG4gIC8vICAgdGhpcy5VcGRhdGVMZWdlbmRMb2NhdGlvbnModGhpcy5MZWdlbmRMb2NhdGlvbnMpO1xyXG4gIC8vICAgLy90aGlzLlVwZGF0ZVZpc2libGVMb2NhdGlvbnModGhpcy5MZWdlbmRMb2NhdGlvbnMpO1xyXG4gIC8vIH1cclxuICAvKipcclxuICAgKiBDaGVja3MgdG8gaW5zdXJlIHRoYXQgdGhlIGxvY2F0aW9uIGRpc3BsYXllZCBpbiB0aGUgbGVnZW5kIG1hdGNoZXMgdGhhdCBvZiB0aGUgdmlzaWJsZSBsb2NhdGlvbnNcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbWFya2VyXHJcbiAgICovXHJcbiAgLy8gcHVibGljIENoZWNrSW5mbyhtYXJrZXI6IE1hcE1hcmtlcikge1xyXG4gIC8vICAgbGV0IHRlbXBNYXJrZXIgPSB0aGlzLkxlZ2VuZExvY2F0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlkID09PSBtYXJrZXIuaWQpO1xyXG4gIC8vICAgbGV0IGluZGV4ID0gdGhpcy5MZWdlbmRMb2NhdGlvbnMuaW5kZXhPZih0ZW1wTWFya2VyWzBdKTtcclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJpbmRleCA9IFwiLCBpbmRleCk7XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwidGVtcE1hcmtlciA9IFwiLCB0ZW1wTWFya2VyKTtcclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJtYXJrZXIgPSBcIiwgbWFya2VyKTtcclxuICAvLyAgIHRoaXMuTGVnZW5kTG9jYXRpb25zW2luZGV4XSA9IG1hcmtlcjtcclxuICAvLyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGxlZ2VuZCBhcnJheVxyXG4gICAqIEBwYXJhbSBsaXN0IFxyXG4gICAqL1xyXG4gIHB1YmxpYyBVcGRhdGVMZWdlbmRMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgbGV0IHRlbXA6IEFycmF5PE1hcE1hcmtlcj4gPSBuZXcgQXJyYXk8TWFwTWFya2VyPigpO1xyXG4gICAgY29uc29sZS5sb2coXCJtYXN0ZXIgbGlzdCBsZW5ndGhcIix0aGlzLnRlbXBTdG9yYWdlLkdldE1hc3RlckxvY2F0aW9uTGVnZW5kKCkubGVuZ3RoKTtcclxuICAgIGlmICh0aGlzLnRlbXBTdG9yYWdlLkdldE1hc3RlckxvY2F0aW9uTGVnZW5kKCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuTGVnZW5kTG9jYXRpb25zID0gdGhpcy5WaXNpYmxlTG9jYXRpb25zO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCB0ZW1wTWFya2VyOk1hcE1hcmtlciA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TG9jYXRpb25CeUlkKGxpc3RbaV0uaWQpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwidGVtcE1hcmtlciA9IFwiLCB0ZW1wTWFya2VyKTtcclxuICAgICAgICBpZiAodGVtcE1hcmtlcikge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJwdXNoaW5nIGluIGlmXCIpO1xyXG4gICAgICAgICAgdGVtcC5wdXNoKHRlbXBNYXJrZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwicHVzaGluZyBpbiBlbHNlXCIpO1xyXG4gICAgICAgICAgdGVtcC5wdXNoKGxpc3RbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0ZW1wO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGxpc3Qgc2F2ZXMgdGhlIGxlZ2VuZCB0byBsb2NhbCBzdG9yYWdlXHJcbiAgICovXHJcbiAgcHVibGljIFNhdmVMZWdlbmRMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW1wU3RvcmFnZS5TYXZlTG9jYXRpb25MZWdlbmQobGlzdCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgdG8gcmVwbGFjZSB0aGUgb25sZCBvbmUgd2l0aFxyXG4gICAqIFxyXG4gICAqIFRoaXMgcmVwbGFjZXMgdGhlIG1hcCBpbiB0aGUgZGIgd2l0aCB0aGUgbWFwIChiYXNlZCBvbiBpZClcclxuICAgKi9cclxuICBwdWJsaWMgUmVwbGFjZU1hcChtYXA6IEluZGl2aWR1YWxNYXApOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuUmVwbGFjZU1hcChtYXApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIExpc3RPZk1hcHMgVGhlIGxpc3Qgb2YgbWFwcyB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGdldCB0aGUgdGh1bWJuYWlscyBhbmQgb3RoZXIgaW5mbyBmb3JcclxuICAgKiBcclxuICAgKiBhIHRodW1ibmFpbCBsaXN0IGNvbnRhaW5zIHRoZSBpbWcgdXJsLCB0aGUgdGl0bGUgb2YgdGhlIG1hcCwgYW5kIHRoZSBsYXQgYW5kIGxvbmcgb2YgdGhlIG9yZ2luXHJcbiAgICogXHJcbiAgICovXHJcbiAgcHVibGljIEJ1aWxkVGh1bWJuYWlsTGlzdChMaXN0T2ZNYXBzOiBBcnJheTxJbmRpdmlkdWFsTWFwPik6IEFycmF5PFRodW1ibmFpbExpc3RNb2RlbD4ge1xyXG4gICAgdmFyIHRlbXBUaHVtYm5haWxMaXN0ID0gbmV3IEFycmF5PFRodW1ibmFpbExpc3RNb2RlbD4oKTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgTGlzdE9mTWFwcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgdGVtcCA9IG5ldyBUaHVtYm5haWxMaXN0TW9kZWwoTGlzdE9mTWFwc1tpXSwgdGhpcy5nZXRNYXBUaHVtYm5haWwoTGlzdE9mTWFwc1tpXSwgMjAwLCAyMDApLCBMaXN0T2ZNYXBzW2ldLnRpdGxlLCBMaXN0T2ZNYXBzW2ldLm9yaWdpbi5sYXQsIExpc3RPZk1hcHNbaV0ub3JpZ2luLmxuZyk7XHJcbiAgICAgIHRlbXBUaHVtYm5haWxMaXN0LnB1c2godGVtcCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgc29ydHMgYmFzZWQgb24gdGhlIFRpdGxlIG9mIHRoZSBtYXAgc28gdGhlIHRodW1ibmFpbCBsaXN0IGlzIGluIGFscGhhYmV0aWNhbCBvcmRlclxyXG4gICAgICovXHJcbiAgICB0ZW1wVGh1bWJuYWlsTGlzdC5zb3J0KCh0MSwgdDIpID0+IHtcclxuICAgICAgcmV0dXJuIHQxLlRpdGxlLnRvVXBwZXJDYXNlKCkgPiB0Mi5UaXRsZS50b1VwcGVyQ2FzZSgpID8gMSA6IC0xO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGVtcFRodW1ibmFpbExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKiBcclxuICAgKiBDYWxscyB0aGUgcHJvdGVjdGVkIG1ldGhvZCBcInNldE1hcHNXaXRoUHJpbWFyeUlkXCJcclxuICAgKi9cclxuICBwdWJsaWMgUHJpbWFyeU1hcENoYW5nZWQoaWQpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0TWFwc1dpdGhQcmltYXJ5SWQoaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBhbGwgdGhlIG1hcHMgZnJvbSB0aGUgZGIgKGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkpXHJcbiAgICovXHJcbiAgcHVibGljIERlbGV0ZU1hcHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLkRlbGV0ZU1hcExpc3QoKTtcclxuICB9XHJcblxyXG5cclxuICAgLyoqXHJcbiAgICogQ3VyYXRlZCBsaXN0IG9mIGFtYmxfb24gbG9jYXRpb24gbWFya2Vyc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRDdXJhdGVkTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmxvY0xvYWRlci5DcmVhdGVMYXllcihDb25zdGFudHMuSlNPTl9EQVRBX0ZPUl9MT0NBVElPTl9DT05WRVJTSU9OLCBDb25zdGFudHMuTUFQX0NPTkZJR19UT19MT0FEKTtcclxuICB9XHJcbiAgLy8gSEVMUEVSU1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCBjb25maWd1cmF0aW9uIGZyb20gd2hpY2ggeW91IHdhbnQgdG8gY3JlYXRlIGEgdGh1bWJuYWlsXHJcbiAgICogQHBhcmFtIHdpZHRoIE9wdGlvbmFsIHdpZHRoIHBhcmFtZXRlciAobXVzdCBhbHNvIGluY2x1ZGUgaGVpZ3RoKVxyXG4gICAqIEBwYXJhbSBoZWlnaHQgT3B0aW9uYWwgaGVpZ2h0IHBhcmFtZXRlciAobXVzdCBhbHNvIGluY2x1ZGUgd2lkdGgpXHJcbiAgICpcclxuICAgKiBUYWtlcyBhIG1hcCBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHJldHVybnMgYSBnb29nbGUgbWFwcyBzdGF0aWMgbWFwIHRvIGJlIHVzZWQgYXMgYSB0aHVtYm5haWxcclxuICAgKlxyXG4gICAqIEluIG9yZGVyIHRvIHNwZWNpZnkgaGVpZ2h0IGFuZCB3aWR0aCwgeW91IG11c3Qgc3BlY2lmeSBCT1RILCBvdGhlcndpc2UsIHRoZSBkZWZhdWx0IGlzIDMwMHgzMDBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZ2V0TWFwVGh1bWJuYWlsKG1hcDogSW5kaXZpZHVhbE1hcCwgd2lkdGg/LCBoZWlnaHQ/KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL3N0YXRpY21hcD9jZW50ZXI9JHttYXAub3JpZ2luLmxhdH0sJHttYXAub3JpZ2luLmxuZ31cclxuICAgICZ6b29tPSR7bWFwLnpvb20gLSAyfVxyXG4gICAgJnNpemU9JHtoZWlnaHQgJiYgd2lkdGggPyB3aWR0aCA6IDMwMH14JHtoZWlnaHQgJiYgd2lkdGggPyBoZWlnaHQgOiAzMDB9XHJcbiAgICAma2V5PUFJemFTeUFzS2g0X1RYcFlWNTdTQnM3ajNiNnFGY0pVRzZmTkhvVWA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIG5ldyBwcmltYXJ5IG1hcFxyXG4gICAqXHJcbiAgICogU2V0cyB0aGUgcHJpbWFyeSBtYXAgdG8gdGhhdCB3aXRoIHRoZSBwYXNzZWQgaWQsXHJcbiAgICpcclxuICAgKiBTZXRzIHRoZSBzZWNvbmRhcnkgbWFwcyB0byBhIGxpc3Qgb2YgYWxsIHRoZSBtYXBzIG1pbnVzIHRoYXQgd2l0aCB0aGUgcGFzc2VkIGlkXHJcbiAgICpcclxuICAgKiBFbWl0cyB0aGUgbmV3IHByaW1hcnkgbWFwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNldE1hcHNXaXRoUHJpbWFyeUlkKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMucHJpbWFyeU1hcCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwQnlJZChpZCk7XHJcbiAgICB0aGlzLm1hcExpc3QgPSB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcExpc3QoKS5maWx0ZXIobWFwID0+IG1hcC5pZCAhPT0gaWQpO1xyXG4gICAgdGhpcy5NYXBDaGFuZ2VkLmVtaXQodGhpcy5wcmltYXJ5TWFwKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbWFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUUxRDtJQWtERSxlQUFlO0lBRWYsb0JBQXNCLFdBQStCLEVBQVksU0FBeUI7UUFBMUYsaUJBSUM7UUFKcUIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQVksY0FBUyxHQUFULFNBQVMsQ0FBZ0I7Ozs7O1FBOUJuRixnQkFBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQzs7OztRQVVwRyxrQkFBYSxHQUFzQixJQUFJLE9BQU8sRUFBWSxDQUFDO1FBRTNELDJCQUFzQixHQUF1QixJQUFJLE9BQU8sRUFBYSxDQUFDOzs7O1FBS3RFLHFCQUFnQixHQUFxQixFQUFFLENBQUM7UUFFeEMsb0JBQWUsR0FBRyxFQUFFLENBQUM7Ozs7UUFPckIsZUFBVSxHQUFpQixTQUFTLENBQUMsbUJBQW1CLENBQUM7UUFLOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25E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Ozs7Ozs7Ozs7OztJQUE5QixVQUErQixFQUFVO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU07Ozs7UUFBQyxVQUFBLEdBQUcsSUFBSSxPQUFBLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFiLENBQWEsRUFBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDOztnQkE3VEYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFMUSxrQkFBa0I7Z0JBQ2xCLGNBQWM7OztxQkFOdkI7Q0F1VUMsQUEvVEQsSUErVEM7U0E1VFksVUFBVTs7Ozs7OztJQU9yQixnQ0FBb0M7Ozs7OztJQUtwQyw2QkFBd0M7Ozs7O0lBT3hDLGlDQUEyRzs7Ozs7SUFLM0csZ0NBQStDOzs7OztJQUsvQyxtQ0FBa0U7O0lBRWxFLDRDQUE2RTs7Ozs7SUFLN0Usc0NBQStDOztJQUUvQyxxQ0FBNEI7O0lBRTVCLG1DQUFnRDs7Ozs7SUFLaEQsZ0NBQWdFOzs7OztJQUlwRCxpQ0FBeUM7Ozs7O0lBQUUsK0JBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxNYXAsIE1hcmtlckluZm8sIE1hcE1hcmtlciB9IGZyb20gJ0Bsb3djb2RldW5pdC9sY3UtbWFwLWNvbW1vbic7XHJcbmltcG9ydCB7IFRodW1ibmFpbExpc3RNb2RlbCB9IGZyb20gJy4uL21vZGVscy90aHVtYm5haWwtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vdXRpbHMvY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFRlbXBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vdGVtcC5zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbkxvYWRlciB9IGZyb20gJy4uL3V0aWxzL2xvY2F0aW9uLWxvYWRlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXBTZXJ2aWNlIHtcclxuXHJcbiAgLy8gRklFTERTXHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBwcmltYXJ5IG1hcCB0byBiZSBkaXNwbGF5ZWQgLSByZXByZXNlbnRzIHRoZSBjdXJyZW50IG1hcCBiZWluZyBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcHJpbWFyeU1hcDogSW5kaXZpZHVhbE1hcDtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiBzZWNvbmRhcnkgbWFwcyBhdmFpbGFibGUgdG8gY2hvb3NlIGFzIHByaW1hcnkgYW5kIGFsc28gZm9yIHVzZSBhcyBsYXllcnMgaW4gdGhlIHByaW1hcnkgbWFwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIG1hcExpc3Q6IEFycmF5PEluZGl2aWR1YWxNYXA+O1xyXG5cclxuICAvLyBQUk9QRVJUSUVTXHJcblxyXG4gIC8qKlxyXG4gICAqIEN1cmF0ZWQgbGlzdCBvZiBhbWJsX29uIGxvY2F0aW9uIG1hcmtlcnNcclxuICAgKi9cclxuICBwdWJsaWMgQ3VyYXRlZExpc3QgPSB0aGlzLmxvY0xvYWRlci5DcmVhdGVMYXllcihDb25zdGFudHMuTE9DQVRJT05TX1RPX0xPQUQsIENvbnN0YW50cy5NQVBfQ09ORklHX1RPX0xPQUQpO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBuZXcgcHJpbWFyeSBtYXAgYW55IHRpbWUgdGhlIG1hcHMgKHByaW1hcnkgYW5kIHNlY29uZGFyeSkgYXJlIGNoYW5nZWRcclxuICAgKi9cclxuICBwdWJsaWMgTWFwQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEluZGl2aWR1YWxNYXA+O1xyXG5cclxuICAvKipcclxuICAgKiBTdWJqZWN0IHRoYXQgZW1pdHMgbGF0L2xuZyBmb3IgbWFwIHBhbm5pbmdcclxuICAgKi9cclxuICBwdWJsaWMgTGF0TG5nRW1pdHRlcjogU3ViamVjdDxudW1iZXJbXT4gPSBuZXcgU3ViamVjdDxudW1iZXJbXT4oKTtcclxuXHJcbiAgcHVibGljIEJhc2ljSW5mb1dpbmRvd0VtaXR0ZXI6IFN1YmplY3Q8TWFwTWFya2VyPiA9IG5ldyBTdWJqZWN0PE1hcE1hcmtlcj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiBhY3RpdmUgc2Vjb25kYXJ5IGxvY2F0aW9ucyB3aGljaCBhcmUgY3VycmVudGx5IGRpc3BsYXllZCBvbiB0aGUgY3VycmVudCBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgVmlzaWJsZUxvY2F0aW9uczogQXJyYXk8TWFwTWFya2VyPiA9IFtdO1xyXG5cclxuICBwdWJsaWMgTGVnZW5kTG9jYXRpb25zID0gW107XHJcblxyXG4gIHB1YmxpYyBUaHVtYm5haWxMaXN0OiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbGlzdCBvZiBhdmFpbGFibGUgbWFya2VycyBmb3IgdXNlIGluIHRoZSBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgTWFya2VyTGlzdDogTWFya2VySW5mb1tdID0gQ29uc3RhbnRzLkRFRkFVTFRfTUFSS0VSX0lORk87XHJcblxyXG4gIC8vIENPTlNUUlVDVE9SU1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdGVtcFN0b3JhZ2U6IFRlbXBTdG9yYWdlU2VydmljZSwgcHJvdGVjdGVkIGxvY0xvYWRlcjogTG9jYXRpb25Mb2FkZXIpIHtcclxuICAgIHRoaXMucHJpbWFyeU1hcCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpWzBdO1xyXG4gICAgdGhpcy5tYXBMaXN0ID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCkuZmlsdGVyKG1hcCA9PiBtYXAuaWQgIT09IHRoaXMucHJpbWFyeU1hcC5pZCk7XHJcbiAgICB0aGlzLk1hcENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEluZGl2aWR1YWxNYXA+KCk7XHJcbiAgfVxyXG5cclxuICAvLyBMSUZFIENZQ0xFXHJcblxyXG4gIC8vIEFQSSBNRVRIT0RTXHJcblxyXG4gIHB1YmxpYyBHZXRMZWdlbmRMb2NhdGlvbnMoKSB7XHJcbiAgIC8vdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0aGlzLnRlbXBTdG9yYWdlLkdldExvY2F0aW9uTGVnZW5kKCk7XHJcbiAgICByZXR1cm4gdGhpcy5MZWdlbmRMb2NhdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoaXMgbWFwbGlzdCBsaXN0IG9mIHRodW1ibmFpbHMgYW5kIHRoZWlyIGluZm9cclxuICAgKi9cclxuICBwdWJsaWMgR2V0VGh1bWJuYWlsTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLlRodW1ibmFpbExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBwcmltYXJ5IG1hcCB0byBiZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBwdWJsaWMgR2V0UHJpbWFyeU1hcCgpOiBJbmRpdmlkdWFsTWFwIHtcclxuICAgIHJldHVybiB0aGlzLnByaW1hcnlNYXA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHNlY29uZGFyeSAobm9uLXByaW1hcnkpIG1hcHNcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFwTGlzdCgpOiBBcnJheTxJbmRpdmlkdWFsTWFwPiB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5tYXBMaXN0O1xyXG4gICAgcmV0dXJuIHRoaXMubWFwTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCB0aGUgbWFwcyBpbiB0aGUgZGJcclxuICAgKi9cclxuICBwdWJsaWMgR2V0QWxsTWFwcygpOiBBcnJheTxJbmRpdmlkdWFsTWFwPiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBtYXAgdG8gcmV0cmlldmVcclxuICAgKiBcclxuICAgKiBSZXR1cm5zIGEgc3BlY2lmaWMgbWFwIHdpdGggYSBzcGVjaWZpYyBpZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRNYXBCeUlkKGlkKTogSW5kaXZpZHVhbE1hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXBMaXN0LmZpbmQobWFwID0+IG1hcC5pZCA9PT0gaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbWFya2VycyBmb3IgdXNlIGluIG1hcFxyXG4gICAqIFxyXG4gICAqIFRoaXMgd2lsbCBjYWxsIGEgYmFjayBlbmQgc2VydmljZSBldmVudHVhbGx5IGFuZCB0aGVuIGZvcm1hdCB0aGUgcmVzdWx0cyBhY2NvcmRpbmdseVxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRNYXJrZXJMaXN0KCk6IE1hcmtlckluZm9bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5NYXJrZXJMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIHRvIGFkZFxyXG4gICAqIFxyXG4gICAqIEFkZHMgdGhlIG1hcCB0byB0aGUgbWFwIGFycmF5XHJcbiAgICovXHJcbiAgcHVibGljIEFkZE1hcChtYXApOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuQWRkTWFwVG9MaXN0KG1hcCk7XHJcbiAgICB0aGlzLnNldE1hcHNXaXRoUHJpbWFyeUlkKG1hcC5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbGF0IFRoZSBsYXRpdHVkZSB0byBwYW4gdG9cclxuICAgKiBAcGFyYW0gbG5nIFRoZSBsb25naXR1ZGUgdG8gcGFuIHRvXHJcbiAgICogXHJcbiAgICogVGFrZXMgYSBsYXQvbG5nIGFuZCBlbWl0cyBldmVudCBmb3IgbWFwIHRvIGxpc3RlbiB0b1xyXG4gICAqL1xyXG4gIHB1YmxpYyBDaGFuZ2VMYXRMbmcobGF0LCBsbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuTGF0TG5nRW1pdHRlci5uZXh0KFtsYXQsIGxuZ10pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAcGFyYW0gbWFya2VyXHJcbiAgICogXHJcbiAgICogVGFrZXMgYSBtYXJrZXIgZnJvbSB0aGUgbGVnZW5kIGFuZCBzZW5kIHRvIGxjdS1tYXBcclxuICAgKi9cclxuICBwdWJsaWMgRGlzcGxheUJhc2ljSW5mbyhtYXJrZXI6IE1hcE1hcmtlcik6IHZvaWQge1xyXG4gICAgdGhpcy5CYXNpY0luZm9XaW5kb3dFbWl0dGVyLm5leHQobWFya2VyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBsaXN0IFRoZSBsaXN0IG9mIHZpc2libGUgbG9jYXRpb25zXHJcbiAgICogXHJcbiAgICogV2hlbiBtYXAgdXBkYXRlcyB0aGUgdmlzaWJsZSBsb2NhdGlvbnMsIHRoaXMuVmlzaWJsZUxvY2F0aW9ucyB3aWxsIGJlIHVwZGF0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgVXBkYXRlVmlzaWJsZUxvY2F0aW9ucyhsaXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLlZpc2libGVMb2NhdGlvbnMgPSBsaXN0O1xyXG4gICAgY29uc29sZS5sb2coXCJ2aXNpYmxlIGxvY2F0aW9ucyB1cGRhdGVkOiBcIiwgbGlzdCk7XHJcbiAgICBpZiAodGhpcy5WaXNpYmxlTG9jYXRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5VcGRhdGVMZWdlbmRMb2NhdGlvbnModGhpcy5WaXNpYmxlTG9jYXRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLkxlZ2VuZExvY2F0aW9ucyA9IHRoaXMuVmlzaWJsZUxvY2F0aW9ucztcclxuICAgIC8vIGlmKHRoaXMuVmlzaWJsZUxvY2F0aW9ucyAhPT0gdGhpcy5MZWdlbmRMb2NhdGlvbnMpe1xyXG4gICAgLy8gICBjb25zb2xlLmxvZyhcIlVwZGF0aW5nIGxlZ2VuZFwiKVxyXG4gICAgLy8gICB0aGlzLkFkZFRvTGVnZW5kTG9jYXRpb25zKGxpc3QpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIEFkZFRvTGVnZW5kTG9jYXRpb25zKHZpc0xvYzogQXJyYXk8TWFwTWFya2VyPikge1xyXG4gIC8vICAgLy9jb25zb2xlLmxvZyhcInZpc0xvYyA9IFwiLCB2aXNMb2MpO1xyXG4gIC8vICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2aXNMb2MubGVuZ3RoOyBpKyspIHtcclxuICAvLyAgICAgbGV0IHRlbXBJZCA9IHZpc0xvY1tpXS5pZDtcclxuICAvLyAgICAgaWYgKHRoaXMuTGVnZW5kTG9jYXRpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgPT09IHRlbXBJZCkubGVuZ3RoID09PSAwKSB7XHJcbiAgLy8gICAgICAgdGhpcy5MZWdlbmRMb2NhdGlvbnMucHVzaCh2aXNMb2NbaV0pO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICAgIGVsc2Uge1xyXG4gIC8vICAgICAgIHRoaXMuQ2hlY2tJbmZvKHZpc0xvY1tpXSk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJhZGRlZCB0byBMZWdlbmRBcnJheSBcIiwgdGhpcy5MZWdlbmRMb2NhdGlvbnMpO1xyXG4gIC8vICAgdGhpcy5VcGRhdGVMZWdlbmRMb2NhdGlvbnModGhpcy5MZWdlbmRMb2NhdGlvbnMpO1xyXG4gIC8vICAgLy90aGlzLlVwZGF0ZVZpc2libGVMb2NhdGlvbnModGhpcy5MZWdlbmRMb2NhdGlvbnMpO1xyXG4gIC8vIH1cclxuICAvKipcclxuICAgKiBDaGVja3MgdG8gaW5zdXJlIHRoYXQgdGhlIGxvY2F0aW9uIGRpc3BsYXllZCBpbiB0aGUgbGVnZW5kIG1hdGNoZXMgdGhhdCBvZiB0aGUgdmlzaWJsZSBsb2NhdGlvbnNcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbWFya2VyXHJcbiAgICovXHJcbiAgLy8gcHVibGljIENoZWNrSW5mbyhtYXJrZXI6IE1hcE1hcmtlcikge1xyXG4gIC8vICAgbGV0IHRlbXBNYXJrZXIgPSB0aGlzLkxlZ2VuZExvY2F0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlkID09PSBtYXJrZXIuaWQpO1xyXG4gIC8vICAgbGV0IGluZGV4ID0gdGhpcy5MZWdlbmRMb2NhdGlvbnMuaW5kZXhPZih0ZW1wTWFya2VyWzBdKTtcclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJpbmRleCA9IFwiLCBpbmRleCk7XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwidGVtcE1hcmtlciA9IFwiLCB0ZW1wTWFya2VyKTtcclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJtYXJrZXIgPSBcIiwgbWFya2VyKTtcclxuICAvLyAgIHRoaXMuTGVnZW5kTG9jYXRpb25zW2luZGV4XSA9IG1hcmtlcjtcclxuICAvLyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGxlZ2VuZCBhcnJheVxyXG4gICAqIEBwYXJhbSBsaXN0IFxyXG4gICAqL1xyXG4gIHB1YmxpYyBVcGRhdGVMZWdlbmRMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgbGV0IHRlbXA6IEFycmF5PE1hcE1hcmtlcj4gPSBuZXcgQXJyYXk8TWFwTWFya2VyPigpO1xyXG4gICAgY29uc29sZS5sb2coXCJtYXN0ZXIgbGlzdCBsZW5ndGhcIix0aGlzLnRlbXBTdG9yYWdlLkdldE1hc3RlckxvY2F0aW9uTGVnZW5kKCkubGVuZ3RoKTtcclxuICAgIGlmICh0aGlzLnRlbXBTdG9yYWdlLkdldE1hc3RlckxvY2F0aW9uTGVnZW5kKCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuTGVnZW5kTG9jYXRpb25zID0gdGhpcy5WaXNpYmxlTG9jYXRpb25zO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCB0ZW1wTWFya2VyOk1hcE1hcmtlciA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TG9jYXRpb25CeUlkKGxpc3RbaV0uaWQpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwidGVtcE1hcmtlciA9IFwiLCB0ZW1wTWFya2VyKTtcclxuICAgICAgICBpZiAodGVtcE1hcmtlcikge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJwdXNoaW5nIGluIGlmXCIpO1xyXG4gICAgICAgICAgdGVtcC5wdXNoKHRlbXBNYXJrZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwicHVzaGluZyBpbiBlbHNlXCIpO1xyXG4gICAgICAgICAgdGVtcC5wdXNoKGxpc3RbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0ZW1wO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGxpc3Qgc2F2ZXMgdGhlIGxlZ2VuZCB0byBsb2NhbCBzdG9yYWdlXHJcbiAgICovXHJcbiAgcHVibGljIFNhdmVMZWdlbmRMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW1wU3RvcmFnZS5TYXZlTG9jYXRpb25MZWdlbmQobGlzdCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgdG8gcmVwbGFjZSB0aGUgb25sZCBvbmUgd2l0aFxyXG4gICAqIFxyXG4gICAqIFRoaXMgcmVwbGFjZXMgdGhlIG1hcCBpbiB0aGUgZGIgd2l0aCB0aGUgbWFwIChiYXNlZCBvbiBpZClcclxuICAgKi9cclxuICBwdWJsaWMgUmVwbGFjZU1hcChtYXA6IEluZGl2aWR1YWxNYXApOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuUmVwbGFjZU1hcChtYXApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIExpc3RPZk1hcHMgVGhlIGxpc3Qgb2YgbWFwcyB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGdldCB0aGUgdGh1bWJuYWlscyBhbmQgb3RoZXIgaW5mbyBmb3JcclxuICAgKiBcclxuICAgKiBhIHRodW1ibmFpbCBsaXN0IGNvbnRhaW5zIHRoZSBpbWcgdXJsLCB0aGUgdGl0bGUgb2YgdGhlIG1hcCwgYW5kIHRoZSBsYXQgYW5kIGxvbmcgb2YgdGhlIG9yZ2luXHJcbiAgICogXHJcbiAgICovXHJcbiAgcHVibGljIEJ1aWxkVGh1bWJuYWlsTGlzdChMaXN0T2ZNYXBzOiBBcnJheTxJbmRpdmlkdWFsTWFwPik6IEFycmF5PFRodW1ibmFpbExpc3RNb2RlbD4ge1xyXG4gICAgdmFyIHRlbXBUaHVtYm5haWxMaXN0ID0gbmV3IEFycmF5PFRodW1ibmFpbExpc3RNb2RlbD4oKTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgTGlzdE9mTWFwcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgdGVtcCA9IG5ldyBUaHVtYm5haWxMaXN0TW9kZWwoTGlzdE9mTWFwc1tpXSwgdGhpcy5nZXRNYXBUaHVtYm5haWwoTGlzdE9mTWFwc1tpXSwgMjAwLCAyMDApLCBMaXN0T2ZNYXBzW2ldLnRpdGxlLCBMaXN0T2ZNYXBzW2ldLm9yaWdpbi5sYXQsIExpc3RPZk1hcHNbaV0ub3JpZ2luLmxuZyk7XHJcbiAgICAgIHRlbXBUaHVtYm5haWxMaXN0LnB1c2godGVtcCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgc29ydHMgYmFzZWQgb24gdGhlIFRpdGxlIG9mIHRoZSBtYXAgc28gdGhlIHRodW1ibmFpbCBsaXN0IGlzIGluIGFscGhhYmV0aWNhbCBvcmRlclxyXG4gICAgICovXHJcbiAgICB0ZW1wVGh1bWJuYWlsTGlzdC5zb3J0KCh0MSwgdDIpID0+IHtcclxuICAgICAgcmV0dXJuIHQxLlRpdGxlLnRvVXBwZXJDYXNlKCkgPiB0Mi5UaXRsZS50b1VwcGVyQ2FzZSgpID8gMSA6IC0xO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGVtcFRodW1ibmFpbExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKiBcclxuICAgKiBDYWxscyB0aGUgcHJvdGVjdGVkIG1ldGhvZCBcInNldE1hcHNXaXRoUHJpbWFyeUlkXCJcclxuICAgKi9cclxuICBwdWJsaWMgUHJpbWFyeU1hcENoYW5nZWQoaWQpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0TWFwc1dpdGhQcmltYXJ5SWQoaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBhbGwgdGhlIG1hcHMgZnJvbSB0aGUgZGIgKGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkpXHJcbiAgICovXHJcbiAgcHVibGljIERlbGV0ZU1hcHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLkRlbGV0ZU1hcExpc3QoKTtcclxuICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICogQ3VyYXRlZCBsaXN0IG9mIGFtYmxfb24gbG9jYXRpb24gbWFya2Vyc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRDdXJhdGVkTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmxvY0xvYWRlci5DcmVhdGVMYXllcihDb25zdGFudHMuSlNPTl9EQVRBX0ZPUl9MT0NBVElPTl9DT05WRVJTSU9OLCBDb25zdGFudHMuTUFQX0NPTkZJR19UT19MT0FEKTtcclxuICB9XHJcbiAgLy8gSEVMUEVSU1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCBjb25maWd1cmF0aW9uIGZyb20gd2hpY2ggeW91IHdhbnQgdG8gY3JlYXRlIGEgdGh1bWJuYWlsXHJcbiAgICogQHBhcmFtIHdpZHRoIE9wdGlvbmFsIHdpZHRoIHBhcmFtZXRlciAobXVzdCBhbHNvIGluY2x1ZGUgaGVpZ3RoKVxyXG4gICAqIEBwYXJhbSBoZWlnaHQgT3B0aW9uYWwgaGVpZ2h0IHBhcmFtZXRlciAobXVzdCBhbHNvIGluY2x1ZGUgd2lkdGgpXHJcbiAgICpcclxuICAgKiBUYWtlcyBhIG1hcCBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHJldHVybnMgYSBnb29nbGUgbWFwcyBzdGF0aWMgbWFwIHRvIGJlIHVzZWQgYXMgYSB0aHVtYm5haWxcclxuICAgKlxyXG4gICAqIEluIG9yZGVyIHRvIHNwZWNpZnkgaGVpZ2h0IGFuZCB3aWR0aCwgeW91IG11c3Qgc3BlY2lmeSBCT1RILCBvdGhlcndpc2UsIHRoZSBkZWZhdWx0IGlzIDMwMHgzMDBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZ2V0TWFwVGh1bWJuYWlsKG1hcDogSW5kaXZpZHVhbE1hcCwgd2lkdGg/LCBoZWlnaHQ/KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL3N0YXRpY21hcD9jZW50ZXI9JHttYXAub3JpZ2luLmxhdH0sJHttYXAub3JpZ2luLmxuZ31cclxuICAgICZ6b29tPSR7bWFwLnpvb20gLSAyfVxyXG4gICAgJnNpemU9JHtoZWlnaHQgJiYgd2lkdGggPyB3aWR0aCA6IDMwMH14JHtoZWlnaHQgJiYgd2lkdGggPyBoZWlnaHQgOiAzMDB9XHJcbiAgICAma2V5PUFJemFTeUFzS2g0X1RYcFlWNTdTQnM3ajNiNnFGY0pVRzZmTkhvVWA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIG5ldyBwcmltYXJ5IG1hcFxyXG4gICAqXHJcbiAgICogU2V0cyB0aGUgcHJpbWFyeSBtYXAgdG8gdGhhdCB3aXRoIHRoZSBwYXNzZWQgaWQsXHJcbiAgICpcclxuICAgKiBTZXRzIHRoZSBzZWNvbmRhcnkgbWFwcyB0byBhIGxpc3Qgb2YgYWxsIHRoZSBtYXBzIG1pbnVzIHRoYXQgd2l0aCB0aGUgcGFzc2VkIGlkXHJcbiAgICpcclxuICAgKiBFbWl0cyB0aGUgbmV3IHByaW1hcnkgbWFwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNldE1hcHNXaXRoUHJpbWFyeUlkKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMucHJpbWFyeU1hcCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwQnlJZChpZCk7XHJcbiAgICB0aGlzLm1hcExpc3QgPSB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcExpc3QoKS5maWx0ZXIobWFwID0+IG1hcC5pZCAhPT0gaWQpO1xyXG4gICAgdGhpcy5NYXBDaGFuZ2VkLmVtaXQodGhpcy5wcmltYXJ5TWFwKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ== |
@@ -142,4 +142,4 @@ import { EventEmitter } from '@angular/core'; | ||
/** | ||
* Curated list of ambl_on location markers | ||
*/ | ||
* Curated list of ambl_on location markers | ||
*/ | ||
GetCuratedList(): IndividualMap; | ||
@@ -146,0 +146,0 @@ /** |
{ | ||
"name": "@ambl-on/lcu-ambl-on-common", | ||
"version": "0.1.294-integration", | ||
"version": "0.1.295-my-atlas", | ||
"peerDependencies": { | ||
@@ -5,0 +5,0 @@ "@angular/common": "^7.2.0", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
5134981