@plait/core 0.0.55 → 0.0.56

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.
@@ -16,11 +16,20 @@ export const inverse = (op) => {
16
16
  if (Path.equals(newPath, path)) {
17
17
  return op;
18
18
  }
19
- if (Path.isSibling(path, newPath)) {
20
- const inversePath = Path.transform(path, op);
21
- return { ...op, path: inversePath, newPath: path };
22
- }
23
- return { ...op, path: newPath, newPath: path };
19
+ // when operation path is [0,0] -> [0,2], should exec Path.transform to get [0,1] -> [0,0]
20
+ // shoud not return [0,2] -> [0,0] #WIK-8981
21
+ // if (Path.isSibling(path, newPath)) {
22
+ // return { ...op, path: newPath, newPath: path };
23
+ // }
24
+ // If the move does not happen within a single parent it is possible
25
+ // for the move to impact the true path to the location where the node
26
+ // was removed from and where it was inserted. We have to adjust for this
27
+ // and find the original path. We can accomplish this (only in non-sibling)
28
+ // moves by looking at the impact of the move operation on the node
29
+ // after the original move path.
30
+ const inversePath = Path.transform(path, op);
31
+ const inverseNewPath = Path.transform(Path.next(path), op);
32
+ return { ...op, path: inversePath, newPath: inverseNewPath };
24
33
  }
