@tiba-spark/client-shared-lib 26.2.0-331 → 26.2.0-332

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.
@@ -31,6 +31,14 @@ export class ParkService {
31
31
  this.loadRemoteCommandsRef(nextParkId, tibaKeyIndex);
32
32
  this.loadFacilityRemoteCommandsRef(nextParkId, tibaKeyIndex);
33
33
  const facilityDictionary = this.store.selectSnapshot(FacilityState.facilityDictionary);
34
+ // On a deep-link / hard refresh straight onto a park route, tibaKeys can be
35
+ // populated in state before the facility dictionary. Skip realtime and
36
+ // notification registration until the dictionary for the selected core is
37
+ // loaded — the loadParkingLot* dispatches above populate it, and the next
38
+ // navigation re-invokes initPark. See SPRK3-14591.
39
+ if (!facilityDictionary?.[nextGuid]) {
40
+ return;
41
+ }
34
42
  // Set Realtime Events for the park
35
43
  this.registerParkRealtimeEvents(nextGuid, nextParkId, prevGuid, prevParkId, facilityDictionary);
36
44
  // Set Realtime Events for parent park
@@ -158,4 +166,4 @@ export class ParkService {
158
166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParkService, decorators: [{
159
167
  type: Injectable
160
168
  }], ctorParameters: () => [{ type: i0.Injector }] });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9wYXJrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxvQkFBb0IsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RLLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQXNDLDJCQUEyQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFNUksT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUc1QyxNQUFNLE9BQU8sV0FBVztJQU90QixZQUFZLFFBQWtCO1FBOEo5QixtQkFBYyxHQUFHLENBQUMsTUFBYyxFQUFFLFlBQW9CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksb0JBQW9CLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDL0gsMEJBQXFCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsWUFBb0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSwyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUM3SSxrQ0FBNkIsR0FBRyxDQUFDLE1BQWMsRUFB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QUEyQixDQUFDLENBQUM7UUFDN0csc0JBQXNCLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1SSxJQUFJLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLHdCQUF3QixDQUFDLElBQVksRUFBRSxNQUFjLEVBQUUsTUFBYyxFQUFFLGdCQUF1QztRQUNwSCxPQUFPLEdBQUcsSUFBSSxJQUFJLE1BQU0sSUFBSSxnQkFBZ0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBbktVLFdBQVc7bUhBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkV2ZW50U2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IExvYWRGYWNpbGl0eVJlbW90ZUNvbW1hbmRzUmVmQWN0aW9uLCBMb2FkUGFya2luZ0xvdEFjdGlvbiwgTG9hZFJlbW90ZUNvbW1hbmRzUmVmQWN0aW9uLCBVbmxvYWRQYXJraW5nTG90QWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IEZhY2lsaXR5U3RhdGUgfSBmcm9tICcuLi9tb2R1bGVzL2ZhY2lsaXR5L2ZhY2lsaXR5LnN0YXRlJztcbmltcG9ydCB7IEZhY2lsaXR5RHRvLCBOb3RpZmljYXRpb25FdmVudFR5cGUsIE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0bywgUGFya1N1YnNjcmlwdGlvbkR0byB9IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvcnBjLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBOdW1iZXJNYXAsIFN0cmluZ01hcCB9IGZyb20gJy4uL3V0aWxzL2xhbmcudXRpbCc7XG5pbXBvcnQgeyBSZWFsdGltZUV2ZW50U2VydmljZSB9IGZyb20gJy4vcmVhbHRpbWUtZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBTaWduYWxSIH0gZnJvbSAnLi9zaWduYWxyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGFya1NlcnZpY2Uge1xuXG4gIHByb3RlY3RlZCBzdG9yZTogU3RvcmU7XG4gIHByb3RlY3RlZCByZWFsdGltZUV2ZW50U2VydmljZTogUmVhbHRpbWVFdmVudFNlcnZpY2U7XG4gIHByb3RlY3RlZCBub3RpZmljYXRpb25FdmVudFNlcnZpY2U6IE5vdGlmaWNhdGlvbkV2ZW50U2VydmljZTtcbiAgcHJvdGVjdGVkIHNpZ25hbFI6IFNpZ25hbFI7XG5cbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy5zdG9yZSA9IGluamVjdG9yLmdldChTdG9yZSk7XG4gICAgdGhpcy5yZWFsdGltZUV2ZW50U2VydmljZSA9IGluamVjdG9yLmdldChSZWFsdGltZUV2ZW50U2VydmljZSk7XG4gICAgdGhpcy5ub3RpZmljYXRpb25FdmVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoTm90aWZpY2F0aW9uRXZlbnRTZXJ2aWNlKTtcbiAgICB0aGlzLnNpZ25hbFIgPSBpbmplY3Rvci5nZXQoU2lnbmFsUik7XG4gIH1cblxuICBpbml0UGFyayhuZXh0TXVsdGlQYXJrUGFyZW50SWQ6IG51bWJlciwgdGliYUtleUluZGV4OiBudW1iZXIsIG5leHRQYXJrSWQ6IG51bWJlcikge1xuICAgIC8vIFdpbGwgbG9hZCBzdGF0dXNlcyB3aGVuIGEgcGFyayBpcyBmaXJzdCBzZWxlY3RlZCAocmVndWxhciBvciByZWZyZXNoKVxuICAgIGNvbnN0IHByZXZQYXJrSWQgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KEZhY2lsaXR5U3RhdGUucGFya0lkKTtcbiAgICBjb25zdCBwcmV2R3VpZCA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5ndWlkKTtcbiAgICBjb25zdCB0aWJhS2V5cyA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS50aWJhS2V5cyk7XG5cbiAgICBjb25zdCBuZXh0R3VpZCA9IE9iamVjdC5rZXlzKHRpYmFLZXlzKVt0aWJhS2V5SW5kZXhdO1xuICAgIGlmICghbmV4dEd1aWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sb2FkUGFya2luZ0xvdChuZXh0UGFya0lkLCB0aWJhS2V5SW5kZXgpO1xuICAgIHRoaXMubG9hZFJlbW90ZUNvbW1hbmRzUmVmKG5leHRQYXJrSWQsIHRpYmFLZXlJbmRleCk7XG4gICAgdGhpcy5sb2FkRmFjaWxpdHlSZW1vdGVDb21tYW5kc1JlZihuZXh0UGFya0lkLCB0aWJhS2V5SW5kZXgpO1xuXG4gICAgY29uc3QgZmFjaWxpdHlEaWN0aW9uYXJ5ID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmZhY2lsaXR5RGljdGlvbmFyeSk7XG5cbiAgICAvLyBTZXQgUmVhbHRpbWUgRXZlbnRzIGZvciB0aGUgcGFya1xuICAgIHRoaXMucmVnaXN0ZXJQYXJrUmVhbHRpbWVFdmVudHMobmV4dEd1aWQsIG5leHRQYXJrSWQsIHByZXZHdWlkLCBwcmV2UGFya0lkLCBmYWNpbGl0eURpY3Rpb25hcnkpO1xuICAgIC8vIFNldCBSZWFsdGltZSBFdmVudHMgZm9yIHBhcmVudCBwYXJrXG4gICAgaWYgKGZhY2lsaXR5RGljdGlvbmFyeVtuZXh0R3VpZF1bbmV4dFBhcmtJZF0/LmlzTXVsdGlQYXJrIHx8ICgocHJldkd1aWQgJiYgcHJldlBhcmtJZCkgJiYgZmFjaWxpdHlEaWN0aW9uYXJ5W3ByZXZHdWlkXVtwcmV2UGFya0lkXS5pc011bHRpUGFyaykpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJQYXJlbnRQYXJrUmVhbHRpbWVFdmVudHMobmV4dEd1aWQsIG5leHRQYXJrSWQsIHByZXZHdWlkLCBwcmV2UGFya0lkLCBmYWNpbGl0eURpY3Rpb25hcnkpO1xuICAgIH1cblxuICAgIC8vIFNldCBOb3RpZmljYXRpb24gRXZlbnRzIGZvciB0aGUgcGFya1xuICAgIHRoaXMuaW5pdFBhcmtOb3RpZmljYXRpb25zKG5leHRHdWlkLCBuZXh0UGFya0lkLCBwcmV2R3VpZCwgcHJldlBhcmtJZCwgZmFjaWxpdHlEaWN0aW9uYXJ5KTtcbiAgfVxuXG4gIGluaXRQYXJrTm90aWZpY2F0aW9ucyhuZXh0R3VpZDogc3RyaW5nLCBuZXh0UGFya0lkOiBudW1iZXIsIHByZXZHdWlkOiBzdHJpbmcsIHByZXZQYXJrSWQ6IG51bWJlciwgZmFjaWxpdHlEaWN0aW9uYXJ5OiBTdHJpbmdNYXA8TnVtYmVyTWFwPEZhY2lsaXR5RHRvPj4pIHtcbiAgICB0aGlzLnJlZ2lzdGVyUGFya05vdGlmaWNhdGlvbkV2ZW50cyhuZXh0R3VpZCwgbmV4dFBhcmtJZCwgcHJldkd1aWQsIHByZXZQYXJrSWQsIGZhY2lsaXR5RGljdGlvbmFyeSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyUGFya1JlYWx0aW1lRXZlbnRzKG5leHRHdWlkOiBzdHJpbmcsIG5leHRQYXJrSWQ6IG51bWJlciwgcHJldkd1aWQ6IHN0cmluZywgcHJldlBhcmtJZDogbnVtYmVyLCBmYWNpbGl0eURpY3Rpb25hcnk6IFN0cmluZ01hcDxOdW1iZXJNYXA8RmFjaWxpdHlEdG8+Pikge1xuICAgIGNvbnN0IG5leHRQYXJrID0gbmV3IFBhcmtTdWJzY3JpcHRpb25EdG8oKTtcbiAgICBuZXh0UGFyay5ndWlkID0gbmV4dEd1aWQ7XG5cbiAgICAvLyBJZiB0aGUgbmV4dCBwYXJrIGlzIGEgU3VwZXJQYXJrIHdlIG5lZWQgdG8gc3Vic2NyaWJlIHRvIGFsbCBjaGlsZCBwYXJrc1xuICAgIC8vIEVsc2Ugd2Ugc3Vic2NyaWJlIG9ubHkgdG8gdGhlIHBhcmsgaXRzZWxmXG4gICAgY29uc3QgaXNOZXh0UGFya011bHRpUGFyayA9IGZhY2lsaXR5RGljdGlvbmFyeVtuZXh0R3VpZF1bbmV4dFBhcmtJZF0/LmlzTXVsdGlQYXJrO1xuICAgIGlmICghIWlzTmV4dFBhcmtNdWx0aVBhcmspIHtcbiAgICAgIG5leHRQYXJrLnBhcmtJZHMgPSBPYmplY3QudmFsdWVzKGZhY2lsaXR5RGljdGlvbmFyeVtuZXh0R3VpZF0pLmZpbHRlcihmID0+ICFmLmlzTXVsdGlQYXJrKS5tYXAoZiA9PiBmLmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dFBhcmsucGFya0lkcyA9IFtuZXh0UGFya0lkXTtcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBoYXZlIGEgcHJldmlvdXMgcGFyayBzZWxlY3RlZCBhbmQgaXQgaXMgbm90IHRoZSBzYW1lIHBhcmsgYXMgdGhlIG5leHQgcGFya1xuICAgIC8vIHdlIG5lZWQgdG8gdW5zdWJzY3JpYmUgdGhlIHBhcmtzXG4gICAgY29uc3QgcHJldlBhcmsgPSBuZXcgUGFya1N1YnNjcmlwdGlvbkR0bygpO1xuICAgIGlmIChwcmV2R3VpZCAmJiBwcmV2UGFya0lkICYmIChwcmV2R3VpZCAhPT0gbmV4dEd1aWQgfHwgcHJldlBhcmtJZCAhPT0gbmV4dFBhcmtJZCkpIHtcbiAgICAgIHByZXZQYXJrLmd1aWQgPSBwcmV2R3VpZDtcbiAgICAgIC8vIElmIHRoZSBwcmV2aW91cyBwYXJrIGlzIGEgU3VwZXJQYXJrIHdlIG5lZWQgdG8gdW5zdWJzY3JpYmUgdG8gYWxsIGNoaWxkIHBhcmtzXG4gICAgICAvLyBFbHNlIHdlIHVuc3Vic2NyaWJlIG9ubHkgdG8gdGhlIHBhcmsgaXRzZWxmXG4gICAgICBjb25zdCBpc1ByZXZQYXJrTXVsdGlQYXJrID0gZmFjaWxpdHlEaWN0aW9uYXJ5W3ByZXZHdWlkXVtwcmV2UGFya0lkXS5pc011bHRpUGFyaztcbiAgICAgIGlmICghIWlzUHJldlBhcmtNdWx0aVBhcmspIHtcbiAgICAgICAgcHJldlBhcmsucGFya0lkcyA9IE9iamVjdC52YWx1ZXMoZmFjaWxpdHlEaWN0aW9uYXJ5W3ByZXZHdWlkXSkuZmlsdGVyKGYgPT4gIWYuaXNNdWx0aVBhcmspLm1hcChmID0+IGYuaWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJldlBhcmsucGFya0lkcyA9IFtwcmV2UGFya0lkXTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zaWduYWxSLnN1YnNjcmliZUZvclJlYWx0aW1lKHRoaXMucmVhbHRpbWVFdmVudFNlcnZpY2UuZ2V0UGFya1NlbGVjdGlvblN1YnNjcmlwdGlvbnMocHJldlBhcmssIG5leHRQYXJrKSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyUGFyZW50UGFya1JlYWx0aW1lRXZlbnRzKG5leHRHdWlkOiBzdHJpbmcsIG5leHRQYXJrSWQ6IG51bWJlciwgcHJldkd1aWQ6IHN0cmluZywgcHJldlBhcmtJZDogbnVtYmVyLCBmYWNpbGl0eURpY3Rpb25hcnk6IFN0cmluZ01hcDxOdW1iZXJNYXA8RmFjaWxpdHlEdG8+Pikge1xuICAgIGNvbnN0IG5leHRQYXJlbnRQYXJrID0gbmV3IFBhcmtTdWJzY3JpcHRpb25EdG8oKTtcbiAgICAvLyBJZiB0aGUgbmV4dCBwYXJrIGlzIGEgU3VwZXJQYXJrIHdlIG5lZWQgdG8gc3Vic2NyaWJlIHRvIGl0XG4gICAgaWYgKGZhY2lsaXR5RGljdGlvbmFyeVtuZXh0R3VpZF1bbmV4dFBhcmtJZF0/LmlzTXVsdGlQYXJrKSB7XG4gICAgICBuZXh0UGFyZW50UGFyay5ndWlkID0gbmV4dEd1aWQ7XG4gICAgICBuZXh0UGFyZW50UGFyay5wYXJrSWRzID0gW25leHRQYXJrSWRdO1xuICAgIH1cblxuICAgIGNvbnN0IHByZXZQYXJlbnRQYXJrID0gbmV3IFBhcmtTdWJzY3JpcHRpb25EdG8oKTtcbiAgICAvLyBJZiB0aGUgcHJldmlvdXMgcGFyayB3YXMgYSBTdXBlclBhcmsgYW5kIGl0IGlzIG5vdCB0aGUgc2FtZSBwYXJrIGFzIHRoZSBuZXh0IHBhcmtcbiAgICAvLyB3ZSBuZWVkIHRvIHVuc3Vic2NyaWJlIHRoZSBwYXJlbnQgZXZlbnQgZnJvbSBpdFxuICAgIGlmIChwcmV2R3VpZCAmJiBwcmV2UGFya0lkICYmIChwcmV2R3VpZCAhPT0gbmV4dEd1aWQgfHwgcHJldlBhcmtJZCAhPT0gbmV4dFBhcmtJZCkgJiYgZmFjaWxpdHlEaWN0aW9uYXJ5W3ByZXZHdWlkXVtwcmV2UGFya0lkXS5pc011bHRpUGFyaykge1xuICAgICAgcHJldlBhcmVudFBhcmsuZ3VpZCA9IHByZXZHdWlkO1xuICAgICAgcHJldlBhcmVudFBhcmsucGFya0lkcyA9IFtwcmV2UGFya0lkXTtcbiAgICB9XG5cbiAgICB0aGlzLnNpZ25hbFIuc3Vic2NyaWJlRm9yUmVhbHRpbWUodGhpcy5yZWFsdGltZUV2ZW50U2VydmljZS5nZXRQYXJlbnRQYXJrU2VsZWN0aW9uU3Vic2NyaXB0aW9ucyhwcmV2UGFyZW50UGFyaywgbmV4dFBhcmVudFBhcmspKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJQYXJrTm90aWZpY2F0aW9uRXZlbnRzKG5leHRHdWlkOiBzdHJpbmcsIG5leHRQYXJrSWQ6IG51bWJlciwgcHJldkd1aWQ6IHN0cmluZywgcHJldlBhcmtJZDogbnVtYmVyLCBmYWNpbGl0eURpY3Rpb25hcnk6IFN0cmluZ01hcDxOdW1iZXJNYXA8RmFjaWxpdHlEdG8+Pikge1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvblR5cGVzID0gdGhpcy5ub3RpZmljYXRpb25FdmVudFNlcnZpY2UuZ2V0UGFya0Jhc2VOb3RpZmljYXRpb25UeXBlcygpO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0byA9IHRoaXMubm90aWZpY2F0aW9uRXZlbnRTZXJ2aWNlLmdldE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbnNFbnRpdHkoKTtcblxuICAgIG5vdGlmaWNhdGlvblR5cGVzLm1hcChub3RpZmljYXRpb25UeXBlID0+IHtcbiAgICAgIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0by50eXBlID0gbm90aWZpY2F0aW9uVHlwZTtcbiAgICAgIHRoaXMuaGFuZGxlU3Vic2NyaWJlTm90aWZpY2F0aW9uRXZlbnRzKG5leHRHdWlkLCBuZXh0UGFya0lkLCBmYWNpbGl0eURpY3Rpb25hcnksIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0byk7XG4gICAgICB0aGlzLmhhbmRsZVVuc3Vic2NyaWJlTm90aWZpY2F0aW9uRXZlbnRzKG5leHRHdWlkLCBuZXh0UGFya0lkLCBwcmV2R3VpZCwgcHJldlBhcmtJZCwgZmFjaWxpdHlEaWN0aW9uYXJ5LCBub3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdWJzY3JpYmVOb3RpZmljYXRpb25FdmVudHMobmV4dEd1aWQ6IHN0cmluZywgbmV4dFBhcmtJZDogbnVtYmVyLCBmYWNpbGl0eURpY3Rpb25hcnk6IFN0cmluZ01hcDxOdW1iZXJNYXA8RmFjaWxpdHlEdG8+PixcbiAgICBub3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG86IE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0bykge1xuICAgIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0by51bnN1YnNjcmliZSA9IGZhbHNlO1xuICAgIC8vIElmIHRoZSBuZXh0IHBhcmsgaXMgYSBTdXBlclBhcmsgd2UgbmVlZCB0byBzdWJzY3JpYmUgdG8gYWxsIGNoaWxkIHBhcmtzXG4gICAgLy8gRWxzZSB3ZSBzdWJzY3JpYmUgb25seSB0byB0aGUgcGFyayBpdHNlbGZcbiAgICBjb25zdCBuZXh0UGFyayA9IGZhY2lsaXR5RGljdGlvbmFyeVtuZXh0R3VpZF1bbmV4dFBhcmtJZF07XG4gICAgaWYgKCEhbmV4dFBhcms/LmlzTXVsdGlQYXJrKSB7XG4gICAgICBjb25zdCBwYXJrSWRzOiBudW1iZXJbXSA9IE9iamVjdC52YWx1ZXMoZmFjaWxpdHlEaWN0aW9uYXJ5W25leHRHdWlkXSkuZmlsdGVyKGYgPT4gIWYuaXNNdWx0aVBhcmspLm1hcChmID0+IGYuaWQpO1xuICAgICAgcGFya0lkcy5mb3JFYWNoKHBhcmtJZCA9PiB7XG4gICAgICAgIHRoaXMuaW52b2tlU2luZ2xlUGFya1N1YnNjcmlwdGlvbihub3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8sIG5leHRHdWlkLCBwYXJrSWQpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW52b2tlU2luZ2xlUGFya1N1YnNjcmlwdGlvbihub3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8sIG5leHRHdWlkLCBuZXh0UGFya0lkKTtcbiAgICB9XG4gICAgLy8gSWYgdGhlIHNlbGVjdGVkIHBhcmsgaXMgYSBTdXBlcnBhcmsgb3IgYSBDaGlsZFBhcmtcbiAgICAvLyBXZSBuZWVkIHRvIHN1bnNjcmliZSB0byB0aGUgcGFyZW50IGFzIHdlbGxcbiAgICBpZiAoISFuZXh0UGFyaz8uaXNNdWx0aVBhcmsgfHwgbmV4dFBhcms/Lm11bHRpUGFya1BhcmVudElEID4gMCkge1xuICAgICAgY29uc3QgcGFyZW50UGFya0lkID0gbmV4dFBhcmsuaXNNdWx0aVBhcmsgPyBuZXh0UGFyay5pZCA6IG5leHRQYXJrLm11bHRpUGFya1BhcmVudElEO1xuICAgICAgdGhpcy5pbnZva2VTaW5nbGVQYXJrU3Vic2NyaXB0aW9uKG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0bywgbmV4dEd1aWQsIHBhcmVudFBhcmtJZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVVbnN1YnNjcmliZU5vdGlmaWNhdGlvbkV2ZW50cyhuZXh0R3VpZDogc3RyaW5nLCBuZXh0UGFya0lkOiBudW1iZXIsIHByZXZHdWlkOiBzdHJpbmcsIHByZXZQYXJrSWQ6IG51bWJlcixcbiAgICBmYWNpbGl0eURpY3Rpb25hcnk6IFN0cmluZ01hcDxOdW1iZXJNYXA8RmFjaWxpdHlEdG8+Piwgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvOiBOb3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8pIHtcbiAgICBub3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8udW5zdWJzY3JpYmUgPSB0cnVlO1xuICAgIC8vIElmIHdlIGhhdmUgYSBwcmV2aW91cyBwYXJrIHNlbGVjdGVkIGFuZCBpdCBpcyBub3QgdGhlIHNhbWUgcGFyayBhcyB0aGUgbmV4dCBwYXJrXG4gICAgLy8gd2UgbmVlZCB0byB1bnN1YnNjcmliZSB0aGUgcGFya3NcbiAgICBpZiAocHJldkd1aWQgJiYgcHJldlBhcmtJZCAmJiAocHJldkd1aWQgIT09IG5leHRHdWlkIHx8IHByZXZQYXJrSWQgIT09IG5leHRQYXJrSWQpKSB7XG4gICAgICBjb25zdCBwcmV2UGFyayA9IGZhY2lsaXR5RGljdGlvbmFyeVtwcmV2R3VpZF1bcHJldlBhcmtJZF07XG4gICAgICBpZiAoISFwcmV2UGFyay5pc011bHRpUGFyaykge1xuICAgICAgICBjb25zdCBwYXJrSWRzOiBudW1iZXJbXSA9IE9iamVjdC52YWx1ZXMoZmFjaWxpdHlEaWN0aW9uYXJ5W3ByZXZHdWlkXSkuZmlsdGVyKGYgPT4gIWYuaXNNdWx0aVBhcmspLm1hcChmID0+IGYuaWQpO1xuICAgICAgICBwYXJrSWRzLmZvckVhY2gocGFya0lkID0+IHtcbiAgICAgICAgICB0aGlzLmludm9rZVNpbmdsZVBhcmtTdWJzY3JpcHRpb24obm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvLCBwcmV2R3VpZCwgcGFya0lkKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludm9rZVNpbmdsZVBhcmtTdWJzY3JpcHRpb24obm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvLCBwcmV2R3VpZCwgcHJldlBhcmtJZCk7XG4gICAgICB9XG4gICAgICAvLyBJZiB0aGUgcHJldmlvdXMgcGFyayBpcyBhIFN1cGVycGFyayBvciBhIENoaWxkUGFya1xuICAgICAgLy8gV2UgbmVlZCB0byB1bnN1bnNjcmliZSBmcm9tIHRoZSBwYXJlbnQgYXMgd2VsbFxuICAgICAgaWYgKCEhcHJldlBhcmsuaXNNdWx0aVBhcmsgfHwgcHJldlBhcmsubXVsdGlQYXJrUGFyZW50SUQgPiAwKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudFBhcmtJZCA9IHByZXZQYXJrLmlzTXVsdGlQYXJrID8gcHJldlBhcmsuaWQgOiBwcmV2UGFyay5tdWx0aVBhcmtQYXJlbnRJRDtcbiAgICAgICAgdGhpcy5pbnZva2VTaW5nbGVQYXJrU3Vic2NyaXB0aW9uKG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0bywgbmV4dEd1aWQsIHBhcmVudFBhcmtJZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbnZva2VTaW5nbGVQYXJrU3Vic2NyaXB0aW9uKG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0bzogTm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvLCBndWlkOiBzdHJpbmcsIHBhcmtJZDogbnVtYmVyKSB7XG4gICAgY29uc3Qgc2luZ2xlUGFya1N1YnNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24obmV3IE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0bygpLCBub3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8pO1xuICAgIHNpbmdsZVBhcmtTdWJzY3JpcHRpb24uaWRlbnRpZmllciA9IHRoaXMuYnVpbGROb3RpZmljYXRpb25FdmVudElkKGd1aWQsIHBhcmtJZCwgc2luZ2xlUGFya1N1YnNjcmlwdGlvbi51c2VySWQsIHNpbmdsZVBhcmtTdWJzY3JpcHRpb24udHlwZSk7XG4gICAgdGhpcy5zaWduYWxSLnN1YnNjcmliZUZvck5vdGlmaWNhdGlvbnMoc2luZ2xlUGFya1N1YnNjcmlwdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTm90aWZpY2F0aW9uRXZlbnRJZChndWlkOiBzdHJpbmcsIHBhcmtJZDogbnVtYmVyLCB1c2VySWQ6IG51bWJlciwgbm90aWZpY2F0aW9uVHlwZTogTm90aWZpY2F0aW9uRXZlbnRUeXBlKSB7XG4gICAgcmV0dXJuIGAke2d1aWR9XyR7cGFya0lkfV8ke25vdGlmaWNhdGlvblR5cGV9XyR7dXNlcklkfWA7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVubG9hZFBhcmtpbmdMb3QoKTtcbiAgfVxuXG4gIGxvYWRQYXJraW5nTG90ID0gKHBhcmtJZDogbnVtYmVyLCB0aWJhS2V5SW5kZXg6IG51bWJlcikgPT4gdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTG9hZFBhcmtpbmdMb3RBY3Rpb24ocGFya0lkLCB0aWJhS2V5SW5kZXgpKTtcbiAgbG9hZFJlbW90ZUNvbW1hbmRzUmVmID0gKHBhcmtJZDogbnVtYmVyLCB0aWJhS2V5SW5kZXg6IG51bWJlcikgPT4gdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTG9hZFJlbW90ZUNvbW1hbmRzUmVmQWN0aW9uKHBhcmtJZCwgdGliYUtleUluZGV4KSk7XG4gIGxvYWRGYWNpbGl0eVJlbW90ZUNvbW1hbmRzUmVmID0gKHBhcmtJZDogbnVtYmVyLCB0aWJhS2V5SW5kZXg6IG51bWJlcikgPT4gdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTG9hZEZhY2lsaXR5UmVtb3RlQ29tbWFuZHNSZWZBY3Rpb24ocGFya0lkLCB0aWJhS2V5SW5kZXgpKTtcbiAgdW5sb2FkUGFya2luZ0xvdCA9ICgpID0+IHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVubG9hZFBhcmtpbmdMb3RBY3Rpb24oKSk7XG59XG4iXX0=
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9zZXJ2aWNlcy9wYXJrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxvQkFBb0IsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RLLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQXNDLDJCQUEyQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFNUksT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUc1QyxNQUFNLE9BQU8sV0FBVztJQU90QixZQUFZLFFBQWtCO1FBdUs5QixtQkFBYyxHQUFHLENBQUMsTUFBYyxFQUFFLFlBQW9CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksb0JBQW9CLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDL0gsMEJBQXFCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsWUFBb0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSwyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUM3SSxrQ0FBNkIsR0FBRyxDQUFDLE1BQWMsRUFB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RixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyw0QkFBNEIsQ0FBQywyQkFBd0QsRUFBRSxJQUFZLEVBQUUsTUFBYztRQUN6SCxNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSwyQkFBMkIsRUFBRSxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFDN0csc0JBQXNCLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1SSxJQUFJLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLHdCQUF3QixDQUFDLElBQVksRUFBRSxNQUFjLEVBQUUsTUFBYyxFQUFFLGdCQUF1QztRQUNwSCxPQUFPLEdBQUcsSUFBSSxJQUFJLE1BQU0sSUFBSSxnQkFBZ0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBNUtVLFdBQVc7bUhBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkV2ZW50U2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IExvYWRGYWNpbGl0eVJlbW90ZUNvbW1hbmRzUmVmQWN0aW9uLCBMb2FkUGFya2luZ0xvdEFjdGlvbiwgTG9hZFJlbW90ZUNvbW1hbmRzUmVmQWN0aW9uLCBVbmxvYWRQYXJraW5nTG90QWN0aW9uIH0gZnJvbSAnLi4vbW9kdWxlcy9mYWNpbGl0eS9mYWNpbGl0eS5hY3Rpb25zJztcbmltcG9ydCB7IEZhY2lsaXR5U3RhdGUgfSBmcm9tICcuLi9tb2R1bGVzL2ZhY2lsaXR5L2ZhY2lsaXR5LnN0YXRlJztcbmltcG9ydCB7IEZhY2lsaXR5RHRvLCBOb3RpZmljYXRpb25FdmVudFR5cGUsIE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0bywgUGFya1N1YnNjcmlwdGlvbkR0byB9IGZyb20gJy4uL3NlcnZpY2UtcHJveHkvcnBjLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBOdW1iZXJNYXAsIFN0cmluZ01hcCB9IGZyb20gJy4uL3V0aWxzL2xhbmcudXRpbCc7XG5pbXBvcnQgeyBSZWFsdGltZUV2ZW50U2VydmljZSB9IGZyb20gJy4vcmVhbHRpbWUtZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBTaWduYWxSIH0gZnJvbSAnLi9zaWduYWxyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGFya1NlcnZpY2Uge1xuXG4gIHByb3RlY3RlZCBzdG9yZTogU3RvcmU7XG4gIHByb3RlY3RlZCByZWFsdGltZUV2ZW50U2VydmljZTogUmVhbHRpbWVFdmVudFNlcnZpY2U7XG4gIHByb3RlY3RlZCBub3RpZmljYXRpb25FdmVudFNlcnZpY2U6IE5vdGlmaWNhdGlvbkV2ZW50U2VydmljZTtcbiAgcHJvdGVjdGVkIHNpZ25hbFI6IFNpZ25hbFI7XG5cbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy5zdG9yZSA9IGluamVjdG9yLmdldChTdG9yZSk7XG4gICAgdGhpcy5yZWFsdGltZUV2ZW50U2VydmljZSA9IGluamVjdG9yLmdldChSZWFsdGltZUV2ZW50U2VydmljZSk7XG4gICAgdGhpcy5ub3RpZmljYXRpb25FdmVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoTm90aWZpY2F0aW9uRXZlbnRTZXJ2aWNlKTtcbiAgICB0aGlzLnNpZ25hbFIgPSBpbmplY3Rvci5nZXQoU2lnbmFsUik7XG4gIH1cblxuICBpbml0UGFyayhuZXh0TXVsdGlQYXJrUGFyZW50SWQ6IG51bWJlciwgdGliYUtleUluZGV4OiBudW1iZXIsIG5leHRQYXJrSWQ6IG51bWJlcikge1xuICAgIC8vIFdpbGwgbG9hZCBzdGF0dXNlcyB3aGVuIGEgcGFyayBpcyBmaXJzdCBzZWxlY3RlZCAocmVndWxhciBvciByZWZyZXNoKVxuICAgIGNvbnN0IHByZXZQYXJrSWQgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KEZhY2lsaXR5U3RhdGUucGFya0lkKTtcbiAgICBjb25zdCBwcmV2R3VpZCA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5ndWlkKTtcbiAgICBjb25zdCB0aWJhS2V5cyA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS50aWJhS2V5cyk7XG5cbiAgICBjb25zdCBuZXh0R3VpZCA9IE9iamVjdC5rZXlzKHRpYmFLZXlzKVt0aWJhS2V5SW5kZXhdO1xuICAgIGlmICghbmV4dEd1aWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sb2FkUGFya2luZ0xvdChuZXh0UGFya0lkLCB0aWJhS2V5SW5kZXgpO1xuICAgIHRoaXMubG9hZFJlbW90ZUNvbW1hbmRzUmVmKG5leHRQYXJrSWQsIHRpYmFLZXlJbmRleCk7XG4gICAgdGhpcy5sb2FkRmFjaWxpdHlSZW1vdGVDb21tYW5kc1JlZihuZXh0UGFya0lkLCB0aWJhS2V5SW5kZXgpO1xuXG4gICAgY29uc3QgZmFjaWxpdHlEaWN0aW9uYXJ5ID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmZhY2lsaXR5RGljdGlvbmFyeSk7XG5cbiAgICAvLyBPbiBhIGRlZXAtbGluayAvIGhhcmQgcmVmcmVzaCBzdHJhaWdodCBvbnRvIGEgcGFyayByb3V0ZSwgdGliYUtleXMgY2FuIGJlXG4gICAgLy8gcG9wdWxhdGVkIGluIHN0YXRlIGJlZm9yZSB0aGUgZmFjaWxpdHkgZGljdGlvbmFyeS4gU2tpcCByZWFsdGltZSBhbmRcbiAgICAvLyBub3RpZmljYXRpb24gcmVnaXN0cmF0aW9uIHVudGlsIHRoZSBkaWN0aW9uYXJ5IGZvciB0aGUgc2VsZWN0ZWQgY29yZSBpc1xuICAgIC8vIGxvYWRlZCDigJQgdGhlIGxvYWRQYXJraW5nTG90KiBkaXNwYXRjaGVzIGFib3ZlIHBvcHVsYXRlIGl0LCBhbmQgdGhlIG5leHRcbiAgICAvLyBuYXZpZ2F0aW9uIHJlLWludm9rZXMgaW5pdFBhcmsuIFNlZSBTUFJLMy0xNDU5MS5cbiAgICBpZiAoIWZhY2lsaXR5RGljdGlvbmFyeT8uW25leHRHdWlkXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNldCBSZWFsdGltZSBFdmVudHMgZm9yIHRoZSBwYXJrXG4gICAgdGhpcy5yZWdpc3RlclBhcmtSZWFsdGltZUV2ZW50cyhuZXh0R3VpZCwgbmV4dFBhcmtJZCwgcHJldkd1aWQsIHByZXZQYXJrSWQsIGZhY2lsaXR5RGljdGlvbmFyeSk7XG4gICAgLy8gU2V0IFJlYWx0aW1lIEV2ZW50cyBmb3IgcGFyZW50IHBhcmtcbiAgICBpZiAoZmFjaWxpdHlEaWN0aW9uYXJ5W25leHRHdWlkXVtuZXh0UGFya0lkXT8uaXNNdWx0aVBhcmsgfHwgKChwcmV2R3VpZCAmJiBwcmV2UGFya0lkKSAmJiBmYWNpbGl0eURpY3Rpb25hcnlbcHJldkd1aWRdW3ByZXZQYXJrSWRdLmlzTXVsdGlQYXJrKSkge1xuICAgICAgdGhpcy5yZWdpc3RlclBhcmVudFBhcmtSZWFsdGltZUV2ZW50cyhuZXh0R3VpZCwgbmV4dFBhcmtJZCwgcHJldkd1aWQsIHByZXZQYXJrSWQsIGZhY2lsaXR5RGljdGlvbmFyeSk7XG4gICAgfVxuXG4gICAgLy8gU2V0IE5vdGlmaWNhdGlvbiBFdmVudHMgZm9yIHRoZSBwYXJrXG4gICAgdGhpcy5pbml0UGFya05vdGlmaWNhdGlvbnMobmV4dEd1aWQsIG5leHRQYXJrSWQsIHByZXZHdWlkLCBwcmV2UGFya0lkLCBmYWNpbGl0eURpY3Rpb25hcnkpO1xuICB9XG5cbiAgaW5pdFBhcmtOb3RpZmljYXRpb25zKG5leHRHdWlkOiBzdHJpbmcsIG5leHRQYXJrSWQ6IG51bWJlciwgcHJldkd1aWQ6IHN0cmluZywgcHJldlBhcmtJZDogbnVtYmVyLCBmYWNpbGl0eURpY3Rpb25hcnk6IFN0cmluZ01hcDxOdW1iZXJNYXA8RmFjaWxpdHlEdG8+Pikge1xuICAgIHRoaXMucmVnaXN0ZXJQYXJrTm90aWZpY2F0aW9uRXZlbnRzKG5leHRHdWlkLCBuZXh0UGFya0lkLCBwcmV2R3VpZCwgcHJldlBhcmtJZCwgZmFjaWxpdHlEaWN0aW9uYXJ5KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJQYXJrUmVhbHRpbWVFdmVudHMobmV4dEd1aWQ6IHN0cmluZywgbmV4dFBhcmtJZDogbnVtYmVyLCBwcmV2R3VpZDogc3RyaW5nLCBwcmV2UGFya0lkOiBudW1iZXIsIGZhY2lsaXR5RGljdGlvbmFyeTogU3RyaW5nTWFwPE51bWJlck1hcDxGYWNpbGl0eUR0bz4+KSB7XG4gICAgY29uc3QgbmV4dFBhcmsgPSBuZXcgUGFya1N1YnNjcmlwdGlvbkR0bygpO1xuICAgIG5leHRQYXJrLmd1aWQgPSBuZXh0R3VpZDtcblxuICAgIC8vIElmIHRoZSBuZXh0IHBhcmsgaXMgYSBTdXBlclBhcmsgd2UgbmVlZCB0byBzdWJzY3JpYmUgdG8gYWxsIGNoaWxkIHBhcmtzXG4gICAgLy8gRWxzZSB3ZSBzdWJzY3JpYmUgb25seSB0byB0aGUgcGFyayBpdHNlbGZcbiAgICBjb25zdCBpc05leHRQYXJrTXVsdGlQYXJrID0gZmFjaWxpdHlEaWN0aW9uYXJ5W25leHRHdWlkXVtuZXh0UGFya0lkXT8uaXNNdWx0aVBhcms7XG4gICAgaWYgKCEhaXNOZXh0UGFya011bHRpUGFyaykge1xuICAgICAgbmV4dFBhcmsucGFya0lkcyA9IE9iamVjdC52YWx1ZXMoZmFjaWxpdHlEaWN0aW9uYXJ5W25leHRHdWlkXSkuZmlsdGVyKGYgPT4gIWYuaXNNdWx0aVBhcmspLm1hcChmID0+IGYuaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0UGFyay5wYXJrSWRzID0gW25leHRQYXJrSWRdO1xuICAgIH1cblxuICAgIC8vIElmIHdlIGhhdmUgYSBwcmV2aW91cyBwYXJrIHNlbGVjdGVkIGFuZCBpdCBpcyBub3QgdGhlIHNhbWUgcGFyayBhcyB0aGUgbmV4dCBwYXJrXG4gICAgLy8gd2UgbmVlZCB0byB1bnN1YnNjcmliZSB0aGUgcGFya3NcbiAgICBjb25zdCBwcmV2UGFyayA9IG5ldyBQYXJrU3Vic2NyaXB0aW9uRHRvKCk7XG4gICAgaWYgKHByZXZHdWlkICYmIHByZXZQYXJrSWQgJiYgKHByZXZHdWlkICE9PSBuZXh0R3VpZCB8fCBwcmV2UGFya0lkICE9PSBuZXh0UGFya0lkKSkge1xuICAgICAgcHJldlBhcmsuZ3VpZCA9IHByZXZHdWlkO1xuICAgICAgLy8gSWYgdGhlIHByZXZpb3VzIHBhcmsgaXMgYSBTdXBlclBhcmsgd2UgbmVlZCB0byB1bnN1YnNjcmliZSB0byBhbGwgY2hpbGQgcGFya3NcbiAgICAgIC8vIEVsc2Ugd2UgdW5zdWJzY3JpYmUgb25seSB0byB0aGUgcGFyayBpdHNlbGZcbiAgICAgIGNvbnN0IGlzUHJldlBhcmtNdWx0aVBhcmsgPSBmYWNpbGl0eURpY3Rpb25hcnlbcHJldkd1aWRdW3ByZXZQYXJrSWRdLmlzTXVsdGlQYXJrO1xuICAgICAgaWYgKCEhaXNQcmV2UGFya011bHRpUGFyaykge1xuICAgICAgICBwcmV2UGFyay5wYXJrSWRzID0gT2JqZWN0LnZhbHVlcyhmYWNpbGl0eURpY3Rpb25hcnlbcHJldkd1aWRdKS5maWx0ZXIoZiA9PiAhZi5pc011bHRpUGFyaykubWFwKGYgPT4gZi5pZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcmV2UGFyay5wYXJrSWRzID0gW3ByZXZQYXJrSWRdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNpZ25hbFIuc3Vic2NyaWJlRm9yUmVhbHRpbWUodGhpcy5yZWFsdGltZUV2ZW50U2VydmljZS5nZXRQYXJrU2VsZWN0aW9uU3Vic2NyaXB0aW9ucyhwcmV2UGFyaywgbmV4dFBhcmspKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJQYXJlbnRQYXJrUmVhbHRpbWVFdmVudHMobmV4dEd1aWQ6IHN0cmluZywgbmV4dFBhcmtJZDogbnVtYmVyLCBwcmV2R3VpZDogc3RyaW5nLCBwcmV2UGFya0lkOiBudW1iZXIsIGZhY2lsaXR5RGljdGlvbmFyeTogU3RyaW5nTWFwPE51bWJlck1hcDxGYWNpbGl0eUR0bz4+KSB7XG4gICAgY29uc3QgbmV4dFBhcmVudFBhcmsgPSBuZXcgUGFya1N1YnNjcmlwdGlvbkR0bygpO1xuICAgIC8vIElmIHRoZSBuZXh0IHBhcmsgaXMgYSBTdXBlclBhcmsgd2UgbmVlZCB0byBzdWJzY3JpYmUgdG8gaXRcbiAgICBpZiAoZmFjaWxpdHlEaWN0aW9uYXJ5W25leHRHdWlkXVtuZXh0UGFya0lkXT8uaXNNdWx0aVBhcmspIHtcbiAgICAgIG5leHRQYXJlbnRQYXJrLmd1aWQgPSBuZXh0R3VpZDtcbiAgICAgIG5leHRQYXJlbnRQYXJrLnBhcmtJZHMgPSBbbmV4dFBhcmtJZF07XG4gICAgfVxuXG4gICAgY29uc3QgcHJldlBhcmVudFBhcmsgPSBuZXcgUGFya1N1YnNjcmlwdGlvbkR0bygpO1xuICAgIC8vIElmIHRoZSBwcmV2aW91cyBwYXJrIHdhcyBhIFN1cGVyUGFyayBhbmQgaXQgaXMgbm90IHRoZSBzYW1lIHBhcmsgYXMgdGhlIG5leHQgcGFya1xuICAgIC8vIHdlIG5lZWQgdG8gdW5zdWJzY3JpYmUgdGhlIHBhcmVudCBldmVudCBmcm9tIGl0XG4gICAgaWYgKHByZXZHdWlkICYmIHByZXZQYXJrSWQgJiYgKHByZXZHdWlkICE9PSBuZXh0R3VpZCB8fCBwcmV2UGFya0lkICE9PSBuZXh0UGFya0lkKSAmJiBmYWNpbGl0eURpY3Rpb25hcnlbcHJldkd1aWRdW3ByZXZQYXJrSWRdLmlzTXVsdGlQYXJrKSB7XG4gICAgICBwcmV2UGFyZW50UGFyay5ndWlkID0gcHJldkd1aWQ7XG4gICAgICBwcmV2UGFyZW50UGFyay5wYXJrSWRzID0gW3ByZXZQYXJrSWRdO1xuICAgIH1cblxuICAgIHRoaXMuc2lnbmFsUi5zdWJzY3JpYmVGb3JSZWFsdGltZSh0aGlzLnJlYWx0aW1lRXZlbnRTZXJ2aWNlLmdldFBhcmVudFBhcmtTZWxlY3Rpb25TdWJzY3JpcHRpb25zKHByZXZQYXJlbnRQYXJrLCBuZXh0UGFyZW50UGFyaykpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlclBhcmtOb3RpZmljYXRpb25FdmVudHMobmV4dEd1aWQ6IHN0cmluZywgbmV4dFBhcmtJZDogbnVtYmVyLCBwcmV2R3VpZDogc3RyaW5nLCBwcmV2UGFya0lkOiBudW1iZXIsIGZhY2lsaXR5RGljdGlvbmFyeTogU3RyaW5nTWFwPE51bWJlck1hcDxGYWNpbGl0eUR0bz4+KSB7XG4gICAgY29uc3Qgbm90aWZpY2F0aW9uVHlwZXMgPSB0aGlzLm5vdGlmaWNhdGlvbkV2ZW50U2VydmljZS5nZXRQYXJrQmFzZU5vdGlmaWNhdGlvblR5cGVzKCk7XG4gICAgY29uc3Qgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvID0gdGhpcy5ub3RpZmljYXRpb25FdmVudFNlcnZpY2UuZ2V0Tm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uc0VudGl0eSgpO1xuXG4gICAgbm90aWZpY2F0aW9uVHlwZXMubWFwKG5vdGlmaWNhdGlvblR5cGUgPT4ge1xuICAgICAgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvLnR5cGUgPSBub3RpZmljYXRpb25UeXBlO1xuICAgICAgdGhpcy5oYW5kbGVTdWJzY3JpYmVOb3RpZmljYXRpb25FdmVudHMobmV4dEd1aWQsIG5leHRQYXJrSWQsIGZhY2lsaXR5RGljdGlvbmFyeSwgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvKTtcbiAgICAgIHRoaXMuaGFuZGxlVW5zdWJzY3JpYmVOb3RpZmljYXRpb25FdmVudHMobmV4dEd1aWQsIG5leHRQYXJrSWQsIHByZXZHdWlkLCBwcmV2UGFya0lkLCBmYWNpbGl0eURpY3Rpb25hcnksIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0byk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVN1YnNjcmliZU5vdGlmaWNhdGlvbkV2ZW50cyhuZXh0R3VpZDogc3RyaW5nLCBuZXh0UGFya0lkOiBudW1iZXIsIGZhY2lsaXR5RGljdGlvbmFyeTogU3RyaW5nTWFwPE51bWJlck1hcDxGYWNpbGl0eUR0bz4+LFxuICAgIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0bzogTm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvKSB7XG4gICAgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvLnVuc3Vic2NyaWJlID0gZmFsc2U7XG4gICAgLy8gSWYgdGhlIG5leHQgcGFyayBpcyBhIFN1cGVyUGFyayB3ZSBuZWVkIHRvIHN1YnNjcmliZSB0byBhbGwgY2hpbGQgcGFya3NcbiAgICAvLyBFbHNlIHdlIHN1YnNjcmliZSBvbmx5IHRvIHRoZSBwYXJrIGl0c2VsZlxuICAgIGNvbnN0IG5leHRQYXJrID0gZmFjaWxpdHlEaWN0aW9uYXJ5W25leHRHdWlkXVtuZXh0UGFya0lkXTtcbiAgICBpZiAoISFuZXh0UGFyaz8uaXNNdWx0aVBhcmspIHtcbiAgICAgIGNvbnN0IHBhcmtJZHM6IG51bWJlcltdID0gT2JqZWN0LnZhbHVlcyhmYWNpbGl0eURpY3Rpb25hcnlbbmV4dEd1aWRdKS5maWx0ZXIoZiA9PiAhZi5pc011bHRpUGFyaykubWFwKGYgPT4gZi5pZCk7XG4gICAgICBwYXJrSWRzLmZvckVhY2gocGFya0lkID0+IHtcbiAgICAgICAgdGhpcy5pbnZva2VTaW5nbGVQYXJrU3Vic2NyaXB0aW9uKG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0bywgbmV4dEd1aWQsIHBhcmtJZCk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnZva2VTaW5nbGVQYXJrU3Vic2NyaXB0aW9uKG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0bywgbmV4dEd1aWQsIG5leHRQYXJrSWQpO1xuICAgIH1cbiAgICAvLyBJZiB0aGUgc2VsZWN0ZWQgcGFyayBpcyBhIFN1cGVycGFyayBvciBhIENoaWxkUGFya1xuICAgIC8vIFdlIG5lZWQgdG8gc3Vuc2NyaWJlIHRvIHRoZSBwYXJlbnQgYXMgd2VsbFxuICAgIGlmICghIW5leHRQYXJrPy5pc011bHRpUGFyayB8fCBuZXh0UGFyaz8ubXVsdGlQYXJrUGFyZW50SUQgPiAwKSB7XG4gICAgICBjb25zdCBwYXJlbnRQYXJrSWQgPSBuZXh0UGFyay5pc011bHRpUGFyayA/IG5leHRQYXJrLmlkIDogbmV4dFBhcmsubXVsdGlQYXJrUGFyZW50SUQ7XG4gICAgICB0aGlzLmludm9rZVNpbmdsZVBhcmtTdWJzY3JpcHRpb24obm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvLCBuZXh0R3VpZCwgcGFyZW50UGFya0lkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVVuc3Vic2NyaWJlTm90aWZpY2F0aW9uRXZlbnRzKG5leHRHdWlkOiBzdHJpbmcsIG5leHRQYXJrSWQ6IG51bWJlciwgcHJldkd1aWQ6IHN0cmluZywgcHJldlBhcmtJZDogbnVtYmVyLFxuICAgIGZhY2lsaXR5RGljdGlvbmFyeTogU3RyaW5nTWFwPE51bWJlck1hcDxGYWNpbGl0eUR0bz4+LCBub3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG86IE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0bykge1xuICAgIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0by51bnN1YnNjcmliZSA9IHRydWU7XG4gICAgLy8gSWYgd2UgaGF2ZSBhIHByZXZpb3VzIHBhcmsgc2VsZWN0ZWQgYW5kIGl0IGlzIG5vdCB0aGUgc2FtZSBwYXJrIGFzIHRoZSBuZXh0IHBhcmtcbiAgICAvLyB3ZSBuZWVkIHRvIHVuc3Vic2NyaWJlIHRoZSBwYXJrc1xuICAgIGlmIChwcmV2R3VpZCAmJiBwcmV2UGFya0lkICYmIChwcmV2R3VpZCAhPT0gbmV4dEd1aWQgfHwgcHJldlBhcmtJZCAhPT0gbmV4dFBhcmtJZCkpIHtcbiAgICAgIGNvbnN0IHByZXZQYXJrID0gZmFjaWxpdHlEaWN0aW9uYXJ5W3ByZXZHdWlkXVtwcmV2UGFya0lkXTtcbiAgICAgIGlmICghIXByZXZQYXJrLmlzTXVsdGlQYXJrKSB7XG4gICAgICAgIGNvbnN0IHBhcmtJZHM6IG51bWJlcltdID0gT2JqZWN0LnZhbHVlcyhmYWNpbGl0eURpY3Rpb25hcnlbcHJldkd1aWRdKS5maWx0ZXIoZiA9PiAhZi5pc011bHRpUGFyaykubWFwKGYgPT4gZi5pZCk7XG4gICAgICAgIHBhcmtJZHMuZm9yRWFjaChwYXJrSWQgPT4ge1xuICAgICAgICAgIHRoaXMuaW52b2tlU2luZ2xlUGFya1N1YnNjcmlwdGlvbihub3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8sIHByZXZHdWlkLCBwYXJrSWQpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW52b2tlU2luZ2xlUGFya1N1YnNjcmlwdGlvbihub3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8sIHByZXZHdWlkLCBwcmV2UGFya0lkKTtcbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSBwcmV2aW91cyBwYXJrIGlzIGEgU3VwZXJwYXJrIG9yIGEgQ2hpbGRQYXJrXG4gICAgICAvLyBXZSBuZWVkIHRvIHVuc3Vuc2NyaWJlIGZyb20gdGhlIHBhcmVudCBhcyB3ZWxsXG4gICAgICBpZiAoISFwcmV2UGFyay5pc011bHRpUGFyayB8fCBwcmV2UGFyay5tdWx0aVBhcmtQYXJlbnRJRCA+IDApIHtcbiAgICAgICAgY29uc3QgcGFyZW50UGFya0lkID0gcHJldlBhcmsuaXNNdWx0aVBhcmsgPyBwcmV2UGFyay5pZCA6IHByZXZQYXJrLm11bHRpUGFya1BhcmVudElEO1xuICAgICAgICB0aGlzLmludm9rZVNpbmdsZVBhcmtTdWJzY3JpcHRpb24obm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvLCBuZXh0R3VpZCwgcGFyZW50UGFya0lkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGludm9rZVNpbmdsZVBhcmtTdWJzY3JpcHRpb24obm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvOiBOb3RpZmljYXRpb25TdWJzY3JpcHRpb25EdG8sIGd1aWQ6IHN0cmluZywgcGFya0lkOiBudW1iZXIpIHtcbiAgICBjb25zdCBzaW5nbGVQYXJrU3Vic2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihuZXcgTm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uRHRvKCksIG5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbkR0byk7XG4gICAgc2luZ2xlUGFya1N1YnNjcmlwdGlvbi5pZGVudGlmaWVyID0gdGhpcy5idWlsZE5vdGlmaWNhdGlvbkV2ZW50SWQoZ3VpZCwgcGFya0lkLCBzaW5nbGVQYXJrU3Vic2NyaXB0aW9uLnVzZXJJZCwgc2luZ2xlUGFya1N1YnNjcmlwdGlvbi50eXBlKTtcbiAgICB0aGlzLnNpZ25hbFIuc3Vic2NyaWJlRm9yTm90aWZpY2F0aW9ucyhzaW5nbGVQYXJrU3Vic2NyaXB0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGROb3RpZmljYXRpb25FdmVudElkKGd1aWQ6IHN0cmluZywgcGFya0lkOiBudW1iZXIsIHVzZXJJZDogbnVtYmVyLCBub3RpZmljYXRpb25UeXBlOiBOb3RpZmljYXRpb25FdmVudFR5cGUpIHtcbiAgICByZXR1cm4gYCR7Z3VpZH1fJHtwYXJrSWR9XyR7bm90aWZpY2F0aW9uVHlwZX1fJHt1c2VySWR9YDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudW5sb2FkUGFya2luZ0xvdCgpO1xuICB9XG5cbiAgbG9hZFBhcmtpbmdMb3QgPSAocGFya0lkOiBudW1iZXIsIHRpYmFLZXlJbmRleDogbnVtYmVyKSA9PiB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBMb2FkUGFya2luZ0xvdEFjdGlvbihwYXJrSWQsIHRpYmFLZXlJbmRleCkpO1xuICBsb2FkUmVtb3RlQ29tbWFuZHNSZWYgPSAocGFya0lkOiBudW1iZXIsIHRpYmFLZXlJbmRleDogbnVtYmVyKSA9PiB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBMb2FkUmVtb3RlQ29tbWFuZHNSZWZBY3Rpb24ocGFya0lkLCB0aWJhS2V5SW5kZXgpKTtcbiAgbG9hZEZhY2lsaXR5UmVtb3RlQ29tbWFuZHNSZWYgPSAocGFya0lkOiBudW1iZXIsIHRpYmFLZXlJbmRleDogbnVtYmVyKSA9PiB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBMb2FkRmFjaWxpdHlSZW1vdGVDb21tYW5kc1JlZkFjdGlvbihwYXJrSWQsIHRpYmFLZXlJbmRleCkpO1xuICB1bmxvYWRQYXJraW5nTG90ID0gKCkgPT4gdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVW5sb2FkUGFya2luZ0xvdEFjdGlvbigpKTtcbn1cbiJdfQ==
@@ -125579,6 +125579,14 @@ class ParkService {
125579
125579
  this.loadRemoteCommandsRef(nextParkId, tibaKeyIndex);
125580
125580
  this.loadFacilityRemoteCommandsRef(nextParkId, tibaKeyIndex);
125581
125581
  const facilityDictionary = this.store.selectSnapshot(FacilityState.facilityDictionary);
125582
+ // On a deep-link / hard refresh straight onto a park route, tibaKeys can be
125583
+ // populated in state before the facility dictionary. Skip realtime and
125584
+ // notification registration until the dictionary for the selected core is
125585
+ // loaded — the loadParkingLot* dispatches above populate it, and the next
125586
+ // navigation re-invokes initPark. See SPRK3-14591.
125587
+ if (!facilityDictionary?.[nextGuid]) {
125588
+ return;
125589
+ }
125582
125590
  // Set Realtime Events for the park
125583
125591
  this.registerParkRealtimeEvents(nextGuid, nextParkId, prevGuid, prevParkId, facilityDictionary);
125584
125592
  // Set Realtime Events for parent park