@gpa-gemstone/react-graph 1.0.39 → 1.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/Plot.js CHANGED
@@ -59,6 +59,7 @@ var __values = (this && this.__values) || function(o) {
59
59
  };
60
60
  Object.defineProperty(exports, "__esModule", { value: true });
61
61
  var React = require("react");
62
+ var _ = require("lodash");
62
63
  var InteractiveButtons_1 = require("./InteractiveButtons");
63
64
  var GraphContext_1 = require("./GraphContext");
64
65
  var helper_functions_1 = require("@gpa-gemstone/helper-functions");
@@ -77,6 +78,8 @@ var Circle_1 = require("./Circle");
77
78
  var AggregatingCircles_1 = require("./AggregatingCircles");
78
79
  var Infobox_1 = require("./Infobox");
79
80
  var HeatMapChart_1 = require("./HeatMapChart");
81
+ var _html2canvas = require("html2canvas");
82
+ var html2canvas = _html2canvas;
80
83
  var SvgStyle = {
81
84
  fill: 'none',
82
85
  userSelect: 'none',
@@ -90,65 +93,67 @@ var SvgStyle = {
90
93
  var defaultLegendHeight = 50;
91
94
  var defaultLegendWidth = 100;
92
95
  var Plot = function (props) {
93
- var _a, _b, _c, _d;
96
+ var _a, _b;
97
+ // Type correcting functions to convert props into something usable
98
+ var typeCorrect = React.useCallback(function (arg, arrayIndex) {
99
+ if (arg == null)
100
+ return undefined;
101
+ if (!Object.prototype.hasOwnProperty.call(arg, 'length'))
102
+ return (arrayIndex === 0 ? arg : undefined);
103
+ return arg[arrayIndex];
104
+ }, []);
105
+ var typeCorrectDomain = React.useCallback(function (arg) {
106
+ if (arg === undefined || arg.length === 0)
107
+ return [[0, 1], [0, 1]];
108
+ if (typeof (arg[0]) === 'number')
109
+ return [arg, [0, 1]];
110
+ return arg;
111
+ }, []);
94
112
  /*
95
113
  Actual plot that will handle Axis etc.
96
114
  */
97
115
  var SVGref = React.useRef(null);
98
116
  var handlers = React.useRef(new Map());
99
117
  var wheelTimeout = React.useRef({ timeout: undefined, stopScroll: false });
118
+ var heightChange = React.useRef({ timeout: undefined, extraNeeded: 0, captureID: undefined });
100
119
  var widthTimeout = React.useRef({ timeout: undefined, requesterMap: new Map() });
101
120
  var guid = React.useMemo(function () { return (0, helper_functions_1.CreateGuid)(); }, []);
102
- var _e = __read(React.useState(new Map()), 2), data = _e[0], setData = _e[1];
103
- var _f = __read(React.useState(props.defaultTdomain), 2), tDomain = _f[0], setTdomain = _f[1];
104
- var _g = __read(React.useState(0), 2), tOffset = _g[0], setToffset = _g[1];
105
- var _h = __read(React.useState(1), 2), tScale = _h[0], setTscale = _h[1];
106
- var _j = __read(React.useState(Array(GraphContext_1.AxisMap.size).fill([0, 0])), 2), yDomain = _j[0], setYdomain = _j[1];
107
- var _k = __read(React.useState(Array(GraphContext_1.AxisMap.size).fill(0)), 2), yOffset = _k[0], setYoffset = _k[1];
108
- var _l = __read(React.useState(Array(GraphContext_1.AxisMap.size).fill(1)), 2), yScale = _l[0], setYscale = _l[1];
121
+ var _c = __read(React.useState(new Map()), 2), data = _c[0], setData = _c[1];
122
+ var _d = __read(React.useState(props.defaultTdomain), 2), tDomain = _d[0], setTdomain = _d[1];
123
+ var _e = __read(React.useState(0), 2), tOffset = _e[0], setToffset = _e[1];
124
+ var _f = __read(React.useState(1), 2), tScale = _f[0], setTscale = _f[1];
125
+ var _g = __read(React.useState(Array(GraphContext_1.AxisMap.size).fill([0, 0])), 2), yDomain = _g[0], setYdomain = _g[1];
126
+ var _h = __read(React.useState(Array(GraphContext_1.AxisMap.size).fill(0)), 2), yOffset = _h[0], setYoffset = _h[1];
127
+ var _j = __read(React.useState(Array(GraphContext_1.AxisMap.size).fill(1)), 2), yScale = _j[0], setYscale = _j[1];
109
128
  // ToDo: This is hardset to two because it's tied to display, 'left' and 'right'
110
- var _m = __read(React.useState(Array(2).fill(0)), 2), yHasData = _m[0], setYHasData = _m[1];
111
- var _o = __read(React.useState('none'), 2), mouseMode = _o[0], setMouseMode = _o[1];
112
- var _p = __read(React.useState('zoom'), 2), selectedMode = _p[0], setSelectedMode = _p[1];
113
- var _q = __read(React.useState(false), 2), mouseIn = _q[0], setMouseIn = _q[1];
114
- var _r = __read(React.useState([0, 0]), 2), mousePosition = _r[0], setMousePosition = _r[1];
115
- var _s = __read(React.useState([0, 0]), 2), mousePositionSnap = _s[0], setMousePositionSnap = _s[1];
116
- var _t = __read(React.useState([0, 0]), 2), mouseClick = _t[0], setMouseClick = _t[1];
117
- var _u = __read(React.useState("default"), 2), mouseStyle = _u[0], setMouseStyle = _u[1];
129
+ var _k = __read(React.useState(Array(2).fill(0)), 2), yHasData = _k[0], setYHasData = _k[1];
130
+ var _l = __read(React.useState('none'), 2), mouseMode = _l[0], setMouseMode = _l[1];
131
+ var _m = __read(React.useState('zoom-rectangular'), 2), selectedMode = _m[0], setSelectedMode = _m[1];
132
+ var _o = __read(React.useState(false), 2), mouseIn = _o[0], setMouseIn = _o[1];
133
+ var _p = __read(React.useState([0, 0]), 2), mousePosition = _p[0], setMousePosition = _p[1];
134
+ var _q = __read(React.useState([0, 0]), 2), mousePositionSnap = _q[0], setMousePositionSnap = _q[1];
135
+ var _r = __read(React.useState([0, 0]), 2), mouseClick = _r[0], setMouseClick = _r[1];
136
+ var _s = __read(React.useState("default"), 2), mouseStyle = _s[0], setMouseStyle = _s[1];
118
137
  var moveRequested = React.useRef(false);
119
- var _v = __read(React.useState(10), 2), offsetTop = _v[0], setOffsetTop = _v[1];
120
- var _w = __read(React.useState(10), 2), offsetBottom = _w[0], setOffsetBottom = _w[1];
121
- var _x = __read(React.useState(5), 2), offsetLeft = _x[0], setOffsetLeft = _x[1];
122
- var _y = __read(React.useState(5), 2), offsetRight = _y[0], setOffsetRight = _y[1];
138
+ var _t = __read(React.useState(false), 2), photoReady = _t[0], setPhotoReady = _t[1];
139
+ var _u = __read(React.useState(10), 2), offsetTop = _u[0], setOffsetTop = _u[1];
140
+ var _v = __read(React.useState(10), 2), offsetBottom = _v[0], setOffsetBottom = _v[1];
141
+ var _w = __read(React.useState(5), 2), offsetLeft = _w[0], setOffsetLeft = _w[1];
142
+ var _x = __read(React.useState(5), 2), offsetRight = _x[0], setOffsetRight = _x[1];
143
+ var _y = __read(React.useState(12), 2), toolBarX = _y[0], setToolBarX = _y[1];
123
144
  var _z = __read(React.useState(0), 2), heightYFactor = _z[0], setHeightYFactor = _z[1];
124
145
  var _0 = __read(React.useState(0), 2), heightXLabel = _0[0], setHeightXLabel = _0[1];
125
146
  var _1 = __read(React.useState(0), 2), heightLeftYLabel = _1[0], setHeightLeftYLabel = _1[1];
126
147
  var _2 = __read(React.useState(0), 2), heightRightYLabel = _2[0], setHeightRightYLabel = _2[1];
127
148
  // States for Props to avoid change notification on ref change
128
149
  var _3 = __read(React.useState(props.defaultTdomain), 2), defaultTdomain = _3[0], setDefaultTdomain = _3[1];
129
- var _4 = __read(React.useState(props.defaultYdomain), 2), defaultYdomain = _4[0], setDefaultYdomain = _4[1];
150
+ var _4 = __read(React.useState(typeCorrectDomain(props.defaultYdomain)), 2), defaultYdomain = _4[0], setDefaultYdomain = _4[1];
130
151
  var _5 = __read(React.useState(0), 2), updateFlag = _5[0], setUpdateFlag = _5[1];
131
152
  var _6 = __read(React.useState((_a = props.legendHeight) !== null && _a !== void 0 ? _a : defaultLegendHeight), 2), legendHeight = _6[0], setLegendHeight = _6[1];
132
153
  var _7 = __read(React.useState((_b = props.legendWidth) !== null && _b !== void 0 ? _b : defaultLegendWidth), 2), legendWidth = _7[0], setLegendWidth = _7[1];
133
154
  var _8 = __read(React.useState(props.height), 2), svgHeight = _8[0], setSVGheight = _8[1];
134
155
  var _9 = __read(React.useState(props.width), 2), svgWidth = _9[0], setSVGwidth = _9[1];
135
- var zoomMode = props.zoomMode === undefined ? 'AutoValue' : props.zoomMode;
136
- // Type correcting functions to convert props into something usable
137
- var typeCorrect = function (arg, arrayIndex) {
138
- if (arg == null)
139
- return undefined;
140
- if (!Object.prototype.hasOwnProperty.call(arg, 'length'))
141
- return (arrayIndex === 0 ? arg : undefined);
142
- return arg[arrayIndex];
143
- };
144
- var typeCorrectDomain = function (arg, arrayIndex) {
145
- if (arg === undefined || arg.length === 0)
146
- return undefined;
147
- if (typeof (arg[0]) === 'number')
148
- return (arrayIndex === 0 ? arg : undefined);
149
- return arg[arrayIndex];
150
- };
151
- var applyToYDomain = function (predicate) {
156
+ var applyToYDomain = React.useCallback(function (predicate) {
152
157
  var newDomain = __spreadArray([], __read(yDomain), false);
153
158
  var apply = false;
154
159
  newDomain.forEach(function (d, i, a) {
@@ -158,7 +163,7 @@ var Plot = function (props) {
158
163
  if (apply) {
159
164
  setYdomain(newDomain);
160
165
  }
161
- };
166
+ }, [yDomain]);
162
167
  // Effect to Reset the legend width/height
163
168
  React.useEffect(function () {
164
169
  if (props.legendHeight !== undefined)
@@ -207,18 +212,18 @@ var Plot = function (props) {
207
212
  }, [props.defaultTdomain]);
208
213
  React.useEffect(function () {
209
214
  if (!(0, lodash_1.isEqual)(defaultYdomain, props.defaultYdomain))
210
- setDefaultYdomain(props.defaultYdomain);
215
+ setDefaultYdomain(typeCorrectDomain(props.defaultYdomain));
211
216
  }, [props.defaultYdomain]);
212
217
  React.useEffect(function () {
213
218
  setTdomain(defaultTdomain);
214
219
  }, [defaultTdomain]);
215
220
  React.useEffect(function () {
216
- ResetYDomain();
221
+ setYdomain(defaultYdomain);
217
222
  }, [defaultYdomain]);
218
223
  // Adjust top and bottom Offset
219
224
  React.useEffect(function () {
220
225
  var top = heightYFactor + 10;
221
- var bottom = heightXLabel + 10;
226
+ var bottom = heightXLabel;
222
227
  if (offsetTop !== top)
223
228
  setOffsetTop(top);
224
229
  if (offsetBottom !== bottom)
@@ -226,47 +231,47 @@ var Plot = function (props) {
226
231
  }, [heightXLabel, heightYFactor]);
227
232
  // Adjust Left Offset
228
233
  React.useEffect(function () {
229
- var left = heightLeftYLabel + 10;
234
+ var left = heightLeftYLabel + (props.menuLocation === 'left' ? 28 : 10);
230
235
  if (offsetLeft !== left)
231
236
  setOffsetLeft(left);
232
- }, [heightLeftYLabel]);
237
+ }, [heightLeftYLabel, props.menuLocation]);
233
238
  // Adjust Right Offset
234
239
  React.useEffect(function () {
235
- var right = heightRightYLabel + 10;
240
+ var right = heightRightYLabel + (props.menuLocation === 'right' ? 28 : 10);
236
241
  if (offsetRight !== right)
237
242
  setOffsetRight(right);
238
- }, [heightRightYLabel]);
239
- // Adjust Y domain
243
+ }, [heightRightYLabel, props.menuLocation]);
244
+ // Adjust Y domain defaults
240
245
  React.useEffect(function () {
241
- var mutateDomain = function (domain, axis, allDomains) {
242
- if (zoomMode === 'AutoValue' || zoomMode === 'HalfAutoValue') {
243
- var dataReducerFunc_1 = function (result, series, func) {
244
- // This part of the data may not belong to the axis we care about at the moment
245
- var dataAxis = GraphContext_1.AxisMap.get(series.axis);
246
- if (axis === dataAxis) {
247
- var value = func(tDomain);
248
- if (value !== undefined)
249
- result.push(value);
250
- }
251
- return result;
252
- };
253
- var yMin = Math.min.apply(Math, __spreadArray([], __read(__spreadArray([], __read(data.values()), false).reduce(function (result, series) { return dataReducerFunc_1(result, series, series.getMin); }, [])), false));
254
- var yMax = Math.max.apply(Math, __spreadArray([], __read(__spreadArray([], __read(data.values()), false).reduce(function (result, series) { return dataReducerFunc_1(result, series, series.getMax); }, [])), false));
255
- if (!isNaN(yMin) && !isNaN(yMax) && isFinite(yMin) && isFinite(yMax)) {
256
- if (zoomMode === 'AutoValue')
257
- allDomains[axis] = [yMin, yMax];
258
- // If this condition is satisfied, it means our series is mostly positive range
259
- else if (Math.abs(yMax) >= Math.abs(yMin))
260
- allDomains[axis] = [0, yMax];
261
- else
262
- allDomains[axis] = [yMin, 0];
263
- return true;
264
- }
246
+ if (props.yDomain !== 'AutoValue' && props.yDomain !== 'HalfAutoValue')
247
+ return;
248
+ var dataReducerFunc = function (result, series, func, axis) {
249
+ // This part of the data may not belong to the axis we care about at the moment
250
+ var dataAxis = GraphContext_1.AxisMap.get(series.axis);
251
+ if (axis === dataAxis) {
252
+ var value = func([Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER]);
253
+ if (value !== undefined)
254
+ result.push(value);
265
255
  }
266
- return false;
256
+ return result;
267
257
  };
268
- applyToYDomain(mutateDomain);
269
- }, [tDomain, data]);
258
+ var newDefaultDomain = defaultYdomain.map(function (yDomain, axis) {
259
+ var yMin = Math.min.apply(Math, __spreadArray([], __read(__spreadArray([], __read(data.values()), false).reduce(function (result, series) { return dataReducerFunc(result, series, series.getMin, axis); }, [])), false));
260
+ var yMax = Math.max.apply(Math, __spreadArray([], __read(__spreadArray([], __read(data.values()), false).reduce(function (result, series) { return dataReducerFunc(result, series, series.getMax, axis); }, [])), false));
261
+ if (!isNaN(yMin) && !isNaN(yMax) && isFinite(yMin) && isFinite(yMax)) {
262
+ if (props.yDomain === 'AutoValue')
263
+ return [yMin, yMax];
264
+ // If this condition is satisfied, it means our series is mostly positive range
265
+ else if (Math.abs(yMax) >= Math.abs(yMin))
266
+ return [0, yMax];
267
+ else
268
+ return [yMin, 0];
269
+ }
270
+ return [0, 1];
271
+ });
272
+ if (!_.isEqual(newDefaultDomain, defaultYdomain))
273
+ setDefaultYdomain(newDefaultDomain);
274
+ }, [data, props.yDomain]);
270
275
  React.useEffect(function () {
271
276
  var newHasData = Array(2);
272
277
  var hasFunc = function (axis) { return __spreadArray([], __read(data.values()), false).some(function (series) { return GraphContext_1.AxisMap.get(axis) === GraphContext_1.AxisMap.get(series.axis); }); };
@@ -329,7 +334,7 @@ var Plot = function (props) {
329
334
  newCursor = 'pointer';
330
335
  break;
331
336
  default:
332
- newCursor = 'default';
337
+ newCursor = 'crosshair';
333
338
  }
334
339
  }
335
340
  else
@@ -343,15 +348,53 @@ var Plot = function (props) {
343
348
  document.body.addEventListener('wheel', cancelWheel, { passive: false });
344
349
  return function () { return document.body.removeEventListener('wheel', cancelWheel); };
345
350
  }, []);
351
+ // Execute Plot Capture and leave photo mode
352
+ React.useEffect(function () {
353
+ // ToDo: We can clean this up some and improve performance using html2canvas options (but the biggest hurdle is the legend, which we don't have a lot of options for...)
354
+ if (!photoReady)
355
+ return;
356
+ // we can't immediately complete the request, since some layout things may still be changing...
357
+ clearTimeout(heightChange.current.timeout);
358
+ // timeout to set if we don't see any more changes within 0.05 seconds
359
+ heightChange.current.timeout = setTimeout(function () {
360
+ var _a;
361
+ var id = (_a = heightChange.current.captureID) !== null && _a !== void 0 ? _a : guid;
362
+ var element = document.getElementById(id);
363
+ if (element == null) {
364
+ console.error("Could not find document element with id " + id);
365
+ }
366
+ else {
367
+ html2canvas(element).then(function (canvas) {
368
+ document.body.appendChild(canvas);
369
+ var imageData = canvas.toDataURL("image/png").replace(/^data:image\/png/, "data:application/octet-stream");
370
+ var anchorElement = document.createElement("a");
371
+ anchorElement.href = imageData;
372
+ anchorElement.download = id + ".png";
373
+ document.body.appendChild(anchorElement);
374
+ anchorElement.click();
375
+ // Removing children created/cleanup
376
+ window.URL.revokeObjectURL(imageData);
377
+ document.body.removeChild(anchorElement);
378
+ document.body.removeChild(canvas);
379
+ });
380
+ }
381
+ setPhotoReady(false);
382
+ if (props.onCaptureComplete !== undefined)
383
+ props.onCaptureComplete();
384
+ }, 50);
385
+ });
346
386
  // requests new legend height/width upto a defined maximum set by props
347
387
  var requestLegendHeightChange = React.useCallback(function (newHeight) {
348
388
  var _a;
389
+ var heightLimit = props.legend !== 'bottom' ? svgHeight : ((_a = props.legendHeight) !== null && _a !== void 0 ? _a : defaultLegendHeight);
390
+ if (!photoReady)
391
+ heightChange.current.extraNeeded = Math.max(newHeight - heightLimit, 0);
349
392
  if (props.legend !== 'bottom')
350
393
  return;
351
- var limitedHeight = Math.min(newHeight, (_a = props.legendHeight) !== null && _a !== void 0 ? _a : defaultLegendHeight);
394
+ var limitedHeight = Math.min(newHeight, heightLimit);
352
395
  if (legendHeight !== limitedHeight)
353
396
  setLegendHeight(limitedHeight);
354
- }, [props.legendHeight, setLegendHeight, legendHeight, props.legend]);
397
+ }, [props.legendHeight, setLegendHeight, legendHeight, props.legend, photoReady]);
355
398
  var requestLegendWidthChange = React.useCallback(function (newWidth, requesterID) {
356
399
  var _a;
357
400
  if (newWidth < 0) {
@@ -383,22 +426,10 @@ var Plot = function (props) {
383
426
  var axis = (typeof (a) !== 'number') ? GraphContext_1.AxisMap.get(a) : a;
384
427
  return (p - yOffset[axis]) / yScale[axis];
385
428
  }, [yOffset, yScale]);
386
- function Reset() {
429
+ var Reset = React.useCallback(function () {
387
430
  setTdomain(defaultTdomain);
388
- ResetYDomain();
389
- }
390
- function ResetYDomain() {
391
- var mutateDomain = function (domain, axis, allDomains) {
392
- // Need to type correct our arguements
393
- var defaults = typeCorrectDomain(defaultYdomain, axis);
394
- if (defaults !== undefined && zoomMode !== 'AutoValue' && zoomMode !== 'HalfAutoValue') {
395
- allDomains[axis] = defaults;
396
- return true;
397
- }
398
- return false;
399
- };
400
- applyToYDomain(mutateDomain);
401
- }
431
+ setYdomain(defaultYdomain);
432
+ }, [defaultYdomain, defaultTdomain]);
402
433
  // new X transformation from x value into Pixels
403
434
  var xTransform = React.useCallback(function (value) {
404
435
  var xT = value * tScale + tOffset;
@@ -450,19 +481,23 @@ var Plot = function (props) {
450
481
  });
451
482
  }, []);
452
483
  function snapMouseToClosestSeries(pixelPt) {
484
+ var xVal = xInvTransform(pixelPt.x);
453
485
  var findClosestPoint = function (result, series) {
454
- if (series.getPoint != null) {
455
- var pt = series.getPoint(xInvTransform(pixelPt.x));
456
- if (pt === undefined)
457
- return result;
458
- var ptPixel = [xTransform(pt[0]), yTransform(pt[1], GraphContext_1.AxisMap.get(series.axis))];
459
- var distSqr = (ptPixel[1] - pixelPt.y) ^ 2 + (ptPixel[0] - pixelPt.x) ^ 2;
460
- if (result.distSqr === undefined || distSqr < result.distSqr)
461
- return { x: ptPixel[0], y: ptPixel[1], distSqr: distSqr };
462
- }
486
+ var pointArray = series.getPoints(xVal, 7);
487
+ if (pointArray === undefined)
488
+ return result;
489
+ var ptArrayResult = pointArray.reduce(function (result, pt) {
490
+ var point = [xTransform(pt[0]), yTransform(pt[1], GraphContext_1.AxisMap.get(series.axis))];
491
+ var newDistSq = Math.pow((point[0] - pixelPt.x), 2) + Math.pow((point[1] - pixelPt.y), 2);
492
+ if (result.distSq === undefined || newDistSq < result.distSq)
493
+ return { pt: { x: point[0], y: point[1] }, distSq: newDistSq };
494
+ return result;
495
+ }, { pt: { x: 0, y: 0 }, distSq: undefined });
496
+ if (ptArrayResult.distSq !== undefined && (result.distSq === undefined || ptArrayResult.distSq < result.distSq))
497
+ return ptArrayResult;
463
498
  return result;
464
499
  };
465
- return __spreadArray([], __read(data.values()), false).reduce(function (result, series) { return findClosestPoint(result, series); }, { x: 0, y: 0, distSqr: undefined });
500
+ return __spreadArray([], __read(data.values()), false).reduce(function (result, series) { return findClosestPoint(result, series); }, { pt: { x: 0, y: 0 }, distSq: undefined }).pt;
466
501
  }
467
502
  var registerSelect = React.useCallback(function (handler) {
468
503
  var key = (0, helper_functions_1.CreateGuid)();
@@ -478,15 +513,42 @@ var Plot = function (props) {
478
513
  var setSelection = React.useCallback(function (s) {
479
514
  if (s === "reset")
480
515
  Reset();
481
- else if (s === "download")
482
- props.onDataInspect(tDomain);
516
+ else if (s === "download") {
517
+ if (props.onDataInspect !== undefined)
518
+ props.onDataInspect(tDomain);
519
+ }
520
+ else if (s === "capture") {
521
+ setPhotoReady(true);
522
+ if (props.onCapture !== undefined)
523
+ heightChange.current.captureID = props.onCapture(heightChange.current.extraNeeded);
524
+ }
483
525
  else
484
526
  setSelectedMode(s);
485
- }, [tDomain]);
527
+ }, [tDomain, Reset, props.onDataInspect]);
528
+ var getConstrainedYDomain = React.useCallback(function (newTDomain) {
529
+ var dataReducerFunc = function (result, series, func, axis) {
530
+ // This part of the data may not belong to the axis we care about at the moment
531
+ var dataAxis = GraphContext_1.AxisMap.get(series.axis);
532
+ if (axis === dataAxis) {
533
+ var value = func(newTDomain);
534
+ if (value !== undefined)
535
+ result.push(value);
536
+ }
537
+ return result;
538
+ };
539
+ return yDomain.map(function (oldDomain, axis) {
540
+ var yMin = Math.min.apply(Math, __spreadArray([], __read(__spreadArray([], __read(data.values()), false).reduce(function (result, series) { return dataReducerFunc(result, series, series.getMin, axis); }, [])), false));
541
+ var yMax = Math.max.apply(Math, __spreadArray([], __read(__spreadArray([], __read(data.values()), false).reduce(function (result, series) { return dataReducerFunc(result, series, series.getMax, axis); }, [])), false));
542
+ if (!isNaN(yMin) && !isNaN(yMax) && isFinite(yMin) && isFinite(yMax))
543
+ return [yMin, yMax];
544
+ return yDomain[axis];
545
+ });
546
+ }, [data, yDomain]);
486
547
  function handleMouseWheel(evt) {
548
+ var _a;
487
549
  if (props.zoom !== undefined && !props.zoom)
488
550
  return;
489
- if (!(selectedMode === 'zoom'))
551
+ if (!selectedMode.includes('zoom'))
490
552
  return;
491
553
  if (!mouseIn)
492
554
  return;
@@ -501,21 +563,35 @@ var Plot = function (props) {
501
563
  // event.deltaY positive is wheel down or out and negative is wheel up or in
502
564
  if (evt.deltaY < 0)
503
565
  multiplier = 0.75;
504
- var x0 = xTransform(tDomain[0]);
505
- var x1 = xTransform(tDomain[1]);
506
- if (mousePosition[0] < offsetLeft)
507
- x1 = multiplier * (x1 - x0) + x0;
508
- else if (mousePosition[0] > (svgWidth - offsetRight))
509
- x0 = x1 - multiplier * (x1 - x0);
510
- else {
511
- var Xcenter = mousePosition[0];
512
- x0 = Xcenter - (Xcenter - x0) * multiplier;
513
- x1 = Xcenter + (x1 - Xcenter) * multiplier;
566
+ if (selectedMode !== 'zoom-horizontal') {
567
+ var x0 = xTransform(tDomain[0]);
568
+ var x1 = xTransform(tDomain[1]);
569
+ if (mousePosition[0] < offsetLeft)
570
+ x1 = multiplier * (x1 - x0) + x0;
571
+ else if (mousePosition[0] > (svgWidth - offsetRight))
572
+ x0 = x1 - multiplier * (x1 - x0);
573
+ else {
574
+ var Xcenter = mousePosition[0];
575
+ x0 = Xcenter - (Xcenter - x0) * multiplier;
576
+ x1 = Xcenter + (x1 - Xcenter) * multiplier;
577
+ }
578
+ if ((x1 - x0) > 10) {
579
+ var newTDomain = void 0;
580
+ if ((_a = props.limitZoom) !== null && _a !== void 0 ? _a : false)
581
+ newTDomain = [Math.max(defaultTdomain[0], xInvTransform(x0)), Math.min(defaultTdomain[1], xInvTransform(x1))];
582
+ else
583
+ newTDomain = [xInvTransform(x0), xInvTransform(x1)];
584
+ if (selectedMode === 'zoom-vertical') {
585
+ var newYDomain = getConstrainedYDomain(newTDomain);
586
+ if (!_.isEqual(newYDomain, yDomain))
587
+ setYdomain(newYDomain);
588
+ }
589
+ setTdomain(newTDomain);
590
+ }
514
591
  }
515
- if ((x1 - x0) > 10)
516
- setTdomain([xInvTransform(x0), xInvTransform(x1)]);
517
- if (zoomMode === 'Rect') {
518
- var zoomYAxis = function (domain, axis, allDomains) {
592
+ if (selectedMode !== 'zoom-vertical') {
593
+ var newYDomain = yDomain.map(function (domain, axis, allDomains) {
594
+ var _a;
519
595
  var y0 = yTransform(domain[0], axis);
520
596
  var y1 = yTransform(domain[1], axis);
521
597
  if (mousePosition[1] < offsetTop)
@@ -528,12 +604,16 @@ var Plot = function (props) {
528
604
  y1 = Ycenter + (y1 - Ycenter) * multiplier;
529
605
  }
530
606
  if (Math.abs(y1 - y0) > 10) {
531
- allDomains[axis] = [yInvTransform(y0, axis), yInvTransform(y1, axis)];
532
- return true;
607
+ if ((_a = props.limitZoom) !== null && _a !== void 0 ? _a : false)
608
+ return [Math.max(defaultYdomain[axis][0], yInvTransform(y0, axis)), Math.min(defaultYdomain[axis][1], yInvTransform(y1, axis))];
609
+ return [yInvTransform(y0, axis), yInvTransform(y1, axis)];
533
610
  }
534
- return false;
535
- };
536
- applyToYDomain(zoomYAxis);
611
+ return domain;
612
+ });
613
+ if (!_.isEqual(newYDomain, yDomain)) {
614
+ // todo: added contraint to t domain when mode is zoom-horizontal
615
+ setYdomain(newYDomain);
616
+ }
537
617
  }
538
618
  }
539
619
  function handleMouseMove(evt) {
@@ -559,21 +639,19 @@ var Plot = function (props) {
559
639
  if ((props.Tmin === undefined || Tmin > props.Tmin) &&
560
640
  (props.Tmax === undefined || Tmax < props.Tmax))
561
641
  setTdomain([Tmin, Tmax]);
562
- if (zoomMode === 'Rect') {
563
- var zoomYAxis = function (domain, axis, allDomains) {
564
- var dY = yInvTransform(mousePosition[1], axis) - yInvTransform(ptTransform.y, axis);
565
- // Need to type correct our arguements
566
- var propMin = typeCorrect(props.Ymin, axis);
567
- var propMax = typeCorrect(props.Ymax, axis);
568
- if ((propMin === undefined || domain[0] + dY > propMin) &&
569
- (propMax === undefined || domain[1] + dY < propMax)) {
570
- allDomains[axis] = [domain[0] + dY, domain[1] + dY];
571
- return true;
572
- }
573
- return false;
574
- };
575
- applyToYDomain(zoomYAxis);
576
- }
642
+ var zoomYAxis = function (domain, axis, allDomains) {
643
+ var dY = yInvTransform(mousePosition[1], axis) - yInvTransform(ptTransform.y, axis);
644
+ // Need to type correct our arguements
645
+ var propMin = typeCorrect(props.Ymin, axis);
646
+ var propMax = typeCorrect(props.Ymax, axis);
647
+ if ((propMin === undefined || domain[0] + dY > propMin) &&
648
+ (propMax === undefined || domain[1] + dY < propMax)) {
649
+ allDomains[axis] = [domain[0] + dY, domain[1] + dY];
650
+ return true;
651
+ }
652
+ return false;
653
+ };
654
+ applyToYDomain(zoomYAxis);
577
655
  }
578
656
  setMousePosition([ptTransform.x, ptTransform.y]);
579
657
  // Here on mouse is snapped (if neccessary)
@@ -595,8 +673,8 @@ var Plot = function (props) {
595
673
  pt.y = evt.clientY;
596
674
  var ptTransform = pt.matrixTransform(SVGref.current.getScreenCTM().inverse());
597
675
  setMouseClick([ptTransform.x, ptTransform.y]);
598
- if (selectedMode === 'zoom' && (props.zoom === undefined || props.zoom))
599
- setMouseMode('zoom');
676
+ if (selectedMode.includes('zoom') && (props.zoom === undefined || props.zoom))
677
+ setMouseMode(selectedMode);
600
678
  if (selectedMode === 'pan' && (props.pan === undefined || props.pan)) {
601
679
  setMouseMode('pan');
602
680
  setMouseStyle('grabbing');
@@ -616,25 +694,35 @@ var Plot = function (props) {
616
694
  if (handlers.current.size > 0 && selectedMode === 'select')
617
695
  handlers.current.forEach(function (v) { return (v.onClick !== undefined ? v.onClick(xInvTransform(v.allowSnapping ? ptFinal.x : ptTransform.x), yInvTransform(v.allowSnapping ? ptFinal.y : ptTransform.y, v.axis)) : null); });
618
696
  }
619
- function handleMouseUp(_) {
697
+ function handleMouseUp() {
620
698
  if (selectedMode === 'pan' && (props.pan === undefined || props.pan))
621
699
  setMouseStyle('grab');
622
- if (mouseMode === 'zoom') {
623
- if (Math.abs(mousePosition[0] - mouseClick[0]) < 10) {
700
+ if (mouseMode.includes('zoom')) {
701
+ if ((Math.abs(mousePosition[0] - mouseClick[0]) < 10) && (Math.abs(mousePosition[1] - mouseClick[1]) < 10)) {
624
702
  setMouseMode('none');
625
703
  return;
626
704
  }
627
- var t0_1 = Math.min(xInvTransform(mousePosition[0]), xInvTransform(mouseClick[0]));
628
- var t1_1 = Math.max(xInvTransform(mousePosition[0]), xInvTransform(mouseClick[0]));
629
- setTdomain(function (curr) { return [Math.max(curr[0], t0_1), Math.min(curr[1], t1_1)]; });
630
- if (zoomMode === 'Rect') {
631
- var zoomYAxis = function (domain, axis, allDomains) {
705
+ if (mouseMode !== 'zoom-horizontal') {
706
+ var t0 = Math.min(xInvTransform(mousePosition[0]), xInvTransform(mouseClick[0]));
707
+ var t1 = Math.max(xInvTransform(mousePosition[0]), xInvTransform(mouseClick[0]));
708
+ var newTDomain = [Math.max(tDomain[0], t0), Math.min(tDomain[1], t1)];
709
+ if (selectedMode === 'zoom-vertical') {
710
+ var newYDomain = getConstrainedYDomain(newTDomain);
711
+ if (!_.isEqual(newYDomain, yDomain))
712
+ setYdomain(newYDomain);
713
+ }
714
+ setTdomain(newTDomain);
715
+ }
716
+ if (mouseMode !== 'zoom-vertical') {
717
+ var newYDomain = yDomain.map(function (domain, axis, allDomains) {
632
718
  var y0 = Math.min(yInvTransform(mousePosition[1], axis), yInvTransform(mouseClick[1], axis));
633
719
  var y1 = Math.max(yInvTransform(mousePosition[1], axis), yInvTransform(mouseClick[1], axis));
634
- allDomains[axis] = [Math.max(domain[0], y0), Math.min(domain[1], y1)];
635
- return true;
636
- };
637
- applyToYDomain(zoomYAxis);
720
+ return [Math.max(domain[0], y0), Math.min(domain[1], y1)];
721
+ });
722
+ if (!_.isEqual(newYDomain, yDomain)) {
723
+ // todo: added contraint to t domain when mode is zoom-horizontal
724
+ setYdomain(newYDomain);
725
+ }
638
726
  }
639
727
  }
640
728
  setMouseMode('none');
@@ -671,8 +759,8 @@ var Plot = function (props) {
671
759
  };
672
760
  applyToYDomain(correctFunction);
673
761
  }
674
- return (React.createElement(GraphContext_1.ContextWrapper, { XDomain: tDomain, MousePosition: mousePosition, MousePositionSnap: mousePositionSnap, YDomain: yDomain, CurrentMode: selectedMode, MouseIn: mouseIn, UpdateFlag: updateFlag, Data: data, XApplyPixelOffset: xApplyOffset, YApplyPixelOffset: yApplyOffset, XTransform: xTransform, YTransform: yTransform, XInvTransform: xInvTransform, YInvTransform: yInvTransform, SetXDomain: updateXDomain, SetYDomain: updateYDomain, AddData: addData, RemoveData: removeData, UpdateData: updateData, SetLegend: setLegend, RegisterSelect: registerSelect, RemoveSelect: removeSelect, UpdateSelect: updateSelect, RequestLegendWidth: requestLegendWidthChange, RequestLegendHeight: requestLegendHeightChange },
675
- React.createElement("div", { style: { height: props.height, width: props.width, position: 'relative' } },
762
+ return (React.createElement(GraphContext_1.ContextWrapper, { XDomain: tDomain, MousePosition: mousePosition, MousePositionSnap: mousePositionSnap, YDomain: yDomain, CurrentMode: selectedMode, MouseIn: mouseIn, UpdateFlag: updateFlag, Data: data, XApplyPixelOffset: xApplyOffset, YApplyPixelOffset: yApplyOffset, XTransform: xTransform, YTransform: yTransform, XInvTransform: xInvTransform, YInvTransform: yInvTransform, SetXDomain: updateXDomain, SetYDomain: updateYDomain, AddData: addData, RemoveData: removeData, UpdateData: updateData, SetLegend: setLegend, RegisterSelect: registerSelect, RemoveSelect: removeSelect, UpdateSelect: updateSelect },
763
+ React.createElement("div", { id: guid, style: { height: props.height, width: props.width, position: 'relative' } },
676
764
  React.createElement("div", { style: { height: svgHeight, width: svgWidth, position: 'absolute', cursor: mouseStyle }, onWheel: handleMouseWheel, onMouseMove: handleMouseMove, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, onMouseLeave: handleMouseOut, onMouseEnter: handleMouseIn },
677
765
  React.createElement("svg", { ref: SVGref, width: svgWidth < 0 ? 0 : svgWidth, height: svgHeight < 0 ? 0 : svgHeight, style: SvgStyle, viewBox: "0 0 " + (svgWidth < 0 ? 0 : svgWidth) + " " + (svgHeight < 0 ? 0 : svgHeight) },
678
766
  props.showBorder !== undefined && props.showBorder ? React.createElement("path", { stroke: 'black', d: "M " + offsetLeft + " " + offsetTop + " H " + (svgWidth - offsetRight) + " V " + (svgHeight - offsetBottom) + " H " + offsetLeft + " Z" }) : null,
@@ -694,20 +782,25 @@ var Plot = function (props) {
694
782
  return element;
695
783
  return null;
696
784
  }),
697
- props.showMouse === undefined || props.showMouse ?
698
- React.createElement("path", { stroke: 'black', style: { strokeWidth: 2, opacity: mouseIn ? 0.8 : 0.0 }, d: "M " + mousePosition[0] + " " + offsetTop + " V " + (svgHeight - offsetBottom) })
785
+ !photoReady && (props.showMouse === undefined || (props.showMouse !== 'none' && props.showMouse !== false)) ?
786
+ React.createElement("path", { stroke: 'black', style: { strokeWidth: 2, opacity: mouseIn ? 0.8 : 0.0 }, d: (props.showMouse !== 'horizontal' ?
787
+ "M " + mousePosition[0] + " " + offsetTop + " V " + (svgHeight - offsetBottom) :
788
+ "M " + offsetLeft + " " + mousePosition[1] + " H " + (svgWidth - offsetRight)) })
699
789
  : null,
700
- (props.zoom === undefined || props.zoom) && mouseMode === 'zoom' ?
701
- React.createElement("rect", { fillOpacity: 0.8, fill: 'black', x: Math.min(mouseClick[0], mousePosition[0]), y: zoomMode === 'Rect' ? Math.min(mouseClick[1], mousePosition[1]) : offsetTop, width: Math.abs(mouseClick[0] - mousePosition[0]), height: zoomMode === 'Rect' ? Math.abs(mouseClick[1] - mousePosition[1]) : (svgHeight - offsetTop - offsetBottom) })
790
+ (props.zoom === undefined || props.zoom) && mouseMode.includes('zoom') ?
791
+ React.createElement("rect", { fillOpacity: 0.8, fill: 'black', x: mouseMode !== 'zoom-horizontal' ? Math.min(mouseClick[0], mousePosition[0]) : offsetLeft, y: mouseMode !== 'zoom-vertical' ? Math.min(mouseClick[1], mousePosition[1]) : offsetTop, width: mouseMode !== 'zoom-horizontal' ? Math.abs(mouseClick[0] - mousePosition[0]) : (svgWidth - offsetLeft - offsetRight), height: mouseMode !== 'zoom-vertical' ? Math.abs(mouseClick[1] - mousePosition[1]) : (svgHeight - offsetTop - offsetBottom) })
702
792
  : null),
703
- React.createElement(InteractiveButtons_1.default, { showPan: (props.pan === undefined || props.pan), showZoom: props.zoom === undefined || props.zoom, showReset: !(props.pan !== undefined && props.zoom !== undefined && !props.zoom && !props.pan), showSelect: props.onSelect !== undefined || handlers.current.size > 0, showDownload: props.onDataInspect !== undefined, currentSelection: selectedMode, setSelection: setSelection, holdOpen: props.holdMenuOpen, openTowardsRight: (_c = props.moveMenuLeft) !== null && _c !== void 0 ? _c : false, x: ((_d = props.moveMenuLeft) !== null && _d !== void 0 ? _d : false) ? (offsetLeft + 12) : (svgWidth - offsetRight - 12), y: 22 }, React.Children.map(props.children, function (element) {
704
- if (!React.isValidElement(element))
793
+ (photoReady || props.menuLocation === 'hide') ? React.createElement(React.Fragment, null) :
794
+ React.createElement(InteractiveButtons_1.default, { showPan: (props.pan === undefined || props.pan), showZoom: props.zoom === undefined || props.zoom, showReset: !(props.pan !== undefined && props.zoom !== undefined && !props.zoom && !props.pan), showSelect: props.onSelect !== undefined || handlers.current.size > 0, showDownload: props.onDataInspect !== undefined, showCapture: props.onCapture !== undefined, currentSelection: selectedMode, setSelection: setSelection, holdOpen: props.holdMenuOpen, heightAvaliable: svgHeight - 22, x: (props.menuLocation === 'left' ? 14 : (svgWidth - 14)), y: 22 }, React.Children.map(props.children, function (element) {
795
+ if (!React.isValidElement(element))
796
+ return null;
797
+ if (element.type === Button_1.default)
798
+ return element;
705
799
  return null;
706
- if (element.type === Button_1.default)
707
- return element;
708
- return null;
709
- })))),
710
- props.legend !== undefined && props.legend !== 'hidden' ? React.createElement(Legend_1.default, { location: props.legend, height: legendHeight, width: legendWidth, graphWidth: svgWidth, graphHeight: svgHeight }) : null)));
800
+ })))),
801
+ props.legend !== undefined && props.legend !== 'hidden' ?
802
+ React.createElement(Legend_1.default, { location: props.legend, height: legendHeight, width: legendWidth, graphWidth: svgWidth, graphHeight: svgHeight, RequestLegendWidth: requestLegendWidthChange, RequestLegendHeight: requestLegendHeightChange, HideDisabled: photoReady })
803
+ : null)));
711
804
  };
712
805
  exports.default = Plot;
713
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9QbG90LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUdBQXlHO0FBQ3pHLG1CQUFtQjtBQUNuQixFQUFFO0FBQ0YscUVBQXFFO0FBQ3JFLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLHNHQUFzRztBQUN0Ryx3RkFBd0Y7QUFDeEYsRUFBRTtBQUNGLDBDQUEwQztBQUMxQyxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4Ryw0RUFBNEU7QUFDNUUsRUFBRTtBQUNGLDhCQUE4QjtBQUM5Qix3R0FBd0c7QUFDeEcsMEJBQTBCO0FBQzFCLG1EQUFtRDtBQUNuRCxFQUFFO0FBQ0YseUdBQXlHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUd6Ryw2QkFBK0I7QUFFL0IsMkRBQXNEO0FBQ3RELCtDQUFpSDtBQUNqSCxtRUFBMEQ7QUFDMUQsaUNBQTBDO0FBQzFDLHVDQUFrQztBQUNsQyxxQ0FBZ0M7QUFDaEMseUNBQW9DO0FBQ3BDLG1DQUE4QjtBQUM5Qix5REFBb0Q7QUFDcEQsK0JBQTBCO0FBQzFCLG1DQUE4QjtBQUM5Qix1REFBa0Q7QUFDbEQsbURBQThDO0FBQzlDLG1EQUE4QztBQUM5QyxtQ0FBOEI7QUFDOUIsMkRBQXNEO0FBQ3RELHFDQUFnQztBQUNoQywrQ0FBMEM7QUFvQzFDLElBQU0sUUFBUSxHQUF3QjtJQUNsQyxJQUFJLEVBQUUsTUFBTTtJQUNaLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLGtCQUFrQixFQUFFLE1BQU07SUFDMUIsZ0JBQWdCLEVBQUUsTUFBTTtJQUN4QixlQUFlLEVBQUUsTUFBTTtJQUN2QixhQUFhLEVBQUUsTUFBTTtJQUNyQixZQUFZLEVBQUUsTUFBTTtJQUNwQixhQUFhLEVBQUUsTUFBTTtDQUN4QixDQUFDO0FBRUYsSUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFDL0IsSUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFFL0IsSUFBTSxJQUFJLEdBQW9DLFVBQUMsS0FBSzs7SUFDaEQ7O01BRUU7SUFDRixJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLElBQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQXdCLElBQUksR0FBRyxFQUFxQixDQUFDLENBQUM7SUFDbkYsSUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBa0QsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBQzVILElBQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQStELEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxHQUFHLEVBQWlCLEVBQUMsQ0FBQyxDQUFDO0lBRTlKLElBQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBTSxPQUFBLElBQUEsNkJBQVUsR0FBRSxFQUFaLENBQVksRUFBQyxFQUFFLENBQUMsQ0FBQztJQUM1QyxJQUFBLEtBQUEsT0FBa0IsS0FBSyxDQUFDLFFBQVEsQ0FBMkIsSUFBSSxHQUFHLEVBQXVCLENBQUMsSUFBQSxFQUF6RixJQUFJLFFBQUEsRUFBRSxPQUFPLFFBQTRFLENBQUM7SUFFM0YsSUFBQSxLQUFBLE9BQXdCLEtBQUssQ0FBQyxRQUFRLENBQWtCLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBQSxFQUE1RSxPQUFPLFFBQUEsRUFBRSxVQUFVLFFBQXlELENBQUM7SUFDOUUsSUFBQSxLQUFBLE9BQXdCLEtBQUssQ0FBQyxRQUFRLENBQVMsQ0FBQyxDQUFDLElBQUEsRUFBaEQsT0FBTyxRQUFBLEVBQUUsVUFBVSxRQUE2QixDQUFDO0lBQ2xELElBQUEsS0FBQSxPQUFzQixLQUFLLENBQUMsUUFBUSxDQUFTLENBQUMsQ0FBQyxJQUFBLEVBQTlDLE1BQU0sUUFBQSxFQUFFLFNBQVMsUUFBNkIsQ0FBQztJQUVoRCxJQUFBLEtBQUEsT0FBd0IsS0FBSyxDQUFDLFFBQVEsQ0FBb0IsS0FBSyxDQUFDLHNCQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxFQUF6RixPQUFPLFFBQUEsRUFBRSxVQUFVLFFBQXNFLENBQUM7SUFDM0YsSUFBQSxLQUFBLE9BQXdCLEtBQUssQ0FBQyxRQUFRLENBQVcsS0FBSyxDQUFDLHNCQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsRUFBNUUsT0FBTyxRQUFBLEVBQUUsVUFBVSxRQUF5RCxDQUFDO0lBQzlFLElBQUEsS0FBQSxPQUFzQixLQUFLLENBQUMsUUFBUSxDQUFXLEtBQUssQ0FBQyxzQkFBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLEVBQTFFLE1BQU0sUUFBQSxFQUFFLFNBQVMsUUFBeUQsQ0FBQztJQUNsRixnRkFBZ0Y7SUFDMUUsSUFBQSxLQUFBLE9BQTBCLEtBQUssQ0FBQyxRQUFRLENBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLEVBQXBFLFFBQVEsUUFBQSxFQUFFLFdBQVcsUUFBK0MsQ0FBQztJQUV0RSxJQUFBLEtBQUEsT0FBNEIsS0FBSyxDQUFDLFFBQVEsQ0FBcUMsTUFBTSxDQUFDLElBQUEsRUFBckYsU0FBUyxRQUFBLEVBQUUsWUFBWSxRQUE4RCxDQUFDO0lBQ3ZGLElBQUEsS0FBQSxPQUFrQyxLQUFLLENBQUMsUUFBUSxDQUE0QixNQUFNLENBQUMsSUFBQSxFQUFsRixZQUFZLFFBQUEsRUFBRSxlQUFlLFFBQXFELENBQUM7SUFDcEYsSUFBQSxLQUFBLE9BQXdCLEtBQUssQ0FBQyxRQUFRLENBQVUsS0FBSyxDQUFDLElBQUEsRUFBckQsT0FBTyxRQUFBLEVBQUUsVUFBVSxRQUFrQyxDQUFDO0lBQ3ZELElBQUEsS0FBQSxPQUFvQyxLQUFLLENBQUMsUUFBUSxDQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFBLEVBQTNFLGFBQWEsUUFBQSxFQUFFLGdCQUFnQixRQUE0QyxDQUFDO0lBQzdFLElBQUEsS0FBQSxPQUE0QyxLQUFLLENBQUMsUUFBUSxDQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFBLEVBQW5GLGlCQUFpQixRQUFBLEVBQUUsb0JBQW9CLFFBQTRDLENBQUM7SUFDckYsSUFBQSxLQUFBLE9BQThCLEtBQUssQ0FBQyxRQUFRLENBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUEsRUFBckUsVUFBVSxRQUFBLEVBQUUsYUFBYSxRQUE0QyxDQUFDO0lBQ3ZFLElBQUEsS0FBQSxPQUE4QixLQUFLLENBQUMsUUFBUSxDQUFTLFNBQVMsQ0FBQyxJQUFBLEVBQTlELFVBQVUsUUFBQSxFQUFFLGFBQWEsUUFBcUMsQ0FBQztJQUN0RSxJQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRTdDLElBQUEsS0FBQSxPQUE0QixLQUFLLENBQUMsUUFBUSxDQUFTLEVBQUUsQ0FBQyxJQUFBLEVBQXJELFNBQVMsUUFBQSxFQUFFLFlBQVksUUFBOEIsQ0FBQztJQUN2RCxJQUFBLEtBQUEsT0FBa0MsS0FBSyxDQUFDLFFBQVEsQ0FBUyxFQUFFLENBQUMsSUFBQSxFQUEzRCxZQUFZLFFBQUEsRUFBRSxlQUFlLFFBQThCLENBQUM7SUFDN0QsSUFBQSxLQUFBLE9BQThCLEtBQUssQ0FBQyxRQUFRLENBQVMsQ0FBQyxDQUFDLElBQUEsRUFBdEQsVUFBVSxRQUFBLEVBQUUsYUFBYSxRQUE2QixDQUFDO0lBQ3hELElBQUEsS0FBQSxPQUFnQyxLQUFLLENBQUMsUUFBUSxDQUFTLENBQUMsQ0FBQyxJQUFBLEVBQXhELFdBQVcsUUFBQSxFQUFFLGNBQWMsUUFBNkIsQ0FBQztJQUUxRCxJQUFBLEtBQUEsT0FBb0MsS0FBSyxDQUFDLFFBQVEsQ0FBUyxDQUFDLENBQUMsSUFBQSxFQUE1RCxhQUFhLFFBQUEsRUFBRSxnQkFBZ0IsUUFBNkIsQ0FBQztJQUM5RCxJQUFBLEtBQUEsT0FBa0MsS0FBSyxDQUFDLFFBQVEsQ0FBUyxDQUFDLENBQUMsSUFBQSxFQUExRCxZQUFZLFFBQUEsRUFBRSxlQUFlLFFBQTZCLENBQUM7SUFDNUQsSUFBQSxLQUFBLE9BQTBDLEtBQUssQ0FBQyxRQUFRLENBQVMsQ0FBQyxDQUFDLElBQUEsRUFBbEUsZ0JBQWdCLFFBQUEsRUFBRSxtQkFBbUIsUUFBNkIsQ0FBQztJQUNwRSxJQUFBLEtBQUEsT0FBNEMsS0FBSyxDQUFDLFFBQVEsQ0FBUyxDQUFDLENBQUMsSUFBQSxFQUFwRSxpQkFBaUIsUUFBQSxFQUFFLG9CQUFvQixRQUE2QixDQUFDO0lBRTVFLDhEQUE4RDtJQUN4RCxJQUFBLEtBQUEsT0FBcUMsS0FBSyxDQUFDLFFBQVEsQ0FBa0IsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFBLEVBQXpGLGNBQWMsUUFBQSxFQUFFLGlCQUFpQixRQUF3RCxDQUFDO0lBQzNGLElBQUEsS0FBQSxPQUFzQyxLQUFLLENBQUMsUUFBUSxDQUE4QyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUEsRUFBdEgsY0FBYyxRQUFBLEVBQUUsaUJBQWlCLFFBQXFGLENBQUM7SUFDeEgsSUFBQSxLQUFBLE9BQThCLEtBQUssQ0FBQyxRQUFRLENBQVMsQ0FBQyxDQUFDLElBQUEsRUFBdEQsVUFBVSxRQUFBLEVBQUUsYUFBYSxRQUE2QixDQUFDO0lBRXhELElBQUEsS0FBQSxPQUFrQyxLQUFLLENBQUMsUUFBUSxDQUFTLE1BQUEsS0FBSyxDQUFDLFlBQVksbUNBQUksbUJBQW1CLENBQUMsSUFBQSxFQUFsRyxZQUFZLFFBQUEsRUFBRSxlQUFlLFFBQXFFLENBQUM7SUFDcEcsSUFBQSxLQUFBLE9BQWdDLEtBQUssQ0FBQyxRQUFRLENBQVMsTUFBQSxLQUFLLENBQUMsV0FBVyxtQ0FBSSxrQkFBa0IsQ0FBQyxJQUFBLEVBQTlGLFdBQVcsUUFBQSxFQUFFLGNBQWMsUUFBbUUsQ0FBQztJQUNoRyxJQUFBLEtBQUEsT0FBNEIsS0FBSyxDQUFDLFFBQVEsQ0FBUyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUEsRUFBL0QsU0FBUyxRQUFBLEVBQUUsWUFBWSxRQUF3QyxDQUFDO0lBQ2pFLElBQUEsS0FBQSxPQUEwQixLQUFLLENBQUMsUUFBUSxDQUFTLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBQSxFQUE1RCxRQUFRLFFBQUEsRUFBRSxXQUFXLFFBQXVDLENBQUM7SUFFcEUsSUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUU1RSxtRUFBbUU7SUFDbkUsSUFBTSxXQUFXLEdBQXFFLFVBQUMsR0FBRyxFQUFFLFVBQVU7UUFDcEcsSUFBSSxHQUFHLElBQUksSUFBSTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQztZQUFFLE9BQU8sQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RHLE9BQVEsR0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUMsQ0FBQTtJQUNELElBQU0saUJBQWlCLEdBQUcsVUFBQyxHQUFzRCxFQUFFLFVBQWtCO1FBQ25HLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUM1RCxJQUFJLE9BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRO1lBQUUsT0FBTyxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQXVCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pHLE9BQVEsR0FBMEIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqRCxDQUFDLENBQUE7SUFDRCxJQUFNLGNBQWMsR0FBRyxVQUFDLFNBQTZGO1FBQ25ILElBQU0sU0FBUyw0QkFBTyxPQUFPLFNBQUMsQ0FBQztRQUMvQixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQztZQUN0QiwrREFBK0Q7WUFDL0QsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksS0FBSyxFQUFDO1lBQ1IsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsMENBQTBDO0lBQzFDLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDZCxJQUFJLEtBQUssQ0FBQyxZQUFZLEtBQUssU0FBUztZQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFFekIsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNkLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxTQUFTO1lBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUV4Qiw2QkFBNkI7SUFDN0IsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNkLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUUvQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2QsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBRTdDLG1CQUFtQjtJQUNuQixLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUk7WUFDckQsVUFBVSxDQUFDLFVBQUMsQ0FBQyxZQUFLLE9BQUEsQ0FBQyxDQUFDLE1BQUEsS0FBSyxDQUFDLElBQUksbUNBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsRUFBQSxDQUFDLENBQUM7UUFDOUMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUk7WUFDckQsVUFBVSxDQUFDLFVBQUMsQ0FBQyxZQUFLLE9BQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFBLEtBQUssQ0FBQyxJQUFJLG1DQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsRUFBQSxDQUFDLENBQUM7SUFDaEQsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUViLG1CQUFtQjtJQUNuQixLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBTSxZQUFZLEdBQUcsVUFBQyxNQUF1QixFQUFFLElBQVksRUFBRSxVQUE4QjtZQUN6RixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDdkIsc0NBQXNDO1lBQ3RDLElBQU0sT0FBTyxHQUF1QixXQUFXLENBQVMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMxRSxJQUFNLE9BQU8sR0FBdUIsV0FBVyxDQUFTLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDMUUsSUFBSSxPQUFPLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUM7Z0JBQy9DLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsVUFBVSxHQUFHLElBQUksQ0FBQzthQUNuQjtZQUNELElBQUksT0FBTyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUFFO2dCQUNoRCxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3hDLFVBQVUsR0FBRyxJQUFJLENBQUM7YUFDbkI7WUFDRCxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLENBQUE7UUFDRCxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0IsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUViLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDZCxJQUFJLENBQUMsSUFBQSxnQkFBTyxFQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQ2hELGlCQUFpQixDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1QyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtJQUUxQixLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLElBQUEsZ0JBQU8sRUFBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUNoRCxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7SUFHMUIsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNkLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3QixDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO0lBRXBCLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDZCxZQUFZLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO0lBRXBCLCtCQUErQjtJQUMvQixLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBTSxHQUFHLEdBQUcsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUMvQixJQUFNLE1BQU0sR0FBRyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLElBQUksU0FBUyxLQUFLLEdBQUc7WUFDbkIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksWUFBWSxLQUFLLE1BQU07WUFDekIsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUMsRUFBQyxDQUFDLFlBQVksRUFBQyxhQUFhLENBQUMsQ0FBQyxDQUFBO0lBRS9CLHFCQUFxQjtJQUNyQixLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBTSxJQUFJLEdBQUcsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQ25DLElBQUksVUFBVSxLQUFLLElBQUk7WUFDckIsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUV2QixzQkFBc0I7SUFDdEIsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNkLElBQU0sS0FBSyxHQUFHLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUNyQyxJQUFJLFdBQVcsS0FBSyxLQUFLO1lBQ3ZCLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFFeEIsa0JBQWtCO0lBQ2xCLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDZCxJQUFNLFlBQVksR0FBRyxVQUFDLE1BQXVCLEVBQUUsSUFBWSxFQUFFLFVBQThCO1lBQ3pGLElBQUksUUFBUSxLQUFLLFdBQVcsSUFBSSxRQUFRLEtBQUssZUFBZSxFQUFFO2dCQUM1RCxJQUFNLGlCQUFlLEdBQUcsVUFBQyxNQUFnQixFQUFFLE1BQW1CLEVBQUUsSUFBcUQ7b0JBQ25ILCtFQUErRTtvQkFDL0UsSUFBTSxRQUFRLEdBQUcsc0JBQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQyxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7d0JBQ3JCLElBQU0sS0FBSyxHQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDN0IsSUFBSSxLQUFLLEtBQUssU0FBUzs0QkFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUM3QztvQkFDRCxPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQyxDQUFBO2dCQUNELElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQVIsSUFBSSwyQkFBUSx5QkFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQUUsTUFBTSxDQUFDLFVBQUMsTUFBZ0IsRUFBRSxNQUFtQixJQUFLLE9BQUEsaUJBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBOUMsQ0FBOEMsRUFBRSxFQUFFLENBQUMsVUFBQyxDQUFDO2dCQUNuSixJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFSLElBQUksMkJBQVEseUJBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFFLE1BQU0sQ0FBQyxVQUFDLE1BQWdCLEVBQUUsTUFBbUIsSUFBSyxPQUFBLGlCQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQTlDLENBQThDLEVBQUUsRUFBRSxDQUFDLFVBQUMsQ0FBQztnQkFDbkosSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNwRSxJQUFJLFFBQVEsS0FBSyxXQUFXO3dCQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDOUQsK0VBQStFO3lCQUMxRSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7d0JBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDOzt3QkFDbkUsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNsQyxPQUFPLElBQUksQ0FBQztpQkFDYjthQUNGO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUE7UUFDRCxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0IsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFcEIsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNkLElBQU0sVUFBVSxHQUFjLEtBQUssQ0FBVSxDQUFDLENBQUMsQ0FBQztRQUNoRCxJQUFNLE9BQU8sR0FBRyxVQUFDLElBQW9CLElBQUssT0FBQSx5QkFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQUUsSUFBSSxDQUFDLFVBQUEsTUFBTSxJQUFJLE9BQUEsc0JBQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssc0JBQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUE5QyxDQUE4QyxDQUFDLEVBQWpGLENBQWlGLENBQUM7UUFDNUgsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRVgsZ0JBQWdCO0lBQ2hCLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDZixJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0QixJQUFJLEVBQUUsS0FBSyxDQUFDO1lBQ1YsT0FBTztRQUVULElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUU7WUFDN0IsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoQztRQUVELElBQU0sS0FBSyxHQUFHLENBQUMsUUFBUSxHQUFHLFVBQVUsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFekQsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pCLFVBQVUsQ0FBQyxVQUFVLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBRSxDQUFDO0lBQzFDLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUVqRSxnQkFBZ0I7SUFDaEIsS0FBSyxDQUFDLFNBQVMsQ0FBQzs7UUFDZCxJQUFNLGNBQWMsR0FBRyxVQUFDLFVBQW9CLEVBQUUsV0FBcUIsRUFBRSxJQUFZO1lBQy9FLElBQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsSUFBTSxLQUFLLEdBQUcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRixVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDMUIsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsR0FBRyxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMxRSxDQUFDLENBQUE7UUFDRCxvQkFBb0I7UUFDcEIsSUFBTSxRQUFRLDRCQUFPLE1BQU0sU0FBQyxDQUFDO1FBQzdCLElBQU0sU0FBUyw0QkFBTyxPQUFPLFNBQUMsQ0FBQzs7WUFDL0IsS0FBa0IsSUFBQSxLQUFBLFNBQUEsc0JBQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQSxnQkFBQTtnQkFBOUIsSUFBTSxJQUFJLFdBQUE7Z0JBQ1osY0FBYyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFBQTs7Ozs7Ozs7O1FBQzVDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQixVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEIsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUVsRCxLQUFLLENBQUMsU0FBUyxDQUFDLGNBQVEsYUFBYSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxHQUFDLENBQUMsRUFBSCxDQUFHLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFFckYsc0JBQXNCO0lBQ3RCLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDZCxJQUFJLFNBQVMsQ0FBQztRQUNkLElBQUksS0FBSyxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUU7WUFDaEMsUUFBUSxZQUFZLEVBQUM7Z0JBQ25CLEtBQUssS0FBSztvQkFDUixTQUFTLEdBQUcsTUFBTSxDQUFDO29CQUNuQixNQUFNO2dCQUNSLEtBQUssUUFBUTtvQkFDWCxTQUFTLEdBQUcsU0FBUyxDQUFDO29CQUN0QixNQUFNO2dCQUNSO29CQUNFLFNBQVMsR0FBRyxTQUFTLENBQUM7YUFDekI7U0FDRjs7WUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUN4QyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO0lBRXhDLCtCQUErQjtJQUMvQixLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBTSxXQUFXLEdBQUcsVUFBQyxDQUFhLElBQU8sSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVU7WUFBRSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUEsQ0FBQyxDQUFDLENBQUE7UUFDbEcsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUMsT0FBTyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUM7UUFDdEUsT0FBTyxjQUFNLE9BQUEsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEVBQXZELENBQXVELENBQUM7SUFDekUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsdUVBQXVFO0lBQ3ZFLElBQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFDLFNBQWlCOztRQUNwRSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssUUFBUTtZQUFFLE9BQU87UUFDdEMsSUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBQSxLQUFLLENBQUMsWUFBWSxtQ0FBSSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JGLElBQUksWUFBWSxLQUFLLGFBQWE7WUFBRSxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckUsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRXJFLElBQU0sd0JBQXdCLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFDLFFBQWdCLEVBQUUsV0FBbUI7O1FBQ3ZGLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRTtZQUNoQixZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdEQsT0FBTztTQUNSO1FBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLE9BQU87WUFBRSxPQUFPO1FBQ3JDLElBQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQUEsS0FBSyxDQUFDLFdBQVcsbUNBQUksa0JBQWtCLENBQUMsQ0FBQztRQUNqRiw2SEFBNkg7UUFDN0gsWUFBWSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVqRSx1RUFBdUU7UUFDdkUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO1lBQ3hDLElBQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBUixJQUFJLDJCQUFRLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxVQUFDLENBQUM7WUFDakYsSUFBSSxXQUFXLEtBQUssZ0JBQWdCO2dCQUFFLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUMsRUFBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUVoRSw0RUFBNEU7SUFDNUUsSUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFDLENBQVM7UUFDaEQsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ2hDLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLO1lBQzNCLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUM1QyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsRUFBQyxDQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFFcEMsMkVBQTJFO0lBQzNFLElBQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBQyxDQUFTLEVBQUUsQ0FBMEI7UUFDNUUsSUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsT0FBTyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFcEIsU0FBUyxLQUFLO1FBQ1osVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNCLFlBQVksRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxTQUFTLFlBQVk7UUFDbkIsSUFBTSxZQUFZLEdBQUcsVUFBQyxNQUF1QixFQUFFLElBQVksRUFBRSxVQUE4QjtZQUN6RixzQ0FBc0M7WUFDdEMsSUFBTSxRQUFRLEdBQWlDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2RixJQUFJLFFBQVEsS0FBSyxTQUFTLElBQUksUUFBUSxLQUFLLFdBQVcsSUFBSSxRQUFRLEtBQUssZUFBZSxFQUFFO2dCQUN0RixVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO2dCQUM1QixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUE7UUFDRCxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELGdEQUFnRDtJQUNoRCxJQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQUMsS0FBYTtRQUNqRCxJQUFJLEVBQUUsR0FBRyxLQUFLLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUNsQyxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUFFO1lBQzdCLElBQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakQsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQztTQUN2QztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxLQUFLLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFFN0MsZ0RBQWdEO0lBQ2hELElBQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBQyxLQUFhLEVBQUUsQ0FBd0I7UUFDM0UsSUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsT0FBTyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUVyQixtRkFBbUY7SUFDbkYsSUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFDLEtBQWE7UUFDbkQsSUFBSSxLQUFLLElBQUksQ0FBQztZQUNaLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsVUFBVSxFQUFFLFFBQVEsR0FBRyxXQUFXLENBQUMsQ0FBQzs7WUFFNUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLEdBQUcsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBQyxXQUFXLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUV0QyxtRkFBbUY7SUFDbkYsSUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFDLEtBQWE7UUFDbkQsSUFBSSxLQUFLLElBQUksQ0FBQztZQUNaLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsU0FBUyxFQUFFLFNBQVMsR0FBRyxZQUFZLENBQUMsQ0FBQzs7WUFFN0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEdBQUcsWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBQyxZQUFZLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUV2QyxJQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQUMsQ0FBYztRQUMvQyxJQUFNLEdBQUcsR0FBRyxJQUFBLDZCQUFVLEdBQUUsQ0FBQztRQUN6QixPQUFPLENBQUMsVUFBQyxHQUFHLElBQU8sSUFBTSxPQUFPLEdBQUcsSUFBQSxrQkFBUyxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNGLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsSUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFDLEdBQVcsRUFBRSxDQUFjO1FBQy9ELE9BQU8sQ0FBQyxVQUFDLEdBQUcsSUFBTyxJQUFNLE9BQU8sR0FBRyxJQUFBLGtCQUFTLEVBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsSUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFDLENBQVM7UUFDM0MsT0FBTyxDQUFDLFVBQUMsR0FBRyxJQUFPLElBQU0sT0FBTyxHQUFHLElBQUEsa0JBQVMsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBO0lBQzNGLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQztJQUVOLElBQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBQyxHQUFXLEVBQUUsTUFBc0Q7UUFDcEcsT0FBTyxDQUFDLFVBQUMsR0FBRztZQUNWLElBQU0sT0FBTyxHQUFHLElBQUEsa0JBQVMsRUFBQyxHQUFHLENBQUMsQ0FBQztZQUMvQixJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLElBQUksTUFBTSxLQUFLLFNBQVM7Z0JBQ3RCLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU8sQ0FBQyxDQUFDO1lBQzFCLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsU0FBUyx3QkFBd0IsQ0FBQyxPQUErQjtRQUMvRCxJQUFNLGdCQUFnQixHQUFHLFVBQUMsTUFBMkQsRUFBRSxNQUFtQjtZQUN4RyxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO2dCQUMzQixJQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckQsSUFBSSxFQUFFLEtBQUssU0FBUztvQkFBRSxPQUFPLE1BQU0sQ0FBQztnQkFDcEMsSUFBTSxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxzQkFBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqRixJQUFNLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQ2xFLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPO29CQUMxRCxPQUFPLEVBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQzthQUMzRDtZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQTtRQUNELE9BQU8seUJBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFFLE1BQU0sQ0FBQyxVQUFDLE1BQTJELEVBQUUsTUFBbUIsSUFBSyxPQUFBLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBaEMsQ0FBZ0MsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMvTCxDQUFDO0lBRUQsSUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFDLE9BQWtCO1FBQzFELElBQU0sR0FBRyxHQUFHLElBQUEsNkJBQVUsR0FBRSxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBQyxPQUFPLENBQUMsQ0FBQTtRQUNqQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQztJQUVOLElBQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBQyxHQUFXO1FBQ2pELFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzlCLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQztJQUVOLElBQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBQyxHQUFXLEVBQUMsT0FBa0I7UUFDcEUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ25DLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQztJQUVOLElBQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLE9BQU87WUFBRSxLQUFLLEVBQUUsQ0FBQzthQUN0QixJQUFJLENBQUMsS0FBSyxVQUFVO1lBQUUsS0FBSyxDQUFDLGFBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQzs7WUFDcEQsZUFBZSxDQUFDLENBQTRCLENBQUMsQ0FBQTtJQUNwRCxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRWQsU0FBUyxnQkFBZ0IsQ0FBQyxHQUFRO1FBQzVCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSTtZQUN2QyxPQUFPO1FBQ1gsSUFBSSxDQUFDLENBQUMsWUFBWSxLQUFLLE1BQU0sQ0FBQztZQUMxQixPQUFPO1FBQ1gsSUFBSSxDQUFDLE9BQU87WUFDUixPQUFPO1FBRVgsaURBQWlEO1FBQ2pELFlBQVksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUV2Qyx5Q0FBeUM7UUFDekMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFUixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFFdEIsNEVBQTRFO1FBQzVFLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQUUsVUFBVSxHQUFHLElBQUksQ0FBQztRQUV0QyxJQUFJLEVBQUUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsSUFBSSxFQUFFLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWhDLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVU7WUFDN0IsRUFBRSxHQUFHLFVBQVUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7YUFFaEMsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO1lBQ2hELEVBQUUsR0FBRyxFQUFFLEdBQUcsVUFBVSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2FBRWhDO1lBQ0QsSUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLEVBQUUsR0FBRyxPQUFPLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO1lBQzNDLEVBQUUsR0FBRyxPQUFPLEdBQUcsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsVUFBVSxDQUFDO1NBQzlDO1FBRUQsSUFBSSxDQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ2QsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFcEQsSUFBSSxRQUFRLEtBQUssTUFBTSxFQUFFO1lBQ3ZCLElBQU0sU0FBUyxHQUFHLFVBQUMsTUFBdUIsRUFBRSxJQUFZLEVBQUUsVUFBOEI7Z0JBQ3RGLElBQUksRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3JDLElBQUksRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBRXJDLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVM7b0JBQzVCLEVBQUUsR0FBRyxVQUFVLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO3FCQUVoQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7b0JBQ2xELEVBQUUsR0FBRyxFQUFFLEdBQUcsVUFBVSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO3FCQUVoQztvQkFDRCxJQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pDLEVBQUUsR0FBRyxPQUFPLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO29CQUMzQyxFQUFFLEdBQUcsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLFVBQVUsQ0FBQztpQkFDOUM7Z0JBRUQsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3hCLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUN0RSxPQUFPLElBQUksQ0FBQztpQkFDYjtnQkFDRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUMsQ0FBQTtZQUNELGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFFSCxTQUFTLGVBQWUsQ0FBQyxHQUFRO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTztZQUN4QixxQkFBcUIsQ0FBQyxjQUFNLE9BQUEsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFuQixDQUFtQixDQUFDLENBQUM7UUFDbkQsYUFBYSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELFNBQVMsY0FBYyxDQUFDLEdBQVE7O1FBQzlCLGFBQWEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJO1lBQ3hCLE9BQU87UUFDVCxJQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsT0FBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUNuQixFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDbkIsSUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBUSxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFakYsSUFBSSxTQUFTLEtBQUssS0FBSyxFQUFFO1lBQ3JCLElBQU0sRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQzVDLElBQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxJQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDckMsSUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN4QyxJQUFNLElBQUksR0FBRyxhQUFhLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLElBQ0UsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEdBQUksS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDaEQsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDL0MsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFN0IsSUFBSSxRQUFRLEtBQUssTUFBTSxFQUFFO2dCQUN2QixJQUFNLFNBQVMsR0FBRyxVQUFDLE1BQXVCLEVBQUUsSUFBWSxFQUFFLFVBQThCO29CQUN0RixJQUFNLEVBQUUsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUN0RixzQ0FBc0M7b0JBQ3RDLElBQU0sT0FBTyxHQUF1QixXQUFXLENBQVMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDMUUsSUFBTSxPQUFPLEdBQXVCLFdBQVcsQ0FBUyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUMxRSxJQUNFLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFJLE9BQU8sQ0FBQzt3QkFDcEQsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUU7d0JBQ25ELFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO3dCQUNwRCxPQUFPLElBQUksQ0FBQztxQkFDYjtvQkFDSCxPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDLENBQUE7Z0JBQ0QsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzNCO1NBQ0Y7UUFDRCxnQkFBZ0IsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsMkNBQTJDO1FBQzNDLElBQUksT0FBK0IsQ0FBQztRQUNwQyxJQUFJLE1BQUEsS0FBSyxDQUFDLFNBQVMsbUNBQUksS0FBSztZQUFFLE9BQU8sR0FBRyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsQ0FBQzs7WUFDekUsT0FBTyxHQUFHLFdBQVcsQ0FBQztRQUMzQixvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0MsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDO1lBQzNCLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBekssQ0FBeUssQ0FBQyxDQUFDO0lBQy9NLENBQUM7SUFFRCxTQUFTLGVBQWUsQ0FBQyxHQUFROztRQUMvQixJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSTtZQUN4QixPQUFPO1FBRVAsSUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM1QyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDbkIsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ25CLElBQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBQ2hGLGFBQWEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxZQUFZLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQztZQUNuRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsSUFBSSxZQUFZLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2xFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQixhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDN0I7UUFFRCxvRkFBb0Y7UUFDcEYsMkNBQTJDO1FBQzNDLElBQUksT0FBK0IsQ0FBQztRQUNwQyxJQUFJLE1BQUEsS0FBSyxDQUFDLFNBQVMsbUNBQUksS0FBSztZQUFFLE9BQU8sR0FBRyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsQ0FBQzs7WUFDekUsT0FBTyxHQUFHLFdBQVcsQ0FBQztRQUMzQixJQUFJLFlBQVksS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxTQUFTO1lBQzNELEtBQUssQ0FBQyxRQUFRLENBQ1osYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFDeEIseUJBQUksc0JBQU8sQ0FBQyxNQUFNLEVBQUUsVUFBRSxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBOUIsQ0FBOEIsQ0FBQyxFQUNqRTtnQkFDQSxVQUFVLEVBQUUsYUFBc0Q7Z0JBQ2xFLFVBQVUsRUFBRSxhQUF3RDthQUNuRSxDQUFDLENBQUM7UUFDUCxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxZQUFZLEtBQUssUUFBUTtZQUN4RCxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQTNLLENBQTJLLENBQUMsQ0FBQztJQUNuTixDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsQ0FBTTtRQUMzQixJQUFJLFlBQVksS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ2hFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUU7WUFFdEIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2pELFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDckIsT0FBTzthQUNWO1lBRUQsSUFBTSxJQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkYsSUFBTSxJQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFbkYsVUFBVSxDQUFDLFVBQUMsSUFBSSxJQUFNLE9BQUEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFFLENBQUMsQ0FBQyxFQUE5QyxDQUE4QyxDQUFDLENBQUM7WUFFdEUsSUFBSSxRQUFRLEtBQUssTUFBTSxFQUFFO2dCQUN2QixJQUFNLFNBQVMsR0FBRyxVQUFDLE1BQXVCLEVBQUUsSUFBWSxFQUFFLFVBQThCO29CQUN0RixJQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUMvRixJQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUMvRixVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUN0RSxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDLENBQUE7Z0JBQ0QsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzNCO1NBQ0o7UUFDRCxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFckIsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksWUFBWSxLQUFLLFFBQVE7WUFDeEQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUEzTSxDQUEyTSxDQUFDLENBQUM7SUFDalAsQ0FBQztJQUVELFNBQVMsY0FBYyxDQUFDLENBQU07UUFDMUIsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xCLElBQUksU0FBUyxLQUFLLEtBQUs7WUFDbkIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXpCLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLFlBQVksS0FBSyxRQUFRO1lBQ3hELFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLFNBQVMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBL00sQ0FBK00sQ0FBQyxDQUFDO0lBRXZQLENBQUM7SUFFRCxTQUFTLGFBQWEsQ0FBQyxDQUFNO1FBQ3pCLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsQ0FBa0I7UUFDdkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzVDLE9BQU87UUFFVCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2IsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDOztZQUVkLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTLGFBQWEsQ0FBQyxDQUFvQjtRQUN6QyxJQUFNLGVBQWUsR0FBRyxVQUFDLE1BQXVCLEVBQUUsSUFBWSxFQUFFLFVBQThCO1lBQzVGLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDdEQsT0FBTyxLQUFLLENBQUM7WUFFZixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNiLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7O2dCQUUzQixVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0MsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUE7UUFDRCxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE9BQU8sQ0FDTCxvQkFBQyw2QkFBYyxJQUNiLE9BQU8sRUFBRyxPQUFPLEVBQ2pCLGFBQWEsRUFBRSxhQUFhLEVBQzVCLGlCQUFpQixFQUFFLGlCQUFpQixFQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUNoQixXQUFXLEVBQUUsWUFBWSxFQUN6QixPQUFPLEVBQUUsT0FBTyxFQUNoQixVQUFVLEVBQUUsVUFBVSxFQUN0QixJQUFJLEVBQUUsSUFBSSxFQUNWLGlCQUFpQixFQUFFLFlBQVksRUFDL0IsaUJBQWlCLEVBQUUsWUFBWSxFQUMvQixVQUFVLEVBQUUsVUFBVSxFQUN0QixVQUFVLEVBQUUsVUFBVSxFQUN0QixhQUFhLEVBQUUsYUFBYSxFQUM1QixhQUFhLEVBQUUsYUFBYSxFQUM1QixVQUFVLEVBQUUsYUFBYSxFQUN6QixVQUFVLEVBQUUsYUFBYSxFQUN6QixPQUFPLEVBQUUsT0FBTyxFQUNoQixVQUFVLEVBQUUsVUFBVSxFQUN0QixVQUFVLEVBQUUsVUFBVSxFQUN0QixTQUFTLEVBQUUsU0FBUyxFQUNwQixjQUFjLEVBQUUsY0FBYyxFQUM5QixZQUFZLEVBQUUsWUFBWSxFQUMxQixZQUFZLEVBQUUsWUFBWSxFQUMxQixrQkFBa0IsRUFBRSx3QkFBd0IsRUFDNUMsbUJBQW1CLEVBQUUseUJBQXlCO1FBRTVDLDZCQUFLLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7WUFDMUUsNkJBQUssS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUN4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsYUFBYTtnQkFDMUssNkJBQUssR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUN6RixLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFPLFFBQVEsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxXQUFJLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFFO29CQUN6RixLQUFLLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyw4QkFBTyxNQUFNLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBRSxPQUFLLFVBQVUsU0FBSSxTQUFTLFlBQU0sUUFBUSxHQUFFLFdBQVcsYUFBTSxTQUFTLEdBQUcsWUFBWSxZQUFNLFVBQVUsT0FBSSxHQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7b0JBQ2xNLEtBQUssQ0FBQyxTQUFTLEtBQUssTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUM7d0JBQy9ELG9CQUFDLGtCQUFRLElBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQ3pLLFVBQVUsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUcsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsR0FBSSxDQUFDLENBQUM7d0JBQ3RJLG9CQUFDLGlCQUFPLElBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUN6SyxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBSTtvQkFDOUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBQyxtQkFBUyxJQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBUyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUNqTSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUN0SCxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixLQUFLLFNBQVMsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSTtvQkFDekksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBQyxtQkFBUyxJQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBUyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFT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
806
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9QbG90LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUdBQXlHO0FBQ3pHLG1CQUFtQjtBQUNuQixFQUFFO0FBQ0YscUVBQXFFO0FBQ3JFLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLHNHQUFzRztBQUN0Ryx3RkFBd0Y7QUFDeEYsRUFBRTtBQUNGLDBDQUEwQztBQUMxQyxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4Ryw0RUFBNEU7QUFDNUUsRUFBRTtBQUNGLDhCQUE4QjtBQUM5Qix3R0FBd0c7QUFDeEcsMEJBQTBCO0FBQzFCLG1EQUFtRDtBQUNuRCxFQUFFO0FBQ0YseUdBQXlHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUd6Ryw2QkFBK0I7QUFDL0IsMEJBQTRCO0FBQzVCLDJEQUFzRDtBQUN0RCwrQ0FBNkg7QUFDN0gsbUVBQTBEO0FBQzFELGlDQUEwQztBQUMxQyx1Q0FBa0M7QUFDbEMscUNBQWdDO0FBQ2hDLHlDQUFvQztBQUNwQyxtQ0FBOEI7QUFDOUIseURBQW9EO0FBQ3BELCtCQUEwQjtBQUMxQixtQ0FBOEI7QUFDOUIsdURBQWtEO0FBQ2xELG1EQUE4QztBQUM5QyxtREFBOEM7QUFDOUMsbUNBQThCO0FBQzlCLDJEQUFzRDtBQUN0RCxxQ0FBZ0M7QUFDaEMsK0NBQTBDO0FBQzFDLDBDQUE0QztBQUM1QyxJQUFNLFdBQVcsR0FBUSxZQUFZLENBQUM7QUF5Q3RDLElBQU0sUUFBUSxHQUF3QjtJQUNsQyxJQUFJLEVBQUUsTUFBTTtJQUNaLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLGtCQUFrQixFQUFFLE1BQU07SUFDMUIsZ0JBQWdCLEVBQUUsTUFBTTtJQUN4QixlQUFlLEVBQUUsTUFBTTtJQUN2QixhQUFhLEVBQUUsTUFBTTtJQUNyQixZQUFZLEVBQUUsTUFBTTtJQUNwQixhQUFhLEVBQUUsTUFB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