25
34
  case 'set_node': {
26
35
  const { properties, newProperties } = op;
@@ -72,4 +81,4 @@ export const PlaitOperation = {
72
81
  isSetViewportOperation,
73
82
  inverse
74
83
  };
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL2ludGVyZmFjZXMvb3BlcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFzRDlCLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBVSxFQUFpQyxFQUFFO0lBQ2hGLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBa0IsRUFBa0IsRUFBRTtJQUMxRCxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUU7UUFDYixLQUFLLGFBQWEsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUM7U0FDekM7UUFFRCxLQUFLLGFBQWEsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUM7U0FDekM7UUFFRCxLQUFLLFdBQVcsQ0FBQyxDQUFDO1lBQ2QsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFFN0IsNERBQTREO1lBQzVELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQzVCLE9BQU8sRUFBRSxDQUFDO2FBQ2I7WUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUMvQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUUsQ0FBQztnQkFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO2FBQ3REO1lBRUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ2xEO1FBRUQsS0FBSyxVQUFVLENBQUMsQ0FBQztZQUNiLE1BQU0sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsQ0FBQztTQUMxRTtRQUVELEtBQUssZUFBZSxDQUFDLENBQUM7WUFDbEIsTUFBTSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFFekMsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFO2dCQUNwQixPQUFPO29CQUNILEdBQUcsRUFBRTtvQkFDTCxVQUFVLEVBQUUsYUFBYTtvQkFDekIsYUFBYSxFQUFFLElBQUk7aUJBQ3RCLENBQUM7YUFDTDtpQkFBTSxJQUFJLGFBQWEsSUFBSSxJQUFJLEVBQUU7Z0JBQzlCLE9BQU87b0JBQ0gsR0FBRyxFQUFFO29CQUNMLFVBQVUsRUFBRSxJQUFJO29CQUNoQixhQUFhLEVBQUUsVUFBVTtpQkFDNUIsQ0FBQzthQUNMO2lCQUFNO2dCQUNILE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsQ0FBQzthQUMxRTtTQUNKO1FBRUQsS0FBSyxjQUFjLENBQUMsQ0FBQztZQUNqQixNQUFNLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUN6QyxJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUU7Z0JBQ3BCLE9BQU87b0JBQ0gsR0FBRyxFQUFFO29CQUNMLFVBQVUsRUFBRSxhQUFhO29CQUN6QixhQUFhLEVBQUUsYUFBYTtpQkFDL0IsQ0FBQzthQUNMO2lCQUFNLElBQUksYUFBYSxJQUFJLElBQUksRUFBRTtnQkFDOUIsT0FBTztvQkFDSCxHQUFHLEVBQUU7b0JBQ0wsVUFBVSxFQUFFLFVBQVU7b0JBQ3RCLGFBQWEsRUFBRSxVQUFVO2lCQUM1QixDQUFDO2FBQ0w7aUJBQU07Z0JBQ0gsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxDQUFDO2FBQzFFO1NBQ0o7S0FDSjtBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBNEI7SUFDbkQsc0JBQXNCO0lBQ3RCLE9BQU87Q0FDVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXROb2RlIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IFBhdGggfSBmcm9tICcuL3BhdGgnO1xuaW1wb3J0IHsgU2VsZWN0aW9uIH0gZnJvbSAnLi9zZWxlY3Rpb24nO1xuaW1wb3J0IHsgVmlld3BvcnQgfSBmcm9tICcuL3ZpZXdwb3J0JztcblxuZXhwb3J0IHR5cGUgSW5zZXJ0Tm9kZU9wZXJhdGlvbiA9IHtcbiAgICB0eXBlOiAnaW5zZXJ0X25vZGUnO1xuICAgIHBhdGg6IFBhdGg7XG4gICAgbm9kZTogUGxhaXROb2RlO1xufTtcblxuZXhwb3J0IHR5cGUgUmVtb3ZlTm9kZU9wZXJhdGlvbiA9IHtcbiAgICB0eXBlOiAncmVtb3ZlX25vZGUnO1xuICAgIHBhdGg6IFBhdGg7XG4gICAgbm9kZTogUGxhaXROb2RlO1xufTtcblxuZXhwb3J0IHR5cGUgTW92ZU5vZGVPcGVyYXRpb24gPSB7XG4gICAgdHlwZTogJ21vdmVfbm9kZSc7XG4gICAgcGF0aDogUGF0aDtcbiAgICBuZXdQYXRoOiBQYXRoO1xufTtcblxuZXhwb3J0IHR5cGUgU2V0Vmlld3BvcnRPcGVyYXRpb24gPSB7XG4gICAgdHlwZTogJ3NldF92aWV3cG9ydCc7XG4gICAgcHJvcGVydGllczogUGFydGlhbDxWaWV3cG9ydD47XG4gICAgbmV3UHJvcGVydGllczogUGFydGlhbDxWaWV3cG9ydD47XG59O1xuXG5leHBvcnQgdHlwZSBTZXRTZWxlY3Rpb25PcGVyYXRpb24gPSB7XG4gICAgdHlwZTogJ3NldF9zZWxlY3Rpb24nO1xuICAgIHByb3BlcnRpZXM6IFNlbGVjdGlvbiB8IG51bGw7XG4gICAgbmV3UHJvcGVydGllczogU2VsZWN0aW9uIHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIFNldE5vZGVPcGVyYXRpb24gPSB7XG4gICAgdHlwZTogJ3NldF9ub2RlJztcbiAgICBwYXRoOiBQYXRoO1xuICAgIHByb3BlcnRpZXM6IFBhcnRpYWw8UGxhaXROb2RlPjtcbiAgICBuZXdQcm9wZXJ0aWVzOiBQYXJ0aWFsPFBsYWl0Tm9kZT47XG59O1xuXG5leHBvcnQgdHlwZSBQbGFpdE9wZXJhdGlvbiA9XG4gICAgfCBJbnNlcnROb2RlT3BlcmF0aW9uXG4gICAgfCBTZXRWaWV3cG9ydE9wZXJhdGlvblxuICAgIHwgU2V0U2VsZWN0aW9uT3BlcmF0aW9uXG4gICAgfCBTZXROb2RlT3BlcmF0aW9uXG4gICAgfCBSZW1vdmVOb2RlT3BlcmF0aW9uXG4gICAgfCBNb3ZlTm9kZU9wZXJhdGlvbjtcblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdE9wZXJhdGlvbkludGVyZmFjZSB7XG4gICAgaW52ZXJzZTogKG9wOiBQbGFpdE9wZXJhdGlvbikgPT4gUGxhaXRPcGVyYXRpb247XG4gICAgaXNTZXRWaWV3cG9ydE9wZXJhdGlvbjogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBpc1NldFZpZXdwb3J0T3BlcmF0aW9uID0gKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBTZXRWaWV3cG9ydE9wZXJhdGlvbiA9PiB7XG4gICAgcmV0dXJuIHZhbHVlLnR5cGUgPT09ICdzZXRfdmlld3BvcnQnO1xufTtcblxuZXhwb3J0IGNvbnN0IGludmVyc2UgPSAob3A6IFBsYWl0T3BlcmF0aW9uKTogUGxhaXRPcGVyYXRpb24gPT4ge1xuICAgIHN3aXRjaCAob3AudHlwZSkge1xuICAgICAgICBjYXNlICdpbnNlcnRfbm9kZSc6IHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLm9wLCB0eXBlOiAncmVtb3ZlX25vZGUnIH07XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlICdyZW1vdmVfbm9kZSc6IHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLm9wLCB0eXBlOiAnaW5zZXJ0X25vZGUnIH07XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlICdtb3ZlX25vZGUnOiB7XG4gICAgICAgICAgICBjb25zdCB7IG5ld1BhdGgsIHBhdGggfSA9IG9wO1xuXG4gICAgICAgICAgICAvLyBQRVJGOiBpbiB0aGlzIGNhc2UgdGhlIG1vdmUgb3BlcmF0aW9uIGlzIGEgbm8tb3AgYW55d2F5cy5cbiAgICAgICAgICAgIGlmIChQYXRoLmVxdWFscyhuZXdQYXRoLCBwYXRoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFBhdGguaXNTaWJsaW5nKHBhdGgsIG5ld1BhdGgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW52ZXJzZVBhdGggPSBQYXRoLnRyYW5zZm9ybShwYXRoLCBvcCkhO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLm9wLCBwYXRoOiBpbnZlcnNlUGF0aCwgbmV3UGF0aDogcGF0aCB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4geyAuLi5vcCwgcGF0aDogbmV3UGF0aCwgbmV3UGF0aDogcGF0aCB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSAnc2V0X25vZGUnOiB7XG4gICAgICAgICAgICBjb25zdCB7IHByb3BlcnRpZXMsIG5ld1Byb3BlcnRpZXMgfSA9IG9wO1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4ub3AsIHByb3BlcnRpZXM6IG5ld1Byb3BlcnRpZXMsIG5ld1Byb3BlcnRpZXM6IHByb3BlcnRpZXMgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ3NldF9zZWxlY3Rpb24nOiB7XG4gICAgICAgICAgICBjb25zdCB7IHByb3BlcnRpZXMsIG5ld1Byb3BlcnRpZXMgfSA9IG9wO1xuXG4gICAgICAgICAgICBpZiAocHJvcGVydGllcyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ub3AsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IG5ld1Byb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgICAgIG5ld1Byb3BlcnRpZXM6IG51bGxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChuZXdQcm9wZXJ0aWVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5vcCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgbmV3UHJvcGVydGllczogcHJvcGVydGllc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLm9wLCBwcm9wZXJ0aWVzOiBuZXdQcm9wZXJ0aWVzLCBuZXdQcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlICdzZXRfdmlld3BvcnQnOiB7XG4gICAgICAgICAgICBjb25zdCB7IHByb3BlcnRpZXMsIG5ld1Byb3BlcnRpZXMgfSA9IG9wO1xuICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLm9wLFxuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBuZXdQcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgICAgICBuZXdQcm9wZXJ0aWVzOiBuZXdQcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobmV3UHJvcGVydGllcyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ub3AsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgICAgIG5ld1Byb3BlcnRpZXM6IHByb3BlcnRpZXNcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyAuLi5vcCwgcHJvcGVydGllczogbmV3UHJvcGVydGllcywgbmV3UHJvcGVydGllczogcHJvcGVydGllcyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IFBsYWl0T3BlcmF0aW9uOiBQbGFpdE9wZXJhdGlvbkludGVyZmFjZSA9IHtcbiAgICBpc1NldFZpZXdwb3J0T3BlcmF0aW9uLFxuICAgIGludmVyc2Vcbn07XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL2ludGVyZmFjZXMvb3BlcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFzRDlCLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBVSxFQUFpQyxFQUFFO0lBQ2hGLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBa0IsRUFBa0IsRUFBRTtJQUMxRCxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUU7UUFDYixLQUFLLGFBQWEsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUM7U0FDekM7UUFFRCxLQUFLLGFBQWEsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUM7U0FDekM7UUFFRCxLQUFLLFdBQVcsQ0FBQyxDQUFDO1lBQ2QsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFFN0IsNERBQTREO1lBQzVELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQzVCLE9BQU8sRUFBRSxDQUFDO2FBQ2I7WUFFRCwwRkFBMEY7WUFDMUYsNENBQTRDO1lBQzVDLHVDQUF1QztZQUN2QyxzREFBc0Q7WUFDdEQsSUFBSTtZQUVKLG9FQUFvRTtZQUNwRSxzRUFBc0U7WUFDdEUseUVBQXlFO1lBQ3pFLDJFQUEyRTtZQUMzRSxtRUFBbUU7WUFDbkUsZ0NBQWdDO1lBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBRSxDQUFDO1lBQzlDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUUsQ0FBQztZQUM1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUM7U0FDaEU7UUFFRCxLQUFLLFVBQVUsQ0FBQyxDQUFDO1lBQ2IsTUFBTSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxDQUFDO1NBQzFFO1FBRUQsS0FBSyxlQUFlLENBQUMsQ0FBQztZQUNsQixNQUFNLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUV6QyxJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUU7Z0JBQ3BCLE9BQU87b0JBQ0gsR0FBRyxFQUFFO29CQUNMLFVBQVUsRUFBRSxhQUFhO29CQUN6QixhQUFhLEVBQUUsSUFBSTtpQkFDdEIsQ0FBQzthQUNMO2lCQUFNLElBQUksYUFBYSxJQUFJLElBQUksRUFBRTtnQkFDOUIsT0FBTztvQkFDSCxHQUFHLEVBQUU7b0JBQ0wsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGFBQWEsRUFBRSxVQUFVO2lCQUM1QixDQUFDO2FBQ0w7aUJBQU07Z0JBQ0gsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxDQUFDO2FBQzFFO1NBQ0o7UUFFRCxLQUFLLGNBQWMsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3pDLElBQUksVUFBVSxJQUFJLElBQUksRUFBRTtnQkFDcEIsT0FBTztvQkFDSCxHQUFHLEVBQUU7b0JBQ0wsVUFBVSxFQUFFLGFBQWE7b0JBQ3pCLGFBQWEsRUFBRSxhQUFhO2lCQUMvQixDQUFDO2FBQ0w7aUJBQU0sSUFBSSxhQUFhLElBQUksSUFBSSxFQUFFO2dCQUM5QixPQUFPO29CQUNILEdBQUcsRUFBRTtvQkFDTCxVQUFVLEVBQUUsVUFBVTtvQkFDdEIsYUFBYSxFQUFFLFVBQVU7aUJBQzVCLENBQUM7YUFDTDtpQkFBTTtnQkFDSCxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLENBQUM7YUFDMUU7U0FDSjtLQUNKO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUE0QjtJQUNuRCxzQkFBc0I7SUFDdEIsT0FBTztDQUNWLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdE5vZGUgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHsgUGF0aCB9IGZyb20gJy4vcGF0aCc7XG5pbXBvcnQgeyBTZWxlY3Rpb24gfSBmcm9tICcuL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBWaWV3cG9ydCB9IGZyb20gJy4vdmlld3BvcnQnO1xuXG5leHBvcnQgdHlwZSBJbnNlcnROb2RlT3BlcmF0aW9uID0ge1xuICAgIHR5cGU6ICdpbnNlcnRfbm9kZSc7XG4gICAgcGF0aDogUGF0aDtcbiAgICBub2RlOiBQbGFpdE5vZGU7XG59O1xuXG5leHBvcnQgdHlwZSBSZW1vdmVOb2RlT3BlcmF0aW9uID0ge1xuICAgIHR5cGU6ICdyZW1vdmVfbm9kZSc7XG4gICAgcGF0aDogUGF0aDtcbiAgICBub2RlOiBQbGFpdE5vZGU7XG59O1xuXG5leHBvcnQgdHlwZSBNb3ZlTm9kZU9wZXJhdGlvbiA9IHtcbiAgICB0eXBlOiAnbW92ZV9ub2RlJztcbiAgICBwYXRoOiBQYXRoO1xuICAgIG5ld1BhdGg6IFBhdGg7XG59O1xuXG5leHBvcnQgdHlwZSBTZXRWaWV3cG9ydE9wZXJhdGlvbiA9IHtcbiAgICB0eXBlOiAnc2V0X3ZpZXdwb3J0JztcbiAgICBwcm9wZXJ0aWVzOiBQYXJ0aWFsPFZpZXdwb3J0PjtcbiAgICBuZXdQcm9wZXJ0aWVzOiBQYXJ0aWFsPFZpZXdwb3J0Pjtcbn07XG5cbmV4cG9ydCB0eXBlIFNldFNlbGVjdGlvbk9wZXJhdGlvbiA9IHtcbiAgICB0eXBlOiAnc2V0X3NlbGVjdGlvbic7XG4gICAgcHJvcGVydGllczogU2VsZWN0aW9uIHwgbnVsbDtcbiAgICBuZXdQcm9wZXJ0aWVzOiBTZWxlY3Rpb24gfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgU2V0Tm9kZU9wZXJhdGlvbiA9IHtcbiAgICB0eXBlOiAnc2V0X25vZGUnO1xuICAgIHBhdGg6IFBhdGg7XG4gICAgcHJvcGVydGllczogUGFydGlhbDxQbGFpdE5vZGU+O1xuICAgIG5ld1Byb3BlcnRpZXM6IFBhcnRpYWw8UGxhaXROb2RlPjtcbn07XG5cbmV4cG9ydCB0eXBlIFBsYWl0T3BlcmF0aW9uID1cbiAgICB8IEluc2VydE5vZGVPcGVyYXRpb25cbiAgICB8IFNldFZpZXdwb3J0T3BlcmF0aW9uXG4gICAgfCBTZXRTZWxlY3Rpb25PcGVyYXRpb25cbiAgICB8IFNldE5vZGVPcGVyYXRpb25cbiAgICB8IFJlbW92ZU5vZGVPcGVyYXRpb25cbiAgICB8IE1vdmVOb2RlT3BlcmF0aW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0T3BlcmF0aW9uSW50ZXJmYWNlIHtcbiAgICBpbnZlcnNlOiAob3A6IFBsYWl0T3BlcmF0aW9uKSA9PiBQbGFpdE9wZXJhdGlvbjtcbiAgICBpc1NldFZpZXdwb3J0T3BlcmF0aW9uOiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGlzU2V0Vmlld3BvcnRPcGVyYXRpb24gPSAodmFsdWU6IGFueSk6IHZhbHVlIGlzIFNldFZpZXdwb3J0T3BlcmF0aW9uID0+IHtcbiAgICByZXR1cm4gdmFsdWUudHlwZSA9PT0gJ3NldF92aWV3cG9ydCc7XG59O1xuXG5leHBvcnQgY29uc3QgaW52ZXJzZSA9IChvcDogUGxhaXRPcGVyYXRpb24pOiBQbGFpdE9wZXJhdGlvbiA9PiB7XG4gICAgc3dpdGNoIChvcC50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2luc2VydF9ub2RlJzoge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4ub3AsIHR5cGU6ICdyZW1vdmVfbm9kZScgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ3JlbW92ZV9ub2RlJzoge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4ub3AsIHR5cGU6ICdpbnNlcnRfbm9kZScgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ21vdmVfbm9kZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgbmV3UGF0aCwgcGF0aCB9ID0gb3A7XG5cbiAgICAgICAgICAgIC8vIFBFUkY6IGluIHRoaXMgY2FzZSB0aGUgbW92ZSBvcGVyYXRpb24gaXMgYSBuby1vcCBhbnl3YXlzLlxuICAgICAgICAgICAgaWYgKFBhdGguZXF1YWxzKG5ld1BhdGgsIHBhdGgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyB3aGVuIG9wZXJhdGlvbiBwYXRoIGlzIFswLDBdIC0+IFswLDJdLCBzaG91bGQgZXhlYyBQYXRoLnRyYW5zZm9ybSB0byBnZXQgWzAsMV0gLT4gWzAsMF1cbiAgICAgICAgICAgIC8vIHNob3VkIG5vdCByZXR1cm4gWzAsMl0gLT4gWzAsMF0gI1dJSy04OTgxXG4gICAgICAgICAgICAvLyBpZiAoUGF0aC5pc1NpYmxpbmcocGF0aCwgbmV3UGF0aCkpIHtcbiAgICAgICAgICAgIC8vICAgICByZXR1cm4geyAuLi5vcCwgcGF0aDogbmV3UGF0aCwgbmV3UGF0aDogcGF0aCB9O1xuICAgICAgICAgICAgLy8gfVxuXG4gICAgICAgICAgICAvLyBJZiB0aGUgbW92ZSBkb2VzIG5vdCBoYXBwZW4gd2l0aGluIGEgc2luZ2xlIHBhcmVudCBpdCBpcyBwb3NzaWJsZVxuICAgICAgICAgICAgLy8gZm9yIHRoZSBtb3ZlIHRvIGltcGFjdCB0aGUgdHJ1ZSBwYXRoIHRvIHRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgbm9kZVxuICAgICAgICAgICAgLy8gd2FzIHJlbW92ZWQgZnJvbSBhbmQgd2hlcmUgaXQgd2FzIGluc2VydGVkLiBXZSBoYXZlIHRvIGFkanVzdCBmb3IgdGhpc1xuICAgICAgICAgICAgLy8gYW5kIGZpbmQgdGhlIG9yaWdpbmFsIHBhdGguIFdlIGNhbiBhY2NvbXBsaXNoIHRoaXMgKG9ubHkgaW4gbm9uLXNpYmxpbmcpXG4gICAgICAgICAgICAvLyBtb3ZlcyBieSBsb29raW5nIGF0IHRoZSBpbXBhY3Qgb2YgdGhlIG1vdmUgb3BlcmF0aW9uIG9uIHRoZSBub2RlXG4gICAgICAgICAgICAvLyBhZnRlciB0aGUgb3JpZ2luYWwgbW92ZSBwYXRoLlxuICAgICAgICAgICAgY29uc3QgaW52ZXJzZVBhdGggPSBQYXRoLnRyYW5zZm9ybShwYXRoLCBvcCkhO1xuICAgICAgICAgICAgY29uc3QgaW52ZXJzZU5ld1BhdGggPSBQYXRoLnRyYW5zZm9ybShQYXRoLm5leHQocGF0aCksIG9wKSE7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5vcCwgcGF0aDogaW52ZXJzZVBhdGgsIG5ld1BhdGg6IGludmVyc2VOZXdQYXRoIH07XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlICdzZXRfbm9kZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgbmV3UHJvcGVydGllcyB9ID0gb3A7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5vcCwgcHJvcGVydGllczogbmV3UHJvcGVydGllcywgbmV3UHJvcGVydGllczogcHJvcGVydGllcyB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSAnc2V0X3NlbGVjdGlvbic6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgbmV3UHJvcGVydGllcyB9ID0gb3A7XG5cbiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5vcCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogbmV3UHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICAgICAgbmV3UHJvcGVydGllczogbnVsbFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5ld1Byb3BlcnRpZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLm9wLFxuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBuZXdQcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4ub3AsIHByb3BlcnRpZXM6IG5ld1Byb3BlcnRpZXMsIG5ld1Byb3BlcnRpZXM6IHByb3BlcnRpZXMgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ3NldF92aWV3cG9ydCc6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgbmV3UHJvcGVydGllcyB9ID0gb3A7XG4gICAgICAgICAgICBpZiAocHJvcGVydGllcyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ub3AsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IG5ld1Byb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgICAgIG5ld1Byb3BlcnRpZXM6IG5ld1Byb3BlcnRpZXNcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChuZXdQcm9wZXJ0aWVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5vcCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogcHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICAgICAgbmV3UHJvcGVydGllczogcHJvcGVydGllc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLm9wLCBwcm9wZXJ0aWVzOiBuZXdQcm9wZXJ0aWVzLCBuZXdQcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgUGxhaXRPcGVyYXRpb246IFBsYWl0T3BlcmF0aW9uSW50ZXJmYWNlID0ge1xuICAgIGlzU2V0Vmlld3BvcnRPcGVyYXRpb24sXG4gICAgaW52ZXJzZVxufTtcbiJdfQ==
@@ -132,8 +132,8 @@ export const Path = {
132
132
  break;
133
133
  }
134
134
  }
135
- return null;
135
+ return p;
136
136
  });
137
137
  }
138
138
  };
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYWl0L3NyYy9pbnRlcmZhY2VzL3BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxPQUFPLE1BQU0sT0FBTyxDQUFDO0FBSzVCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRztJQUNoQixNQUFNLENBQUMsSUFBVTtRQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsSUFBSSxJQUFJLENBQUMsQ0FBQztTQUM3RTtRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxDQUFDLElBQVU7UUFDWCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLElBQUksa0NBQWtDLENBQUMsQ0FBQztTQUN2RztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRDs7T0FFRztJQUVILFVBQVUsQ0FBQyxJQUFVLEVBQUUsT0FBYTtRQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSCxPQUFPLENBQUMsSUFBVSxFQUFFLE9BQWE7UUFDN0IsTUFBTSxHQUFHLEdB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QyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUMxQjt5QkFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO3dCQUMvQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFOzRCQUNyQixDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQzFCO3dCQUVELENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDekI7b0JBRUQsTUFBTTtpQkFDVDthQUNKO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwcm9kdWNlIGZyb20gJ2ltbWVyJztcbmltcG9ydCB7IFBsYWl0T3BlcmF0aW9uIH0gZnJvbSAnLi9vcGVyYXRpb24nO1xuXG5leHBvcnQgdHlwZSBQYXRoID0gbnVtYmVyW107XG5cbmV4cG9ydCBjb25zdCBQYXRoID0ge1xuICAgIHBhcmVudChwYXRoOiBQYXRoKTogUGF0aCB7XG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZ2V0IHRoZSBwYXJlbnQgcGF0aCBvZiB0aGUgcm9vdCBwYXRoIFske3BhdGh9XS5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXRoLnNsaWNlKDAsIC0xKTtcbiAgICB9LFxuICAgIG5leHQocGF0aDogUGF0aCk6IFBhdGgge1xuICAgICAgICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGdldCB0aGUgbmV4dCBwYXRoIG9mIGEgcm9vdCBwYXRoIFske3BhdGh9XSwgYmVjYXVzZSBpdCBoYXMgbm8gbmV4dCBpbmRleC5gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsYXN0ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuICAgICAgICByZXR1cm4gcGF0aC5zbGljZSgwLCAtMSkuY29uY2F0KGxhc3QgKyAxKTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgcGF0aCBpcyBhbiBhbmNlc3RvciBvZiBhbm90aGVyLlxuICAgICAqL1xuXG4gICAgaXNBbmNlc3RvcihwYXRoOiBQYXRoLCBhbm90aGVyOiBQYXRoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBwYXRoLmxlbmd0aCA8IGFub3RoZXIubGVuZ3RoICYmIFBhdGguY29tcGFyZShwYXRoLCBhbm90aGVyKSA9PT0gMDtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIENvbXBhcmUgYSBwYXRoIHRvIGFub3RoZXIsIHJldHVybmluZyBhbiBpbnRlZ2VyIGluZGljYXRpbmcgd2hldGhlciB0aGUgcGF0aFxuICAgICAqIHdhcyBiZWZvcmUsIGF0LCBvciBhZnRlciB0aGUgb3RoZXIuXG4gICAgICpcbiAgICAgKiBOb3RlOiBUd28gcGF0aHMgb2YgdW5lcXVhbCBsZW5ndGggY2FuIHN0aWxsIHJlY2VpdmUgYSBgMGAgcmVzdWx0IGlmIG9uZSBpc1xuICAgICAqIGRpcmVjdGx5IGFib3ZlIG9yIGJlbG93IHRoZSBvdGhlci4gSWYgeW91IHdhbnQgZXhhY3QgbWF0Y2hpbmcsIHVzZVxuICAgICAqIFtbUGF0aC5lcXVhbHNdXSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIGNvbXBhcmUocGF0aDogUGF0aCwgYW5vdGhlcjogUGF0aCk6IC0xIHwgMCB8IDEge1xuICAgICAgICBjb25zdCBtaW4gPSBNYXRoLm1pbihwYXRoLmxlbmd0aCwgYW5vdGhlci5sZW5ndGgpO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWluOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXRoW2ldIDwgYW5vdGhlcltpXSkgcmV0dXJuIC0xO1xuICAgICAgICAgICAgaWYgKHBhdGhbaV0gPiBhbm90aGVyW2ldKSByZXR1cm4gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAwO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBhIHBhdGggaXMgZXhhY3RseSBlcXVhbCB0byBhbm90aGVyLlxuICAgICAqL1xuXG4gICAgZXF1YWxzKHBhdGg6IFBhdGgsIGFub3RoZXI6IFBhdGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHBhdGgubGVuZ3RoID09PSBhbm90aGVyLmxlbmd0aCAmJiBwYXRoLmV2ZXJ5KChuLCBpKSA9PiBuID09PSBhbm90aGVyW2ldKTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgcGF0aCBlbmRzIGJlZm9yZSBvbmUgb2YgdGhlIGluZGV4ZXMgaW4gYW5vdGhlci5cbiAgICAgKi9cblxuICAgIGVuZHNCZWZvcmUocGF0aDogUGF0aCwgYW5vdGhlcjogUGF0aCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBpID0gcGF0aC5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBhcyA9IHBhdGguc2xpY2UoMCwgaSk7XG4gICAgICAgIGNvbnN0IGJzID0gYW5vdGhlci5zbGljZSgwLCBpKTtcbiAgICAgICAgY29uc3QgYXYgPSBwYXRoW2ldO1xuICAgICAgICBjb25zdCBidiA9IGFub3RoZXJbaV07XG4gICAgICAgIHJldHVybiBQYXRoLmVxdWFscyhhcywgYnMpICYmIGF2IDwgYnY7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBhIHBhdGggaXMgYSBzaWJsaW5nIG9mIGFub3RoZXIuXG4gICAgICovXG4gICAgaXNTaWJsaW5nKHBhdGg6IFBhdGgsIGFub3RoZXI6IFBhdGgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoICE9PSBhbm90aGVyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXMgPSBwYXRoLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgY29uc3QgYnMgPSBhbm90aGVyLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgY29uc3QgYWwgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG4gICAgICAgIGNvbnN0IGJsID0gYW5vdGhlclthbm90aGVyLmxlbmd0aCAtIDFdO1xuICAgICAgICByZXR1cm4gYWwgIT09IGJsICYmIFBhdGguZXF1YWxzKGFzLCBicyk7XG4gICAgfSxcbiAgICB0cmFuc2Zvcm0ocGF0aDogUGF0aCB8IG51bGwsIG9wZXJhdGlvbjogUGxhaXRPcGVyYXRpb24pOiBQYXRoIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBwcm9kdWNlKHBhdGgsIHAgPT4ge1xuICAgICAgICAgICAgLy8gUEVSRjogRXhpdCBlYXJseSBpZiB0aGUgb3BlcmF0aW9uIGlzIGd1YXJhbnRlZWQgbm90IHRvIGhhdmUgYW4gZWZmZWN0LlxuICAgICAgICAgICAgaWYgKCFwYXRoIHx8IHBhdGg/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHAgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3dpdGNoIChvcGVyYXRpb24udHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2luc2VydF9ub2RlJzoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBhdGg6IG9wIH0gPSBvcGVyYXRpb247XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguZXF1YWxzKG9wLCBwKSB8fCBQYXRoLmVuZHNCZWZvcmUob3AsIHApIHx8IFBhdGguaXNBbmNlc3RvcihvcCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBbb3AubGVuZ3RoIC0gMV0gKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNhc2UgJ3JlbW92ZV9ub2RlJzoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBhdGg6IG9wIH0gPSBvcGVyYXRpb247XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguZXF1YWxzKG9wLCBwKSB8fCBQYXRoLmlzQW5jZXN0b3Iob3AsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChQYXRoLmVuZHNCZWZvcmUob3AsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwW29wLmxlbmd0aCAtIDFdIC09IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjYXNlICdtb3ZlX25vZGUnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcGF0aDogb3AsIG5ld1BhdGg6IG9ucCB9ID0gb3BlcmF0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvbGQgYW5kIG5ldyBwYXRoIGFyZSB0aGUgc2FtZSwgaXQncyBhIG5vLW9wLlxuICAgICAgICAgICAgICAgICAgICBpZiAoUGF0aC5lcXVhbHMob3AsIG9ucCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChQYXRoLmlzQW5jZXN0b3Iob3AsIHApIHx8IFBhdGguZXF1YWxzKG9wLCBwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29weSA9IG9ucC5zbGljZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3AubGVuZ3RoIDw9IG9ucC5sZW5ndGggaXMgZGlmZmVyZW50IGZvciBzbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVzb2x2ZSBkcmFnIGZyb20gWzAsIDBdIHRvIFswLCAzXSBpc3N1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguZW5kc0JlZm9yZShvcCwgb25wKSAmJiBvcC5sZW5ndGggPD0gb25wLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlbb3AubGVuZ3RoIC0gMV0gLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvcHkuY29uY2F0KHAuc2xpY2Uob3AubGVuZ3RoKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoUGF0aC5pc1NpYmxpbmcob3AsIG9ucCkgJiYgKFBhdGguaXNBbmNlc3RvcihvbnAsIHApIHx8IFBhdGguZXF1YWxzKG9ucCwgcCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoUGF0aC5lbmRzQmVmb3JlKG9wLCBwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBbb3AubGVuZ3RoIC0gMV0gLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcFtvcC5sZW5ndGggLSAxXSArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFBhdGguZW5kc0JlZm9yZShvbnAsIHApIHx8IFBhdGguZXF1YWxzKG9ucCwgcCkgfHwgUGF0aC5pc0FuY2VzdG9yKG9ucCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChQYXRoLmVuZHNCZWZvcmUob3AsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcFtvcC5sZW5ndGggLSAxXSAtPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBwW29ucC5sZW5ndGggLSAxXSArPSAxO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFBhdGguZW5kc0JlZm9yZShvcCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChQYXRoLmVxdWFscyhvbnAsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcFtvbnAubGVuZ3RoIC0gMV0gKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcFtvcC5sZW5ndGggLSAxXSAtPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYWl0L3NyYy9pbnRlcmZhY2VzL3BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxPQUFPLE1BQU0sT0FBTyxDQUFDO0FBSzVCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRztJQUNoQixNQUFNLENBQUMsSUFBVTtRQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsSUFBSSxJQUFJLENBQUMsQ0FBQztTQUM3RTtRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxDQUFDLElBQVU7UUFDWCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLElBQUksa0NBQWtDLENBQUMsQ0FBQztTQUN2RztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRDs7T0FFRztJQUVILFVBQVUsQ0FBQyxJQUFVLEVBQUUsT0FBYTtRQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSCxPQUFPLENBQUMsSUFBVSxFQUFFLE9BQWE7UUFDN0IsTUFBTSxHQUFHLEdB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QyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUMxQjt5QkFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO3dCQUMvQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFOzRCQUNyQixDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQzFCO3dCQUVELENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDekI7b0JBRUQsTUFBTTtpQkFDVDthQUNKO1lBQ0QsT0FBTyxDQUFDLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHByb2R1Y2UgZnJvbSAnaW1tZXInO1xuaW1wb3J0IHsgUGxhaXRPcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbic7XG5cbmV4cG9ydCB0eXBlIFBhdGggPSBudW1iZXJbXTtcblxuZXhwb3J0IGNvbnN0IFBhdGggPSB7XG4gICAgcGFyZW50KHBhdGg6IFBhdGgpOiBQYXRoIHtcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBnZXQgdGhlIHBhcmVudCBwYXRoIG9mIHRoZSByb290IHBhdGggWyR7cGF0aH1dLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhdGguc2xpY2UoMCwgLTEpO1xuICAgIH0sXG4gICAgbmV4dChwYXRoOiBQYXRoKTogUGF0aCB7XG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZ2V0IHRoZSBuZXh0IHBhdGggb2YgYSByb290IHBhdGggWyR7cGF0aH1dLCBiZWNhdXNlIGl0IGhhcyBubyBuZXh0IGluZGV4LmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3QgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG4gICAgICAgIHJldHVybiBwYXRoLnNsaWNlKDAsIC0xKS5jb25jYXQobGFzdCArIDEpO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYSBwYXRoIGlzIGFuIGFuY2VzdG9yIG9mIGFub3RoZXIuXG4gICAgICovXG5cbiAgICBpc0FuY2VzdG9yKHBhdGg6IFBhdGgsIGFub3RoZXI6IFBhdGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHBhdGgubGVuZ3RoIDwgYW5vdGhlci5sZW5ndGggJiYgUGF0aC5jb21wYXJlKHBhdGgsIGFub3RoZXIpID09PSAwO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogQ29tcGFyZSBhIHBhdGggdG8gYW5vdGhlciwgcmV0dXJuaW5nIGFuIGludGVnZXIgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBwYXRoXG4gICAgICogd2FzIGJlZm9yZSwgYXQsIG9yIGFmdGVyIHRoZSBvdGhlci5cbiAgICAgKlxuICAgICAqIE5vdGU6IFR3byBwYXRocyBvZiB1bmVxdWFsIGxlbmd0aCBjYW4gc3RpbGwgcmVjZWl2ZSBhIGAwYCByZXN1bHQgaWYgb25lIGlzXG4gICAgICogZGlyZWN0bHkgYWJvdmUgb3IgYmVsb3cgdGhlIG90aGVyLiBJZiB5b3Ugd2FudCBleGFjdCBtYXRjaGluZywgdXNlXG4gICAgICogW1tQYXRoLmVxdWFsc11dIGluc3RlYWQuXG4gICAgICovXG4gICAgY29tcGFyZShwYXRoOiBQYXRoLCBhbm90aGVyOiBQYXRoKTogLTEgfCAwIHwgMSB7XG4gICAgICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKHBhdGgubGVuZ3RoLCBhbm90aGVyLmxlbmd0aCk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtaW47IGkrKykge1xuICAgICAgICAgICAgaWYgKHBhdGhbaV0gPCBhbm90aGVyW2ldKSByZXR1cm4gLTE7XG4gICAgICAgICAgICBpZiAocGF0aFtpXSA+IGFub3RoZXJbaV0pIHJldHVybiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgcGF0aCBpcyBleGFjdGx5IGVxdWFsIHRvIGFub3RoZXIuXG4gICAgICovXG5cbiAgICBlcXVhbHMocGF0aDogUGF0aCwgYW5vdGhlcjogUGF0aCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcGF0aC5sZW5ndGggPT09IGFub3RoZXIubGVuZ3RoICYmIHBhdGguZXZlcnkoKG4sIGkpID0+IG4gPT09IGFub3RoZXJbaV0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYSBwYXRoIGVuZHMgYmVmb3JlIG9uZSBvZiB0aGUgaW5kZXhlcyBpbiBhbm90aGVyLlxuICAgICAqL1xuXG4gICAgZW5kc0JlZm9yZShwYXRoOiBQYXRoLCBhbm90aGVyOiBQYXRoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGkgPSBwYXRoLmxlbmd0aCAtIDE7XG4gICAgICAgIGNvbnN0IGFzID0gcGF0aC5zbGljZSgwLCBpKTtcbiAgICAgICAgY29uc3QgYnMgPSBhbm90aGVyLnNsaWNlKDAsIGkpO1xuICAgICAgICBjb25zdCBhdiA9IHBhdGhbaV07XG4gICAgICAgIGNvbnN0IGJ2ID0gYW5vdGhlcltpXTtcbiAgICAgICAgcmV0dXJuIFBhdGguZXF1YWxzKGFzLCBicykgJiYgYXYgPCBidjtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgcGF0aCBpcyBhIHNpYmxpbmcgb2YgYW5vdGhlci5cbiAgICAgKi9cbiAgICBpc1NpYmxpbmcocGF0aDogUGF0aCwgYW5vdGhlcjogUGF0aCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAocGF0aC5sZW5ndGggIT09IGFub3RoZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcyA9IHBhdGguc2xpY2UoMCwgLTEpO1xuICAgICAgICBjb25zdCBicyA9IGFub3RoZXIuc2xpY2UoMCwgLTEpO1xuICAgICAgICBjb25zdCBhbCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3QgYmwgPSBhbm90aGVyW2Fub3RoZXIubGVuZ3RoIC0gMV07XG4gICAgICAgIHJldHVybiBhbCAhPT0gYmwgJiYgUGF0aC5lcXVhbHMoYXMsIGJzKTtcbiAgICB9LFxuICAgIHRyYW5zZm9ybShwYXRoOiBQYXRoIHwgbnVsbCwgb3BlcmF0aW9uOiBQbGFpdE9wZXJhdGlvbik6IFBhdGggfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHByb2R1Y2UocGF0aCwgcCA9PiB7XG4gICAgICAgICAgICAvLyBQRVJGOiBFeGl0IGVhcmx5IGlmIHRoZSBvcGVyYXRpb24gaXMgZ3VhcmFudGVlZCBub3QgdG8gaGF2ZSBhbiBlZmZlY3QuXG4gICAgICAgICAgICBpZiAoIXBhdGggfHwgcGF0aD8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKG9wZXJhdGlvbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnaW5zZXJ0X25vZGUnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcGF0aDogb3AgfSA9IG9wZXJhdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoUGF0aC5lcXVhbHMob3AsIHApIHx8IFBhdGguZW5kc0JlZm9yZShvcCwgcCkgfHwgUGF0aC5pc0FuY2VzdG9yKG9wLCBwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcFtvcC5sZW5ndGggLSAxXSArPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY2FzZSAncmVtb3ZlX25vZGUnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcGF0aDogb3AgfSA9IG9wZXJhdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoUGF0aC5lcXVhbHMob3AsIHApIHx8IFBhdGguaXNBbmNlc3RvcihvcCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFBhdGguZW5kc0JlZm9yZShvcCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBbb3AubGVuZ3RoIC0gMV0gLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNhc2UgJ21vdmVfbm9kZSc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBwYXRoOiBvcCwgbmV3UGF0aDogb25wIH0gPSBvcGVyYXRpb247XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9sZCBhbmQgbmV3IHBhdGggYXJlIHRoZSBzYW1lLCBpdCdzIGEgbm8tb3AuXG4gICAgICAgICAgICAgICAgICAgIGlmIChQYXRoLmVxdWFscyhvcCwgb25wKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguaXNBbmNlc3RvcihvcCwgcCkgfHwgUGF0aC5lcXVhbHMob3AsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb3B5ID0gb25wLnNsaWNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvcC5sZW5ndGggPD0gb25wLmxlbmd0aCBpcyBkaWZmZXJlbnQgZm9yIHNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyByZXNvbHZlIGRyYWcgZnJvbSBbMCwgMF0gdG8gWzAsIDNdIGlzc3VlXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoUGF0aC5lbmRzQmVmb3JlKG9wLCBvbnApICYmIG9wLmxlbmd0aCA8PSBvbnAubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weVtvcC5sZW5ndGggLSAxXSAtPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29weS5jb25jYXQocC5zbGljZShvcC5sZW5ndGgpKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChQYXRoLmlzU2libGluZyhvcCwgb25wKSAmJiAoUGF0aC5pc0FuY2VzdG9yKG9ucCwgcCkgfHwgUGF0aC5lcXVhbHMob25wLCBwKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChQYXRoLmVuZHNCZWZvcmUob3AsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcFtvcC5sZW5ndGggLSAxXSAtPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwW29wLmxlbmd0aCAtIDFdICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoUGF0aC5lbmRzQmVmb3JlKG9ucCwgcCkgfHwgUGF0aC5lcXVhbHMob25wLCBwKSB8fCBQYXRoLmlzQW5jZXN0b3Iob25wLCBwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguZW5kc0JlZm9yZShvcCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwW29wLmxlbmd0aCAtIDFdIC09IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHBbb25wLmxlbmd0aCAtIDFdICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoUGF0aC5lbmRzQmVmb3JlKG9wLCBwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguZXF1YWxzKG9ucCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwW29ucC5sZW5ndGggLSAxXSArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBwW29wLmxlbmd0aCAtIDFdIC09IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcDtcbiAgICAgICAgfSk7XG4gICAgfVxufTtcbiJdfQ==
@@ -151,7 +151,7 @@ const Path = {
151
151
  break;
152
152
  }
153
153
  }
154
- return null;
154
+ return p;
155
155
  });
156
156
  }
157
157
  };
@@ -192,11 +192,20 @@ const inverse = (op) => {
192
192
  if (Path.equals(newPath, path)) {
193
193
  return op;
194
194
  }
195
- if (Path.isSibling(path, newPath)) {
196
- const inversePath = Path.transform(path, op);
197
- return Object.assign(Object.assign({}, op), { path: inversePath, newPath: path });
198
- }
199
- return Object.assign(Object.assign({}, op), { path: newPath, newPath: path });
195
+ // when operation path is [0,0] -> [0,2], should exec Path.transform to get [0,1] -> [0,0]
196
+ // shoud not return [0,2] -> [0,0] #WIK-8981
197
+ // if (Path.isSibling(path, newPath)) {
198
+ // return { ...op, path: newPath, newPath: path };
199
+ // }
200
+ // If the move does not happen within a single parent it is possible
201
+ // for the move to impact the true path to the location where the node
202
+ // was removed from and where it was inserted. We have to adjust for this
203
+ // and find the original path. We can accomplish this (only in non-sibling)
204
+ // moves by looking at the impact of the move operation on the node
205
+ // after the original move path.
206
+ const inversePath = Path.transform(path, op);
207
+ const inverseNewPath = Path.transform(Path.next(path), op);
208
+ return Object.assign(Object.assign({}, op), { path: inversePath, newPath: inverseNewPath });
200
209
  }
201
210
  case 'set_node': {
202
211
  const { properties, newProperties } = op;